]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
get barbican secret key request return error code 29639/head
authorRichard Bai(白学余) <baixueyu@inspur.com>
Tue, 13 Aug 2019 13:16:49 +0000 (21:16 +0800)
committerRichard Bai(白学余) <baixueyu@inspur.com>
Wed, 21 Aug 2019 13:21:21 +0000 (21:21 +0800)
Signed-off-by: Richard Bai(白学余) <baixueyu@inspur.com>
src/rgw/rgw_http_client.cc
src/rgw/rgw_http_client.h

index fccc52e6e62b358fb5bf1be5cd65ce929ab0dd44..4fee0e6a04196e07c5e5cac7f3dec3c3bef7e1ea 100644 (file)
@@ -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;
index 764e5637f7c1c0efef519bb6eb583732cc18a32e..42f2fa2a25860adb9618724f16ffcf0543e4246a 100644 (file)
@@ -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);