Data Structures | Public Member Functions | Static Public Member Functions | Data Fields | Protected Member Functions | Protected Attributes | Friends

HttpSM Class Reference

#include <HttpSM.h>

Inherits Continuation.

Inherited by HttpUpdateSM.

Collaboration diagram for HttpSM:
Collaboration graph
[legend]

Data Structures

struct  History

Public Member Functions

 HttpSM ()
void cleanup ()
virtual void destroy ()
HttpCacheSMget_cache_sm ()
HttpVCTableEntryget_ua_entry ()
void init ()
void attach_client_session (HttpClientSession *client_vc_arg, IOBufferReader *buffer_reader)
void attach_server_session (HttpServerSession *s)
void do_hostdb_update_if_necessary ()
void do_range_setup_if_necessary ()
void do_range_parse (MIMEField *range_field)
void calculate_output_cl (int64_t, int64_t)
void parse_range_and_compare (MIMEField *, int64_t)
void set_ua_half_close_flag ()
void process_hostdb_info (HostDBInfo *r)
void process_srv_info (HostDBInfo *r)
VConnectiondo_transform_open ()
VConnectiondo_post_transform_open ()
int state_api_callback (int event, void *data)
int state_api_callout (int event, void *data)
HttpTunnelget_tunnel ()
void dump_state_on_assert ()
void dump_state_hdr (HTTPHdr *h, const char *s)
void txn_hook_append (TSHttpHookID id, INKContInternal *cont)
void txn_hook_prepend (TSHttpHookID id, INKContInternal *cont)
APIHooktxn_hook_get (TSHttpHookID id)
void add_history_entry (const char *fileline, int event, int reentrant)
void add_cache_sm ()
bool is_private ()
bool is_redirect_required ()
void set_http_schedule (Continuation *)
int get_http_schedule (int event, void *data)
 LINK (HttpSM, debug_link)
bool set_server_session_private (bool private_session)

Static Public Member Functions

static HttpSMallocate ()
static void _instantiate_func (HttpSM *prototype, HttpSM *new_instance)
static void _make_scatter_list (HttpSM *prototype)

Data Fields

int64_t sm_id
unsigned int magic
bool enable_redirection
char * redirect_url
int redirect_url_len
int redirection_tries
int64_t transfered_bytes
bool post_failed
bool debug_on
HttpPluginTunnel_t plugin_tunnel_type
PluginVCCoreplugin_tunnel
HttpTransact::State t_state
HttpClientSessionua_session
BackgroundFill_t background_fill
int client_request_hdr_bytes
int64_t client_request_body_bytes
int server_request_hdr_bytes
int64_t server_request_body_bytes
int server_response_hdr_bytes
int64_t server_response_body_bytes
int client_response_hdr_bytes
int64_t client_response_body_bytes
int cache_response_hdr_bytes
int64_t cache_response_body_bytes
int pushed_response_hdr_bytes
int64_t pushed_response_body_bytes
TransactionMilestones milestones
char const * plugin_tag
int64_t plugin_id
bool hooks_set

Protected Member Functions

void remove_ua_entry ()
void remove_server_entry ()
void start_sub_sm ()
int main_handler (int event, void *data)
int tunnel_handler (int event, void *data)
int tunnel_handler_push (int event, void *data)
int tunnel_handler_post (int event, void *data)
int tunnel_handler_for_partial_post (int event, void *data)
void tunnel_handler_post_or_put (HttpTunnelProducer *p)
int tunnel_handler_100_continue (int event, void *data)
int tunnel_handler_cache_fill (int event, void *data)
int state_read_client_request_header (int event, void *data)
int state_watch_for_client_abort (int event, void *data)
int state_read_push_response_header (int event, void *data)
int state_srv_lookup (int event, void *data)
int state_hostdb_lookup (int event, void *data)
int state_hostdb_reverse_lookup (int event, void *data)
int state_mark_os_down (int event, void *data)
int state_handle_stat_page (int event, void *data)
int state_icp_lookup (int event, void *data)
int state_auth_callback (int event, void *data)
int state_add_to_list (int event, void *data)
int state_remove_from_list (int event, void *data)
int state_congestion_control_lookup (int event, void *data)
int state_remap_request (int event, void *data)
void do_remap_request (bool)
int state_cache_open_read (int event, void *data)
int state_cache_open_write (int event, void *data)
int state_http_server_open (int event, void *data)
int state_raw_http_server_open (int event, void *data)
int state_send_server_request_header (int event, void *data)
int state_acquire_server_read (int event, void *data)
int state_read_server_response_header (int event, void *data)
int state_request_wait_for_transform_read (int event, void *data)
int state_response_wait_for_transform_read (int event, void *data)
int state_common_wait_for_transform_read (HttpTransformInfo *t_info, HttpSMHandler tunnel_handler, int event, void *data)
int tunnel_handler_server (int event, HttpTunnelProducer *p)
int tunnel_handler_ua (int event, HttpTunnelConsumer *c)
int tunnel_handler_ua_push (int event, HttpTunnelProducer *p)
int tunnel_handler_100_continue_ua (int event, HttpTunnelConsumer *c)
int tunnel_handler_cache_write (int event, HttpTunnelConsumer *c)
int tunnel_handler_cache_read (int event, HttpTunnelProducer *p)
int tunnel_handler_post_ua (int event, HttpTunnelProducer *c)
int tunnel_handler_post_server (int event, HttpTunnelConsumer *c)
int tunnel_handler_ssl_producer (int event, HttpTunnelProducer *p)
int tunnel_handler_ssl_consumer (int event, HttpTunnelConsumer *p)
int tunnel_handler_transform_write (int event, HttpTunnelConsumer *c)
int tunnel_handler_transform_read (int event, HttpTunnelProducer *p)
int tunnel_handler_plugin_agent (int event, HttpTunnelConsumer *c)
void do_hostdb_lookup ()
void do_hostdb_reverse_lookup ()
void do_cache_lookup_and_read ()
void do_http_server_open (bool raw=false)
void do_setup_post_tunnel (HttpVC_t to_vc_type)
void do_cache_prepare_write ()
void do_cache_prepare_write_transform ()
void do_cache_prepare_update ()
void do_cache_prepare_action (HttpCacheSM *c_sm, CacheHTTPInfo *object_read_info, bool retry, bool allow_multiple=false)
void do_cache_delete_all_alts (Continuation *cont)
void do_icp_lookup ()
void do_auth_callout ()
void do_api_callout ()
void do_api_callout_internal ()
void do_redirect ()
void redirect_request (const char *redirect_url, const int redirect_len)
bool do_congestion_control_lookup ()
virtual void handle_api_return ()
void handle_server_setup_error (int event, void *data)
void handle_http_server_open ()
void handle_post_failure ()
void mark_host_failure (HostDBInfo *info, time_t time_down)
void mark_server_down_on_client_abort ()
void release_server_session (bool serve_from_cache=false)
void set_ua_abort (HttpTransact::AbortState_t ua_abort, int event)
int write_header_into_buffer (HTTPHdr *h, MIOBuffer *b)
int write_response_header_into_buffer (HTTPHdr *h, MIOBuffer *b)
void setup_blind_tunnel_port ()
void setup_client_header_nca ()
void setup_client_read_request_header ()
void setup_push_read_response_header ()
void setup_server_read_response_header ()
void setup_cache_lookup_complete_api ()
void setup_server_send_request ()
void setup_server_send_request_api ()
void setup_server_transfer ()
void setup_server_transfer_to_cache_only ()
void setup_cache_read_transfer ()
void setup_internal_transfer (HttpSMHandler handler)
void setup_error_transfer ()
void setup_100_continue_transfer ()
void setup_push_transfer_to_cache ()
void setup_transform_to_server_transfer ()
void setup_cache_write_transfer (HttpCacheSM *c_sm, VConnection *source_vc, HTTPInfo *store_info, int64_t skip_bytes, const char *name)
void issue_cache_update ()
void perform_cache_write_action ()
void perform_transform_cache_write_action ()
void perform_nca_cache_action ()
void setup_blind_tunnel (bool send_response_hdr)
HttpTunnelProducersetup_server_transfer_to_transform ()
HttpTunnelProducersetup_transfer_from_transform ()
HttpTunnelProducersetup_cache_transfer_to_transform ()
HttpTunnelProducersetup_transfer_from_transform_to_cache_only ()
void setup_plugin_agents (HttpTunnelProducer *p)
virtual void set_next_state ()
void call_transact_and_set_next_state (TransactEntryFunc_t f)
bool is_http_server_eos_truncation (HttpTunnelProducer *)
bool is_bg_fill_necessary (HttpTunnelConsumer *c)
int find_server_buffer_size ()
int find_http_resp_buffer_size (int64_t cl)
int64_t server_transfer_init (MIOBuffer *buf, int hdr_size)
virtual int kill_this_async_hook (int event, void *data)
void kill_this ()
void update_stats ()
void transform_cleanup (TSHttpHookID hook, HttpTransformInfo *info)
bool is_transparent_passthrough_allowed ()
void plugin_agents_cleanup ()

