summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYehuda Sadeh <yehuda@inktank.com>2013-10-21 18:02:32 -0700
committerYehuda Sadeh <yehuda@inktank.com>2013-10-21 18:02:32 -0700
commitccaab2abf9e49ce3e50c15df793a3a3ca6b29bb8 (patch)
tree16745920ab5fe8041f72832443c80f954ee536c4
parentdb7eb771226beaa2372ef5860ce742cb3457cd89 (diff)
downloadceph-wip-6606.tar.gz
rgw: init src_bucket_name, src_object in the S3 handlerwip-6606
Be consistent and initialize these fields also in the S3 case. Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-rw-r--r--src/rgw/rgw_rest_s3.cc21
-rw-r--r--src/rgw/rgw_rest_swift.cc8
2 files changed, 13 insertions, 16 deletions
diff --git a/src/rgw/rgw_rest_s3.cc b/src/rgw/rgw_rest_s3.cc
index b8fd8aa4093..1b44168d72e 100644
--- a/src/rgw/rgw_rest_s3.cc
+++ b/src/rgw/rgw_rest_s3.cc
@@ -1254,18 +1254,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;
@@ -2015,6 +2005,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";
diff --git a/src/rgw/rgw_rest_swift.cc b/src/rgw/rgw_rest_swift.cc
index eba16d86899..95d54aef3f9 100644
--- a/src/rgw/rgw_rest_swift.cc
+++ b/src/rgw/rgw_rest_swift.cc
@@ -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) {