From: Richard Bai(白学余) Date: Tue, 13 Aug 2019 13:16:49 +0000 (+0800) Subject: get barbican secret key request return error code X-Git-Tag: v15.1.0~1685^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=fbe2be57474df43996dd45bf04d1a1137a02c729;p=ceph.git get barbican secret key request return error code Signed-off-by: Richard Bai(白学余) --- diff --git a/src/rgw/rgw_http_client.cc b/src/rgw/rgw_http_client.cc index fccc52e6e62b..4fee0e6a0419 100644 --- a/src/rgw/rgw_http_client.cc +++ b/src/rgw/rgw_http_client.cc @@ -91,8 +91,13 @@ struct rgw_http_req_data : public RefCountedObject { void set_state(int bitmask); - void finish(int r) { + void finish(int r, long http_status = -1) { std::lock_guard 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); @@ -119,7 +124,7 @@ struct rgw_http_req_data : public RefCountedObject { std::lock_guard l{lock}; return ret; } - + RGWHTTPManager *get_manager() { std::lock_guard l{lock}; return mgr; @@ -854,9 +859,9 @@ void RGWHTTPManager::_complete_request(rgw_http_req_data *req_data) 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); } @@ -1172,7 +1177,7 @@ void *RGWHTTPManager::reqs_thread_entry() 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; diff --git a/src/rgw/rgw_http_client.h b/src/rgw/rgw_http_client.h index 764e5637f7c1..42f2fa2a2586 100644 --- a/src/rgw/rgw_http_client.h +++ b/src/rgw/rgw_http_client.h @@ -128,6 +128,10 @@ public: return http_status; } + void set_http_status(long _http_status) { + http_status = _http_status; + } + void set_verify_ssl(bool flag) { verify_ssl = flag; } @@ -277,7 +281,7 @@ class RGWHTTPManager { 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);