]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: fix cleanup for certain ops
authorYehuda Sadeh <yehuda@hq.newdream.net>
Wed, 15 Sep 2010 23:22:29 +0000 (16:22 -0700)
committerYehuda Sadeh <yehuda@hq.newdream.net>
Wed, 15 Sep 2010 23:29:20 +0000 (16:29 -0700)
This fixes bug #412

src/rgw/rgw_op.h
src/rgw/rgw_user.h

index 7fbca248783815cde572b78bbba7bf10d0dafe74..a993afd27736665ed26ca275e67fe047e30a4e7b 100644 (file)
@@ -74,13 +74,24 @@ public:
 
   virtual void init(struct req_state *s) {
     RGWOp::init(s);
+    range_str = NULL;
+    if_mod = NULL;
+    if_unmod = NULL;
+    if_match = NULL;
+    if_nomatch = NULL;
     ofs = 0;
     len = 0;
     total_len = 0;
     end = -1;
+    mod_time = 0;
+    lastmod = 0;
+    unmod_time = 0;
     mod_ptr = NULL;
     unmod_ptr = NULL;
+    attrs.clear();
     data = NULL;
+    ret = 0;
+    get_data = false;
   }
   void set_get_data(bool get_data) {
     this->get_data = get_data;
@@ -99,6 +110,7 @@ protected:
 public:
   virtual void init(struct req_state *s) {
     RGWOp::init(s);
+    buckets.clear();
   }
   RGWListBuckets() {}
   ~RGWListBuckets() {}
index 1fc4ec3f2454e4290421c81a42a600d58b6b734d..6cfda3021c34010c4f653e9deb0868eba4536e05 100644 (file)
@@ -97,6 +97,11 @@ public:
    * Get the user's buckets as a map.
    */
   map<string, RGWObjEnt>& get_buckets() { return buckets; }
+
+  /**
+   * Cleanup data structure
+   */
+  void clear() { buckets.clear(); }
 };
 WRITE_CLASS_ENCODER(RGWUserBuckets)