GNU libmicrohttpd
0.9.72
|
#include </builddir/build/BUILD/libmicrohttpd-0.9.72/src/lib/internal.h>
State kept per HTTP connection.
State kept for each HTTP request.
Definition at line 633 of file internal.h.
struct sockaddr_storage MHD_Connection::addr |
Foreign address (of length addr_len).
Definition at line 723 of file internal.h.
Referenced by internal_add_connection(), internal_run_from_select(), MHD_connection_cleanup_(), MHD_connection_get_information_sz(), and MHD_get_connection_info().
struct sockaddr* MHD_Connection::addr |
Foreign address (of length addr_len). MALLOCED (not in pool!).
Definition at line 817 of file internal.h.
socklen_t MHD_Connection::addr_len |
Length of the foreign address.
Definition at line 733 of file internal.h.
Referenced by internal_add_connection(), internal_run_from_select(), and MHD_connection_cleanup_().
bool MHD_Connection::client_aware |
Did we ever call the "default_handler" on this connection? (this flag will determine if we call the MHD_OPTION_NOTIFY_COMPLETED handler when the connection closes down).
Definition at line 917 of file internal.h.
Referenced by call_connection_handler(), check_write_done(), and MHD_connection_close_().
void* MHD_Connection::client_context |
We allow the main application to associate some pointer with the HTTP request, which is passed to each MHD_AccessHandlerCallback and some other API calls. Here is where we store it. (MHD does not know or care what it is).
Definition at line 748 of file internal.h.
Referenced by call_connection_handler(), check_write_done(), and MHD_connection_close_().
char* MHD_Connection::colon |
Position after the colon on the last incomplete header line during parsing of headers. Allocated in pool. Only valid if state is either MHD_CONNECTION_HEADER_PART_RECEIVED or MHD_CONNECTION_FOOTER_PART_RECEIVED.
Definition at line 811 of file internal.h.
Referenced by process_header_line().
time_t MHD_Connection::connection_timeout |
After how many seconds of inactivity should this connection time out? Zero for no timeout.
Definition at line 745 of file internal.h.
Referenced by cleanup_connection(), close_connection(), internal_add_connection(), internal_suspend_connection_(), MHD_connection_get_information_sz(), MHD_connection_set_timeout(), MHD_connection_update_last_activity_(), MHD_daemon_get_timeout(), MHD_get_connection_info(), MHD_request_handle_idle_(), MHD_resume_suspended_connections_(), MHD_update_last_activity_(), and suspend_action().
unsigned int MHD_Connection::connection_timeout_dummy |
Special member to be returned by MHD_get_connection_info()
Definition at line 910 of file internal.h.
Referenced by MHD_get_connection_info().
size_t MHD_Connection::continue_message_write_offset |
Position in the 100 CONTINUE message that we need to send when receiving http 1.1 requests.
Definition at line 888 of file internal.h.
Referenced by MHD_connection_handle_write().
uint64_t MHD_Connection::current_chunk_offset |
If we are receiving with chunked encoding, where are we currently with respect to the current chunk (at what offset / position)?
Definition at line 1017 of file internal.h.
Referenced by check_write_done().
uint64_t MHD_Connection::current_chunk_size |
If we are receiving with chunked encoding, where are we right now? Set to 0 if we are waiting to receive the chunk size; otherwise, this is the size of the current chunk. A value of zero is also used when we're at the end of the chunks.
Definition at line 1011 of file internal.h.
Referenced by check_write_done().
struct MHD_Daemon * MHD_Connection::daemon |
Reference to the MHD_Daemon struct.
Definition at line 675 of file internal.h.
Referenced by call_connection_handler(), check_write_done(), cleanup_connection(), close_all_connections(), close_connection(), connection_close_error(), connection_set_nodelay_state_(), connection_update_event_loop_info(), digest_auth_check_all(), internal_add_connection(), internal_run_from_select(), internal_suspend_connection_(), MHD_accept_connection(), MHD_basic_auth_get_username_password(), MHD_connection_call_handlers_(), MHD_connection_cleanup_(), MHD_connection_close_(), MHD_connection_get_information_sz(), MHD_connection_handle_read(), MHD_connection_handle_write(), MHD_connection_mark_closed_(), MHD_connection_set_timeout(), MHD_connection_update_event_loop_info(), MHD_connection_update_last_activity_(), MHD_daemon_close_all_connections_(), MHD_daemon_get_timeout(), MHD_get_connection_info(), MHD_resume_suspended_connections_(), MHD_run_tls_handshake_(), MHD_send_data_(), MHD_send_hdr_and_body_(), MHD_stop_daemon(), MHD_suspend_connection(), MHD_update_last_activity_(), new_connections_list_process_(), parse_connection_headers(), post_send_setopt(), process_request_body(), suspend_action(), thread_main_handle_connection(), transmit_error_response(), and zero_send_().
enum MHD_ConnectionEventLoopInfo MHD_Connection::event_loop_info |
What is this connection waiting for?
Definition at line 971 of file internal.h.
Referenced by MHD_connection_mark_closed_(), and MHD_connection_update_event_loop_info().
bool MHD_Connection::have_chunked_upload |
Are we receiving with chunked encoding? This will be set to MHD_YES after we parse the headers and are processing the body with chunks. After we are done with the body and we are processing the footers; once the footers are also done, this will be set to MHD_NO again (before the final call to the handler).
Definition at line 1003 of file internal.h.
Referenced by check_write_done(), MHD_connection_handle_write(), and parse_connection_headers().
size_t MHD_Connection::header_size |
Number of bytes we had in the HTTP header, set once we pass MHD_CONNECTION_HEADERS_RECEIVED.
Definition at line 861 of file internal.h.
Referenced by MHD_get_connection_info().
struct MHD_HTTP_Header* MHD_Connection::headers_received |
Linked list of parsed headers.
Definition at line 720 of file internal.h.
Referenced by MHD_get_connection_values(), MHD_get_connection_values_n(), MHD_lookup_connection_value_n(), and MHD_lookup_header_token_ci().
struct MHD_HTTP_Header* MHD_Connection::headers_received_tail |
Tail of linked list of parsed headers.
Definition at line 725 of file internal.h.
bool MHD_Connection::in_cleanup |
Are we currently inside the "idle" handler (to avoid recursively invoking it).
Definition at line 971 of file internal.h.
Referenced by cleanup_connection().
bool MHD_Connection::in_idle |
Are we currently inside the "idle" handler (to avoid recursively invoking it).
Definition at line 965 of file internal.h.
Referenced by cleanup_connection().
enum MHD_ConnKeepAlive MHD_Connection::keepalive |
Close connection after sending response? Functions may change value from "Unknown" or "KeepAlive" to "Must close", but no functions reset value "Must Close" to any other value.
Definition at line 774 of file internal.h.
Referenced by transmit_error_response().
char* MHD_Connection::last |
Last incomplete header line during parsing of headers. Allocated in pool. Only valid if state is either MHD_CONNECTION_HEADER_PART_RECEIVED or MHD_CONNECTION_FOOTER_PART_RECEIVED.
Definition at line 802 of file internal.h.
Referenced by process_broken_line().
time_t MHD_Connection::last_activity |
Last time this connection had any activity (reading or writing).
Definition at line 739 of file internal.h.
Referenced by internal_add_connection(), MHD_connection_set_timeout(), MHD_connection_update_last_activity_(), MHD_daemon_get_timeout(), MHD_request_handle_idle_(), MHD_resume_suspended_connections_(), MHD_update_last_activity_(), and thread_main_handle_connection().
char* MHD_Connection::method |
Request method. Should be GET/POST/etc. Allocated in pool.
Definition at line 762 of file internal.h.
Referenced by call_connection_handler(), check_write_done(), and digest_auth_check_all().
struct MHD_Connection * MHD_Connection::next |
Next pointer for the DLL describing our IO state.
Definition at line 651 of file internal.h.
struct MHD_Connection * MHD_Connection::nextX |
Next pointer for the XDLL organizing connections by timeout. This DLL can be either the 'manual_timeout_head/manual_timeout_tail' or the 'normal_timeout_head/normal_timeout_tail', depending on whether a custom timeout is set for the connection.
Definition at line 665 of file internal.h.
MHD_thread_handle_ID_ MHD_Connection::pid |
Thread handle for this connection (if we are using one thread per connection).
Definition at line 723 of file internal.h.
Referenced by cleanup_connection(), close_all_connections(), internal_run_from_select(), MHD_connection_cleanup_(), MHD_connection_close_(), MHD_daemon_close_all_connections_(), and thread_main_handle_connection().
struct MemoryPool * MHD_Connection::pool |
The memory pool is created whenever we first read from the TCP stream and destroyed at the end of each request (and re-created for the next request). In the meantime, this pointer is NULL. The pool is used for all request-related data except for the response (which maybe shared between requests) and the IP address (which persists across individual requests).
The memory pool is created whenever we first read from the TCP stream and destroyed at the end of each request (and re-created for the next request). In the meantime, this pointer is NULL. The pool is used for all connection-related data except for the response (which maybe shared between connections) and the IP address (which persists across individual requests).
Definition at line 685 of file internal.h.
Referenced by build_header_response(), check_write_done(), internal_run_from_select(), MHD_connection_cleanup_(), MHD_connection_handle_read(), MHD_request_handle_idle_(), MHD_request_handle_read_(), parse_cookie_header(), process_broken_line(), transmit_error_response(), try_grow_read_buffer(), and try_ready_chunked_body().
struct MHD_Connection * MHD_Connection::prev |
Previous pointer for the DLL describing our IO state.
Definition at line 656 of file internal.h.
Referenced by close_all_connections(), MHD_daemon_close_all_connections_(), and MHD_resume_suspended_connections_().
struct MHD_Connection * MHD_Connection::prevX |
Previous pointer for the XDLL organizing connections by timeout.
Definition at line 670 of file internal.h.
Referenced by MHD_daemon_get_timeout().
char* MHD_Connection::read_buffer |
Buffer for reading requests. Allocated in pool. Actually one byte larger than read_buffer_size (if non-NULL) to allow for 0-termination.
Definition at line 788 of file internal.h.
Referenced by build_header_response(), check_write_done(), connection_add_header(), MHD_connection_handle_read(), and transmit_error_response().
size_t MHD_Connection::read_buffer_offset |
Position where we currently append data in read_buffer (last valid position).
Definition at line 839 of file internal.h.
Referenced by check_write_done(), connection_add_header(), get_next_header_line(), MHD_connection_handle_read(), and MHD_connection_update_event_loop_info().
size_t MHD_Connection::read_buffer_size |
Size of read_buffer (in bytes). This value indicates how many bytes we're willing to read into the buffer; the real buffer is one byte longer to allow for adding zero-termination (when needed).
Definition at line 833 of file internal.h.
Referenced by build_header_response(), connection_add_header(), MHD_connection_handle_read(), MHD_connection_update_event_loop_info(), and transmit_error_response().
bool MHD_Connection::read_closed |
Has this socket been closed for reading (i.e. other side closed the connection)? If so, we must completely close the connection once we are done sending our response (and stop trying to read from this socket).
Definition at line 792 of file internal.h.
Referenced by build_header_response(), connection_update_event_loop_info(), method_string_to_enum(), MHD_connection_handle_read(), MHD_connection_update_event_loop_info(), MHD_request_handle_idle_(), MHD_request_handle_read_(), parse_connection_headers(), parse_request_headers(), response_action(), and transmit_error_response().
ReceiveCallback MHD_Connection::recv_cls |
Function used for reading HTTP request stream.
Definition at line 706 of file internal.h.
Referenced by MHD_connection_handle_read(), MHD_request_handle_read_(), MHD_set_http_callbacks_(), and MHD_set_https_callbacks().
uint64_t MHD_Connection::remaining_upload_size |
How many more bytes of the body do we expect to read? MHD_SIZE_UNKNOWN for unknown.
Definition at line 867 of file internal.h.
Referenced by check_write_done(), and parse_connection_headers().
struct MHD_Request MHD_Connection::request |
Information about the current request we are processing on this connection.
Definition at line 711 of file internal.h.
Referenced by build_header_response(), call_request_handler(), cleanup_connection(), connection_update_event_loop_info(), get_next_header_line(), internal_add_connection(), MHD_connection_call_handlers_(), MHD_connection_cleanup_(), MHD_connection_close_(), MHD_connection_mark_closed_(), MHD_daemon_close_all_connections_(), MHD_request_handle_idle_(), MHD_request_handle_read_(), MHD_request_handle_write_(), MHD_resume_suspended_connections_(), need_100_continue(), parse_cookie_header(), parse_request_headers(), process_broken_line(), process_header_line(), process_request_body(), recv_param_adapter(), suspend_action(), thread_main_handle_connection(), try_ready_chunked_body(), and try_ready_normal_body().
struct MHD_Response* MHD_Connection::response |
Response to transmit (initially NULL).
Definition at line 730 of file internal.h.
Referenced by call_connection_handler(), check_write_done(), cleanup_connection(), internal_run_from_select(), MHD_connection_close_(), MHD_connection_handle_write(), parse_connection_headers(), transmit_error_response(), and try_ready_normal_body().
uint64_t MHD_Connection::response_write_position |
Current write position in the actual response (excluding headers, content only; should be 0 while sending headers).
Definition at line 874 of file internal.h.
Referenced by MHD_connection_handle_write().
unsigned int MHD_Connection::responseCode |
HTTP response code. Only valid if response object is already set.
Definition at line 994 of file internal.h.
bool MHD_Connection::resuming |
Is the connection wanting to resume?
Definition at line 774 of file internal.h.
Referenced by cleanup_connection(), close_all_connections(), close_connection(), internal_suspend_connection_(), MHD_accept_connection(), MHD_daemon_close_all_connections_(), MHD_request_resume(), MHD_resume_suspended_connections_(), and suspend_action().
volatile bool MHD_Connection::resuming |
Is the connection wanting to resume?
Definition at line 1076 of file internal.h.
TransmitCallback MHD_Connection::send_cls |
Function used for writing HTTP response stream.
Definition at line 711 of file internal.h.
Referenced by MHD_request_handle_write_().
enum MHD_tristate MHD_Connection::sk_corked |
Tracks TCP_CORK / TCP_NOPUSH of the connection socket.
Definition at line 934 of file internal.h.
Referenced by internal_add_connection(), post_send_setopt(), pre_send_setopt(), and zero_send_().
enum MHD_tristate MHD_Connection::sk_nodelay |
Tracks TCP_NODELAY state of the connection socket.
Definition at line 934 of file internal.h.
Referenced by connection_set_nodelay_state_(), internal_add_connection(), post_send_setopt(), pre_send_setopt(), and zero_send_().
bool MHD_Connection::sk_nonblck |
true if socket_fd is non-blocking, false otherwise.
Definition at line 784 of file internal.h.
Referenced by internal_add_connection(), MHD_connection_call_handlers_(), and MHD_send_hdr_and_body_().
bool MHD_Connection::sk_spipe_suppress |
true if connection socket has set SIGPIPE suppression
Definition at line 934 of file internal.h.
Referenced by internal_add_connection(), and MHD_send_hdr_and_body_().
void * MHD_Connection::socket_context |
We allow the main application to associate some pointer with the TCP connection (which may span multiple HTTP requests). Here is where we store it. (MHD does not know or care what it is). The location is given to the MHD_NotifyConnectionCallback and also accessible via MHD_CONNECTION_INFO_SOCKET_CONTEXT.
Definition at line 694 of file internal.h.
Referenced by internal_run_from_select(), MHD_connection_get_information_sz(), and MHD_get_connection_info().
MHD_socket MHD_Connection::socket_fd |
Socket for this connection. Set to MHD_INVALID_SOCKET if this connection has died (daemon should clean up in that case).
Definition at line 752 of file internal.h.
Referenced by close_all_connections(), connection_set_nodelay_state_(), internal_add_connection(), internal_run_from_select(), internal_suspend_connection_(), MHD_connection_cleanup_(), MHD_connection_get_information_sz(), MHD_connection_mark_closed_(), MHD_daemon_close_all_connections_(), MHD_get_connection_info(), MHD_send_data_(), MHD_send_hdr_and_body_(), recv_param_adapter(), socket_start_extra_buffering(), socket_start_no_buffering(), socket_start_no_buffering_flush(), socket_start_normal_buffering(), suspend_action(), thread_main_handle_connection(), and zero_send_().
enum MHD_CONNECTION_STATE MHD_Connection::state |
State in the FSM for this connection.
Definition at line 971 of file internal.h.
Referenced by MHD_connection_handle_read(), MHD_connection_handle_write(), MHD_connection_mark_closed_(), MHD_connection_update_event_loop_info(), MHD_get_connection_info(), MHD_send_data_(), MHD_send_hdr_and_body_(), parse_connection_headers(), recv_param_adapter(), and transmit_error_response().
bool MHD_Connection::suspended |
Is the connection suspended?
Definition at line 764 of file internal.h.
Referenced by check_write_done(), cleanup_connection(), close_connection(), connection_update_event_loop_info(), internal_suspend_connection_(), MHD_connection_get_information_sz(), MHD_connection_handle_read(), MHD_connection_handle_write(), MHD_connection_set_timeout(), MHD_connection_update_event_loop_info(), MHD_connection_update_last_activity_(), MHD_get_connection_info(), MHD_request_handle_idle_(), MHD_request_handle_read_(), MHD_request_handle_write_(), MHD_resume_suspended_connections_(), MHD_update_last_activity_(), process_request_body(), suspend_action(), and thread_main_handle_connection().
int MHD_Connection::suspended_dummy |
Special member to be returned by MHD_get_connection_info()
Definition at line 1071 of file internal.h.
Referenced by MHD_get_connection_info().
bool MHD_Connection::thread_joined |
Set to true
if the thread has been joined.
Definition at line 779 of file internal.h.
Referenced by close_all_connections(), internal_run_from_select(), MHD_connection_cleanup_(), and MHD_daemon_close_all_connections_().
bool MHD_Connection::tls_read_ready |
Are we ready to read from TLS for this connection?
Definition at line 769 of file internal.h.
Referenced by MHD_connection_call_handlers_(), recv_tls_adapter(), and thread_main_handle_connection().
const char* MHD_Connection::url |
Requested URL (everything after "GET" only). Allocated in pool.
Definition at line 768 of file internal.h.
Referenced by call_connection_handler(), check_write_done(), connection_add_header(), digest_auth_check_all(), MHD_connection_handle_write(), and MHD_connection_update_event_loop_info().
char* MHD_Connection::version |
HTTP version string (i.e. http/1.1). Allocated in pool.
Definition at line 774 of file internal.h.
Referenced by call_connection_handler(), check_write_done(), need_100_continue(), parse_connection_headers(), and transmit_error_response().
char* MHD_Connection::write_buffer |
Buffer for writing response (headers only). Allocated in pool.
Definition at line 794 of file internal.h.
Referenced by MHD_connection_handle_write().
size_t MHD_Connection::write_buffer_append_offset |
Last valid location in write_buffer (where do we append and up to where is it safe to send?)
Definition at line 855 of file internal.h.
Referenced by MHD_connection_handle_write().
size_t MHD_Connection::write_buffer_send_offset |
Offset where we are with sending from write_buffer.
Definition at line 849 of file internal.h.
Referenced by MHD_connection_handle_write().
size_t MHD_Connection::write_buffer_size |
Size of write_buffer (in bytes).
Definition at line 844 of file internal.h.