Protected Attributes

int reentrancy_count
History history [HISTORY_SIZE]
int history_pos
HttpTunnel tunnel
HttpVCTable vc_table
HttpVCTableEntryua_entry
IOBufferReaderua_buffer_reader
IOBufferReaderua_raw_buffer_reader
HttpVCTableEntryserver_entry
HttpServerSessionserver_session
int shared_session_retries
IOBufferReaderserver_buffer_reader
HttpTransformInfo transform_info
HttpTransformInfo post_transform_info
bool has_active_plugin_agents
 Set if plugin client / user agents are active.
HttpCacheSM cache_sm
HttpCacheSM transform_cache_sm
HttpCacheSMsecond_cache_sm
HttpSMHandler default_handler
Actionpending_action
Actionhistorical_action
Continuationschedule_cont
HTTPParser http_parser
HttpTransact::StateMachineAction_t last_action
int(HttpSM::* m_last_state )(int event, void *data)
TSHttpHookID cur_hook_id
APIHookcur_hook
int64_t prev_hook_start_time
int cur_hooks
HttpApiState_t callout_state
HttpAPIHooks api_hooks
bool terminate_sm
bool kill_this_async_done

Friends

class HttpPagesHandler
class CoreUtils

Detailed Description

Definition at line 188 of file HttpSM.h.


Constructor & Destructor Documentation

HttpSM::HttpSM (  ) 

Definition at line 305 of file HttpSM.cc.

References _make_scatter_list(), history, http_parser, and vc_table.


Member Function Documentation

void HttpSM::_instantiate_func ( HttpSM prototype,
HttpSM new_instance 
) [static]

Definition at line 140 of file HttpSM.cc.

References history, ink_assert, scat_count, to, and val.

void HttpSM::_make_scatter_list ( HttpSM prototype  )  [static]

Definition at line 122 of file HttpSM.cc.

References scat_count, to, and val.

Referenced by HttpSM().

void HttpSM::add_cache_sm (  )  [inline]
void HttpSM::add_history_entry ( const char *  fileline,
int  event,
int  reentrant 
) [inline]
HttpSM * HttpSM::allocate (  )  [inline, static]
void HttpSM::attach_client_session ( HttpClientSession client_vc_arg,
IOBufferReader buffer_reader 
)
void HttpSM::attach_server_session ( HttpServerSession s  ) 

Definition at line 5521 of file HttpSM.cc.

References HttpTransact::State::api_txn_active_timeout_value, HttpTransact::State::api_txn_connect_timeout_value, OverridableHttpConfigParams::connect_attempts_timeout, CongestionEntry::connect_timeout(), HttpTransact::State::current, DebugSM, HttpServerSession::do_io_read(), HttpServerSession::do_io_write(), HttpServerSession::get_netvc(), HttpServerSession::get_reader(), HRTIME_MSECONDS, HRTIME_SECONDS, hsm_release_assert, HSS_ACTIVE, HttpTransact::State::http_config_param, http_current_server_transactions_stat, HTTP_INCREMENT_DYN_STAT, HTTP_NO_PLUGIN_TUNNEL, HTTP_WKSIDX_POST, HTTP_WKSIDX_PUT, INT64_MAX, HttpTransact::State::method, Continuation::mutex, HttpVCTable::new_entry(), HttpConfigParams::parent_connect_timeout, HttpTransact::State::parent_info, HttpTransact::State::pCongestionEntry, plugin_tunnel_type, OverridableHttpConfigParams::post_connect_attempts_timeout, HttpServerSession::private_session, HttpServerSession::read_buffer, HttpVCTableEntry::read_vio, server_buffer_reader, server_entry, server_session, HttpServerSession::server_trans_stat, NetVConnection::set_active_timeout(), NetVConnection::set_inactivity_timeout(), HttpServerSession::state, t_state, HttpServerSession::transact_count, OverridableHttpConfigParams::transaction_active_timeout_out, HttpTransact::State::txn_conf, HttpVCTableEntry::vc, HttpVCTableEntry::vc_handler, vc_table, and HttpVCTableEntry::vc_type.

Referenced by HttpSessionManager::acquire_session(), do_http_server_open(), and state_http_server_open().

void HttpSM::calculate_output_cl ( int64_t  content_length,
int64_t  num_chars 
)
void HttpSM::call_transact_and_set_next_state ( TransactEntryFunc_t  f  )  [protected]
void HttpSM::cleanup ( void   ) 
void HttpSM::destroy (  )  [virtual]

Reimplemented in HttpUpdateSM.

Definition at line 368 of file HttpSM.cc.

References cleanup(), and httpSMAllocator.

Referenced by kill_this(), and SDK_API_OVERRIDABLE_CONFIGS().

void HttpSM::do_api_callout (  )  [inline, protected]
void HttpSM::do_api_callout_internal (  )  [protected]
void HttpSM::do_auth_callout (  )  [protected]
void HttpSM::do_cache_delete_all_alts ( Continuation cont  )  [protected]
void HttpSM::do_cache_lookup_and_read (  )  [protected]
void HttpSM::do_cache_prepare_action ( HttpCacheSM c_sm,
CacheHTTPInfo object_read_info,
bool  retry,
bool  allow_multiple = false 
) [protected]
void HttpSM::do_cache_prepare_update (  )  [protected]
void HttpSM::do_cache_prepare_write (  )  [inline, protected]
void HttpSM::do_cache_prepare_write_transform (  )  [inline, protected]
bool HttpSM::do_congestion_control_lookup (  )  [protected]
void HttpSM::do_hostdb_lookup (  )  [protected]
void HttpSM::do_hostdb_reverse_lookup (  )  [protected]
void HttpSM::do_hostdb_update_if_necessary (  ) 
void HttpSM::do_http_server_open ( bool  raw = false  )  [protected]

Definition at line 4471 of file HttpSM.cc.

