You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by jp...@apache.org on 2016/11/10 03:46:54 UTC

[trafficserver] branch master updated (79ef0d5 -> 17d4c15)

This is an automated email from the ASF dual-hosted git repository.

jpeach pushed a change to branch master
in repository https://git-dual.apache.org/repos/asf/trafficserver.git.

      from  79ef0d5   TS-5045: Add ws and wss scheme constants.
       new  cf58a91   TS-5040: Forward CONNECT without parent proxying.
       new  17d4c15   TS-5040: Document proxy.config.http.forward_connect_method.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 doc/admin-guide/files/records.config.en.rst        |  19 ++
 .../api/functions/TSHttpOverridableConfig.en.rst   | 195 ++++++++-------
 .../api/types/TSOverridableConfigKey.en.rst        | 274 ++++++++-------------
 lib/ts/apidefs.h.in                                |   1 +
 mgmt/RecordsConfig.cc                              |   3 +
 plugins/experimental/ts_lua/ts_lua_http_config.c   |   4 +-
 proxy/InkAPI.cc                                    |   9 +
 proxy/InkAPITest.cc                                |   1 +
 proxy/http/HttpConfig.cc                           |   6 +-
 proxy/http/HttpConfig.h                            |   3 +
 proxy/http/HttpTransact.cc                         |  47 ++--
 11 files changed, 274 insertions(+), 288 deletions(-)

-- 
To stop receiving notification emails like this one, please contact
['"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>'].

[trafficserver] 01/02: TS-5040: Forward CONNECT without parent proxying.

Posted by jp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jpeach pushed a commit to branch master
in repository https://git-dual.apache.org/repos/asf/trafficserver.git

commit cf58a91ccd3048f3f0a540463ad8609ae2ce1209
Author: James Peach <jp...@apache.org>
AuthorDate: Sun Nov 6 15:07:13 2016 -0800

    TS-5040: Forward CONNECT without parent proxying.
    
    Unless parent proxy is enabled, CONNECT methods always result in
    setting up a direct tunnel to the origin server. Parent proxy,
    however, has the option of forwarding the CONNECT to the next hop
    and allowing it to set up the tunnel.  This change adds the
    proxy.config.http.forward_connect_method configuration parameter
    that can be enabled to forward CONNECT methods even if we are not
    parent proxying.
---
 lib/ts/apidefs.h.in                              |  1 +
 mgmt/RecordsConfig.cc                            |  3 ++
 plugins/experimental/ts_lua/ts_lua_http_config.c |  4 +-
 proxy/InkAPI.cc                                  |  9 +++++
 proxy/InkAPITest.cc                              |  1 +
 proxy/http/HttpConfig.cc                         |  6 ++-
 proxy/http/HttpConfig.h                          |  3 ++
 proxy/http/HttpTransact.cc                       | 47 ++++++++++++------------
 8 files changed, 48 insertions(+), 26 deletions(-)

diff --git a/lib/ts/apidefs.h.in b/lib/ts/apidefs.h.in
index 1686415..ba62506 100644
--- a/lib/ts/apidefs.h.in
+++ b/lib/ts/apidefs.h.in
@@ -741,6 +741,7 @@ typedef enum {
   TS_CONFIG_HTTP_PARENT_PROXY_TOTAL_CONNECT_ATTEMPTS,
   TS_CONFIG_HTTP_TRANSACTION_ACTIVE_TIMEOUT_IN,
   TS_CONFIG_SRV_ENABLED,
+  TS_CONFIG_HTTP_FORWARD_CONNECT_METHOD,
   TS_CONFIG_LAST_ENTRY
 } TSOverridableConfigKey;
 
diff --git a/mgmt/RecordsConfig.cc b/mgmt/RecordsConfig.cc
index 7962d36..5a4f3ee 100644
--- a/mgmt/RecordsConfig.cc
+++ b/mgmt/RecordsConfig.cc
@@ -1402,6 +1402,9 @@ static const RecordElement RecordsConfig[] =
   {RECT_LOCAL, "proxy.local.http.parent_proxy.disable_connect_tunneling", RECD_INT, "0", RECU_NULL, RR_NULL, RECC_NULL, nullptr, RECA_NULL}
   ,
 
+  {RECT_CONFIG, "proxy.config.http.forward_connect_method", RECD_INT, "0", RECU_DYNAMIC, RR_NULL, RECC_INT, "[0-1]", RECA_NULL}
+  ,
+
   //############
   //#
   //# HTTP/2 global configuration.
diff --git a/plugins/experimental/ts_lua/ts_lua_http_config.c b/plugins/experimental/ts_lua/ts_lua_http_config.c
index 4b65b71..5de9081 100644
--- a/plugins/experimental/ts_lua/ts_lua_http_config.c
+++ b/plugins/experimental/ts_lua/ts_lua_http_config.c
@@ -120,6 +120,7 @@ typedef enum {
   TS_LUA_CONFIG_HTTP_TRANSACTION_ACTIVE_TIMEOUT_IN            = TS_CONFIG_HTTP_TRANSACTION_ACTIVE_TIMEOUT_IN,
   TS_LUA_CONFIG_LAST_ENTRY                                    = TS_CONFIG_LAST_ENTRY,
   TS_LUA_CONFIG_SRV_ENABLED                                   = TS_CONFIG_SRV_ENABLED,
+  TS_LUA_CONFIG_HTTP_FORWARD_CONNECT_METHOD                   = TS_CONFIG_HTTP_FORWARD_CONNECT_METHOD,
 } TSLuaOverridableConfigKey;
 
 typedef enum {
@@ -229,7 +230,8 @@ ts_lua_var_item ts_lua_http_config_vars[] = {
   TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_UNCACHEABLE_REQUESTS_BYPASS_PARENT),
   TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_PARENT_PROXY_TOTAL_CONNECT_ATTEMPTS),
   TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_TRANSACTION_ACTIVE_TIMEOUT_IN),
-  TS_LUA_MAKE_VAR_ITEM(TS_CONFIG_SRV_ENABLED),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_SRV_ENABLED),
+  TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_FORWARD_CONNECT_METHOD),
   TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_LAST_ENTRY),
 };
 
