]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: enable access to system arguments of RGWHTTPArgs.
authorRadoslaw Zarzynski <rzarzynski@mirantis.com>
Tue, 16 Feb 2016 10:35:34 +0000 (11:35 +0100)
committerRadoslaw Zarzynski <rzarzynski@mirantis.com>
Tue, 16 Feb 2016 22:54:07 +0000 (23:54 +0100)
Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
src/rgw/rgw_common.cc
src/rgw/rgw_common.h

index fec4ad7857d0d2ccfd44a2a1142634222c86a632..11b16f1687251f539f77afcdefdd32e4524de31d 100644 (file)
@@ -704,6 +704,23 @@ void RGWHTTPArgs::get_bool(const char *name, bool *val, bool def_val)
   }
 }
 
+string RGWHTTPArgs::sys_get(const string& name, bool * const exists)
+{
+  const auto iter = sys_val_map.find(name);
+  const bool e = (iter != val_map.end());
+
+  if (exists) {
+    *exists = e;
+  }
+
+  return e ? iter->second : string();
+}
+
+string RGWHTTPArgs::sys_get(const char * const name, bool * const exists)
+{
+  return sys_get(string(name), exists);
+}
+
 bool verify_requester_payer_permission(struct req_state *s)
 {
   if (!s->bucket_info.requester_pays)
index 6c7ddd1d51e62f146f77fbbb54c8d60a1a465d16..e22ed281a0767add0fcca8053c3b2081899c3050 100644 (file)
@@ -297,6 +297,10 @@ class RGWHTTPArgs
   int get_bool(const char *name, bool *val, bool *exists);
   void get_bool(const char *name, bool *val, bool def_val);
 
+  /** Get the value for specific system argument parameter */
+  string sys_get(const string& name, bool *exists = nullptr);
+  string sys_get(const char *name, bool *exists = nullptr);
+
   /** see if a parameter is contained in this RGWHTTPArgs */
   bool exists(const char *name) {
     map<string, string>::iterator iter = val_map.find(name);