References HttpSessionManager::acquire_session(), ACTION_RESULT_DONE, NetVCOptions::addr_binding, HttpTransact::State::api_server_addr_set, ats_ip_addr_port_eq(), ats_ip_family_name(), ats_ip_nptop(), ats_ip_ntop(), ats_ip_port_cast(), attach_server_session(), HttpClientSession::attach_server_session(), HttpTransact::State::client_info, CONGEST_INCREMENT_DYN_STAT, congested_on_F_stat, congested_on_M_stat, HttpTransact::State::congestion_congested_or_failed, CONGESTION_EVENT_CONGESTED_ON_F, CONGESTION_EVENT_CONGESTED_ON_M, OverridableHttpConfigParams::connect_attempts_timeout, NetProcessor::connect_re(), PluginVCCore::connect_re(), NetProcessor::connect_s(), CongestionEntry::connect_timeout(), connections, HttpTransact::State::current, DebugSM, eventProcessor, NetVCOptions::f_blocking_connect, CongestionEntry::F_congested(), HttpClientSession::f_outbound_transparent, HttpClientSession::get_netvc(), NetVConnection::get_remote_port(), HttpClientSession::get_server_session(), ConnectionCount::getCount(), ConnectionCount::getInstance(), handle_http_server_open(), Continuation::handleEvent(), HttpTransact::State::hdr_info, historical_action, HRTIME_MSECONDS, HSM_DONE, HSM_NOT_FOUND, hsm_release_assert, HSM_RETRY, HttpTransact::State::http_config_param, http_current_server_connections_stat, HTTP_READ_GLOBAL_DYN_SUM, HTTP_WKSIDX_CONNECT, HTTP_WKSIDX_POST, HTTP_WKSIDX_PUT, httpSessionManager, INET6_ADDRPORTSTRLEN, ink_assert, ink_get_hrtime(), ink_hrtime_to_sec(), ink_release_assert, NetVCOptions::ip_family, is_private(), HttpTransact::State::is_websocket, IpAddr::isValid(), OverridableHttpConfigParams::keep_alive_post_out, NetVCOptions::local_ip, NetVCOptions::local_port, CongestionEntry::M_congested(), HttpTransact::State::method, milestones, netProcessor, OverridableHttpConfigParams::origin_max_connections, HttpClientSession::outbound_ip4, HttpClientSession::outbound_ip6, HttpClientSession::outbound_port, HttpConfigParams::parent_connect_timeout, HttpTransact::State::parent_info, HttpTransact::State::pCongestionEntry, pending_action, plugin_tunnel, OverridableHttpConfigParams::post_connect_attempts_timeout, CongestionEntry::proxy_retry(), HttpSessionManager::purge_keepalives(), HttpServerSession::release(), HttpTransact::State::req_flavor, HttpTransact::REQ_FLAVOR_REVPROXY, HttpTransact::REQ_FLAVOR_SCHEDULED_UPDATE, IpEndpoint::sa, EventProcessor::schedule_in(), HttpTransact::State::scheme, TransactionMilestones::server_connect, server_entry, TransactionMilestones::server_first_connect, HttpServerSession::server_ip, HttpConfigParams::server_max_connections, server_session, OverridableHttpConfigParams::server_session_sharing_match, NetVCOptions::set_sni_servername(), NetVCOptions::set_sock_param(), sm_id, OverridableHttpConfigParams::sock_option_flag_out, OverridableHttpConfigParams::sock_packet_mark_out, OverridableHttpConfigParams::sock_packet_tos_out, OverridableHttpConfigParams::sock_recv_buffer_size_out, OverridableHttpConfigParams::sock_send_buffer_size_out, sslNetProcessor, CongestionEntry::stat_inc_F(), CongestionEntry::stat_inc_M(), HttpServerSession::state, t_state, TS_SERVER_SESSION_SHARING_MATCH_NONE, HttpTransact::State::txn_conf, ua_entry, ua_session, URL_WKSIDX_HTTPS, and HttpConfigParams::use_client_source_port.

Referenced by set_next_state(), and state_http_server_open().

void HttpSM::do_icp_lookup (  )  [protected]
VConnection * HttpSM::do_post_transform_open (  ) 
void HttpSM::do_range_parse ( MIMEField range_field  ) 
void HttpSM::do_range_setup_if_necessary (  ) 
void HttpSM::do_redirect (  )  [protected]
void HttpSM::do_remap_request ( bool  run_inline  )  [protected]
void HttpSM::do_setup_post_tunnel ( HttpVC_t  to_vc_type  )  [protected]
VConnection * HttpSM::do_transform_open (  ) 
void HttpSM::dump_state_hdr ( HTTPHdr h,
const char *  s 
)
void HttpSM::dump_state_on_assert (  ) 
int HttpSM::find_http_resp_buffer_size ( int64_t  cl  )  [protected]
int HttpSM::find_server_buffer_size (  )  [inline, protected]
HttpCacheSM & HttpSM::get_cache_sm (  )  [inline]
int HttpSM::get_http_schedule ( int  event,
void *  data 
)
HttpTunnel* HttpSM::get_tunnel (  )  [inline]

Definition at line 248 of file HttpSM.h.

References tunnel.

HttpVCTableEntry * HttpSM::get_ua_entry (  )  [inline]

Definition at line 546 of file HttpSM.h.

References ua_entry.

void HttpSM::handle_api_return (  )  [protected, virtual]

Reimplemented in HttpUpdateSM.

Definition at line 1478 of file HttpSM.cc.

References HttpTransact::State::api_cleanup_cache_read, HttpTransact::State::api_next_action, HttpTransact::State::api_release_server_session, HttpTransact::State::api_update_cached_object, HttpTransact::State::cache_info, cache_sm, HttpCacheSM::cache_write_vc, call_transact_and_set_next_state(), HttpTransact::State::client_info, HttpCacheSM::close_read(), HttpTransact::State::did_upgrade_succeed, EVENT_NONE, HttpClientSession::get_netvc(), HttpTransact::HandleRequest(), HRTIME_SECONDS, HTTP_INCREMENT_DYN_STAT, http_websocket_current_active_client_connections_stat, ink_release_assert, HttpTransact::State::is_websocket, HttpTransact::State::next_action, perform_cache_write_action(), perform_transform_cache_write_action(), release_server_session(), HttpTransact::State::request_sent_time, HttpTransact::State::response_received_time, NetVConnection::set_inactivity_timeout(), setup_blind_tunnel(), setup_blind_tunnel_port(), setup_cache_read_transfer(), setup_client_read_request_header(), setup_internal_transfer(), setup_server_send_request(), setup_server_transfer(), setup_transfer_from_transform(), HttpTransact::SM_ACTION_API_CACHE_LOOKUP_COMPLETE, HttpTransact::SM_ACTION_API_OS_DNS, HttpTransact::SM_ACTION_API_POST_REMAP, HttpTransact::SM_ACTION_API_PRE_REMAP, HttpTransact::SM_ACTION_API_READ_CACHE_HDR, HttpTransact::SM_ACTION_API_READ_REQUEST_HDR, HttpTransact::SM_ACTION_API_READ_RESPONSE_HDR, HttpTransact::SM_ACTION_API_SEND_REQUEST_HDR, HttpTransact::SM_ACTION_API_SEND_RESPONSE_HDR, HttpTransact::SM_ACTION_API_SM_SHUTDOWN, HttpTransact::SM_ACTION_API_SM_START, HttpTransact::SM_ACTION_INTERNAL_CACHE_DELETE, HttpTransact::SM_ACTION_INTERNAL_CACHE_NOOP, HttpTransact::SM_ACTION_INTERNAL_CACHE_UPDATE_HEADERS, HttpTransact::SM_ACTION_INTERNAL_CACHE_WRITE, HttpTransact::SM_ACTION_REDIRECT_READ, HttpTransact::SM_ACTION_SEND_ERROR_CACHE_NOOP, HttpTransact::SM_ACTION_SERVE_FROM_CACHE, HttpTransact::SM_ACTION_SERVER_READ, HttpTransact::SM_ACTION_TRANSFORM_READ, state_remove_from_list(), t_state, OverridableHttpConfigParams::transaction_no_activity_timeout_in, transform_cache_sm, HttpProxyPort::TRANSPORT_BLIND_TUNNEL, tunnel, tunnel_handler(), tunnel_handler_cache_fill(), HttpTunnel::tunnel_run(), HttpTransact::State::txn_conf, ua_session, unlikely, and HttpTransact::UPDATE_CACHED_OBJECT_PREPARE.

Referenced by do_api_callout(), do_api_callout_internal(), set_next_state(), and state_api_callout().

void HttpSM::handle_http_server_open (  )  [protected]
void HttpSM::handle_post_failure (  )  [protected]
void HttpSM::handle_server_setup_error ( int  event,
void *  data 
) [protected]
void HttpSM::init ( void   ) 
bool HttpSM::is_bg_fill_necessary ( HttpTunnelConsumer c  )  [protected]
bool HttpSM::is_http_server_eos_truncation ( HttpTunnelProducer p  )  [protected]
bool HttpSM::is_private (  )  [inline]
bool HttpSM::is_redirect_required (  )  [inline]
bool HttpSM::is_transparent_passthrough_allowed (  )  [inline, protected]
void HttpSM::issue_cache_update (  )  [protected]
void HttpSM::kill_this (  )  [protected]
int HttpSM::kill_this_async_hook ( int  event,
void *  data 
) [protected, virtual]

Reimplemented in HttpUpdateSM.

Definition at line 503 of file HttpSM.cc.

References kill_this_async_done, and terminate_sm.

Referenced by state_remove_from_list().

