Github user jpeach commented on a diff in the pull request:

    https://github.com/apache/trafficserver/pull/634#discussion_r63218410
  
    --- Diff: proxy/InkAPI.cc ---
    @@ -8175,471 +8177,163 @@ TSHttpTxnConfigStringGet(TSHttpTxn txnp, 
TSOverridableConfigKey conf, const char
       return TS_SUCCESS;
     }
     
    +struct TXN_CONFIG_PAIR {
    +  TSOverridableConfigKey cnf;
    +  TSRecordDataType typ;
    +  TXN_CONFIG_PAIR(TSOverridableConfigKey cnf = TS_CONFIG_NULL, 
TSRecordDataType typ = TS_RECORDDATATYPE_INT)
    +  {
    +    this->cnf = cnf;
    +    this->typ = typ ? typ : TS_RECORDDATATYPE_INT;
    +  };
    +};
    +
    +std::unordered_map<std::string, TXN_CONFIG_PAIR>
    +create_map()
    +{
    +  std::unordered_map<std::string, TXN_CONFIG_PAIR> m;
    +
    +  m["proxy.config.body_factory.template_base"] = 
TXN_CONFIG_PAIR(TS_CONFIG_BODY_FACTORY_TEMPLATE_BASE, TS_RECORDDATATYPE_STRING);
    +  m["proxy.config.http.accept_encoding_filter_enabled"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_ACCEPT_ENCODING_FILTER_ENABLED);
    +  m["proxy.config.http.anonymize_insert_client_ip"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_ANONYMIZE_INSERT_CLIENT_IP);
    +  m["proxy.config.http.anonymize_remove_client_ip"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_ANONYMIZE_REMOVE_CLIENT_IP);
    +  m["proxy.config.http.anonymize_remove_cookie"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_ANONYMIZE_REMOVE_COOKIE);
    +  m["proxy.config.http.anonymize_remove_from"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_ANONYMIZE_REMOVE_FROM);
    +  m["proxy.config.http.anonymize_remove_referer"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_ANONYMIZE_REMOVE_REFERER);
    +  m["proxy.config.http.anonymize_remove_user_agent"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_ANONYMIZE_REMOVE_USER_AGENT);
    +  m["proxy.config.http.attach_server_session_to_client"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_ATTACH_SERVER_SESSION_TO_CLIENT);
    +  m["proxy.config.http.auth_server_session_private"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_AUTH_SERVER_SESSION_PRIVATE);
    +  m["proxy.config.http.background_fill_active_timeout"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_BACKGROUND_FILL_ACTIVE_TIMEOUT);
    +  m["proxy.config.http.background_fill_completed_threshold"] =
    +    TXN_CONFIG_PAIR(TS_CONFIG_HTTP_BACKGROUND_FILL_COMPLETED_THRESHOLD, 
TS_RECORDDATATYPE_FLOAT);
    +  m["proxy.config.http.cache.cache_responses_to_cookies"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CACHE_CACHE_RESPONSES_TO_COOKIES);
    +  m["proxy.config.http.cache.cache_urls_that_look_dynamic"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CACHE_CACHE_URLS_THAT_LOOK_DYNAMIC);
    +  m["proxy.config.http.cache.cluster_cache_local"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CACHE_CLUSTER_CACHE_LOCAL);
    +  m["proxy.config.http.cache.fuzz.min_time"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CACHE_FUZZ_MIN_TIME);
    +  m["proxy.config.http.cache.fuzz.probability"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CACHE_FUZZ_PROBABILITY, TS_RECORDDATATYPE_FLOAT);
    +  m["proxy.config.http.cache.fuzz.time"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CACHE_FUZZ_TIME);
    +  m["proxy.config.http.cache.generation"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CACHE_GENERATION);
    +  m["proxy.config.http.cache.guaranteed_max_lifetime"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CACHE_GUARANTEED_MAX_LIFETIME);
    +  m["proxy.config.http.cache.guaranteed_min_lifetime"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CACHE_GUARANTEED_MIN_LIFETIME);
    +  m["proxy.config.http.cache.heuristic_lm_factor"] =
    +    TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CACHE_HEURISTIC_LM_FACTOR, 
TS_RECORDDATATYPE_FLOAT);
    +  m["proxy.config.http.cache.heuristic_max_lifetime"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CACHE_HEURISTIC_MAX_LIFETIME);
    +  m["proxy.config.http.cache.heuristic_min_lifetime"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CACHE_HEURISTIC_MIN_LIFETIME);
    +  m["proxy.config.http.cache.http"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CACHE_HTTP);
    +  m["proxy.config.http.cache.ignore_authentication"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CACHE_IGNORE_AUTHENTICATION);
    +  m["proxy.config.http.cache.ignore_client_cc_max_age"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CACHE_IGNORE_CLIENT_CC_MAX_AGE);
    +  m["proxy.config.http.cache.ignore_client_no_cache"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CACHE_IGNORE_CLIENT_NO_CACHE);
    +  m["proxy.config.http.cache.ignore_server_no_cache"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CACHE_IGNORE_SERVER_NO_CACHE);
    +  m["proxy.config.http.cache.ims_on_client_no_cache"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CACHE_IMS_ON_CLIENT_NO_CACHE);
    +  m["proxy.config.http.cache.max_open_read_retries"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CACHE_MAX_OPEN_READ_RETRIES);
    +  m["proxy.config.http.cache.max_open_write_retries"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CACHE_MAX_OPEN_WRITE_RETRIES);
    +  m["proxy.config.http.cache.max_stale_age"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CACHE_MAX_STALE_AGE);
    +  m["proxy.config.http.cache.open_read_retry_time"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CACHE_OPEN_READ_RETRY_TIME);
    +  m["proxy.config.http.cache.open_write_fail_action"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CACHE_OPEN_WRITE_FAIL_ACTION);
    +  m["proxy.config.http.cache.range.lookup"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CACHE_RANGE_LOOKUP);
    +  m["proxy.config.http.cache.range.write"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CACHE_RANGE_WRITE);
    +  m["proxy.config.http.cache.required_headers"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CACHE_REQUIRED_HEADERS);
    +  m["proxy.config.http.cache.when_to_revalidate"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CACHE_WHEN_TO_REVALIDATE);
    +  m["proxy.config.http.chunking_enabled"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CHUNKING_ENABLED);
    +  m["proxy.config.http.chunking.size"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CHUNKING_SIZE);
    +  m["proxy.config.http.connect_attempts_max_retries_dead_server"] =
    +    
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CONNECT_ATTEMPTS_MAX_RETRIES_DEAD_SERVER);
    +  m["proxy.config.http.connect_attempts_max_retries"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CONNECT_ATTEMPTS_MAX_RETRIES);
    +  m["proxy.config.http.connect_attempts_rr_retries"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CONNECT_ATTEMPTS_RR_RETRIES);
    +  m["proxy.config.http.connect_attempts_timeout"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_CONNECT_ATTEMPTS_TIMEOUT);
    +  m["proxy.config.http.default_buffer_size"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_DEFAULT_BUFFER_SIZE);
    +  m["proxy.config.http.default_buffer_water_mark"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_DEFAULT_BUFFER_WATER_MARK);
    +  m["proxy.config.http.doc_in_cache_skip_dns"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_DOC_IN_CACHE_SKIP_DNS);
    +  m["proxy.config.http.down_server.abort_threshold"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_DOWN_SERVER_ABORT_THRESHOLD);
    +  m["proxy.config.http.down_server.cache_time"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_DOWN_SERVER_CACHE_TIME);
    +  m["proxy.config.http.flow_control.enabled"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_FLOW_CONTROL_ENABLED);
    +  m["proxy.config.http.flow_control.high_water"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_FLOW_CONTROL_HIGH_WATER_MARK);
    +  m["proxy.config.http.flow_control.low_water"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_FLOW_CONTROL_LOW_WATER_MARK);
    +  m["proxy.config.http.forward.proxy_auth_to_parent"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_FORWARD_PROXY_AUTH_TO_PARENT);
    +  m["proxy.config.http.global_user_agent_header"] =
    +    TXN_CONFIG_PAIR(TS_CONFIG_HTTP_GLOBAL_USER_AGENT_HEADER, 
TS_RECORDDATATYPE_STRING);
    +  m["proxy.config.http.insert_age_in_response"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_INSERT_AGE_IN_RESPONSE);
    +  m["proxy.config.http.insert_request_via_str"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_INSERT_REQUEST_VIA_STR);
    +  m["proxy.config.http.insert_response_via_str"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_INSERT_RESPONSE_VIA_STR);
    +  m["proxy.config.http.insert_squid_x_forwarded_for"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_INSERT_SQUID_X_FORWARDED_FOR);
    +  m["proxy.config.http.keep_alive_enabled_in"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_KEEP_ALIVE_ENABLED_IN);
    +  m["proxy.config.http.keep_alive_enabled_out"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_KEEP_ALIVE_ENABLED_OUT);
    +  m["proxy.config.http.keep_alive_no_activity_timeout_in"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_KEEP_ALIVE_NO_ACTIVITY_TIMEOUT_IN);
    +  m["proxy.config.http.keep_alive_no_activity_timeout_out"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_KEEP_ALIVE_NO_ACTIVITY_TIMEOUT_OUT);
    +  m["proxy.config.http.keep_alive_post_out"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_KEEP_ALIVE_POST_OUT);
    +  m["proxy.config.http.negative_caching_enabled"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_NEGATIVE_CACHING_ENABLED);
    +  m["proxy.config.http.negative_caching_lifetime"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_NEGATIVE_CACHING_LIFETIME);
    +  m["proxy.config.http.negative_revalidating_enabled"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_NEGATIVE_REVALIDATING_ENABLED);
    +  m["proxy.config.http.negative_revalidating_lifetime"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_NEGATIVE_REVALIDATING_LIFETIME);
    +  m["proxy.config.http.normalize_ae_gzip"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_NORMALIZE_AE_GZIP);
    +  m["proxy.config.http.number_of_redirections"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_NUMBER_OF_REDIRECTIONS);
    +  m["proxy.config.http.origin_max_connections_queue"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_ORIGIN_MAX_CONNECTIONS_QUEUE);
    +  m["proxy.config.http.origin_max_connections"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_ORIGIN_MAX_CONNECTIONS);
    +  m["proxy.config.http.parent_proxy.total_connect_attempts"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_PARENT_PROXY_TOTAL_CONNECT_ATTEMPTS);
    +  m["proxy.config.http.post.check.content_length.enabled"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_POST_CHECK_CONTENT_LENGTH_ENABLED);
    +  m["proxy.config.http.post_connect_attempts_timeout"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_POST_CONNECT_ATTEMPTS_TIMEOUT);
    +  m["proxy.config.http.redirection_enabled"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_ENABLE_REDIRECTION);
    +  m["proxy.config.http.redirect_use_orig_cache_key"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_REDIRECT_USE_ORIG_CACHE_KEY);
    +  m["proxy.config.http.request_header_max_size"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_REQUEST_HEADER_MAX_SIZE);
    +  m["proxy.config.http.response_header_max_size"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_RESPONSE_HEADER_MAX_SIZE);
    +  m["proxy.config.http.response_server_enabled"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_RESPONSE_SERVER_ENABLED);
    +  m["proxy.config.http.response_server_str"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_RESPONSE_SERVER_STR, TS_RECORDDATATYPE_STRING);
    +  m["proxy.config.http.send_http11_requests"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_SEND_HTTP11_REQUESTS);
    +  m["proxy.config.http.server_session_sharing.match"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_SERVER_SESSION_SHARING_MATCH);
    +  m["proxy.config.http.server_tcp_init_cwnd"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_SERVER_TCP_INIT_CWND);
    +  m["proxy.config.http.slow.log.threshold"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_SLOW_LOG_THRESHOLD);
    +  m["proxy.config.http.transaction_active_timeout_in"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_TRANSACTION_ACTIVE_TIMEOUT_IN);
    +  m["proxy.config.http.transaction_active_timeout_out"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_TRANSACTION_ACTIVE_TIMEOUT_OUT);
    +  m["proxy.config.http.transaction_no_activity_timeout_in"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_TRANSACTION_NO_ACTIVITY_TIMEOUT_IN);
    +  m["proxy.config.http.transaction_no_activity_timeout_out"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_TRANSACTION_NO_ACTIVITY_TIMEOUT_OUT);
    +  m["proxy.config.http.uncacheable_requests_bypass_parent"] = 
TXN_CONFIG_PAIR(TS_CONFIG_HTTP_UNCACHEABLE_REQUESTS_BYPASS_PARENT);
    +  m["proxy.config.net.sock_option_flag_out"] = 
TXN_CONFIG_PAIR(TS_CONFIG_NET_SOCK_OPTION_FLAG_OUT);
    +  m["proxy.config.net.sock_packet_mark_out"] = 
TXN_CONFIG_PAIR(TS_CONFIG_NET_SOCK_PACKET_MARK_OUT);
    +  m["proxy.config.net.sock_packet_tos_out"] = 
TXN_CONFIG_PAIR(TS_CONFIG_NET_SOCK_PACKET_TOS_OUT);
    +  m["proxy.config.net.sock_recv_buffer_size_out"] = 
TXN_CONFIG_PAIR(TS_CONFIG_NET_SOCK_RECV_BUFFER_SIZE_OUT);
    +  m["proxy.config.net.sock_send_buffer_size_out"] = 
TXN_CONFIG_PAIR(TS_CONFIG_NET_SOCK_SEND_BUFFER_SIZE_OUT);
    +  m["proxy.config.ssl.hsts_include_subdomains"] = 
TXN_CONFIG_PAIR(TS_CONFIG_SSL_HSTS_INCLUDE_SUBDOMAINS);
    +  m["proxy.config.ssl.hsts_max_age"] = 
TXN_CONFIG_PAIR(TS_CONFIG_SSL_HSTS_MAX_AGE);
    +  m["proxy.config.url_remap.pristine_host_hdr"] = 
TXN_CONFIG_PAIR(TS_CONFIG_URL_REMAP_PRISTINE_HOST_HDR);
    +  m["proxy.config.websocket.active_timeout"] = 
TXN_CONFIG_PAIR(TS_CONFIG_WEBSOCKET_ACTIVE_TIMEOUT);
    +  m["proxy.config.websocket.no_activity_timeout"] = 
TXN_CONFIG_PAIR(TS_CONFIG_WEBSOCKET_NO_ACTIVITY_TIMEOUT);
    +
    +  // m[""] = TXN_CONFIG_PAIR();
    +
    +  return m;
    +};
    +
    +std::unordered_map<std::string, TXN_CONFIG_PAIR> TXN_CONFIG_LOOKUP_TABLE = 
create_map();
    +
    +TXN_CONFIG_PAIR *
    +TXN_CONFIG_LOOKUP(std::string name)
    --- End diff --
    
    If you want to keep this, it should be static. I think that this is only 
used in one place and small enough just to inline it into 
``TSHttpTxnConfigFind``.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to