]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: translate object marker to raw format
authorYehuda Sadeh <yehuda@inktank.com>
Sun, 31 Mar 2013 07:02:15 +0000 (00:02 -0700)
committercaleb miles <caleb.miles@inktank.com>
Fri, 5 Apr 2013 17:27:40 +0000 (10:27 -0700)
Fixes: #4600
Object marker should be treated as an object, so that name is formatted
correctly when getting the raw oid.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
src/rgw/rgw_rados.cc

index 134a74b49e51b68dfe014dfd2aa36ab837d8c131..e47e2e90e8ef9a13db5b365b675dd66fa7a9810b 100644 (file)
@@ -728,24 +728,17 @@ int RGWRados::list_objects(rgw_bucket& bucket, int max, string& prefix, string&
                           bool get_content_type, string& ns, bool *is_truncated, RGWAccessListFilter *filter)
 {
   int count = 0;
-  string cur_marker = marker;
   bool truncated;
-  string ns_prefix;
 
   if (bucket_is_system(bucket)) {
     return -EINVAL;
   }
   result.clear();
-  if (!ns.empty()) {
-    ns_prefix = "_";
-    ns_prefix += ns + "_";
-    if (cur_marker < ns_prefix) {
-      cur_marker = ns_prefix;
-    } else if (cur_marker.substr(0, ns.size()) > ns_prefix) {
-      truncated = false;
-      goto done;
-    }
-  }
+
+  rgw_obj marker_obj;
+  marker_obj.set_ns(ns);
+  marker_obj.set_obj(marker);
+  string cur_marker = marker_obj.object;
 
   do {
     std::map<string, RGWObjEnt> ent_map;