HttpSM::LINK ( HttpSM  ,
debug_link   
)
int HttpSM::main_handler ( int  event,
void *  data 
) [protected]
void HttpSM::mark_host_failure ( HostDBInfo info,
time_t  time_down 
) [protected]
void HttpSM::mark_server_down_on_client_abort (  )  [protected]
void HttpSM::parse_range_and_compare ( MIMEField field,
int64_t  content_length 
)
void HttpSM::perform_cache_write_action (  )  [protected]
void HttpSM::perform_nca_cache_action (  )  [protected]
void HttpSM::perform_transform_cache_write_action (  )  [protected]
void HttpSM::plugin_agents_cleanup (  )  [protected]
void HttpSM::process_hostdb_info ( HostDBInfo r  ) 
void HttpSM::process_srv_info ( HostDBInfo r  ) 
void HttpSM::redirect_request ( const char *  redirect_url,
const int  redirect_len 
) [protected]
void HttpSM::release_server_session ( bool  serve_from_cache = false  )  [protected]
void HttpSM::remove_server_entry (  )  [inline, protected]

Definition at line 566 of file HttpSM.h.

References HttpVCTable::remove_entry(), server_entry, and vc_table.

void HttpSM::remove_ua_entry (  )  [inline, protected]

Definition at line 559 of file HttpSM.h.

References HttpVCTable::remove_entry(), ua_entry, and vc_table.

int64_t HttpSM::server_transfer_init ( MIOBuffer buf,
int  hdr_size 
) [protected]
void HttpSM::set_http_schedule ( Continuation contp  ) 

Definition at line 7584 of file HttpSM.cc.

References get_http_schedule(), HTTP_SM_SET_DEFAULT_HANDLER, and schedule_cont.

Referenced by TSHttpSchedule().

void HttpSM::set_next_state (  )  [protected, virtual]

Reimplemented in HttpUpdateSM.

Definition at line 6865 of file HttpSM.cc.

References ACTION_RESULT_DONE, HttpTransact::State::api_info, HttpTransact::State::api_next_action, HttpTransact::State::api_server_addr_set, HttpTransact::State::api_update_cached_object, HostDBInfo::app, ats_ip_copy(), ats_ip_ntop(), ats_is_ip(), HttpTransact::CACHE_DO_SERVE, HttpTransact::CACHE_DO_SERVE_AND_DELETE, HttpTransact::CACHE_DO_SERVE_AND_UPDATE, HttpTransact::State::cache_info, HttpTransact::CACHE_PREPARE_TO_WRITE, cache_sm, _HttpApiInfo::cache_untransformed, HttpCacheSM::cache_write_vc, call_transact_and_set_next_state(), NetVConnection::cancel_inactivity_timeout(), HttpVCTable::cleanup_entry(), HttpTransact::State::client_info, HttpCacheSM::close_read(), HttpTransact::State::congest_saved_next_action, congestionControlEnabled, HttpTransact::State::cop_test_page, DebugSM, HttpTransact::State::dns_info, do_api_callout(), do_api_callout_internal(), do_cache_delete_all_alts(), do_cache_lookup_and_read(), do_cache_prepare_update(), do_cache_prepare_write(), do_cache_prepare_write_transform(), do_congestion_control_lookup(), do_hostdb_lookup(), do_hostdb_reverse_lookup(), do_hostdb_update_if_necessary(), do_http_server_open(), do_icp_lookup(), do_redirect(), do_remap_request(), HttpCacheSM::end_both(), RemapProcessor::finish_remap(), HttpTransact::State::first_dns_lookup, NetVConnection::get_local_addr(), HttpClientSession::get_netvc(), handle_api_return(), StatPagesManager::handle_http(), HttpTransact::HandleFiltering(), HttpTransact::State::hdr_info, historical_action, hooks_set, HttpTransact::State::host_db_info, HttpTransact::State::http_config_param, HostDBApplicationInfo::http_data, HTTP_SERVER_VC, HTTP_SM_SET_DEFAULT_HANDLER, HTTP_TYPE_RESPONSE, HostDBApplicationInfo::http_server_attr::http_version, HostDBApplicationInfo::HTTP_VERSION_09, HostDBApplicationInfo::HTTP_VERSION_10, HostDBApplicationInfo::HTTP_VERSION_11, HttpVCTableEntry::in_tunnel, ink_assert, ink_release_assert, HostDBInfo::ip, is_debug_tag_set, is_redirect_required(), issue_cache_update(), HttpTransact::State::next_action, HttpConfigParams::no_dns_forward_to_parent, HttpTransact::ORIGIN_SERVER, HttpTransact::_DNSLookupInfo::OS_ADDR_TRY_CLIENT, HttpTransact::_DNSLookupInfo::OS_ADDR_TRY_DEFAULT, HttpTransact::State::parent_result, PARENT_SPECIFIED, PARENT_UNDEFINED, pending_action, perform_cache_write_action(), ParentResult::r, release_server_session(), remapProcessor, server_entry, HttpTransact::State::server_info, server_session, setup_100_continue_transfer(), setup_blind_tunnel(), setup_cache_transfer_to_transform(), setup_error_transfer(), setup_push_read_response_header(), setup_push_transfer_to_cache(), setup_server_read_response_header(), setup_server_transfer_to_transform(), HttpTransact::SM_ACTION_API_CACHE_LOOKUP_COMPLETE, HttpTransact::SM_ACTION_API_OS_DNS, HttpTransact::SM_ACTION_API_POST_REMAP, HttpTransact::SM_ACTION_API_PRE_REMAP, HttpTransact::SM_ACTION_API_READ_CACHE_HDR, HttpTransact::SM_ACTION_API_READ_REQUEST_HDR, HttpTransact::SM_ACTION_API_READ_RESPONSE_HDR, HttpTransact::SM_ACTION_API_SEND_REQUEST_HDR, HttpTransact::SM_ACTION_API_SEND_RESPONSE_HDR, HttpTransact::SM_ACTION_CACHE_ISSUE_UPDATE, HttpTransact::SM_ACTION_CACHE_ISSUE_WRITE, HttpTransact::SM_ACTION_CACHE_ISSUE_WRITE_TRANSFORM, HttpTransact::SM_ACTION_CACHE_LOOKUP, HttpTransact::SM_ACTION_CACHE_PREPARE_UPDATE, HttpTransact::SM_ACTION_CONTINUE, HttpTransact::SM_ACTION_DNS_LOOKUP, HttpTransact::SM_ACTION_DNS_REVERSE_LOOKUP, HttpTransact::SM_ACTION_ICP_QUERY, HttpTransact::SM_ACTION_INTERNAL_100_RESPONSE, HttpTransact::SM_ACTION_INTERNAL_CACHE_DELETE, HttpTransact::SM_ACTION_INTERNAL_CACHE_NOOP, HttpTransact::SM_ACTION_INTERNAL_CACHE_UPDATE_HEADERS, HttpTransact::SM_ACTION_INTERNAL_CACHE_WRITE, HttpTransact::SM_ACTION_INTERNAL_REQUEST, HttpTransact::SM_ACTION_ORIGIN_SERVER_OPEN, HttpTransact::SM_ACTION_ORIGIN_SERVER_RAW_OPEN, HttpTransact::SM_ACTION_ORIGIN_SERVER_RR_MARK_DOWN, HttpTransact::SM_ACTION_POST_REMAP_SKIP, HttpTransact::SM_ACTION_READ_PUSH_HDR, HttpTransact::SM_ACTION_REMAP_REQUEST, HttpTransact::SM_ACTION_SEND_ERROR_CACHE_NOOP, HttpTransact::SM_ACTION_SERVE_FROM_CACHE, HttpTransact::SM_ACTION_SERVER_PARSE_NEXT_HDR, HttpTransact::SM_ACTION_SERVER_READ, HttpTransact::SM_ACTION_SSL_TUNNEL, HttpTransact::SM_ACTION_STORE_PUSH_BODY, HttpTransact::SM_ACTION_TRANSFORM_READ, HttpTransact::SM_ACTION_UNDEFINED, sm_id, HttpTransact::State::source, state_cache_open_read(), state_cache_open_write(), state_congestion_control_lookup(), state_handle_stat_page(), state_hostdb_lookup(), state_hostdb_reverse_lookup(), state_http_server_open(), state_icp_lookup(), HttpTransact::State::state_machine, state_mark_os_down(), state_raw_http_server_open(), state_remap_request(), statPagesManager, t_state, transform_cache_sm, transform_info, tunnel, HttpTunnel::tunnel_run(), ua_session, HttpTransact::UNDEFINED_LOOKUP, HttpTransact::UPDATE_CACHED_OBJECT_CONTINUE, HttpTransact::UPDATE_CACHED_OBJECT_ERROR, HttpTransact::URL_REMAP_FOR_OS, url_remap_mode, HttpTransact::State::url_remap_success, HttpConfigParams::use_client_target_addr, RemapProcessor::using_separate_thread(), HttpTransformInfo::vc, vc_table, and HttpVCTableEntry::vc_type.

