----- Original Message -----
> Updated Branches:
>   refs/heads/master cecc082d4 -> 7485e0b5f
> 
> 
> TS-1255 Add Req/Resp max header size to be overridable
> 

> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/b0e7c2ab/proxy/InkAPI.cc
> ----------------------------------------------------------------------
> diff --git a/proxy/InkAPI.cc b/proxy/InkAPI.cc
> index 1ed9933..99c833d 100644
> --- a/proxy/InkAPI.cc
> +++ b/proxy/InkAPI.cc
> @@ -7577,6 +7577,14 @@ _conf_to_memberp(TSOverridableConfigKey conf,
> HttpSM* sm, OverridableDataType *t
>      typ = OVERRIDABLE_TYPE_INT;
>      ret = &sm->t_state.txn_conf->default_buffer_water_mark;
>      break;
> +  case TS_CONFIG_HTTP_REQUEST_HEADER_MAX_SIZE:
> +    typ = OVERRIDABLE_TYPE_INT;
> +    ret = &sm->t_state.txn_conf->request_hdr_max_size;
> +    break;
> +  case TS_CONFIG_HTTP_RESPONSE_HEADER_MAX_SIZE:
> +    typ = OVERRIDABLE_TYPE_INT;
> +    ret = &sm->t_state.txn_conf->response_hdr_max_size;
> +    break;
>  
>      // This helps avoiding compiler warnings, yet detect unhandled
>      enum members.
>    case TS_CONFIG_NULL:
> @@ -7898,6 +7906,8 @@ TSHttpTxnConfigFind(const char* name, int
> length, TSOverridableConfigKey *conf,
>      case 'e':
>        if (!strncmp(name,
>        "proxy.config.http.anonymize_remove_cookie", length))
>          cnf = TS_CONFIG_HTTP_ANONYMIZE_REMOVE_COOKIE;
> +      else if (!strncmp(name,
> "proxy.config.http.request_header_max_size", length))
> +        cnf = TS_CONFIG_HTTP_REQUEST_HEADER_MAX_SIZE;
>        break;
>      case 'r':
>        if (!strncmp(name,
>        "proxy.config.http.insert_response_via_str", length))
> @@ -7917,6 +7927,8 @@ TSHttpTxnConfigFind(const char* name, int
> length, TSOverridableConfigKey *conf,
>      case 'e':
>        if (!strncmp(name,
>        "proxy.config.http.cache.when_to_revalidate", length))
>          cnf = TS_CONFIG_HTTP_CACHE_WHEN_TO_REVALIDATE;
> +      else if (!strncmp(name,
> "proxy.config.http.response_header_max_size", length))
> +        cnf = TS_CONFIG_HTTP_RESPONSE_HEADER_MAX_SIZE;
>        break;
>      case 'r':
>        if (!strncmp(name,
>        "proxy.config.http.anonymize_remove_referer", length))
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/b0e7c2ab/proxy/InkAPITest.cc
> ----------------------------------------------------------------------
> diff --git a/proxy/InkAPITest.cc b/proxy/InkAPITest.cc
> index 42de90c..85cc589 100644
> --- a/proxy/InkAPITest.cc
> +++ b/proxy/InkAPITest.cc
> @@ -7399,7 +7399,9 @@ const char
> *SDK_Overridable_Configs[TS_CONFIG_LAST_ENTRY] = {
>    "proxy.config.http.cache.range.lookup",
>    "proxy.config.http.normalize_ae_gzip",
>    "proxy.config.http.default_buffer_size",
> -  "proxy.config.http.default_buffer_water_mark"
> +  "proxy.config.http.default_buffer_water_mark",
> +  "proxy.config.http.request_header_max_size",
> +  "proxy.config.http.response_header_max_size"

why not close this up with a ',' ?

>  };
>  
>  REGRESSION_TEST(SDK_API_OVERRIDABLE_CONFIGS) (RegressionTest * test,
>  int /* atype ATS_UNUSED */, int *pstatus)
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/b0e7c2ab/proxy/api/ts/ts.h.in
> ----------------------------------------------------------------------
> diff --git a/proxy/api/ts/ts.h.in b/proxy/api/ts/ts.h.in
> index b9cd558..47eeaf6 100644
> --- a/proxy/api/ts/ts.h.in
> +++ b/proxy/api/ts/ts.h.in
> @@ -675,7 +675,9 @@ extern "C"
>      TS_CONFIG_HTTP_NORMALIZE_AE_GZIP,
>      TS_CONFIG_HTTP_DEFAULT_BUFFER_SIZE,
>      TS_CONFIG_HTTP_DEFAULT_BUFFER_WATER_MARK,
> -    TS_CONFIG_LAST_ENTRY,
> +    TS_CONFIG_HTTP_REQUEST_HEADER_MAX_SIZE,
> +    TS_CONFIG_HTTP_RESPONSE_HEADER_MAX_SIZE,
> +    TS_CONFIG_LAST_ENTRY

why not close this up with a ',' ?


>    } TSOverridableConfigKey;
>  
>    /* The TASK pool of threads is the primary method of off-loading
>    continuations from the
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/b0e7c2ab/proxy/http/HttpConfig.cc
> ----------------------------------------------------------------------
> diff --git a/proxy/http/HttpConfig.cc b/proxy/http/HttpConfig.cc
> index b4db289..c8c0abc 100644
> --- a/proxy/http/HttpConfig.cc
> +++ b/proxy/http/HttpConfig.cc
> @@ -1291,9 +1291,8 @@ HttpConfig::startup()
>  
>    HttpEstablishStaticConfigStringAlloc(c.connect_ports_string,
>    "proxy.config.http.connect_ports");
>  
> -  HttpEstablishStaticConfigLongLong(c.request_hdr_max_size,
> "proxy.config.http.request_header_max_size");
> -
> -  HttpEstablishStaticConfigLongLong(c.response_hdr_max_size,
> "proxy.config.http.response_header_max_size");
> +  HttpEstablishStaticConfigLongLong(c.oride.request_hdr_max_size,
> "proxy.config.http.request_header_max_size");
> +  HttpEstablishStaticConfigLongLong(c.oride.response_hdr_max_size,
> "proxy.config.http.response_header_max_size");
>  
>    HttpEstablishStaticConfigByte(c.push_method_enabled,
>    "proxy.config.http.push_method_enabled");
>  
> @@ -1561,9 +1560,10 @@ HttpConfig::reconfigure()
>    params->connect_ports_string =
>    ats_strdup(m_master.connect_ports_string);
>    params->connect_ports =
>    parse_ports_list(params->connect_ports_string);
>  
> -  params->request_hdr_max_size = m_master.request_hdr_max_size;
> -  params->response_hdr_max_size = m_master.response_hdr_max_size;
> -  params->push_method_enabled =
> INT_TO_BOOL(m_master.push_method_enabled);
> +  params->oride.request_hdr_max_size =
> m_master.oride.request_hdr_max_size;
> +  params->oride.response_hdr_max_size =
> m_master.oride.response_hdr_max_size;
> +
> +params->push_method_enabled =
> INT_TO_BOOL(m_master.push_method_enabled);
>  
>    params->reverse_proxy_enabled =
>    INT_TO_BOOL(m_master.reverse_proxy_enabled);
>    params->url_remap_required =
>    INT_TO_BOOL(m_master.url_remap_required);
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/b0e7c2ab/proxy/http/HttpConfig.h
> ----------------------------------------------------------------------
> diff --git a/proxy/http/HttpConfig.h b/proxy/http/HttpConfig.h
> index 27a96e7..de47b94 100644
> --- a/proxy/http/HttpConfig.h
> +++ b/proxy/http/HttpConfig.h
> @@ -414,6 +414,7 @@ struct OverridableHttpConfigParams {
>        negative_caching_lifetime(1800), normalize_ae_gzip(0),
>        sock_recv_buffer_size_out(0), sock_send_buffer_size_out(0),
>        sock_option_flag_out(0),
>        sock_packet_mark_out(0), sock_packet_tos_out(0),
>        server_tcp_init_cwnd(0),
> +      request_hdr_max_size(131072), response_hdr_max_size(131072),
>        cache_heuristic_min_lifetime(3600),
>        cache_heuristic_max_lifetime(86400),
>        cache_guaranteed_min_lifetime(0),
>        cache_guaranteed_max_lifetime(31536000),
>        cache_max_stale_age(604800),
>        keep_alive_no_activity_timeout_in(115),
>        keep_alive_no_activity_timeout_out(120),
> @@ -524,6 +525,12 @@ struct OverridableHttpConfigParams {
>    ///////////////////////////////
>    MgmtInt server_tcp_init_cwnd;
>  
> +  ///////////////
> +  // Hdr Limit //
> +  ///////////////
> +  MgmtInt request_hdr_max_size;
> +  MgmtInt response_hdr_max_size;
> +
>    /////////////////////
>    // cache variables //
>    /////////////////////
> @@ -702,12 +709,6 @@ public:
>    char *connect_ports_string;
>    HttpConfigPortRange *connect_ports;
>  
> -  ///////////////
> -  // Hdr Limit //
> -  ///////////////
> -  MgmtInt request_hdr_max_size;
> -  MgmtInt response_hdr_max_size;
> -
>    //////////
>    // Push //
>    //////////
> @@ -923,8 +924,6 @@ HttpConfigParams::HttpConfigParams()
>      cache_when_to_add_no_cache_to_msie_requests(-1),
>      connect_ports_string(NULL),
>      connect_ports(NULL),
> -    request_hdr_max_size(131072),
> -    response_hdr_max_size(131072),
>      push_method_enabled(0),
>      referer_filter_enabled(0),
>      referer_format_redirect(0),
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/b0e7c2ab/proxy/http/HttpSM.cc
> ----------------------------------------------------------------------
> diff --git a/proxy/http/HttpSM.cc b/proxy/http/HttpSM.cc
> index 5647f22..5b879bc 100644
> --- a/proxy/http/HttpSM.cc
> +++ b/proxy/http/HttpSM.cc
> @@ -720,7 +720,7 @@ HttpSM::state_read_client_request_header(int
> event, void *data)
>    client_request_hdr_bytes += bytes_used;
>  
>    // Check to see if we are over the hdr size limit
> -  if (client_request_hdr_bytes >
> t_state.http_config_param->request_hdr_max_size) {
> +  if (client_request_hdr_bytes >
> t_state.txn_conf->request_hdr_max_size) {
>      DebugSM("http", "client header bytes were over max header size;
>      treating as a bad request");
>      state = PARSE_ERROR;
>    }
> @@ -1776,7 +1776,7 @@ HttpSM::state_read_server_response_header(int
> event, void *data)
>      state = PARSE_ERROR;
>    }
>    // Check to see if we are over the hdr size limit
> -  if (server_response_hdr_bytes >
> t_state.http_config_param->response_hdr_max_size) {
> +  if (server_response_hdr_bytes >
> t_state.txn_conf->response_hdr_max_size) {
>      state = PARSE_ERROR;
>    }
>  
> 
> 

-- 
Igor Galić

Tel: +43 (0) 664 886 22 883
Mail: i.ga...@brainsware.org
URL: http://brainsware.org/
GPG: 6880 4155 74BD FD7C B515  2EA5 4B1D 9E08 A097 C9AE

Reply via email to