void set_state(int bitmask);
- void finish(int r) {
+ void finish(int r, long http_status = -1) {
Mutex::Locker l(lock);
+ if (http_status != -1) {
+ if (client) {
+ client->set_http_status(http_status);
+ }
+ }
ret = r;
if (curl_handle)
do_curl_easy_cleanup(curl_handle);
Mutex::Locker l(lock);
return ret;
}
-
+
RGWHTTPManager *get_manager() {
Mutex::Locker l(lock);
return mgr;
req_data->put();
}
-void RGWHTTPManager::finish_request(rgw_http_req_data *req_data, int ret)
+void RGWHTTPManager::finish_request(rgw_http_req_data *req_data, int ret, long http_status)
{
- req_data->finish(ret);
+ req_data->finish(ret, http_status);
complete_request(req_data);
}
status = -EAGAIN;
}
int id = req_data->id;
- finish_request(req_data, status);
+ finish_request(req_data, status, http_status);
switch (result) {
case CURLE_OK:
break;
return http_status;
}
+ void set_http_status(long _http_status) {
+ http_status = _http_status;
+ }
+
void set_verify_ssl(bool flag) {
verify_ssl = flag;
}
bool unregister_request(rgw_http_req_data *req_data);
void _unlink_request(rgw_http_req_data *req_data);
void unlink_request(rgw_http_req_data *req_data);
- void finish_request(rgw_http_req_data *req_data, int r);
+ void finish_request(rgw_http_req_data *req_data, int r, long http_status = -1);
void _finish_request(rgw_http_req_data *req_data, int r);
void _set_req_state(set_state& ss);
int link_request(rgw_http_req_data *req_data);