diff --git a/proxy/InkAPI.cc b/proxy/InkAPI.cc
index b558add..6081bfa 100644
--- a/proxy/InkAPI.cc
+++ b/proxy/InkAPI.cc
@@ -8130,6 +8130,10 @@ _conf_to_memberp(TSOverridableConfigKey conf, OverridableHttpConfigParams *overr
     typ = OVERRIDABLE_TYPE_INT;
     ret = &overridableHttpConfig->srv_enabled;
     break;
+  case TS_CONFIG_HTTP_FORWARD_CONNECT_METHOD:
+    typ = OVERRIDABLE_TYPE_INT;
+    ret = &overridableHttpConfig->forward_connect_method;
+    break;
   // This helps avoiding compiler warnings, yet detect unhandled enum members.
   case TS_CONFIG_NULL:
   case TS_CONFIG_LAST_ENTRY:
@@ -8498,6 +8502,11 @@ TSHttpTxnConfigFind(const char *name, int length, TSOverridableConfigKey *conf,
 
   case 40:
     switch (name[length - 1]) {
+    case 'd':
+      if (!strncmp(name, "proxy.config.http.forward_connect_method", length)) {
+        cnf = TS_CONFIG_HTTP_FORWARD_CONNECT_METHOD;
+      }
+      break;
     case 'e':
       if (!strncmp(name, "proxy.config.http.down_server.cache_time", length)) {
         cnf = TS_CONFIG_HTTP_DOWN_SERVER_CACHE_TIME;
diff --git a/proxy/InkAPITest.cc b/proxy/InkAPITest.cc
index 59f1801..f4defcb 100644
--- a/proxy/InkAPITest.cc
+++ b/proxy/InkAPITest.cc
@@ -7617,6 +7617,7 @@ const char *SDK_Overridable_Configs[TS_CONFIG_LAST_ENTRY] = {
   "proxy.config.http.parent_proxy.total_connect_attempts",
   "proxy.config.http.transaction_active_timeout_in",
   "proxy.config.srv_enabled",
+  "proxy.config.http.forward_connect_method",
 };
 
 REGRESSION_TEST(SDK_API_OVERRIDABLE_CONFIGS)(RegressionTest *test, int /* atype ATS_UNUSED */, int *pstatus)
diff --git a/proxy/http/HttpConfig.cc b/proxy/http/HttpConfig.cc
index 4b64fc7..13b3d84 100644
--- a/proxy/http/HttpConfig.cc
+++ b/proxy/http/HttpConfig.cc
@@ -887,8 +887,9 @@ HttpConfig::startup()
   HttpEstablishStaticConfigLongLong(c.origin_min_keep_alive_connections, "proxy.config.http.origin_min_keep_alive_connections");
   HttpEstablishStaticConfigByte(c.oride.attach_server_session_to_client, "proxy.config.http.attach_server_session_to_client");
 
-  // Wank me.
   HttpEstablishStaticConfigByte(c.disable_ssl_parenting, "proxy.local.http.parent_proxy.disable_connect_tunneling");
+  HttpEstablishStaticConfigByte(c.oride.forward_connect_method, "proxy.config.http.forward_connect_method");
+
   HttpEstablishStaticConfigByte(c.no_dns_forward_to_parent, "proxy.config.http.no_dns_just_forward_to_parent");
   HttpEstablishStaticConfigByte(c.oride.uncacheable_requests_bypass_parent, "proxy.config.http.uncacheable_requests_bypass_parent");
   HttpEstablishStaticConfigByte(c.oride.doc_in_cache_skip_dns, "proxy.config.http.doc_in_cache_skip_dns");
@@ -1150,7 +1151,8 @@ HttpConfig::reconfigure()
   params->use_client_source_port                   = INT_TO_BOOL(m_master.use_client_source_port);
   params->oride.maintain_pristine_host_hdr         = INT_TO_BOOL(m_master.oride.maintain_pristine_host_hdr);
 
-  params->disable_ssl_parenting = INT_TO_BOOL(m_master.disable_ssl_parenting);
+  params->disable_ssl_parenting        = INT_TO_BOOL(m_master.disable_ssl_parenting);
+  params->oride.forward_connect_method = INT_TO_BOOL(m_master.oride.forward_connect_method);
 
   params->server_max_connections             = m_master.server_max_connections;
   params->max_websocket_connections          = m_master.max_websocket_connections;
diff --git a/proxy/http/HttpConfig.h b/proxy/http/HttpConfig.h
index ac40c29..7d4bb27 100644
--- a/proxy/http/HttpConfig.h
+++ b/proxy/http/HttpConfig.h
@@ -375,6 +375,7 @@ struct OverridableHttpConfigParams {
       fwd_proxy_auth_to_parent(0),
       uncacheable_requests_bypass_parent(1),
       attach_server_session_to_client(0),
+      forward_connect_method(0),
       insert_age_in_response(1),
       anonymize_remove_from(0),
       anonymize_remove_referer(0),
@@ -492,6 +493,8 @@ struct OverridableHttpConfigParams {
   MgmtByte uncacheable_requests_bypass_parent;
   MgmtByte attach_server_session_to_client;
 
+  MgmtByte forward_connect_method;
+
   MgmtByte insert_age_in_response;
 
   ///////////////////////////////////////////////////////////////////
diff --git a/proxy/http/HttpTransact.cc b/proxy/http/HttpTransact.cc
index 54c8335..25e4026 100644
--- a/proxy/http/HttpTransact.cc
+++ b/proxy/http/HttpTransact.cc
@@ -464,10 +464,16 @@ how_to_open_connection(HttpTransact::State *s)
     break;
   }
 
-  if (s->method == HTTP_WKSIDX_CONNECT && s->parent_result.result != PARENT_SPECIFIED) {
-    s->cdn_saved_next_action = HttpTransact::SM_ACTION_ORIGIN_SERVER_RAW_OPEN;
-  } else {
-    s->cdn_saved_next_action = HttpTransact::SM_ACTION_ORIGIN_SERVER_OPEN;
+  s->cdn_saved_next_action = HttpTransact::SM_ACTION_ORIGIN_SERVER_OPEN;
+
+  // Setting up a direct CONNECT tunnel enters OriginServerRawOpen. We always do that if we
+  // are not forwarding CONNECT and are not going to a parent proxy.
+  if (s->method == HTTP_WKSIDX_CONNECT) {
+    if (s->txn_conf->forward_connect_method == 1 || s->parent_result.result != PARENT_SPECIFIED) {
+      s->cdn_saved_next_action = HttpTransact::SM_ACTION_ORIGIN_SERVER_OPEN;
+    } else {
+      s->cdn_saved_next_action = HttpTransact::SM_ACTION_ORIGIN_SERVER_RAW_OPEN;
+    }
   }
 
   // In the following, if url_remap_mode == 2 (URL_REMAP_FOR_OS)
@@ -550,7 +556,7 @@ how_to_open_connection(HttpTransact::State *s)
  ****                 HttpTransact State Machine Handlers                 ****
  ****                                                                     ****
  **** What follow from here on are the state machine handlers - the code  ****
- **** which is called from HttpSM::set_next_state to specify ****
+ **** which is called from HttpSM::set_next_state to specify              ****
  **** what action the state machine needs to execute next. These ftns     ****
  **** take as input just the state and set the next_action variable.      ****
  *****************************************************************************
@@ -7820,27 +7826,22 @@ HttpTransact::build_request(State *s, HTTPHdr *base_request, HTTPHdr *outgoing_r
     }
   }
 
-  if (s->current.server == &s->server_info && (s->next_hop_scheme == URL_WKSIDX_HTTP || s->next_hop_scheme == URL_WKSIDX_HTTPS ||
-                                               s->next_hop_scheme == URL_WKSIDX_WS || s->next_hop_scheme == URL_WKSIDX_WSS)) {
-    DebugTxn("http_trans", "[build_request] removing host name from url");
-    HttpTransactHeaders::remove_host_name_from_url(outgoing_request);
-  }
-
-  // If we're going to a parent proxy, make sure we pass host and port
-  // in the URL even if we didn't get them (e.g. transparent proxy)
-  if (s->current.request_to == PARENT_PROXY) {
-    if (!outgoing_request->is_target_in_url() && s->parent_result.parent_is_proxy()) {
+  // Figure out whether to force the outgoing request URL into absolute or relative styles.
+  if (outgoing_request->method_get_wksidx() == HTTP_WKSIDX_CONNECT) {
+    // CONNECT method requires a target in the URL, so always force it from the Host header.
+    outgoing_request->set_url_target_from_host_field();
+  } else if (s->current.request_to == PARENT_PROXY && s->parent_result.parent_is_proxy()) {
+    // If we have a parent proxy set the URL target field.
+    if (!outgoing_request->is_target_in_url()) {
       DebugTxn("http_trans", "[build_request] adding target to URL for parent proxy");
-
-      // No worry about HTTP/0.9 because we reject forward proxy requests that
-      // don't have a host anywhere.
       outgoing_request->set_url_target_from_host_field();
-    } else if (s->current.request_to == PARENT_PROXY && !s->parent_result.parent_is_proxy() &&
-               outgoing_request->is_target_in_url()) {
-      // If the parent is an origin server remove the hostname from the url.
-      DebugTxn("http_trans", "[build_request] removing target from URL for a parent origin.");
-      HttpTransactHeaders::remove_host_name_from_url(outgoing_request);
     }
+  } else if (s->next_hop_scheme == URL_WKSIDX_HTTP || s->next_hop_scheme == URL_WKSIDX_HTTPS ||
+             s->next_hop_scheme == URL_WKSIDX_WS || s->next_hop_scheme == URL_WKSIDX_WSS) {
+    // Otherwise, remove the URL target from HTTP and Websocket URLs since certain origins
+    // cannot deal with absolute URLs.
+    DebugTxn("http_trans", "[build_request] removing host name from url");
+    HttpTransactHeaders::remove_host_name_from_url(outgoing_request);
   }
 
   // If the response is most likely not cacheable, eg, request with Authorization,

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.

[trafficserver] 02/02: TS-5040: Document proxy.config.http.forward_connect_method.

Posted by jp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jpeach pushed a commit to branch master
in repository https://git-dual.apache.org/repos/asf/trafficserver.git

commit 17d4c15b9bf8911695b61321db0984475a0e69c6
Author: James Peach <jp...@apache.org>
AuthorDate: Mon Nov 7 20:05:42 2016 -0800

    TS-5040: Document proxy.config.http.forward_connect_method.
---
 doc/admin-guide/files/records.config.en.rst        |  19 ++
 .../api/functions/TSHttpOverridableConfig.en.rst   | 195 ++++++++-------
 .../api/types/TSOverridableConfigKey.en.rst        | 274 ++++++++-------------
 3 files changed, 226 insertions(+), 262 deletions(-)

diff --git a/doc/admin-guide/files/records.config.en.rst b/doc/admin-guide/files/records.config.en.rst
index be6eded..85683c8 100644
--- a/doc/admin-guide/files/records.config.en.rst
+++ b/doc/admin-guide/files/records.config.en.rst
@@ -794,6 +794,20 @@ ip-resolve
 
    These are the ports on the *origin server*, not |TS| :ts:cv:`proxy ports <proxy.config.http.server_ports>`.
 
+
+.. ts:cv:: CONFIG proxy.config.http.forward_connect_method INT 0
+   :reloadable:
+   :overridable:
+
+   The default, |TS| behavior for handling a CONNECT method request
+   is to establish a tunnel to the requested destination. This
+   configuration alters the behavior so that |TS| forwards the
+   CONNECT method to the next hop, and establishes the tunnel after
+   receiving a positive response. This behavior is useful in a proxy
+   hierarchy, and is equivalent to setting
+   :ts:cv:`proxy.local.http.parent_proxy.disable_connect_tunneling` to
+   `0` when parent proxying is enabled.
+
 .. ts:cv:: CONFIG proxy.config.http.insert_request_via_str INT 1
    :reloadable:
    :overridable:
@@ -968,6 +982,7 @@ ip-resolve
    systems which support the ``TCP_INIT_CWND`` option on TCP sockets.
 
 .. ts:cv:: CONFIG proxy.config.http.auth_server_session_private INT 1
+   :overridable:
 
    If enabled (``1``) anytime a request contains a ``Authorization``,
    ``Proxy-Authorization``, or ``Www-Authenticate`` header the connection will
@@ -975,6 +990,7 @@ ip-resolve
    (``0``) the connection will be available for reuse.
 
 .. ts:cv:: CONFIG proxy.config.http.server_session_sharing.match STRING both
+   :overridable:
 
    Enable and set the ability to re-use server connections across client
    connections. The valid values are:
@@ -2153,6 +2169,7 @@ all the different user-agent versions of documents it encounters.
 
 .. ts:cv:: CONFIG proxy.config.http.cache.max_open_read_retries INT -1
    :reloadable:
+   :overridable:
 
     The number of times to attempt fetching an object from cache if there was an equivalent request in flight.
 
@@ -3092,6 +3109,7 @@ SSL Termination
    ===== ======================================================================
 
 .. ts:cv:: CONFIG proxy.config.ssl.hsts_max_age INT -1
+   :overridable:
 
    This configuration specifies the max-age value that will be used
    when adding the Strict-Transport-Security header.  The value is in seconds.
@@ -3101,6 +3119,7 @@ SSL Termination
    header will not be set on HTTP requests.
 
 .. ts:cv:: CONFIG proxy.config.ssl.hsts_include_subdomains INT 0
+   :overridable:
 
    Enables (``1``) or disables (``0``) adding the includeSubdomain value
    to the Strict-Transport-Security header.  proxy.config.ssl.hsts_max_age
diff --git a/doc/developer-guide/api/functions/TSHttpOverridableConfig.en.rst b/doc/developer-guide/api/functions/TSHttpOverridableConfig.en.rst
index 2d8095f..9755d3d 100644
--- a/doc/developer-guide/api/functions/TSHttpOverridableConfig.en.rst
+++ b/doc/developer-guide/api/functions/TSHttpOverridableConfig.en.rst
@@ -61,95 +61,112 @@ return the key and data type.
 Configurations
 ==============
 
-The following configurations (from ``records.config``) are overridable.
-
-|   :ts:cv:`proxy.config.url_remap.pristine_host_hdr`
-|   :ts:cv:`proxy.config.http.chunking_enabled`
-|   :ts:cv:`proxy.config.http.negative_caching_enabled`
-|   :ts:cv:`proxy.config.http.negative_caching_lifetime`
-|   :ts:cv:`proxy.config.http.cache.when_to_revalidate`
-|   :ts:cv:`proxy.config.http.keep_alive_enabled_in`
-|   :ts:cv:`proxy.config.http.keep_alive_enabled_out`
-|   :ts:cv:`proxy.config.http.keep_alive_post_out`
-|   :ts:cv:`proxy.config.net.sock_recv_buffer_size_out`
-|   :ts:cv:`proxy.config.net.sock_send_buffer_size_out`
-|   :ts:cv:`proxy.config.net.sock_option_flag_out`
-|   :ts:cv:`proxy.config.http.forward.proxy_auth_to_parent`
-|   :ts:cv:`proxy.config.http.anonymize_remove_from`
-|   :ts:cv:`proxy.config.http.anonymize_remove_referer`
-|   :ts:cv:`proxy.config.http.anonymize_remove_user_agent`
-|   :ts:cv:`proxy.config.http.anonymize_remove_cookie`
-|   :ts:cv:`proxy.config.http.anonymize_remove_client_ip`
-|   :ts:cv:`proxy.config.http.insert_client_ip`
-|   :ts:cv:`proxy.config.http.response_server_enabled`
-|   :ts:cv:`proxy.config.http.insert_squid_x_forwarded_for`
-|   :ts:cv:`proxy.config.http.server_tcp_init_cwnd`
-|   :ts:cv:`proxy.config.http.send_http11_requests`
-|   :ts:cv:`proxy.config.http.cache.http`
-|   :ts:cv:`proxy.config.http.cache.cluster_cache_local`
-|   :ts:cv:`proxy.config.http.cache.ignore_client_no_cache`
-|   :ts:cv:`proxy.config.http.cache.ignore_client_cc_max_age`
-|   :ts:cv:`proxy.config.http.cache.ims_on_client_no_cache`
-|   :ts:cv:`proxy.config.http.cache.ignore_server_no_cache`
-|   :ts:cv:`proxy.config.http.cache.cache_responses_to_cookies`
-|   :ts:cv:`proxy.config.http.cache.ignore_authentication`
-|   :ts:cv:`proxy.config.http.cache.cache_urls_that_look_dynamic`
-|   :ts:cv:`proxy.config.http.cache.required_headers`
-|   :ts:cv:`proxy.config.http.insert_request_via_str`
-|   :ts:cv:`proxy.config.http.insert_response_via_str`
-|   :ts:cv:`proxy.config.http.cache.heuristic_min_lifetime`
-|   :ts:cv:`proxy.config.http.cache.heuristic_max_lifetime`
-|   :ts:cv:`proxy.config.http.cache.guaranteed_min_lifetime`
-|   :ts:cv:`proxy.config.http.cache.guaranteed_max_lifetime`
-|   :ts:cv:`proxy.config.http.cache.max_stale_age`
-|   :ts:cv:`proxy.config.http.keep_alive_no_activity_timeout_in`
-|   :ts:cv:`proxy.config.http.keep_alive_no_activity_timeout_out`
-|   :ts:cv:`proxy.config.http.transaction_no_activity_timeout_in`
-|   :ts:cv:`proxy.config.http.transaction_no_activity_timeout_out`
-|   :ts:cv:`proxy.config.http.transaction_active_timeout_out`
-|   :ts:cv:`proxy.config.websocket.no_activity_timeout`
-|   :ts:cv:`proxy.config.websocket.active_timeout`
-|   :ts:cv:`proxy.config.http.origin_max_connections`
-|   :ts:cv:`proxy.config.http.connect_attempts_max_retries`
-|   :ts:cv:`proxy.config.http.connect_attempts_max_retries_dead_server`
-|   :ts:cv:`proxy.config.http.connect_attempts_rr_retries`
-|   :ts:cv:`proxy.config.http.connect_attempts_timeout`
-|   :ts:cv:`proxy.config.http.post_connect_attempts_timeout`
-|   :ts:cv:`proxy.config.http.down_server.cache_time`
-|   :ts:cv:`proxy.config.http.down_server.abort_threshold`
-|   :ts:cv:`proxy.config.http.cache.fuzz.time`
-|   :ts:cv:`proxy.config.http.cache.fuzz.min_time`
-|   :ts:cv:`proxy.config.http.doc_in_cache_skip_dns`
-|   :ts:cv:`proxy.config.http.background_fill_active_timeout`
-|   :ts:cv:`proxy.config.http.response_server_str`
-|   :ts:cv:`proxy.config.http.cache.heuristic_lm_factor`
-|   :ts:cv:`proxy.config.http.cache.fuzz.probability`
-|   :ts:cv:`proxy.config.http.background_fill_completed_threshold`
-|   :ts:cv:`proxy.config.net.sock_packet_mark_out`
-|   :ts:cv:`proxy.config.net.sock_packet_tos_out`
-|   :ts:cv:`proxy.config.http.insert_age_in_response`
-|   :ts:cv:`proxy.config.http.chunking.size`
-|   :ts:cv:`proxy.config.http.flow_control.enabled`
-|   :ts:cv:`proxy.config.http.flow_control.low_water`
-|   :ts:cv:`proxy.config.http.flow_control.high_water`
-|   :ts:cv:`proxy.config.http.cache.range.lookup`
-|   :ts:cv:`proxy.config.http.normalize_ae_gzip`
-|   :ts:cv:`proxy.config.http.default_buffer_size`
-|   :ts:cv:`proxy.config.http.default_buffer_water_mark`
-|   :ts:cv:`proxy.config.http.request_header_max_size`
-|   :ts:cv:`proxy.config.http.response_header_max_size`
-|   :ts:cv:`proxy.config.http.negative_revalidating_enabled`
-|   :ts:cv:`proxy.config.http.negative_revalidating_lifetime`
-|   :ts:cv:`proxy.config.http.cache.range.write`
-|   :ts:cv:`proxy.config.http.global_user_agent_header`
-|   :ts:cv:`proxy.config.http.slow.log.threshold`
-|   :ts:cv:`proxy.config.http.cache.generation`
-|   :ts:cv:`proxy.config.body_factory.template_base`
-|   :ts:cv:`proxy.config.http.cache.open_write_fail_action`
-|   :ts:cv:`proxy.config.http.redirection_enabled`
-|   :ts:cv:`proxy.config.http.number_of_redirections`
-|   :ts:cv:`proxy.config.http.cache.max_open_write_retries`
-|   :ts:cv:`proxy.config.http.redirect_use_orig_cache_key`
+The following configurations (from ``records.config``) are overridable:
+
+==================================================================  ====================================================================
+TSOverridableConfigKey Value                                        Configuration Value
+==================================================================  ====================================================================
+c:member:`TS_CONFIG_BODY_FACTORY_TEMPLATE_BASE`                     :ts:cv:`proxy.config.body_factory.template_base`
+c:member:`TS_CONFIG_HTTP_ANONYMIZE_INSERT_CLIENT_IP`                :ts:cv:`proxy.config.http.anonymize_insert_client_ip`
+c:member:`TS_CONFIG_HTTP_ANONYMIZE_REMOVE_CLIENT_IP`                :ts:cv:`proxy.config.http.anonymize_remove_client_ip`
+c:member:`TS_CONFIG_HTTP_ANONYMIZE_REMOVE_COOKIE`                   :ts:cv:`proxy.config.http.anonymize_remove_cookie`
+c:member:`TS_CONFIG_HTTP_ANONYMIZE_REMOVE_FROM`                     :ts:cv:`proxy.config.http.anonymize_remove_from`
+c:member:`TS_CONFIG_HTTP_ANONYMIZE_REMOVE_REFERER`                  :ts:cv:`proxy.config.http.anonymize_remove_referer`
+c:member:`TS_CONFIG_HTTP_ANONYMIZE_REMOVE_USER_AGENT`               :ts:cv:`proxy.config.http.anonymize_remove_user_agent`
+c:member:`TS_CONFIG_HTTP_ATTACH_SERVER_SESSION_TO_CLIENT`           :ts:cv:`proxy.config.http.attach_server_session_to_client`
+c:member:`TS_CONFIG_HTTP_AUTH_SERVER_SESSION_PRIVATE`               :ts:cv:`proxy.config.http.auth_server_session_private`
+c:member:`TS_CONFIG_HTTP_BACKGROUND_FILL_ACTIVE_TIMEOUT`            :ts:cv:`proxy.config.http.background_fill_active_timeout`
+c:member:`TS_CONFIG_HTTP_BACKGROUND_FILL_COMPLETED_THRESHOLD`       :ts:cv:`proxy.config.http.background_fill_completed_threshold`
+c:member:`TS_CONFIG_HTTP_CACHE_CACHE_RESPONSES_TO_COOKIES`          :ts:cv:`proxy.config.http.cache.cache_responses_to_cookies`
+c:member:`TS_CONFIG_HTTP_CACHE_CACHE_URLS_THAT_LOOK_DYNAMIC`        :ts:cv:`proxy.config.http.cache.cache_urls_that_look_dynamic`
+c:member:`TS_CONFIG_HTTP_CACHE_CLUSTER_CACHE_LOCAL`                 :ts:cv:`proxy.config.http.cache.cluster_cache_local`
+c:member:`TS_CONFIG_HTTP_CACHE_FUZZ_MIN_TIME`                       :ts:cv:`proxy.config.http.cache.fuzz.min_time`
+c:member:`TS_CONFIG_HTTP_CACHE_FUZZ_PROBABILITY`                    :ts:cv:`proxy.config.http.cache.fuzz.probability`
+c:member:`TS_CONFIG_HTTP_CACHE_FUZZ_TIME`                           :ts:cv:`proxy.config.http.cache.fuzz.time`
+c:member:`TS_CONFIG_HTTP_CACHE_GENERATION`                          :ts:cv:`proxy.config.http.cache.generation`
+c:member:`TS_CONFIG_HTTP_CACHE_GUARANTEED_MAX_LIFETIME`             :ts:cv:`proxy.config.http.cache.guaranteed_max_lifetime`
+c:member:`TS_CONFIG_HTTP_CACHE_GUARANTEED_MIN_LIFETIME`             :ts:cv:`proxy.config.http.cache.guaranteed_min_lifetime`
+c:member:`TS_CONFIG_HTTP_CACHE_HEURISTIC_LM_FACTOR`                 :ts:cv:`proxy.config.http.cache.heuristic_lm_factor`
+c:member:`TS_CONFIG_HTTP_CACHE_HEURISTIC_MAX_LIFETIME`              :ts:cv:`proxy.config.http.cache.heuristic_max_lifetime`
+c:member:`TS_CONFIG_HTTP_CACHE_HEURISTIC_MIN_LIFETIME`              :ts:cv:`proxy.config.http.cache.heuristic_min_lifetime`
+c:member:`TS_CONFIG_HTTP_CACHE_HTTP`                                :ts:cv:`proxy.config.http.cache.http`
+c:member:`TS_CONFIG_HTTP_CACHE_IGNORE_AUTHENTICATION`               :ts:cv:`proxy.config.http.cache.ignore_authentication`
+c:member:`TS_CONFIG_HTTP_CACHE_IGNORE_CLIENT_CC_MAX_AGE`            :ts:cv:`proxy.config.http.cache.ignore_client_cc_max_age`
+c:member:`TS_CONFIG_HTTP_CACHE_IGNORE_CLIENT_NO_CACHE`              :ts:cv:`proxy.config.http.cache.ignore_client_no_cache`
+c:member:`TS_CONFIG_HTTP_CACHE_IGNORE_SERVER_NO_CACHE`              :ts:cv:`proxy.config.http.cache.ignore_server_no_cache`
+c:member:`TS_CONFIG_HTTP_CACHE_IMS_ON_CLIENT_NO_CACHE`              :ts:cv:`proxy.config.http.cache.ims_on_client_no_cache`
+c:member:`TS_CONFIG_HTTP_CACHE_MAX_OPEN_READ_RETRIES`               :ts:cv:`proxy.config.http.cache.max_open_read_retries`
+c:member:`TS_CONFIG_HTTP_CACHE_MAX_OPEN_WRITE_RETRIES`              :ts:cv:`proxy.config.http.cache.max_open_write_retries`
+c:member:`TS_CONFIG_HTTP_CACHE_MAX_STALE_AGE`                       :ts:cv:`proxy.config.http.cache.max_stale_age`
+c:member:`TS_CONFIG_HTTP_CACHE_OPEN_READ_RETRY_TIME`                :ts:cv:`proxy.config.http.cache.open_read_retry_time`
+c:member:`TS_CONFIG_HTTP_CACHE_OPEN_WRITE_FAIL_ACTION`              :ts:cv:`proxy.config.http.cache.open_write_fail_action`
+c:member:`TS_CONFIG_HTTP_CACHE_RANGE_LOOKUP`                        :ts:cv:`proxy.config.http.cache.range.lookup`
+c:member:`TS_CONFIG_HTTP_CACHE_RANGE_WRITE`                         :ts:cv:`proxy.config.http.cache.range.write`
+c:member:`TS_CONFIG_HTTP_CACHE_REQUIRED_HEADERS`                    :ts:cv:`proxy.config.http.cache.required_headers`
+c:member:`TS_CONFIG_HTTP_CACHE_WHEN_TO_REVALIDATE`                  :ts:cv:`proxy.config.http.cache.when_to_revalidate`
+c:member:`TS_CONFIG_HTTP_CHUNKING_ENABLED`                          :ts:cv:`proxy.config.http.chunking_enabled`
+c:member:`TS_CONFIG_HTTP_CHUNKING_SIZE`                             :ts:cv:`proxy.config.http.chunking.size`
+c:member:`TS_CONFIG_HTTP_CONNECT_ATTEMPTS_MAX_RETRIES`              :ts:cv:`proxy.config.http.connect_attempts_max_retries`
+c:member:`TS_CONFIG_HTTP_CONNECT_ATTEMPTS_MAX_RETRIES_DEAD_SERVER`  :ts:cv:`proxy.config.http.connect_attempts_max_retries_dead_server`
+c:member:`TS_CONFIG_HTTP_CONNECT_ATTEMPTS_RR_RETRIES`               :ts:cv:`proxy.config.http.connect_attempts_rr_retries`
+c:member:`TS_CONFIG_HTTP_CONNECT_ATTEMPTS_TIMEOUT`                  :ts:cv:`proxy.config.http.connect_attempts_timeout`
+c:member:`TS_CONFIG_HTTP_DEFAULT_BUFFER_SIZE`                       :ts:cv:`proxy.config.http.default_buffer_size`
+c:member:`TS_CONFIG_HTTP_DEFAULT_BUFFER_WATER_MARK`                 :ts:cv:`proxy.config.http.default_buffer_water_mark`
+c:member:`TS_CONFIG_HTTP_DOC_IN_CACHE_SKIP_DNS`                     :ts:cv:`proxy.config.http.doc_in_cache_skip_dns`
+c:member:`TS_CONFIG_HTTP_DOWN_SERVER_ABORT_THRESHOLD`               :ts:cv:`proxy.config.http.down_server.abort_threshold`
+c:member:`TS_CONFIG_HTTP_DOWN_SERVER_CACHE_TIME`                    :ts:cv:`proxy.config.http.down_server.cache_time`
+c:member:`TS_CONFIG_HTTP_ENABLE_REDIRECTION`                        :ts:cv:`proxy.config.http.redirection_enabled`
+c:member:`TS_CONFIG_HTTP_FLOW_CONTROL_ENABLED`                      :ts:cv:`proxy.config.http.flow_control.enabled`
+c:member:`TS_CONFIG_HTTP_FLOW_CONTROL_HIGH_WATER_MARK`              :ts:cv:`proxy.config.http.flow_control.high_water`
+c:member:`TS_CONFIG_HTTP_FLOW_CONTROL_LOW_WATER_MARK`               :ts:cv:`proxy.config.http.flow_control.low_water`
+c:member:`TS_CONFIG_HTTP_FORWARD_CONNECT_METHOD`                    :ts:cv:`proxy.config.http.forward_connect_method`
+c:member:`TS_CONFIG_HTTP_FORWARD_PROXY_AUTH_TO_PARENT`              :ts:cv:`proxy.config.http.forward.proxy_auth_to_parent`
+c:member:`TS_CONFIG_HTTP_GLOBAL_USER_AGENT_HEADER`                  :ts:cv:`proxy.config.http.global_user_agent_header`
+c:member:`TS_CONFIG_HTTP_INSERT_AGE_IN_RESPONSE`                    :ts:cv:`proxy.config.http.insert_age_in_response`
+c:member:`TS_CONFIG_HTTP_INSERT_REQUEST_VIA_STR`                    :ts:cv:`proxy.config.http.insert_request_via_str`
+c:member:`TS_CONFIG_HTTP_INSERT_RESPONSE_VIA_STR`                   :ts:cv:`proxy.config.http.insert_response_via_str`
+c:member:`TS_CONFIG_HTTP_INSERT_SQUID_X_FORWARDED_FOR`              :ts:cv:`proxy.config.http.insert_squid_x_forwarded_for`
+c:member:`TS_CONFIG_HTTP_KEEP_ALIVE_ENABLED_IN`                     :ts:cv:`proxy.config.http.keep_alive_enabled_in`
+c:member:`TS_CONFIG_HTTP_KEEP_ALIVE_ENABLED_OUT`                    :ts:cv:`proxy.config.http.keep_alive_enabled_out`
+c:member:`TS_CONFIG_HTTP_KEEP_ALIVE_NO_ACTIVITY_TlMEOUT_IN`         :ts:cv:`proxy.config.http.keep_alive_no_activity_timeout_in`
+c:member:`TS_CONFIG_HTTP_KEEP_ALIVE_NO_ACTIVITY_TIMEOUT_OUT`        :ts:cv:`proxy.config.http.keep_alive_no_activity_timeout_out`
+c:member:`TS_CONFIG_HTTP_KEEP_ALIVE_POST_OUT`                       :ts:cv:`proxy.config.http.keep_alive_post_out`
+c:member:`TS_CONFIG_HTTP_NEGATIVE_CACHING_ENABLED`                  :ts:cv:`proxy.config.http.negative_caching_enabled`
+c:member:`TS_CONFIG_HTTP_NEGATIVE_CACHING_LIFETIME`                 :ts:cv:`proxy.config.http.negative_caching_lifetime`
+c:member:`TS_CONFIG_HTTP_NEGATIVE_REVALIDATING_ENABLED`             :ts:cv:`proxy.config.http.negative_revalidating_enabled`
+c:member:`TS_CONFIG_HTTP_NEGATIVE_REVALIDATING_LIFETIME`            :ts:cv:`proxy.config.http.negative_revalidating_lifetime`
+c:member:`TS_CONFIG_HTTP_NORMALIZE_AE_GZIP`                         :ts:cv:`proxy.config.http.normalize_ae_gzip`
+c:member:`TS_CONFIG_HTTP_NUMBER_OF_REDIRECTIONS`                    :ts:cv:`proxy.config.http.number_of_redirections`
+c:member:`TS_CONFIG_HTTP_ORIGIN_MAX_CONNECTIONS`                    :ts:cv:`proxy.config.http.origin_max_connections`
+c:member:`TS_CONFIG_HTTP_ORIGIN_MAX_CONNECTIONS_QUEUE`              :ts:cv:`proxy.config.http.origin_max_connections_queue`
+c:member:`TS_CONFIG_HTTP_PARENT_PROXY_TOTAL_CONNECT_ATTEMPTS`       :ts:cv:`proxy.config.http.parent_proxy.total_connect_attempts`
+c:member:`TS_CONFIG_HTTP_POST_CHECK_CONTENT_LENGTH_ENABLED`         :ts:cv:`proxy.config.http.post.check.content_length.enabled`
+c:member:`TS_CONFIG_HTTP_POST_CONNECT_ATTEMPTS_TIMEOUT`             :ts:cv:`proxy.config.http.post_connect_attempts_timeout`
+c:member:`TS_CONFIG_HTTP_REDIRECT_USE_ORIG_CACHE_KEY`               :ts:cv:`proxy.config.http.redirect_use_orig_cache_key`
+c:member:`TS_CONFIG_HTTP_REQUEST_HEADER_MAX_SIZE`                   :ts:cv:`proxy.config.http.request_header_max_size`
+c:member:`TS_CONFIG_HTTP_RESPONSE_HEADER_MAX_SIZE`                  :ts:cv:`proxy.config.http.response_header_max_size`
+c:member:`TS_CONFIG_HTTP_RESPONSE_SERVER_ENABLED`                   :ts:cv:`proxy.config.http.response_server_enabled`
+c:member:`TS_CONFIG_HTTP_RESPONSE_SERVER_STR`                       :ts:cv:`proxy.config.http.response_server_str`
+c:member:`TS_CONFIG_HTTP_SEND_HTTP11_REQUESTS`                      :ts:cv:`proxy.config.http.send_http11_requests`
+c:member:`TS_CONFIG_HTTP_SERVER_SESSION_SHARING_MATCH`              :ts:cv:`proxy.config.http.server_session_sharing.match`
+c:member:`TS_CONFIG_HTTP_SERVER_TCP_INIT_CWND`                      :ts:cv:`proxy.config.http.server_tcp_init_cwnd`
+c:member:`TS_CONFIG_HTTP_SLOW_LOG_THRESHOLD`                        :ts:cv:`proxy.config.http.slow.log.threshold`
+c:member:`TS_CONFIG_HTTP_TRANSACTION_ACTIVE_TIMEOUT_IN`             :ts:cv:`proxy.config.http.transaction_active_timeout_in`
+c:member:`TS_CONFIG_HTTP_TRANSACTION_ACTIVE_TIMEOUT_OUT`            :ts:cv:`proxy.config.http.transaction_active_timeout_out`
+c:member:`TS_CONFIG_HTTP_TRANSACTION_NO_ACTIVITY_TIMEOUT_IN`        :ts:cv:`proxy.config.http.transaction_no_activity_timeout_in`
+c:member:`TS_CONFIG_HTTP_TRANSACTION_NO_ACTIVITY_TIMEOUT_OUT`       :ts:cv:`proxy.config.http.transaction_no_activity_timeout_out`
+c:member:`TS_CONFIG_HTTP_UNCACHEABLE_REQUESTS_BYPASS_PARENT`        :ts:cv:`proxy.config.http.uncacheable_requests_bypass_parent`
+c:member:`TS_CONFIG_NET_SOCK_OPTION_FLAG_OUT`                       :ts:cv:`proxy.config.net.sock_option_flag_out`
+c:member:`TS_CONFIG_NET_SOCK_PACKET_MARK_OUT`                       :ts:cv:`proxy.config.net.sock_packet_mark_out`
+c:member:`TS_CONFIG_NET_SOCK_PACKET_TOS_OUT`                        :ts:cv:`proxy.config.net.sock_packet_tos_out`
+c:member:`TS_CONFIG_NET_SOCK_RECV_BUFFER_SIZE_OUT`                  :ts:cv:`proxy.config.net.sock_recv_buffer_size_out`
+c:member:`TS_CONFIG_NET_SOCK_SEND_BUFFER_SIZE_OUT`                  :ts:cv:`proxy.config.net.sock_send_buffer_size_out`
+c:member:`TS_CONFIG_SRV_ENABLED`                                    :ts:cv:`proxy.config.srv_enabled`
+c:member:`TS_CONFIG_SSL_HSTS_INCLUDE_SUBDOMAINS`                    :ts:cv:`proxy.config.ssl.hsts_include_subdomains`
+c:member:`TS_CONFIG_SSL_HSTS_MAX_AGE`                               :ts:cv:`proxy.config.ssl.hsts_max_age`
+c:member:`TS_CONFIG_URL_REMAP_PRISTINE_HOST_HDR`                    :ts:cv:`proxy.config.url_remap.pristine_host_hdr`
+c:member:`TS_CONFIG_WEBSOCKET_ACTIVE_TIMEOUT`                       :ts:cv:`proxy.config.websocket.active_timeout`
+c:member:`TS_CONFIG_WEBSOCKET_NO_ACTIVITY_TIMEOUT`                  :ts:cv:`proxy.config.websocket.no_activity_timeout`
 
 Examples
 ========
diff --git a/doc/developer-guide/api/types/TSOverridableConfigKey.en.rst b/doc/developer-guide/api/types/TSOverridableConfigKey.en.rst
index e106bc5..cba9f59 100644
--- a/doc/developer-guide/api/types/TSOverridableConfigKey.en.rst
+++ b/doc/developer-guide/api/types/TSOverridableConfigKey.en.rst
@@ -31,179 +31,107 @@ Enum typedef.
 Enumeration Members
 ===================
 
-.. c:member:: TSOverridableConfigKey TS_CONFIG_NULL
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_URL_REMAP_PRISTINE_HOST_HDR
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_CHUNKING_ENABLED
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_NEGATIVE_CACHING_ENABLED
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_NEGATIVE_CACHING_LIFETIME
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_CACHE_WHEN_TO_REVALIDATE
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_KEEP_ALIVE_ENABLED_IN
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_KEEP_ALIVE_ENABLED_OUT
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_KEEP_ALIVE_POST_OUT
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_SHARE_SERVER_SESSIONS, // DEPRECATED
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_SERVER_SESSION_SHARING_POOL
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_SERVER_SESSION_SHARING_MATCH
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_NET_SOCK_RECV_BUFFER_SIZE_OUT
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_NET_SOCK_SEND_BUFFER_SIZE_OUT
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_NET_SOCK_OPTION_FLAG_OUT
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_FORWARD_PROXY_AUTH_TO_PARENT
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_ANONYMIZE_REMOVE_FROM
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_ANONYMIZE_REMOVE_REFERER
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_ANONYMIZE_REMOVE_USER_AGENT
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_ANONYMIZE_REMOVE_COOKIE
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_ANONYMIZE_REMOVE_CLIENT_IP
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_ANONYMIZE_INSERT_CLIENT_IP
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_RESPONSE_SERVER_ENABLED
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_INSERT_SQUID_X_FORWARDED_FOR
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_SERVER_TCP_INIT_CWND
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_SEND_HTTP11_REQUESTS
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_CACHE_HTTP
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_CACHE_CLUSTER_CACHE_LOCAL
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_CACHE_IGNORE_CLIENT_NO_CACHE
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_CACHE_IGNORE_CLIENT_CC_MAX_AGE
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_CACHE_IMS_ON_CLIENT_NO_CACHE
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_CACHE_IGNORE_SERVER_NO_CACHE
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_CACHE_CACHE_RESPONSES_TO_COOKIES
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_CACHE_IGNORE_AUTHENTICATION
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_CACHE_CACHE_URLS_THAT_LOOK_DYNAMIC
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_CACHE_REQUIRED_HEADERS
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_INSERT_REQUEST_VIA_STR
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_INSERT_RESPONSE_VIA_STR
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_CACHE_HEURISTIC_MIN_LIFETIME
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_CACHE_HEURISTIC_MAX_LIFETIME
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_CACHE_GUARANTEED_MIN_LIFETIME
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_CACHE_GUARANTEED_MAX_LIFETIME
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_CACHE_MAX_STALE_AGE
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_KEEP_ALIVE_NO_ACTIVITY_TIMEOUT_IN
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_KEEP_ALIVE_NO_ACTIVITY_TIMEOUT_OUT
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_TRANSACTION_NO_ACTIVITY_TIMEOUT_IN
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_TRANSACTION_NO_ACTIVITY_TIMEOUT_OUT
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_TRANSACTION_ACTIVE_TIMEOUT_OUT
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_ORIGIN_MAX_CONNECTIONS
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_CONNECT_ATTEMPTS_MAX_RETRIES
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_CONNECT_ATTEMPTS_MAX_RETRIES_DEAD_SERVER
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_CONNECT_ATTEMPTS_RR_RETRIES
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_CONNECT_ATTEMPTS_TIMEOUT
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_POST_CONNECT_ATTEMPTS_TIMEOUT
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_DOWN_SERVER_CACHE_TIME
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_DOWN_SERVER_ABORT_THRESHOLD
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_CACHE_FUZZ_TIME
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_CACHE_FUZZ_MIN_TIME
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_DOC_IN_CACHE_SKIP_DNS
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_BACKGROUND_FILL_ACTIVE_TIMEOUT
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_RESPONSE_SERVER_STR
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_CACHE_HEURISTIC_LM_FACTOR
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_CACHE_FUZZ_PROBABILITY
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_BACKGROUND_FILL_COMPLETED_THRESHOLD
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_NET_SOCK_PACKET_MARK_OUT
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_NET_SOCK_PACKET_TOS_OUT
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_INSERT_AGE_IN_RESPONSE
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_CHUNKING_SIZE
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_FLOW_CONTROL_ENABLED
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_FLOW_CONTROL_LOW_WATER_MARK
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_FLOW_CONTROL_HIGH_WATER_MARK
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_CACHE_RANGE_LOOKUP
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_NORMALIZE_AE_GZIP
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_DEFAULT_BUFFER_SIZE
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_DEFAULT_BUFFER_WATER_MARK
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_REQUEST_HEADER_MAX_SIZE
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_RESPONSE_HEADER_MAX_SIZE
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_NEGATIVE_REVALIDATING_ENABLED
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_NEGATIVE_REVALIDATING_LIFETIME
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_SSL_HSTS_MAX_AGE
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_SSL_HSTS_INCLUDE_SUBDOMAINS
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_CACHE_OPEN_READ_RETRY_TIME
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_CACHE_MAX_OPEN_READ_RETRIES
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_CACHE_RANGE_WRITE
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_POST_CHECK_CONTENT_LENGTH_ENABLED
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_HTTP_GLOBAL_USER_AGENT_HEADER
-
-.. c:member:: TSOverridableConfigKey TS_CONFIG_LAST_ENTRY
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_BODY_FACTORY_TEMPLATE_BASE
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_ANONYMIZE_INSERT_CLIENT_IP
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_ANONYMIZE_REMOVE_CLIENT_IP
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_ANONYMIZE_REMOVE_COOKIE
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_ANONYMIZE_REMOVE_FROM
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_ANONYMIZE_REMOVE_REFERER
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_ANONYMIZE_REMOVE_USER_AGENT
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_ATTACH_SERVER_SESSION_TO_CLIENT
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_AUTH_SERVER_SESSION_PRIVATE
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_BACKGROUND_FILL_ACTIVE_TIMEOUT
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_BACKGROUND_FILL_COMPLETED_THRESHOLD
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CACHE_CACHE_RESPONSES_TO_COOKIES
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CACHE_CACHE_URLS_THAT_LOOK_DYNAMIC
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CACHE_CLUSTER_CACHE_LOCAL
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CACHE_FUZZ_MIN_TIME
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CACHE_FUZZ_PROBABILITY
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CACHE_FUZZ_TIME
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CACHE_GENERATION
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CACHE_GUARANTEED_MAX_LIFETIME
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CACHE_GUARANTEED_MIN_LIFETIME
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CACHE_HEURISTIC_LM_FACTOR
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CACHE_HEURISTIC_MAX_LIFETIME
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CACHE_HEURISTIC_MIN_LIFETIME
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CACHE_HTTP
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CACHE_IGNORE_AUTHENTICATION
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CACHE_IGNORE_CLIENT_CC_MAX_AGE
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CACHE_IGNORE_CLIENT_NO_CACHE
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CACHE_IGNORE_SERVER_NO_CACHE
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CACHE_IMS_ON_CLIENT_NO_CACHE
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CACHE_MAX_OPEN_READ_RETRIES
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CACHE_MAX_OPEN_WRITE_RETRIES
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CACHE_MAX_STALE_AGE
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CACHE_OPEN_READ_RETRY_TIME
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CACHE_OPEN_WRITE_FAIL_ACTION
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CACHE_RANGE_LOOKUP
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CACHE_RANGE_WRITE
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CACHE_REQUIRED_HEADERS
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CACHE_WHEN_TO_REVALIDATE
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CHUNKING_ENABLED
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CHUNKING_SIZE
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CONNECT_ATTEMPTS_MAX_RETRIES
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CONNECT_ATTEMPTS_MAX_RETRIES_DEAD_SERVER
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CONNECT_ATTEMPTS_RR_RETRIES
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_CONNECT_ATTEMPTS_TIMEOUT
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_DEFAULT_BUFFER_SIZE
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_DEFAULT_BUFFER_WATER_MARK
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_DOC_IN_CACHE_SKIP_DNS
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_DOWN_SERVER_ABORT_THRESHOLD
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_DOWN_SERVER_CACHE_TIME
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_ENABLE_REDIRECTION
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_FLOW_CONTROL_ENABLED
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_FLOW_CONTROL_HIGH_WATER_MARK
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_FLOW_CONTROL_LOW_WATER_MARK
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_FORWARD_CONNECT_METHOD
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_FORWARD_PROXY_AUTH_TO_PARENT
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_GLOBAL_USER_AGENT_HEADER
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_INSERT_AGE_IN_RESPONSE
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_INSERT_REQUEST_VIA_STR
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_INSERT_RESPONSE_VIA_STR
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_INSERT_SQUID_X_FORWARDED_FOR
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_KEEP_ALIVE_ENABLED_IN
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_KEEP_ALIVE_ENABLED_OUT
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_KEEP_ALIVE_NO_ACTIVITY_TIMEOUT_IN
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_KEEP_ALIVE_NO_ACTIVITY_TIMEOUT_OUT
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_KEEP_ALIVE_POST_OUT
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_NEGATIVE_CACHING_ENABLED
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_NEGATIVE_CACHING_LIFETIME
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_NEGATIVE_REVALIDATING_ENABLED
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_NEGATIVE_REVALIDATING_LIFETIME
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_NORMALIZE_AE_GZIP
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_NUMBER_OF_REDIRECTIONS
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_ORIGIN_MAX_CONNECTIONS
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_ORIGIN_MAX_CONNECTIONS_QUEUE
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_PARENT_PROXY_TOTAL_CONNECT_ATTEMPTS
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_POST_CHECK_CONTENT_LENGTH_ENABLED
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_POST_CONNECT_ATTEMPTS_TIMEOUT
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_REDIRECT_USE_ORIG_CACHE_KEY
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_REQUEST_HEADER_MAX_SIZE
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_RESPONSE_HEADER_MAX_SIZE
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_RESPONSE_SERVER_ENABLED
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_RESPONSE_SERVER_STR
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_SEND_HTTP11_REQUESTS
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_SERVER_SESSION_SHARING_MATCH
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_SERVER_TCP_INIT_CWND
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_SLOW_LOG_THRESHOLD
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_TRANSACTION_ACTIVE_TIMEOUT_IN
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_TRANSACTION_ACTIVE_TIMEOUT_OUT
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_TRANSACTION_NO_ACTIVITY_TIMEOUT_IN
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_TRANSACTION_NO_ACTIVITY_TIMEOUT_OUT
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_HTTP_UNCACHEABLE_REQUESTS_BYPASS_PARENT
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_NET_SOCK_OPTION_FLAG_OUT
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_NET_SOCK_PACKET_MARK_OUT
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_NET_SOCK_PACKET_TOS_OUT
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_NET_SOCK_RECV_BUFFER_SIZE_OUT
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_NET_SOCK_SEND_BUFFER_SIZE_OUT
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_SRV_ENABLED
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_SSL_HSTS_INCLUDE_SUBDOMAINS
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_SSL_HSTS_MAX_AGE
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_URL_REMAP_PRISTINE_HOST_HDR
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_WEBSOCKET_ACTIVE_TIMEOUT
+.. c:member:: TSOverridableConfigKey  TS_CONFIG_WEBSOCKET_NO_ACTIVITY_TIMEOUT
 
 Description
 ===========

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.