Referenced by call_transact_and_set_next_state(), and state_congestion_control_lookup().

bool HttpSM::set_server_session_private ( bool  private_session  ) 
void HttpSM::set_ua_abort ( HttpTransact::AbortState_t  ua_abort,
int  event 
) [protected]
void HttpSM::set_ua_half_close_flag (  ) 
void HttpSM::setup_100_continue_transfer (  )  [protected]
void HttpSM::setup_blind_tunnel ( bool  send_response_hdr  )  [protected]
void HttpSM::setup_blind_tunnel_port (  )  [protected]
void HttpSM::setup_cache_lookup_complete_api (  )  [inline, protected]

Definition at line 2446 of file HttpSM.cc.

References HttpTransact::State::api_next_action, do_api_callout(), and t_state.

Referenced by state_cache_open_read().

void HttpSM::setup_cache_read_transfer (  )  [protected]
HttpTunnelProducer * HttpSM::setup_cache_transfer_to_transform (  )  [protected]
void HttpSM::setup_cache_write_transfer ( HttpCacheSM c_sm,
VConnection source_vc,
HTTPInfo store_info,
int64_t  skip_bytes,
const char *  name 
) [protected]
void HttpSM::setup_client_header_nca (  )  [protected]
void HttpSM::setup_client_read_request_header (  )  [protected]
void HttpSM::setup_error_transfer (  )  [protected]
void HttpSM::setup_internal_transfer ( HttpSMHandler  handler  )  [protected]
void HttpSM::setup_plugin_agents ( HttpTunnelProducer p  )  [protected]
void HttpSM::setup_push_read_response_header (  )  [protected]
void HttpSM::setup_push_transfer_to_cache (  )  [protected]
void HttpSM::setup_server_read_response_header (  )  [protected]
void HttpSM::setup_server_send_request (  )  [protected]
void HttpSM::setup_server_send_request_api (  )  [protected]
void HttpSM::setup_server_transfer (  )  [protected]
void HttpSM::setup_server_transfer_to_cache_only (  )  [protected]
HttpTunnelProducer * HttpSM::setup_server_transfer_to_transform (  )  [protected]
HttpTunnelProducer * HttpSM::setup_transfer_from_transform (  )  [protected]
HttpTunnelProducer * HttpSM::setup_transfer_from_transform_to_cache_only (  )  [protected]
void HttpSM::setup_transform_to_server_transfer (  )  [protected]
void HttpSM::start_sub_sm (  )  [protected]
int HttpSM::state_acquire_server_read ( int  event,
void *  data 
) [protected]
int HttpSM::state_add_to_list ( int  event,
void *  data 
) [protected]
int HttpSM::state_api_callback ( int  event,
void *  data 
)
int HttpSM::state_api_callout ( int  event,
void *  data 
)

Definition at line 1281 of file HttpSM.cc.

References api_hooks, HttpTransact::State::api_http_sm_shutdown, HttpTransact::State::api_modifiable_cached_resp, HttpTransact::State::api_next_action, HttpTransact::State::api_update_cached_object, HttpTransact::State::cache_info, cache_sm, call_transact_and_set_next_state(), callout_state, HttpCacheSM::close_read(), HttpTransact::CONNECTION_ALIVE, cur_hook, cur_hook_id, cur_hooks, HttpTransact::State::current, DebugSM, do_api_callout(), do_cache_prepare_update(), do_redirect(), EVENT_INTERVAL, EVENT_NONE, FeatureAPIHooks< ID, N >::get(), HttpDebugNames::get_api_hook_name(), handle_api_return(), HttpTransact::HandleApiErrorJump(), HttpTransact::HandleResponse(), HRTIME_MSECONDS, HTTP_API_CONTINUE, HTTP_API_DEFERED_CLOSE, HTTP_API_DEFERED_SERVER_ERROR, HTTP_API_ERROR, HTTP_API_IN_CALLOUT, HTTP_API_NO_CALLOUT, http_global_hooks, HTTP_SM_SET_DEFAULT_HANDLER, HTTP_TUNNEL_EVENT_DONE, ink_assert, ink_release_assert, APIHook::invoke(), APIHook::m_cont, Continuation::mutex, MUTEX_TAKE_TRY_LOCK, Mutex_unlock(), APIHook::next(), pending_action, release_server_session(), HttpTransact::SM_ACTION_API_SEND_REQUEST_HDR, HttpTransact::SM_ACTION_API_SEND_RESPONSE_HDR, HttpTransact::SM_ACTION_API_SM_SHUTDOWN, sm_id, HttpTransact::State::squid_codes, ProxyClientSession::ssn_hook_get(), state_common_wait_for_transform_read(), STATE_ENTER, t_state, terminate_sm, transform_cache_sm, transform_info, TS_EVENT_HTTP_READ_REQUEST_HDR, TS_HTTP_LAST_HOOK, TS_HTTP_TXN_CLOSE_HOOK, tunnel_handler(), ua_session, and HttpTransact::UPDATE_CACHED_OBJECT_PREPARE.

Referenced by do_api_callout_internal(), and state_api_callback().

int HttpSM::state_auth_callback ( int  event,
void *  data 
) [protected]
int HttpSM::state_cache_open_read ( int  event,
void *  data 
) [protected]
int HttpSM::state_cache_open_write ( int  event,
void *  data 
) [protected]
int HttpSM::state_common_wait_for_transform_read ( HttpTransformInfo t_info,
HttpSMHandler  tunnel_handler,
int  event,
void *  data 
) [protected]
int HttpSM::state_congestion_control_lookup ( int  event,
void *  data 
) [protected]
int HttpSM::state_handle_stat_page ( int  event,
void *  data 
) [protected]
int HttpSM::state_hostdb_lookup ( int  event,
void *  data 
) [protected]
int HttpSM::state_hostdb_reverse_lookup ( int  event,
void *  data 
) [protected]
int HttpSM::state_http_server_open ( int  event,
void *  data 
) [protected]

Definition at line 1600 of file HttpSM.cc.

References ats_ip_copy(), ats_ip_nptop(), ats_ip_port_cast(), attach_server_session(), call_transact_and_set_next_state(), HttpTransact::State::client_info, CONGESTION_EVENT_CONGESTED_ON_F, CONGESTION_EVENT_CONGESTED_ON_M, HttpTransact::State::current, Debug, DebugSM, do_http_server_open(), HttpServerSession::enable_origin_connection_limiting, Error, EVENT_INTERVAL, handle_http_server_open(), HttpTransact::HandleResponse(), HttpTransact::State::http_config_param, http_current_parent_proxy_connections_stat, HTTP_INCREMENT_DYN_STAT, http_total_parent_proxy_connections_stat, httpServerSessionAllocator, ink_get_hrtime(), ink_release_assert, is_debug_tag_set, milestones, Continuation::mutex, NET_EVENT_OPEN, NET_EVENT_OPEN_FAILED, HttpServerSession::new_connection(), OverridableHttpConfigParams::origin_max_connections, HttpConfigParams::origin_min_keep_alive_connections, HttpTransact::PARENT_PROXY, pending_action, TransactionMilestones::server_connect_end, HttpTransact::State::server_info, HttpServerSession::server_ip, OverridableHttpConfigParams::server_session_sharing_match, OverridableHttpConfigParams::server_session_sharing_pool, HttpServerSession::sharing_match, HttpServerSession::sharing_pool, sm_id, HttpServerSession::state, STATE_ENTER, t_state, terminate_sm, THREAD_ALLOC_INIT, HttpServerSession::to_parent_proxy, TS_SERVER_SESSION_SHARING_POOL_THREAD, HttpTransact::State::txn_conf, and VC_EVENT_ERROR.

