]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: replace dump_pair() with dump_header_if_nonempty().
authorRadoslaw Zarzynski <rzarzynski@mirantis.com>
Mon, 15 Aug 2016 13:13:32 +0000 (15:13 +0200)
committerRadoslaw Zarzynski <rzarzynski@mirantis.com>
Fri, 21 Oct 2016 20:57:20 +0000 (22:57 +0200)
Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
src/rgw/rgw_rest.cc
src/rgw/rgw_rest.h
src/rgw/rgw_rest_metadata.cc

index 7434e71a7721484ec127967e9773ff7e712f179c..27189e0f5ef79dea972048364fdd9eb1ef34f838 100644 (file)
@@ -452,27 +452,14 @@ void dump_etag(struct req_state* const s,
                    quoted);
 }
 
-void dump_pair(struct req_state* const s,
-               const char* const key,
-               const char* const value)
-{
-  if ( (strlen(key) > 0) && (strlen(value) > 0))
-    STREAM_IO(s)->send_header(key, value);
-}
-
 void dump_bucket_from_state(struct req_state *s)
 {
-  int expose_bucket = g_conf->rgw_expose_bucket;
-  if (expose_bucket) {
-    if (!s->bucket_name.empty()) {
-      string b;
-      if (!s->bucket_tenant.empty()) {
-        string g = s->bucket_tenant + "/" + s->bucket_name;
-        url_encode(g, b);
-      } else {
-        url_encode(s->bucket_name, b);
-      }
-      STREAM_IO(s)->send_header("Bucket", b);
+  if (g_conf->rgw_expose_bucket && ! s->bucket_name.empty()) {
+    if (! s->bucket_tenant.empty()) {
+      dump_header(s, "Bucket",
+                  url_encode(s->bucket_tenant + "/" + s->bucket_name));
+    } else {
+      dump_header(s, "Bucket", url_encode(s->bucket_name));
     }
   }
 }
@@ -502,12 +489,9 @@ void dump_uri_from_state(struct req_state *s)
   }
 }
 
-void dump_redirect(struct req_state *s, const string& redirect)
+void dump_redirect(struct req_state * const s, const std::string& redirect)
 {
-  if (redirect.empty())
-    return;
-
-  STREAM_IO(s)->send_header("Location", redirect);
+  return dump_header_if_nonempty(s, "Location", redirect);
 }
 
 static std::size_t dump_time_header_impl(char (&timestr)[TIME_BUF_SIZE],
index 63d5c50fd06b3e412e442cdb641341d3b3d227d4..510747e01489cebee2ac52609534e858eda42df7 100644 (file)
@@ -570,6 +570,15 @@ static inline void dump_header_quoted(struct req_state* s,
   return dump_header(s, name, boost::string_ref(qvalbuf, len));
 }
 
+template <class ValueT>
+static inline void dump_header_if_nonempty(struct req_state* s,
+                                           const boost::string_ref& name,
+                                           const ValueT& value) {
+  if (name.length() > 0 && value.length() > 0) {
+    return dump_header(s, name, value);
+  }
+}
+
 extern void dump_content_length(struct req_state *s, uint64_t len);
 extern void dump_etag(struct req_state *s,
                       const boost::string_ref& etag,
@@ -591,7 +600,6 @@ extern std::string dump_time_to_str(const real_time& t);
 extern void dump_bucket_from_state(struct req_state *s);
 extern void dump_uri_from_state(struct req_state *s);
 extern void dump_redirect(struct req_state *s, const string& redirect);
-extern void dump_pair(struct req_state *s, const char *key, const char *value);
 extern bool is_valid_url(const char *url);
 extern void dump_access_control(struct req_state *s, const char *origin,
                                const char *meth,
index 396f72b3bc22ebe5f94ba1b6e6e404724ef45a90..202a8b20f0a9d82bcabcfa910cabea26c9b3a0d1 100644 (file)
@@ -205,8 +205,8 @@ void RGWOp_Metadata_Put::send_response() {
   stringstream ver_stream;
   ver_stream << "ver:" << ondisk_version.ver
             <<",tag:" << ondisk_version.tag;
-  dump_pair(s, "RGWX_UPDATE_STATUS", update_status.c_str());
-  dump_pair(s, "RGWX_UPDATE_VERSION", ver_stream.str().c_str());
+  dump_header_if_nonempty(s, "RGWX_UPDATE_STATUS", update_status);
+  dump_header_if_nonempty(s, "RGWX_UPDATE_VERSION", ver_stream.str());
   end_header(s);
 }