]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: make sending Content-Length in 204 and 304 controllable 10156/head
authorRadoslaw Zarzynski <rzarzynski@mirantis.com>
Thu, 16 Feb 2017 23:56:34 +0000 (00:56 +0100)
committerRadoslaw Zarzynski <rzarzynski@mirantis.com>
Fri, 17 Feb 2017 00:06:18 +0000 (01:06 +0100)
This commit introduces a new configurable "rgw print prohibited
content length" to let operator decide whether RadosGW complies
to RFC 7230 (a part of the HTTP specification) or violates it
but follows the Swift's behavior.

Fixes: http://tracker.ceph.com/issues/16602
Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
src/common/config_opts.h
src/rgw/rgw_client_io_filters.h

index b4e588242908d4f01c4861ae1fcac1f9c2e7ff94..b302505d00de8dd7b8692ffefecd6d135699f0ea 100644 (file)
@@ -1486,6 +1486,7 @@ OPTION(rgw_admin_entry, OPT_STR, "admin")  // entry point for which a url is con
 OPTION(rgw_enforce_swift_acls, OPT_BOOL, true)
 OPTION(rgw_swift_token_expiration, OPT_INT, 24 * 3600) // time in seconds for swift token expiration
 OPTION(rgw_print_continue, OPT_BOOL, true)  // enable if 100-Continue works
+OPTION(rgw_print_prohibited_content_length, OPT_BOOL, false) // violate RFC 7230 and send Content-Length in 204 and 304
 OPTION(rgw_remote_addr_param, OPT_STR, "REMOTE_ADDR")  // e.g. X-Forwarded-For, if you have a reverse proxy
 OPTION(rgw_op_thread_timeout, OPT_INT, 10*60)
 OPTION(rgw_op_thread_suicide_timeout, OPT_INT, 0)
index acf3b787426034b44727c990b424607d67247f0f..0ed15102413237d0f74ea6ee6d77a2ee8df97045 100644 (file)
@@ -291,7 +291,8 @@ public:
 
   size_t send_status(const int status,
                      const char* const status_name) override {
-    if (204 == status || 304 == status) {
+    if ((204 == status || 304 == status) &&
+        ! g_conf->rgw_print_prohibited_content_length) {
       action = ContentLengthAction::INHIBIT;
     } else {
       action = ContentLengthAction::FORWARD;