Referenced by set_next_state(), and state_congestion_control_lookup().

int HttpSM::state_icp_lookup ( int  event,
void *  data 
) [protected]
int HttpSM::state_mark_os_down ( int  event,
void *  data 
) [protected]
int HttpSM::state_raw_http_server_open ( int  event,
void *  data 
) [protected]
int HttpSM::state_read_client_request_header ( int  event,
void *  data 
) [protected]

Definition at line 615 of file HttpSM.cc.

References HttpTransact::ABORTED, HttpTransact::BadRequest(), call_transact_and_set_next_state(), HttpVCTable::cleanup_entry(), HttpTransact::State::client_info, client_request_hdr_bytes, IOBufferReader::dealloc(), DebugSM, NetVConnection::do_io_read(), enable_redirection, HttpVCTableEntry::eos, IOBufferReader::get_current_block(), HttpClientSession::get_netvc(), HttpTransact::State::hdr_info, HRTIME_SECONDS, http_current_active_client_connections_stat, HTTP_INCREMENT_DYN_STAT, http_parser, http_parser_clear(), HTTP_WKSIDX_POST, HTTP_WKSIDX_TRACE, ink_assert, ink_get_hrtime(), is_transparent_passthrough_allowed(), HttpClientSession::m_active, HttpConfig::m_master, HttpTransact::State::method, milestones, HttpTransact::ModifyRequest(), VIO::nbytes, VIO::ndone, PARSE_CONT, PARSE_DONE, PARSE_ERROR, HttpConfigParams::post_copy_size, HttpVCTableEntry::read_vio, HttpConfigParams::redirection_enabled, VIO::reenable(), OverridableHttpConfigParams::request_hdr_max_size, server_entry, server_session, NetVConnection::set_inactivity_timeout(), set_ua_abort(), setup_blind_tunnel_port(), sm_id, STATE_ENTER, t_state, terminate_sm, OverridableHttpConfigParams::transaction_no_activity_timeout_in, HttpTransact::State::transparent_passthrough, HttpTransact::State::txn_conf, ua_buffer_reader, ua_entry, ua_raw_buffer_reader, TransactionMilestones::ua_read_header_done, ua_session, VC_EVENT_ACTIVE_TIMEOUT, VC_EVENT_EOS, VC_EVENT_ERROR, VC_EVENT_INACTIVITY_TIMEOUT, VC_EVENT_READ_COMPLETE, VC_EVENT_READ_READY, HttpVCTableEntry::vc_handler, vc_table, and IOBufferBlock::write_avail().

Referenced by setup_client_read_request_header().

int HttpSM::state_read_push_response_header ( int  event,
void *  data 
) [protected]
int HttpSM::state_read_server_response_header ( int  event,
void *  data 
) [protected]

Definition at line 1700 of file HttpSM.cc.

References HttpTransact::State::api_next_action, HttpTransact::State::api_txn_no_activity_timeout_value, call_transact_and_set_next_state(), NetVConnection::cancel_inactivity_timeout(), HttpTransact::State::current, HttpTunnel::deallocate_redirect_postdata_buffers(), DebugSM, do_api_callout(), enable_redirection, HttpVCTableEntry::eos, HttpClientSession::get_netvc(), HttpServerSession::get_netvc(), handle_server_setup_error(), HttpTransact::HandleResponse(), HttpTransact::State::hdr_info, HRTIME_MSECONDS, HRTIME_SECONDS, http_parser, http_parser_clear(), HTTP_TYPE_RESPONSE, ink_assert, ink_get_hrtime(), HttpConfig::m_master, milestones, MIME_FIELD_LOCATION, MIME_LEN_LOCATION, VIO::nbytes, VIO::ndone, PARSE_CONT, PARSE_DONE, PARSE_ERROR, HttpVCTableEntry::read_vio, redirection_tries, VIO::reenable(), OverridableHttpConfigParams::response_hdr_max_size, server_buffer_reader, server_entry, TransactionMilestones::server_first_read, TransactionMilestones::server_read_header_done, server_response_hdr_bytes, server_session, NetVConnection::set_inactivity_timeout(), STATE_ENTER, HttpTransact::STATE_UNDEFINED, t_state, HttpServerSession::transact_count, HttpTransact::State::transact_return_point, OverridableHttpConfigParams::transaction_no_activity_timeout_out, tunnel, HttpTransact::State::txn_conf, ua_session, VC_EVENT_ACTIVE_TIMEOUT, VC_EVENT_EOS, VC_EVENT_ERROR, VC_EVENT_INACTIVITY_TIMEOUT, VC_EVENT_READ_COMPLETE, and VC_EVENT_READ_READY.

Referenced by setup_server_read_response_header().

int HttpSM::state_remap_request ( int  event,
void *  data 
) [protected]
int HttpSM::state_remove_from_list ( int  event,
void *  data 
) [protected]
int HttpSM::state_request_wait_for_transform_read ( int  event,
void *  data 
) [protected]
int HttpSM::state_response_wait_for_transform_read ( int  event,
void *  data 
) [protected]
int HttpSM::state_send_server_request_header ( int  event,
void *  data 
) [protected]
int HttpSM::state_srv_lookup ( int  event,
void *  data 
) [protected]
int HttpSM::state_watch_for_client_abort ( int  event,
void *  data 
) [protected]
void HttpSM::transform_cleanup ( TSHttpHookID  hook,
HttpTransformInfo info 
) [inline, protected]
int HttpSM::tunnel_handler ( int  event,
void *  data 
) [protected]
int HttpSM::tunnel_handler_100_continue ( int  event,
void *  data 
) [protected]
int HttpSM::tunnel_handler_100_continue_ua ( int  event,
HttpTunnelConsumer c 
) [protected]
int HttpSM::tunnel_handler_cache_fill ( int  event,
void *  data 
) [protected]
int HttpSM::tunnel_handler_cache_read ( int  event,
HttpTunnelProducer p 
) [protected]
int HttpSM::tunnel_handler_cache_write ( int  event,
HttpTunnelConsumer c 
) [protected]
int HttpSM::tunnel_handler_for_partial_post ( int  event,
void *  data 
) [protected]
int HttpSM::tunnel_handler_plugin_agent ( int  event,
HttpTunnelConsumer c 
) [protected]
int HttpSM::tunnel_handler_post ( int  event,
void *  data 
) [protected]
void HttpSM::tunnel_handler_post_or_put ( HttpTunnelProducer p  )  [protected]
int HttpSM::tunnel_handler_post_server ( int  event,
HttpTunnelConsumer c 
) [protected]
int HttpSM::tunnel_handler_post_ua ( int  event,
HttpTunnelProducer c 
) [protected]
int HttpSM::tunnel_handler_push ( int  event,
void *  data 
) [protected]
int HttpSM::tunnel_handler_server ( int  event,
HttpTunnelProducer p 
) [protected]

Definition at line 2810 of file HttpSM.cc.

