]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: init src_bucket_name, src_object in the S3 handler
authorYehuda Sadeh <yehuda@inktank.com>
Tue, 22 Oct 2013 01:02:32 +0000 (18:02 -0700)
committerSage Weil <sage@inktank.com>
Fri, 13 Dec 2013 22:42:32 +0000 (14:42 -0800)
Be consistent and initialize these fields also in the S3 case.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
(cherry picked from commit ccaab2abf9e49ce3e50c15df793a3a3ca6b29bb8)

src/rgw/rgw_rest_s3.cc
src/rgw/rgw_rest_swift.cc

index b26342768db9f441b9f2954d7129262972111bd2..3da66f36a3aec153179b6ea3fc3ab828b251dbb1 100644 (file)
@@ -1200,18 +1200,8 @@ int RGWCopyObj_ObjStore_S3::get_params()
   if_match = s->info.env->get("HTTP_X_AMZ_COPY_IF_MATCH");
   if_nomatch = s->info.env->get("HTTP_X_AMZ_COPY_IF_NONE_MATCH");
 
-  const char *req_src = s->copy_source;
-  if (!req_src) {
-    ldout(s->cct, 0) << "copy source is NULL" << dendl;
-    return -EINVAL;
-  }
-
-  ret = parse_copy_location(req_src, src_bucket_name, src_object);
-  if (!ret) {
-    ldout(s->cct, 0) << "failed to parse copy location" << dendl;
-    return -EINVAL;
-  }
-
+  src_bucket_name = s->src_bucket_name;
+  src_object = s->src_object;
   dest_bucket_name = s->bucket.name;
   dest_object = s->object_str;
 
@@ -1961,6 +1951,13 @@ int RGWHandler_ObjStore_S3::init(RGWRados *store, struct req_state *s, RGWClient
   s->has_acl_header = s->info.env->exists_prefix("HTTP_X_AMZ_GRANT");
 
   s->copy_source = s->info.env->get("HTTP_X_AMZ_COPY_SOURCE");
+  if (s->copy_source) {
+    ret = RGWCopyObj::parse_copy_location(s->copy_source, s->src_bucket_name, s->src_object);
+    if (!ret) {
+      ldout(s->cct, 0) << "failed to parse copy location" << dendl;
+      return -EINVAL;
+    }
+  }
 
   s->dialect = "s3";
 
index eba16d86899c4685edfdac61ab83996a5b9083d4..95d54aef3f9c4385a3920c03562370f64428d2c8 100644 (file)
@@ -864,8 +864,8 @@ int RGWHandler_ObjStore_SWIFT::init(RGWRados *store, struct req_state *s, RGWCli
 
   s->copy_source = s->info.env->get("HTTP_X_COPY_FROM");
   if (s->copy_source) {
-    ret = RGWCopyObj::parse_copy_location(s->copy_source, s->src_bucket_name, s->src_object);
-    if (!ret)
+    bool result = RGWCopyObj::parse_copy_location(s->copy_source, s->src_bucket_name, s->src_object);
+    if (!result)
        return -ERR_BAD_URL;
   }
 
@@ -878,8 +878,8 @@ int RGWHandler_ObjStore_SWIFT::init(RGWRados *store, struct req_state *s, RGWCli
 
     string dest_bucket_name;
     string dest_object;
-    ret = RGWCopyObj::parse_copy_location(req_dest, dest_bucket_name, dest_object);
-    if (!ret)
+    bool result = RGWCopyObj::parse_copy_location(req_dest, dest_bucket_name, dest_object);
+    if (!result)
        return -ERR_BAD_URL;
 
     if (dest_bucket_name != s->bucket_name_str) {