A brief file description. More...
#include "ink_config.h"
#include <ctype.h>
#include <string.h>
#include "HttpConfig.h"
#include "HTTP.h"
#include "ProcessManager.h"
#include "ProxyConfig.h"
#include "ICPProcessor.h"
#include "P_Net.h"
#include "P_RecUtils.h"
#include <records/I_RecHttp.h>
Go to the source code of this file.
Data Structures | |
class | HttpConfigCont |
struct | ConfigEnumPair< T > |
Data item for enumerated type config value. More... | |
Defines | |
#define | min(a, b) ((a) < (b) ? (a) : (b)) |
#define | max(a, b) ((a) > (b) ? (a) : (b)) |
#define | HttpEstablishStaticConfigStringAlloc(_ix, _n) |
#define | HttpEstablishStaticConfigLongLong(_ix, _n) |
#define | HttpEstablishStaticConfigFloat(_ix, _n) |
#define | HttpEstablishStaticConfigByte(_ix, _n) |
#define | HTTP_CLEAR_DYN_STAT(x) |
#define | ARRAY_SIZE(x) (sizeof(x)/(sizeof((x)[0]))) |
#define | INT_TO_BOOL(i) ((i) ? 1 : 0); |
Functions | |
template<typename T > | |
static bool | http_config_enum_search (char const *key, ConfigEnumPair< T > *list, size_t n, MgmtByte value) |
Convert a string to an enumeration value. | |
template<typename T > | |
static bool | http_config_enum_read (char const *name, ConfigEnumPair< T > *list, size_t n, MgmtByte value) |
Read a string from the configuration and convert it to an enumeration value. | |
static int | http_config_cb (const char *, RecDataT, RecData, void *) |
static void | http_config_share_server_sessions_bc (HttpConfigParams *c, MgmtByte v) |
static void | http_config_share_server_sessions_read_bc (HttpConfigParams *c) |
static int | http_server_session_sharing_cb (char const *name, RecDataT dtype, RecData data, void *cookie) |
void | register_configs () |
void | register_stat_callbacks () |
Variables | |
RecRawStatBlock * | http_rsb |
static ConfigEnumPair < TSServerSessionSharingMatchType > | SessionSharingMatchStrings [] |
Session sharing match types. | |
static ConfigEnumPair < TSServerSessionSharingPoolType > | SessionSharingPoolStrings [] |
static volatile int | http_config_changes = 1 |
static HttpConfigCont * | http_config_cont = NULL |
volatile int32_t | icp_dynamic_enabled |
A brief file description.
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Definition in file HttpConfig.cc.
#define ARRAY_SIZE | ( | x | ) | (sizeof(x)/(sizeof((x)[0]))) |
Definition at line 130 of file HttpConfig.cc.
Referenced by http_server_session_sharing_cb(), and HttpConfig::startup().
#define HTTP_CLEAR_DYN_STAT | ( | x | ) |
do { \ RecSetRawStatSum(http_rsb, x, 0); \ RecSetRawStatCount(http_rsb, x, 0); \ } while (0);
Definition at line 61 of file HttpConfig.cc.
Referenced by register_stat_callbacks().
#define HttpEstablishStaticConfigByte | ( | _ix, | ||
_n | ||||
) |
REC_EstablishStaticConfigByte(_ix,_n); \ REC_RegisterConfigUpdateFunc(_n, http_config_cb, NULL)
Definition at line 55 of file HttpConfig.cc.
Referenced by HttpConfig::startup().
#define HttpEstablishStaticConfigFloat | ( | _ix, | ||
_n | ||||
) |
REC_EstablishStaticConfigFloat(_ix,_n); \ REC_RegisterConfigUpdateFunc(_n, http_config_cb, NULL)
Definition at line 51 of file HttpConfig.cc.
Referenced by HttpConfig::startup().
#define HttpEstablishStaticConfigLongLong | ( | _ix, | ||
_n | ||||
) |
REC_EstablishStaticConfigInteger(_ix,_n); \ REC_RegisterConfigUpdateFunc(_n, http_config_cb, NULL)
Definition at line 47 of file HttpConfig.cc.
Referenced by HttpConfig::startup().
#define HttpEstablishStaticConfigStringAlloc | ( | _ix, | ||
_n | ||||
) |
REC_EstablishStaticConfigStringAlloc(_ix,_n); \ REC_RegisterConfigUpdateFunc(_n, http_config_cb, NULL)
Definition at line 43 of file HttpConfig.cc.
Referenced by HttpConfig::startup().
#define INT_TO_BOOL | ( | i | ) | ((i) ? 1 : 0); |
Referenced by HttpConfig::reconfigure().
Definition at line 40 of file HttpConfig.cc.
Referenced by HttpConfig::reconfigure().
Definition at line 37 of file HttpConfig.cc.
Referenced by HttpConfig::reconfigure().
Definition at line 162 of file HttpConfig.cc.
References ET_CALL, eventProcessor, HRTIME_SECONDS, http_config_changes, and EventProcessor::schedule_in().
Referenced by http_server_session_sharing_cb().
static bool http_config_enum_read | ( | char const * | name, | |
ConfigEnumPair< T > * | list, | |||
size_t | n, | |||
MgmtByte | value | |||
) | [static] |
Read a string from the configuration and convert it to an enumeration value.
n is the number of entries in the list.
true
if the string is found, false
if not found. If found value is set to the corresponding value in list. Definition at line 104 of file HttpConfig.cc.
References http_config_enum_search(), REC_ERR_OKAY, and RecGetRecordString().
Referenced by HttpConfig::startup().
static bool http_config_enum_search | ( | char const * | key, | |
ConfigEnumPair< T > * | list, | |||
size_t | n, | |||
MgmtByte | value | |||
) | [static] |
Convert a string to an enumeration value.
n is the number of entries in the list.
true
if the string is found, false
if not found. If found value is set to the corresponding value in list. Definition at line 87 of file HttpConfig.cc.
References ConfigEnumPair< T >::_value.
Referenced by http_config_enum_read(), and http_server_session_sharing_cb().
static void http_config_share_server_sessions_bc | ( | HttpConfigParams * | c, | |
MgmtByte | v | |||
) | [static] |
Definition at line 175 of file HttpConfig.cc.
References HttpConfigParams::oride, OverridableHttpConfigParams::server_session_sharing_match, and OverridableHttpConfigParams::server_session_sharing_pool.
Referenced by http_config_share_server_sessions_read_bc(), and http_server_session_sharing_cb().
static void http_config_share_server_sessions_read_bc | ( | HttpConfigParams * | c | ) | [static] |
Definition at line 194 of file HttpConfig.cc.
References http_config_share_server_sessions_bc(), REC_ERR_OKAY, and RecGetRecordByte().
Referenced by HttpConfig::startup().
static int http_server_session_sharing_cb | ( | char const * | name, | |
RecDataT | dtype, | |||
RecData | data, | |||
void * | cookie | |||
) | [static] |
Definition at line 205 of file HttpConfig.cc.
References ARRAY_SIZE, http_config_cb(), http_config_enum_search(), http_config_share_server_sessions_bc(), HttpConfigParams::oride, RecData::rec_int, RecData::rec_string, RECD_INT, RECD_STRING, OverridableHttpConfigParams::server_session_sharing_match, and OverridableHttpConfigParams::server_session_sharing_pool.
Referenced by HttpConfig::startup().
void register_configs | ( | ) |
Definition at line 242 of file HttpConfig.cc.
Referenced by HttpConfig::startup().
void register_stat_callbacks | ( | ) |
Definition at line 247 of file HttpConfig.cc.
References http_background_fill_bytes_aborted_stat, http_background_fill_bytes_completed_stat, http_background_fill_current_count_stat, http_broken_server_connections_stat, http_cache_connection_time_stat, http_cache_deletes_stat, http_cache_hit_fresh_stat, http_cache_hit_ims_stat, http_cache_hit_mem_fresh_stat, http_cache_hit_reval_stat, http_cache_hit_stale_served_stat, http_cache_lookups_stat, http_cache_miss_changed_stat, http_cache_miss_client_no_cache_stat, http_cache_miss_cold_stat, http_cache_miss_ims_stat, http_cache_miss_uncacheable_stat, http_cache_read_error_stat, http_cache_read_errors, http_cache_updates_stat, http_cache_write_errors, http_cache_writes_stat, HTTP_CLEAR_DYN_STAT, http_client_connection_time_stat, http_client_no_cache_requests_stat, http_client_transaction_time_stat, http_client_write_time_stat, http_completed_requests_stat, http_connect_requests_stat, http_current_active_client_connections_stat, http_current_cache_connections_stat, http_current_client_connections_stat, http_current_client_transactions_stat, http_current_icp_raw_transactions_stat, http_current_icp_transactions_stat, http_current_parent_proxy_connections_stat, http_current_parent_proxy_raw_transactions_stat, http_current_parent_proxy_transactions_stat, http_current_server_connections_stat, http_current_server_raw_transactions_stat, http_current_server_transactions_stat, http_delete_requests_stat, http_err_client_abort_count_stat, http_err_client_abort_origin_server_bytes_stat, http_err_client_abort_user_agent_bytes_stat, http_err_connect_fail_count_stat, http_err_connect_fail_origin_server_bytes_stat, http_err_connect_fail_user_agent_bytes_stat, http_extension_method_requests_stat, http_get_requests_stat, http_head_requests_stat, http_icp_raw_transaction_time_stat, http_icp_suggested_lookups_stat, http_icp_transaction_time_stat, http_incoming_requests_stat, http_incoming_responses_stat, http_invalid_client_requests_stat, http_misc_count_stat, http_misc_user_agent_bytes_stat, http_missing_host_hdr_stat, http_options_requests_stat, http_origin_server_request_document_total_size_stat, http_origin_server_request_header_total_size_stat, http_origin_server_response_document_total_size_stat, http_origin_server_response_header_total_size_stat, http_origin_server_speed_bytes_per_sec_100_stat, http_origin_server_speed_bytes_per_sec_100K_stat, http_origin_server_speed_bytes_per_sec_100M_stat, http_origin_server_speed_bytes_per_sec_10K_stat, http_origin_server_speed_bytes_per_sec_10M_stat, http_origin_server_speed_bytes_per_sec_1K_stat, http_origin_server_speed_bytes_per_sec_1M_stat, http_outgoing_requests_stat, http_parent_proxy_connection_time_stat, http_parent_proxy_raw_transaction_time_stat, http_parent_proxy_request_total_bytes_stat, http_parent_proxy_response_total_bytes_stat, http_parent_proxy_transaction_time_stat, http_post_requests_stat, http_purge_requests_stat, http_push_requests_stat, http_pushed_document_total_size_stat, http_pushed_response_header_total_size_stat, http_put_requests_stat, http_request_document_size_100_stat, http_request_document_size_10K_stat, http_request_document_size_1K_stat, http_request_document_size_1M_stat, http_request_document_size_3K_stat, http_request_document_size_5K_stat, http_request_document_size_inf_stat, http_response_document_size_100_stat, http_response_document_size_10K_stat, http_response_document_size_1K_stat, http_response_document_size_1M_stat, http_response_document_size_3K_stat, http_response_document_size_5K_stat, http_response_document_size_inf_stat, http_response_status_100_count_stat, http_response_status_101_count_stat, http_response_status_1xx_count_stat, http_response_status_200_count_stat, http_response_status_201_count_stat, http_response_status_202_count_stat, http_response_status_203_count_stat, http_response_status_204_count_stat, http_response_status_205_count_stat, http_response_status_206_count_stat, http_response_status_2xx_count_stat, http_response_status_300_count_stat, http_response_status_301_count_stat, http_response_status_302_count_stat, http_response_status_303_count_stat, http_response_status_304_count_stat, http_response_status_305_count_stat, http_response_status_307_count_stat, http_response_status_3xx_count_stat, http_response_status_400_count_stat, http_response_status_401_count_stat, http_response_status_402_count_stat, http_response_status_403_count_stat, http_response_status_404_count_stat, http_response_status_405_count_stat, http_response_status_406_count_stat, http_response_status_407_count_stat, http_response_status_408_count_stat, http_response_status_409_count_stat, http_response_status_410_count_stat, http_response_status_411_count_stat, http_response_status_412_count_stat, http_response_status_413_count_stat, http_response_status_414_count_stat, http_response_status_415_count_stat, http_response_status_416_count_stat, http_response_status_4xx_count_stat, http_response_status_500_count_stat, http_response_status_501_count_stat, http_response_status_502_count_stat, http_response_status_503_count_stat, http_response_status_504_count_stat, http_response_status_505_count_stat, http_response_status_5xx_count_stat, http_server_connection_time_stat, http_server_raw_transaction_time_stat, http_server_read_time_stat, http_server_transaction_time_stat, http_tcp_client_refresh_count_stat, http_tcp_client_refresh_origin_server_bytes_stat, http_tcp_client_refresh_user_agent_bytes_stat, http_tcp_expired_miss_count_stat, http_tcp_expired_miss_origin_server_bytes_stat, http_tcp_expired_miss_user_agent_bytes_stat, http_tcp_hit_count_stat, http_tcp_hit_origin_server_bytes_stat, http_tcp_hit_user_agent_bytes_stat, http_tcp_ims_hit_count_stat, http_tcp_ims_hit_origin_server_bytes_stat, http_tcp_ims_hit_user_agent_bytes_stat, http_tcp_ims_miss_count_stat, http_tcp_ims_miss_origin_server_bytes_stat, http_tcp_ims_miss_user_agent_bytes_stat, http_tcp_miss_count_stat, http_tcp_miss_origin_server_bytes_stat, http_tcp_miss_user_agent_bytes_stat, http_tcp_refresh_hit_count_stat, http_tcp_refresh_hit_origin_server_bytes_stat, http_tcp_refresh_hit_user_agent_bytes_stat, http_tcp_refresh_miss_count_stat, http_tcp_refresh_miss_origin_server_bytes_stat, http_tcp_refresh_miss_user_agent_bytes_stat, http_throttled_proxy_only_stat, http_total_client_connections_ipv4_stat, http_total_client_connections_ipv6_stat, http_total_client_connections_stat, http_total_incoming_connections_stat, http_total_parent_proxy_connections_stat, http_total_server_connections_stat, http_total_transactions_think_time_stat, http_total_transactions_time_stat, http_total_x_redirect_stat, http_trace_requests_stat, http_transactions_per_client_con, http_transactions_per_parent_con, http_transactions_per_server_con, http_tunnels_stat, http_ua_msecs_counts_errors_aborts_stat, http_ua_msecs_counts_errors_connect_failed_stat, http_ua_msecs_counts_errors_early_hangups_stat, http_ua_msecs_counts_errors_empty_hangups_stat, http_ua_msecs_counts_errors_other_stat, http_ua_msecs_counts_errors_possible_aborts_stat, http_ua_msecs_counts_errors_pre_accept_hangups_stat, http_ua_msecs_counts_hit_fresh_process_stat, http_ua_msecs_counts_hit_fresh_stat, http_ua_msecs_counts_hit_reval_stat, http_ua_msecs_counts_miss_changed_stat, http_ua_msecs_counts_miss_client_no_cache_stat, http_ua_msecs_counts_miss_cold_stat, http_ua_msecs_counts_miss_uncacheable_stat, http_ua_msecs_counts_other_unclassified_stat, http_user_agent_request_document_total_size_stat, http_user_agent_request_header_total_size_stat, http_user_agent_response_document_total_size_stat, http_user_agent_response_header_total_size_stat, http_user_agent_speed_bytes_per_sec_100_stat, http_user_agent_speed_bytes_per_sec_100K_stat, http_user_agent_speed_bytes_per_sec_100M_stat, http_user_agent_speed_bytes_per_sec_10K_stat, http_user_agent_speed_bytes_per_sec_10M_stat, http_user_agent_speed_bytes_per_sec_1K_stat, http_user_agent_speed_bytes_per_sec_1M_stat, http_websocket_current_active_client_connections_stat, https_incoming_requests_stat, https_total_client_connections_stat, RECD_COUNTER, RECD_FLOAT, RECD_INT, RECP_NON_PERSISTENT, RECP_PERSISTENT, RecRawStatSyncAvg(), RecRawStatSyncCount(), RecRawStatSyncIntMsecsToFloatSeconds(), RecRawStatSyncSum(), RecRegisterRawStat, and RECT_PROCESS.
Referenced by Log::init(), and HttpConfig::startup().
volatile int http_config_changes = 1 [static] |
Definition at line 141 of file HttpConfig.cc.
Referenced by HttpConfigCont::handle_event(), and http_config_cb().
HttpConfigCont* http_config_cont = NULL [static] |
Definition at line 142 of file HttpConfig.cc.
Definition at line 60 of file HttpConfig.cc.
Referenced by HttpTransact::State::record_transaction_stats().
volatile int32_t icp_dynamic_enabled |
Definition at line 1909 of file HttpConfig.cc.
Referenced by HttpTransact::HandleCacheOpenReadHit(), HttpTransact::HandleCacheOpenReadMiss(), init_HttpProxyServer(), and TSHttpIcpDynamicSet().
{ { TS_SERVER_SESSION_SHARING_MATCH_NONE, "none" }, { TS_SERVER_SESSION_SHARING_MATCH_IP, "ip" }, { TS_SERVER_SESSION_SHARING_MATCH_HOST, "host" }, { TS_SERVER_SESSION_SHARING_MATCH_BOTH, "both" } }
Session sharing match types.
Definition at line 115 of file HttpConfig.cc.
{ { TS_SERVER_SESSION_SHARING_POOL_GLOBAL, "global" }, { TS_SERVER_SESSION_SHARING_POOL_THREAD, "thread" } }
Definition at line 124 of file HttpConfig.cc.