References HttpTunnel::abort_cache_write_finish_others(), HttpServerSession::attach_hostname(), HttpClientSession::attach_server_session(), HttpConfigParams::attach_server_session_to_client, background_fill, BACKGROUND_FILL_COMPLETED, BACKGROUND_FILL_STARTED, HttpTunnel::chain_abort_all(), HttpTunnelProducer::chunked_handler, HttpTransact::State::client_info, HttpTransact::State::current, Debug, DebugSM, HttpTunnelProducer::do_chunked_passthru, HttpTunnelProducer::do_dechunking, VConnection::do_io_close(), HttpVCTableEntry::eos, HttpClientSession::f_outbound_transparent, HT_HTTP_SERVER, http_background_fill_current_count_stat, HttpTransact::State::http_config_param, http_current_server_transactions_stat, HTTP_DECREMENT_DYN_STAT, HTTP_KEEPALIVE, HTTP_NO_PLUGIN_TUNNEL, HTTP_TUNNEL_EVENT_CONSUMER_DETACH, HTTP_TUNNEL_EVENT_PRECOMPLETE, ink_assert, ink_get_hrtime(), is_http_server_eos_truncation(), HttpTunnel::local_finish_all(), milestones, HttpTransact::State::negative_caching, plugin_tunnel_type, HttpTunnelProducer::read_success, HttpTunnelProducer::read_vio, HttpServerSession::release(), TransactionMilestones::server_close, server_entry, server_session, HttpServerSession::server_trans_stat, sm_id, HttpTransact::State::squid_codes, STATE_ENTER, t_state, ChunkedHandler::truncation, tunnel, ua_session, HttpConfigParams::use_client_source_port, HttpTunnelProducer::vc, HttpVCTableEntry::vc, VC_EVENT_ACTIVE_TIMEOUT, VC_EVENT_EOS, VC_EVENT_ERROR, VC_EVENT_INACTIVITY_TIMEOUT, VC_EVENT_READ_COMPLETE, VC_EVENT_READ_READY, VC_EVENT_WRITE_COMPLETE, VC_EVENT_WRITE_READY, and HttpTunnelProducer::vc_type.

Referenced by setup_server_transfer(), setup_server_transfer_to_cache_only(), and setup_server_transfer_to_transform().

int HttpSM::tunnel_handler_ssl_consumer ( int  event,
HttpTunnelConsumer p 
) [protected]
int HttpSM::tunnel_handler_ssl_producer ( int  event,
HttpTunnelProducer p 
) [protected]
int HttpSM::tunnel_handler_transform_read ( int  event,
HttpTunnelProducer p 
) [protected]
int HttpSM::tunnel_handler_transform_write ( int  event,
HttpTunnelConsumer c 
) [protected]
int HttpSM::tunnel_handler_ua ( int  event,
HttpTunnelConsumer c 
) [protected]

Definition at line 3045 of file HttpSM.cc.

References HttpTransact::ABORTED, HttpTunnelProducer::alive, background_fill, OverridableHttpConfigParams::background_fill_active_timeout, HttpTunnelConsumer::bytes_written, HttpTransact::CACHE_AUTH_SERVE, cache_response_body_bytes, HttpTunnel::chain_abort_all(), HttpTransact::State::client_info, client_response_body_bytes, client_response_hdr_bytes, DebugSM, HttpClientSession::do_io_close(), HttpVCTableEntry::eos, HttpClientSession::get_bound_ss(), HttpServerSession::get_netvc(), HRTIME_SECONDS, HT_CACHE_READ, HT_HTTP_SERVER, http_background_fill_current_count_stat, HTTP_INCREMENT_DYN_STAT, HTTP_KEEPALIVE, HTTP_WKSIDX_POST, ink_assert, ink_get_hrtime(), is_bg_fill_necessary(), HttpTunnelConsumer::is_downstream_from(), HttpTransact::State::method, milestones, HttpTransact::State::pre_transform_source, HttpTunnelConsumer::producer, HttpTransact::RANGE_NONE, HttpTransact::State::range_setup, HttpClientSession::release(), HttpTunnelProducer::self_consumer, server_entry, server_response_body_bytes, server_session, HttpClientSession::set_half_close_flag(), set_ua_abort(), sm_id, HttpTransact::State::source, HttpTransact::SOURCE_CACHE, HttpTransact::SOURCE_HTTP_ORIGIN_SERVER, HttpTransact::SOURCE_TRANSFORM, STATE_ENTER, t_state, tunnel, HttpTransact::State::txn_conf, ua_buffer_reader, TransactionMilestones::ua_close, ua_entry, ua_session, HttpVCTableEntry::vc, HttpTunnelConsumer::vc, VC_EVENT_ACTIVE_TIMEOUT, VC_EVENT_EOS, VC_EVENT_ERROR, VC_EVENT_INACTIVITY_TIMEOUT, VC_EVENT_READ_COMPLETE, VC_EVENT_READ_READY, VC_EVENT_WRITE_COMPLETE, VC_EVENT_WRITE_READY, HttpTunnelProducer::vc_type, HttpTunnelConsumer::write_success, and HttpTransact::State::www_auth_content.

Referenced by setup_cache_read_transfer(), setup_internal_transfer(), setup_server_transfer(), and setup_transfer_from_transform().

int HttpSM::tunnel_handler_ua_push ( int  event,
HttpTunnelProducer p 
) [protected]
void HttpSM::txn_hook_append ( TSHttpHookID  id,
INKContInternal cont 
) [inline]

Definition at line 600 of file HttpSM.h.

References api_hooks, FeatureAPIHooks< ID, N >::append(), and hooks_set.

Referenced by TSHttpTxnHookAdd().

APIHook * HttpSM::txn_hook_get ( TSHttpHookID  id  )  [inline]
void HttpSM::txn_hook_prepend ( TSHttpHookID  id,
INKContInternal cont 
) [inline]

Definition at line 607 of file HttpSM.h.

References api_hooks, hooks_set, and FeatureAPIHooks< ID, N >::prepend().

Referenced by do_post_transform_open(), and do_transform_open().

void HttpSM::update_stats (  )  [protected]

Definition at line 6566 of file HttpSM.cc.

References Log::access(), HttpTransact::State::api_info, ats_ip_ntop(), ats_ip_port_host_order(), TransactionMilestones::cache_open_read_begin, TransactionMilestones::cache_open_read_end, HttpTransact::State::client_info, client_request_body_bytes, client_request_hdr_bytes, client_response_body_bytes, client_response_hdr_bytes, HttpTransact::client_result_stat(), HttpTransact::State::cop_test_page, DebugSM, TransactionMilestones::dns_lookup_begin, TransactionMilestones::dns_lookup_end, dump_state_on_assert(), Error, Log::error(), Log::FAIL, Log::FULL, HttpClientSession::get_netvc(), NetVConnection::get_socket(), HttpTransact::State::hdr_info, HttpTransact::State::http_config_param, ink_get_hrtime(), ink_hrtime_from_msec(), ink_release_assert, ink_strlcpy(), is_action_tag_set, _HttpApiInfo::logging_enabled, milestone_difference(), milestones, MIME_FIELD_X_ID, MIME_LEN_X_ID, pushed_response_body_bytes, pushed_response_hdr_bytes, HttpConfigParams::record_cop_page, TransactionMilestones::server_close, TransactionMilestones::server_connect, TransactionMilestones::server_first_read, HttpTransact::State::server_info, TransactionMilestones::server_read_header_done, server_request_body_bytes, server_request_hdr_bytes, server_response_body_bytes, server_response_hdr_bytes, skip(), HttpConfigParams::slow_log_threshold, TransactionMilestones::sm_finish, sm_id, TransactionMilestones::sm_start, t_state, Log::transaction_logging_enabled(), TransactionMilestones::ua_begin, TransactionMilestones::ua_begin_write, TransactionMilestones::ua_close, TransactionMilestones::ua_read_header_done, ua_session, HttpTransact::update_size_and_time_stats(), and URL::valid().

Referenced by kill_this().

int HttpSM::write_header_into_buffer ( HTTPHdr h,
MIOBuffer b 
) [protected]
int HttpSM::write_response_header_into_buffer ( HTTPHdr h,
MIOBuffer b 
) [inline, protected]

Friends And Related Function Documentation

friend class CoreUtils [friend]

Definition at line 191 of file HttpSM.h.

friend class HttpPagesHandler [friend]

Definition at line 190 of file HttpSM.h.


Field Documentation

APIHook* HttpSM::cur_hook [protected]

Definition at line 504 of file HttpSM.h.

Referenced by do_api_callout_internal(), and state_api_callout().

Definition at line 503 of file HttpSM.h.

Referenced by do_api_callout_internal(), and state_api_callout().

int HttpSM::cur_hooks [protected]

Definition at line 510 of file HttpSM.h.

Referenced by do_api_callout_internal(), and state_api_callout().

Definition at line 277 of file HttpSM.h.

Referenced by attach_client_session(), and cleanup().

Set if plugin client / user agents are active.

Need primarily for cleanup.

Definition at line 325 of file HttpSM.h.

Referenced by plugin_agents_cleanup(), and setup_plugin_agents().

History HttpSM::history[HISTORY_SIZE] [protected]
int HttpSM::history_pos [protected]

