]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: don't log operations on unexisting bucket
authorYehuda Sadeh <yehuda@hq.newdream.net>
Tue, 17 May 2011 11:15:10 +0000 (04:15 -0700)
committerYehuda Sadeh <yehuda@hq.newdream.net>
Tue, 17 May 2011 11:15:10 +0000 (04:15 -0700)
src/rgw/rgw_common.cc
src/rgw/rgw_common.h
src/rgw/rgw_log.cc
src/rgw/rgw_rest.cc

index 71415da49f3ba508073038f13d198e3688634699..ea3ebc3d4a970243d8956be42e8aaeb9c9477576 100644 (file)
@@ -23,6 +23,7 @@ void rgw_err::
 clear()
 {
   http_ret = 200;
+  errno = 0;
   s3_code.clear();
 }
 
index 11be231b4d9e74a18c4847427705ff832d087f30..3ed27d01ef4faf5dcd122e922df4434c0fdd2e6c 100644 (file)
@@ -94,6 +94,7 @@ struct rgw_err {
   friend std::ostream& operator<<(std::ostream& oss, const rgw_err &err);
 
   int http_ret;
+  int ret;
   std::string s3_code;
   std::string message;
 };
index 4a81c11a55b36a886e1dfe5e7b88f6d2b30e8905..4e056cd0d4e479aa9674448b4cd44eb596f357e1 100644 (file)
@@ -22,6 +22,10 @@ int rgw_log_op(struct req_state *s)
     RGW_LOG(0) << "nothing to log for operation" << dendl;
     return -EINVAL;
   }
+  if (s->err.ret = -ERR_NO_SUCH_BUCKET) {
+    RGW_LOG(0) << "buclet " << s->bucket << " doesn't exist, not logging" << dendl;
+    return 0;
+  }
   entry.bucket = s->bucket;
 
   if (s->object)
index 629b2efe3a82c03f1b112e10526dc5c191cb59df..4ef07bf04b5592a267d41bd487ef4512676677fd 100644 (file)
@@ -59,6 +59,7 @@ void set_req_state_err(struct req_state *s, int err_no)
 {
   if (err_no < 0)
     err_no = -err_no;
+  s->err.ret = err_no;
   for (size_t i = 0; i < sizeof(RGW_HTML_ERRORS)/sizeof(RGW_HTML_ERRORS[0]); ++i) {
     const struct rgw_html_errors *r = RGW_HTML_ERRORS + i;
     if (err_no == r->err_no) {