From f896c156b2194c16c4cc763f5610f573291a3ab8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Richard=20Bai=28=E7=99=BD=E5=AD=A6=E4=BD=99=29?= Date: Tue, 13 Aug 2019 21:16:49 +0800 Subject: [PATCH] get barbican secret key request return error code MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Richard Bai(白学余) (cherry picked from commit fbe2be57474df43996dd45bf04d1a1137a02c729) Conflicts: src/rgw/rgw_http_client.cc - mimic uses Mutex::Locker instead of std::lock_guard --- src/rgw/rgw_http_client.cc | 15 ++++++++++----- src/rgw/rgw_http_client.h | 6 +++++- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/rgw/rgw_http_client.cc b/src/rgw/rgw_http_client.cc index 7bf3f968a34dd..701ada43ad7dd 100644 --- a/src/rgw/rgw_http_client.cc +++ b/src/rgw/rgw_http_client.cc @@ -58,8 +58,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) { 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); @@ -86,7 +91,7 @@ struct rgw_http_req_data : public RefCountedObject { Mutex::Locker l(lock); return ret; } - + RGWHTTPManager *get_manager() { Mutex::Locker l(lock); return mgr; @@ -829,9 +834,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); } @@ -1147,7 +1152,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 fab6f6bb36b15..42a54b3c267ef 100644 --- a/src/rgw/rgw_http_client.h +++ b/src/rgw/rgw_http_client.h @@ -174,6 +174,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; } @@ -323,7 +327,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); -- 2.39.5