Definition at line 295 of file HttpSM.h.

Referenced by add_history_entry(), CoreUtils::dump_history(), and dump_state_on_assert().

bool HttpSM::kill_this_async_done [protected]

Definition at line 522 of file HttpSM.h.

Referenced by kill_this(), and kill_this_async_hook().

Definition at line 465 of file HttpSM.h.

Referenced by call_transact_and_set_next_state().

int(HttpSM::* HttpSM::m_last_state)(int event, void *data) [protected]

Definition at line 466 of file HttpSM.h.

unsigned int HttpSM::magic
char const* HttpSM::plugin_tag

Definition at line 276 of file HttpSM.h.

Referenced by tunnel_handler_for_partial_post(), and tunnel_handler_post_server().

int64_t HttpSM::prev_hook_start_time [protected]

Definition at line 508 of file HttpSM.h.

int HttpSM::reentrancy_count [protected]

Definition at line 334 of file HttpSM.h.

Referenced by get_http_schedule(), and set_http_schedule().

Definition at line 329 of file HttpSM.h.

Referenced by add_cache_sm(), cleanup(), kill_this(), and state_cache_open_write().

Definition at line 317 of file HttpSM.h.

int64_t HttpSM::sm_id

Definition at line 283 of file HttpSM.h.

Referenced by HttpSessionManager::acquire_session(), add_cache_sm(), HttpTunnel::allocate_redirect_postdata_buffers(), HttpTunnel::allocate_redirect_postdata_producer_buffer(), attach_client_session(), attach_server_session(), HttpClientSession::attach_server_session(), calculate_output_cl(), call_transact_and_set_next_state(), check_n_attach_prefetch_transform(), cleanup(), do_api_callout_internal(), do_cache_delete_all_alts(), do_cache_lookup_and_read(), do_cache_prepare_action(), do_cache_prepare_update(), do_cache_prepare_write(), do_congestion_control_lookup(), do_hostdb_lookup(), do_hostdb_reverse_lookup(), do_hostdb_update_if_necessary(), do_http_server_open(), do_icp_lookup(), HttpClientSession::do_io_close(), do_range_parse(), do_range_setup_if_necessary(), do_redirect(), do_remap_request(), do_setup_post_tunnel(), dump_state_on_assert(), find_http_resp_buffer_size(), find_server_buffer_size(), HttpUpdateSM::handle_api_return(), handle_api_return(), handle_http_server_open(), handle_post_failure(), handle_server_setup_error(), HttpPagesHandler::handle_smlist(), HttpTransact_is_request_valid(), PrefetchBlaster::init(), LogAccessHttp::init(), HttpTunnel::init(), init(), init_sm(), HttpTransact::initialize_state_variables_from_response(), is_bg_fill_necessary(), is_http_server_eos_truncation(), is_redirect_required(), is_transparent_passthrough_allowed(), issue_cache_update(), kill_this(), mark_host_failure(), mark_server_down_on_client_abort(), LogAccessHttp::marshal_cache_result_code(), LogAccessHttp::marshal_cache_write_code(), LogAccessHttp::marshal_cache_write_transform_code(), LogAccessHttp::marshal_client_finish_status_code(), LogAccessHttp::marshal_client_host_ip(), LogAccessHttp::marshal_client_host_port(), LogAccessHttp::marshal_client_retry_after_time(), LogAccessHttp::marshal_proxy_finish_status_code(), LogAccessHttp::marshal_proxy_hierarchy_route(), LogAccessHttp::marshal_proxy_req_server_ip(), LogAccessHttp::marshal_proxy_req_server_name(), LogAccessHttp::marshal_server_host_ip(), HttpCacheSM::open_write(), PrefetchTransform::parse_data(), parse_range_and_compare(), perform_cache_write_action(), perform_transform_cache_write_action(), PrefetchPlugin(), PrefetchTransform::PrefetchTransform(), process_hostdb_info(), process_srv_info(), HttpTunnel::producer_handler(), PrefetchTransform::redirect(), redirect_request(), HttpClientSession::release(), release_server_session(), server_transfer_init(), HttpUpdateSM::set_next_state(), set_next_state(), set_ua_abort(), setup_100_continue_transfer(), setup_blind_tunnel(), setup_cache_lookup_complete_api(), setup_cache_read_transfer(), setup_cache_transfer_to_transform(), setup_cache_write_transfer(), setup_client_request(), setup_error_transfer(), setup_internal_transfer(), setup_push_read_response_header(), setup_push_transfer_to_cache(), setup_server_read_response_header(), setup_server_send_request(), setup_server_send_request_api(), setup_server_transfer(), setup_server_transfer_to_cache_only(), setup_server_transfer_to_transform(), setup_transfer_from_transform(), setup_transfer_from_transform_to_cache_only(), setup_transform_to_server_transfer(), HttpUpdateSM::start_scheduled_update(), state_add_to_list(), state_api_callout(), state_cache_open_read(), state_cache_open_write(), state_common_wait_for_transform_read(), state_congestion_control_lookup(), state_handle_stat_page(), state_hostdb_lookup(), state_hostdb_reverse_lookup(), state_http_server_open(), state_icp_lookup(), state_mark_os_down(), state_raw_http_server_open(), state_read_client_request_header(), state_read_push_response_header(), state_read_server_response_header(), state_remap_request(), state_remove_from_list(), state_request_wait_for_transform_read(), state_response_wait_for_transform_read(), state_send_server_request_header(), state_srv_lookup(), TSCacheUrlSet(), TSHttpTxnAborted(), TSHttpTxnArgGet(), TSHttpTxnArgSet(), TSHttpTxnCachedReqGet(), TSHttpTxnCachedRespGet(), TSHttpTxnCachedRespModifiableGet(), TSHttpTxnCachedRespTimeGet(), TSHttpTxnCacheLookupCountGet(), TSHttpTxnCacheLookupStatusGet(), TSHttpTxnCacheLookupStatusSet(), TSHttpTxnCacheLookupUrlGet(), TSHttpTxnClientIncomingPortSet(), TSHttpTxnClientKeepaliveSet(), TSHttpTxnClientReqGet(), TSHttpTxnClientReqIsServerStyle(), TSHttpTxnClientRespGet(), TSHttpTxnCloseAfterResponse(), TSHttpTxnCntl(), TSHttpTxnConfigFloatSet(), TSHttpTxnConfigIntGet(), TSHttpTxnConfigIntSet(), TSHttpTxnConfigStringGet(), TSHttpTxnConfigStringSet(), TSHttpTxnEffectiveUrlStringGet(), TSHttpTxnErrorBodySet(), TSHttpTxnIsCacheable(), TSHttpTxnLookingUpTypeGet(), TSHttpTxnNewCacheLookupDo(), TSHttpTxnNextHopAddrGet(), TSHttpTxnParentProxyGet(), TSHttpTxnParentProxySet(), TSHttpTxnPristineUrlGet(), TSHttpTxnRedirectRequest(), TSHttpTxnReqCacheableSet(), TSHttpTxnRespCacheableSet(), TSHttpTxnSecondUrlTryLock(), TSHttpTxnServerAddrGet(), TSHttpTxnServerAddrSet(), TSHttpTxnServerReqGet(), TSHttpTxnServerRequestBodySet(), TSHttpTxnServerRespGet(), TSHttpTxnSetHttpRetStatus(), TSHttpTxnTransformedRespCache(), TSHttpTxnTransformRespGet(), TSHttpTxnUntransformedRespCache(), TSHttpTxnUpdateCachedObject(), TSSkipRemappingSet(), tunnel_handler(), tunnel_handler_100_continue(), tunnel_handler_cache_read(), tunnel_handler_cache_write(), tunnel_handler_for_partial_post(), tunnel_handler_post_server(), tunnel_handler_post_ua(), tunnel_handler_server(), tunnel_handler_transform_read(), tunnel_handler_transform_write(), tunnel_handler_ua(), tunnel_handler_ua_push(), update_stats(), and write_response_header_into_buffer().

bool HttpSM::terminate_sm [protected]

Definition at line 275 of file HttpSM.h.

Referenced by do_setup_post_tunnel().


The documentation for this class was generated from the following files: