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 [email protected] or file a JIRA ticket
with INFRA.
---