summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYehuda Sadeh <yehuda@inktank.com>2013-08-21 14:43:28 -0700
committerYehuda Sadeh <yehuda@inktank.com>2013-09-11 09:45:14 -0700
commita5fdd44e5d8ce4b8d82273d83e27aea19e63aa7c (patch)
tree9dde4c42a3a3ca84e76d83fca64fbb7ab6c94bbf
parent17a7342b3b935c06610c58ab92a9a1d086923d32 (diff)
downloadceph-a5fdd44e5d8ce4b8d82273d83e27aea19e63aa7c.tar.gz
rgw: remove use of s->bucket_cors
Some old code still tried to use s->bucket_cors, which was abandoned in a cleanup work. Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-rw-r--r--src/rgw/rgw_common.cc3
-rw-r--r--src/rgw/rgw_common.h1
-rw-r--r--src/rgw/rgw_op.cc15
-rw-r--r--src/rgw/rgw_op.h2
4 files changed, 12 insertions, 9 deletions
diff --git a/src/rgw/rgw_common.cc b/src/rgw/rgw_common.cc
index 8a281775d07..28a99b504d2 100644
--- a/src/rgw/rgw_common.cc
+++ b/src/rgw/rgw_common.cc
@@ -123,7 +123,7 @@ void req_info::rebuild_from(req_info& src)
req_state::req_state(CephContext *_cct, struct RGWEnv *e) : cct(_cct), cio(NULL), op(OP_UNKNOWN),
- bucket_cors(NULL), has_acl_header(false),
+ has_acl_header(false),
os_auth_token(NULL), info(_cct, e)
{
enable_ops_log = e->conf->enable_ops_log;
@@ -162,7 +162,6 @@ req_state::req_state(CephContext *_cct, struct RGWEnv *e) : cct(_cct), cio(NULL)
req_state::~req_state() {
delete formatter;
delete bucket_acl;
- delete bucket_cors;
delete object_acl;
free((void *)object);
free((void *)bucket_name);
diff --git a/src/rgw/rgw_common.h b/src/rgw/rgw_common.h
index 8baee258d90..eb5fe76e6cb 100644
--- a/src/rgw/rgw_common.h
+++ b/src/rgw/rgw_common.h
@@ -821,7 +821,6 @@ struct req_state {
RGWUserInfo user;
RGWAccessControlPolicy *bucket_acl;
RGWAccessControlPolicy *object_acl;
- RGWCORSConfiguration *bucket_cors;
bool system_request;
diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc
index 9c7826f6e7b..1dfdc9dc37e 100644
--- a/src/rgw/rgw_op.cc
+++ b/src/rgw/rgw_op.cc
@@ -1977,8 +1977,7 @@ void RGWOptionsCORS::get_response_params(string& hdrs, string& exp_hdrs, unsigne
*max_age = rule->get_max_age();
}
-int RGWOptionsCORS::validate_cors_request() {
- RGWCORSConfiguration *cc = s->bucket_cors;
+int RGWOptionsCORS::validate_cors_request(RGWCORSConfiguration *cc) {
rule = cc->host_name_rule(origin);
if (!rule) {
dout(10) << "There is no corsrule present for " << origin << dendl;
@@ -2004,9 +2003,15 @@ int RGWOptionsCORS::validate_cors_request() {
void RGWOptionsCORS::execute()
{
- if (!s->bucket_cors) {
+ RGWCORSConfiguration bucket_cors;
+ bool cors_exist;
+ ret = read_bucket_cors(store, s, &bucket_cors, &cors_exist);
+ if (ret < 0)
+ return;
+
+ if (!cors_exist) {
dout(2) << "No CORS configuration set yet for this bucket" << dendl;
- ret = -EACCES;
+ ret = -ENOENT;
return;
}
req_meth = s->info.env->get("HTTP_ACCESS_CONTROL_REQUEST_METHOD");
@@ -2026,7 +2031,7 @@ void RGWOptionsCORS::execute()
return;
}
req_hdrs = s->info.env->get("HTTP_ACCESS_CONTROL_ALLOW_HEADERS");
- ret = validate_cors_request();
+ ret = validate_cors_request(&bucket_cors);
if (!rule) {
origin = req_meth = NULL;
return;
diff --git a/src/rgw/rgw_op.h b/src/rgw/rgw_op.h
index d158f831cc7..4091ad42038 100644
--- a/src/rgw/rgw_op.h
+++ b/src/rgw/rgw_op.h
@@ -586,7 +586,7 @@ public:
}
int verify_permission() {return 0;}
- int validate_cors_request();
+ int validate_cors_request(RGWCORSConfiguration *cc);
void execute();
void get_response_params(string& allowed_hdrs, string& exp_hdrs, unsigned *max_age);
virtual void send_response() = 0;