]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: remove use of s->bucket_cors
authorYehuda Sadeh <yehuda@inktank.com>
Wed, 21 Aug 2013 21:43:28 +0000 (14:43 -0700)
committerYehuda Sadeh <yehuda@inktank.com>
Wed, 11 Sep 2013 16:45:14 +0000 (09:45 -0700)
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>
src/rgw/rgw_common.cc
src/rgw/rgw_common.h
src/rgw/rgw_op.cc
src/rgw/rgw_op.h

index 8a281775d0774d882cd6bcd7f98161f39425e386..28a99b504d2c81c03d04adbe19e4e4684771829d 100644 (file)
@@ -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);
index 8baee258d9059689ef75ba6c85f25551ea4657b5..eb5fe76e6cb6458f30c22a28bf4187aeefe1383e 100644 (file)
@@ -821,7 +821,6 @@ struct req_state {
    RGWUserInfo user; 
    RGWAccessControlPolicy *bucket_acl;
    RGWAccessControlPolicy *object_acl;
-   RGWCORSConfiguration   *bucket_cors;
 
    bool system_request;
 
index 9c7826f6e7b18d192f1afe5539b4c67adb24853a..1dfdc9dc37e58645b081657324aadb1a0285e0d5 100644 (file)
@@ -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;
index d158f831cc718e5e70a5acdb18852b5e19f7756a..4091ad420386f4018e3ef69224f76a53cf85c85c 100644 (file)
@@ -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;