]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: fix setting of NULL to string
authorYehuda Sadeh <yehuda@inktank.com>
Fri, 1 Feb 2013 18:56:11 +0000 (10:56 -0800)
committerYehuda Sadeh <yehuda@inktank.com>
Mon, 4 Feb 2013 19:23:30 +0000 (11:23 -0800)
Fixes: #3777
s->env->get() returns char * and not string and can return NULL.
Also, remove some old unused code.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
src/rgw/rgw_rest.cc
src/rgw/rgw_rest_s3.cc

index 3b553f3b0c9c59040efb1dfc1238039db30a830e..72aab14c522b9ff900e16881f17c0912d9ed1680 100644 (file)
@@ -276,16 +276,15 @@ void dump_uri_from_state(struct req_state *s)
   if (strcmp(s->request_uri.c_str(), "/") == 0) {
 
     string location = "http://";
-    location += s->env->get("SERVER_NAME");
-    if (!location.empty()) {
+    string server = s->env->get("SERVER_NAME", "<SERVER_NAME>");
+    location.append(server);
+    location += "/";
+    if (!s->bucket_name_str.empty()) {
+      location += s->bucket_name_str;
       location += "/";
-      if (!s->bucket_name_str.empty()) {
-        location += s->bucket_name_str;
-        location += "/";
-        if (!s->object_str.empty()) {
-          location += s->object_str;
-          s->cio->print("Location: %s\n", location.c_str());
-        }
+      if (!s->object_str.empty()) {
+        location += s->object_str;
+        s->cio->print("Location: %s\n", location.c_str());
       }
     }
   }
index dfa6827c7fff7ed5a8c764c1f6de576195d62b6c..bdba0e9c8f425136adeaf9fcf72b111dbb94ff5b 100644 (file)
 
 using namespace ceph::crypto;
 
-void dump_common_s3_headers(struct req_state *s, const char *etag,
-                            size_t content_len, const char *conn_status)
-{
-  // how many elements do we expect to include in the response
-  unsigned int expected_var_len = 4;
-  map<string, string> head_var;
-
-  utime_t date = ceph_clock_now(s->cct);
-  if (!date.is_zero()) {
-    char buf[TIME_BUF_SIZE];
-    date.sprintf(buf, TIME_BUF_SIZE);
-    head_var["date"] = buf;
-  }
-
-  head_var["etag"] = etag;
-  head_var["conn_stat"] = conn_status;
-  head_var["server"] = s->env->get("HTTP_HOST");
-
-  // if we have all the variables we want go ahead and dump
-  if (head_var.size() == expected_var_len) {
-    dump_pair(s, "Date", head_var["date"].c_str());
-    dump_etag(s, head_var["etag"].c_str());
-    dump_content_length(s, content_len);
-    dump_pair(s, "Connection", head_var["conn_stat"].c_str());
-    dump_pair(s, "Server", head_var["server"].c_str());
-  }
-}
-
 void list_all_buckets_start(struct req_state *s)
 {
   s->formatter->open_array_section_in_ns("ListAllMyBucketsResult",