]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: add explicit success/error paths in RGWGetObj::execute() 5262/head
authorJavier M. Mellid <jmunhoz@igalia.com>
Wed, 21 Oct 2015 14:04:14 +0000 (16:04 +0200)
committerJavier M. Mellid <jmunhoz@igalia.com>
Wed, 21 Oct 2015 14:05:20 +0000 (16:05 +0200)
Fixes: #12352
Signed-off-by: Javier M. Mellid <jmunhoz@igalia.com>
src/rgw/rgw_op.cc
src/rgw/rgw_op.h
src/rgw/rgw_rest_s3.cc
src/rgw/rgw_rest_s3.h
src/rgw/rgw_rest_swift.cc
src/rgw/rgw_rest_swift.h

index e05ad976e4e41b7edab6ae4fba1dbfae94a3837d..ca41a25ad983b6c0903382db9963867f81cce013 100644 (file)
@@ -1017,8 +1017,11 @@ void RGWGetObj::execute()
     goto done_err;
   }
 
-done_err:
   send_response_data(bl, 0, 0);
+  return;
+
+done_err:
+  send_response_data_error();
 }
 
 int RGWGetObj::init_common()
index 0cdca94b4a29cdbde06b03a53560912f3fd2ee3f..635457302cb79557a5c4cd6a3affc5ede652f0cf 100644 (file)
@@ -177,6 +177,7 @@ public:
   int get_data_cb(bufferlist& bl, off_t ofs, off_t len);
 
   virtual int get_params() = 0;
+  virtual int send_response_data_error() = 0;
   virtual int send_response_data(bufferlist& bl, off_t ofs, off_t len) = 0;
 
   virtual const string name() { return "get_obj"; }
index 487f1b114e0917a98befc239520441bc844b18cb..3388c75b8a8e05bbe95b86595b466a9beb08054b 100644 (file)
@@ -72,6 +72,12 @@ static struct response_attr_param resp_attr_params[] = {
   {NULL, NULL},
 };
 
+int RGWGetObj_ObjStore_S3::send_response_data_error()
+{
+  bufferlist bl;
+  return send_response_data(bl, 0 , 0);
+}
+
 int RGWGetObj_ObjStore_S3::send_response_data(bufferlist& bl, off_t bl_ofs, off_t bl_len)
 {
   const char *content_type = NULL;
index 5db03dadc95038ddefd621bb7b816f03cc64a65b..5aa52d5585c9b40788aec40db69d4cb1653c869c 100644 (file)
@@ -21,6 +21,7 @@ public:
   RGWGetObj_ObjStore_S3() {}
   ~RGWGetObj_ObjStore_S3() {}
 
+  int send_response_data_error();
   int send_response_data(bufferlist& bl, off_t ofs, off_t len);
 };
 
index 64bb36c58b219cb13fd46de89bdc18759427125b..2e61fcb558fa817123b15bcd21fa3ca7224ff15f 100644 (file)
@@ -849,6 +849,12 @@ int RGWGetObj_ObjStore_SWIFT::get_params()
   return RGWGetObj_ObjStore::get_params();
 }
 
+int RGWGetObj_ObjStore_SWIFT::send_response_data_error()
+{
+  bufferlist bl;
+  return send_response_data(bl, 0, 0);
+}
+
 int RGWGetObj_ObjStore_SWIFT::send_response_data(bufferlist& bl, off_t bl_ofs, off_t bl_len)
 {
   string content_type;
index 1311dadb29d138eaabdb3ea820dc9af1e6890859..b254164a5bdae7c868858b2aa4e6ff4325221bc1 100644 (file)
@@ -14,6 +14,7 @@ public:
   ~RGWGetObj_ObjStore_SWIFT() {}
 
   int get_params();
+  int send_response_data_error();
   int send_response_data(bufferlist& bl, off_t ofs, off_t len);
   bool need_object_expiration() { return true; }
 };