GNU libmicrohttpd 1.0.0
|
#include </builddir/build/BUILD/libmicrohttpd-1.0.0/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 728 of file internal.h.
Referenced by calculate_add_nonce(), digest_auth_check_all_inner(), internal_add_connection(), internal_add_connection(), MHD_cleanup_connections(), MHD_connection_cleanup_(), MHD_connection_get_information_sz(), MHD_get_connection_info(), new_connection_prepare_(), and new_connection_process_().
struct sockaddr_storage* MHD_Connection::addr |
Foreign address (of length addr_len). MALLOCED (not in pool!).
Definition at line 1415 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 calculate_add_nonce(), digest_auth_check_all_inner(), internal_add_connection(), MHD_cleanup_connections(), MHD_connection_cleanup_(), MHD_get_connection_info(), new_connection_prepare_(), and new_connection_process_().
union MHD_ConnectionInfo MHD_Connection::connection_info_dummy |
Special member to be returned by MHD_get_connection_info()
Definition at line 1626 of file internal.h.
Referenced by MHD_get_connection_info().
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(), MHD_connection_get_information_sz(), 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 suspend_action().
uint64_t MHD_Connection::connection_timeout_ms |
After how many milliseconds of inactivity should this connection time out? Zero for no timeout.
Definition at line 1476 of file internal.h.
Referenced by cleanup_connection(), close_connection(), internal_suspend_connection_(), MHD_get_connection_info(), MHD_get_timeout64(), MHD_set_connection_option(), MHD_update_last_activity_(), new_connection_prepare_(), and resume_suspended_connections().
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 1458 of file internal.h.
Referenced by MHD_connection_handle_idle(), and MHD_connection_handle_write().
struct MHD_Daemon * MHD_Connection::daemon |
Reference to the MHD_Daemon struct.
Definition at line 675 of file internal.h.
Referenced by calculate_add_nonce(), calculate_add_nonce_with_retry(), call_connection_handler(), check_nonce_nc(), check_uri_match(), cleanup_connection(), cleanup_connection(), close_all_connections(), close_connection(), close_connection(), connection_add_header(), connection_close_error(), connection_close_error(), connection_reset(), connection_update_event_loop_info(), digest_auth_check_all(), digest_auth_check_all_inner(), internal_add_connection(), internal_add_connection(), internal_get_fdset2(), internal_get_fdset2(), internal_run_from_select(), internal_suspend_connection_(), MHD_basic_auth_get_username_password(), MHD_basic_auth_get_username_password3(), MHD_cleanup_connections(), MHD_connection_cleanup_(), MHD_connection_close_(), MHD_connection_close_(), MHD_connection_get_information_sz(), MHD_connection_handle_idle(), MHD_connection_handle_read(), MHD_connection_handle_write(), MHD_connection_mark_closed_(), MHD_connection_set_cork_state_(), MHD_connection_set_nodelay_state_(), 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_digest_auth_check_digest3(), MHD_get_connection_info(), MHD_get_timeout(), MHD_get_timeout64(), MHD_parse_arguments_(), MHD_queue_basic_auth_required_response3(), MHD_queue_response(), MHD_resume_connection(), MHD_resume_suspended_connections_(), MHD_run_from_select(), MHD_run_from_select2(), MHD_run_tls_handshake_(), MHD_send_data_(), MHD_send_hdr_and_body_(), MHD_send_iovec_(), MHD_set_connection_option(), MHD_stop_daemon(), MHD_suspend_connection(), MHD_update_last_activity_(), new_connection_prepare_(), new_connection_process_(), new_connections_list_process_(), parse_connection_headers(), post_send_setopt(), process_request_body(), process_request_body(), queue_auth_required_response3_inner(), resume_suspended_connections(), suspend_action(), thread_main_handle_connection(), transmit_error_response_len(), try_grow_read_buffer(), unescape_wrapper(), and zero_send_().
bool MHD_Connection::discard_request |
Response queued early, before the request is fully processed, the client upload is rejected. The connection cannot be reused for additional requests as the current request is incompletely read and it is unclear where is the initial byte of the next request.
Definition at line 1535 of file internal.h.
Referenced by connection_close_error(), MHD_connection_handle_idle(), MHD_connection_handle_read(), MHD_connection_update_event_loop_info(), MHD_queue_response(), and transmit_error_response_len().
enum MHD_ConnectionEventLoopInfo MHD_Connection::event_loop_info |
What is this connection waiting for?
Definition at line 1570 of file internal.h.
Referenced by internal_get_fdset2(), MHD_connection_mark_closed_(), MHD_connection_update_event_loop_info(), and new_connection_prepare_().
bool MHD_Connection::in_access_handler |
Are we currently in the MHD_AccessHandlerCallback for this connection (and thus eligible to receive calls to MHD_queue_response()?).
Definition at line 1616 of file internal.h.
Referenced by call_connection_handler(), MHD_queue_response(), process_request_body(), and transmit_error_response_len().
bool MHD_Connection::in_cleanup |
Connection is in the cleanup DL-linked list.
Definition at line 1553 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 1548 of file internal.h.
Referenced by cleanup_connection(), MHD_connection_handle_idle(), and MHD_queue_response().
enum MHD_tristate MHD_Connection::is_nonip |
true if socket_fd is not TCP/IP (a UNIX domain socket, a pipe), false (TCP/IP) otherwise.
Definition at line 1489 of file internal.h.
Referenced by MHD_connection_set_cork_state_(), MHD_connection_set_nodelay_state_(), new_connection_prepare_(), post_send_setopt(), pre_send_setopt(), and zero_send_().
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 1396 of file internal.h.
Referenced by MHD_connection_handle_idle(), MHD_connection_handle_write(), parse_connection_headers(), and transmit_error_response_len().
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_get_timeout64(), MHD_request_handle_idle_(), MHD_resume_suspended_connections_(), MHD_set_connection_option(), MHD_update_last_activity_(), new_connection_prepare_(), resume_suspended_connections(), and thread_main_handle_connection().
uint64_t MHD_Connection::last_activity |
Last time this connection had any activity (reading or writing).
Definition at line 1469 of file internal.h.
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 internal_add_connection(), MHD_connection_cleanup_(), 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(), connection_maximize_write_buffer(), internal_add_connection(), MHD_cleanup_connections(), MHD_connection_alloc_memory_(), MHD_connection_cleanup_(), MHD_connection_close_(), MHD_connection_handle_read(), MHD_request_handle_idle_(), MHD_request_handle_read_(), MHD_request_set_value(), new_connection_process_(), parse_cookie_header(), process_broken_line(), transmit_error_response_len(), try_grow_read_buffer(), try_grow_read_buffer(), try_ready_chunked_body(), 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(), internal_get_fdset2(), internal_get_fdset2(), internal_run_from_select(), internal_run_from_select(), MHD_daemon_close_all_connections_(), MHD_resume_suspended_connections_(), and 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(), and MHD_get_timeout64().
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 1403 of file internal.h.
Referenced by MHD_connection_handle_read(), process_request_body(), transmit_error_response_len(), and try_grow_read_buffer().
size_t MHD_Connection::read_buffer_offset |
Position where we currently append data in read_buffer (the next char after the last valid position).
Definition at line 1436 of file internal.h.
Referenced by get_next_header_line(), MHD_connection_handle_idle(), MHD_connection_handle_read(), MHD_connection_update_event_loop_info(), process_request_body(), transmit_error_response_len(), and try_grow_read_buffer().
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.
Definition at line 1430 of file internal.h.
Referenced by MHD_connection_handle_read(), MHD_connection_update_event_loop_info(), transmit_error_response_len(), and try_grow_read_buffer().
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(), MHD_connection_handle_idle(), MHD_connection_handle_read(), MHD_request_handle_idle_(), MHD_request_handle_read_(), 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 internal_add_connection(), MHD_connection_handle_read(), MHD_request_handle_read_(), MHD_set_http_callbacks_(), and MHD_set_https_callbacks().
struct MHD_Request MHD_Connection::request |
Information about the current request we are processing on this connection.
Definition at line 717 of file internal.h.
Referenced by build_header_response(), call_request_handler(), cleanup_connection(), connection_update_event_loop_info(), get_next_header_line(), internal_get_fdset2(), MHD_connection_cleanup_(), MHD_connection_close_(), MHD_connection_mark_closed_(), 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(), send_param_adapter(), suspend_action(), thread_main_handle_connection(), try_ready_chunked_body(), and try_ready_normal_body().
bool MHD_Connection::resuming |
Is the connection wanting to resume?
Definition at line 774 of file internal.h.
Referenced by cleanup_connection(), cleanup_connection(), close_connection(), close_connection(), internal_suspend_connection_(), MHD_request_resume(), MHD_resume_connection(), MHD_resume_suspended_connections_(), resume_suspended_connections(), and suspend_action().
Is the connection wanting to resume?
Definition at line 1621 of file internal.h.
Reply-specific data
Definition at line 1370 of file internal.h.
Referenced by build_connection_chunked_response_footer(), call_connection_handler(), cleanup_connection(), is_reply_body_needed(), keepalive_possible(), MHD_cleanup_connections(), MHD_connection_close_(), MHD_connection_handle_idle(), MHD_connection_handle_write(), MHD_get_connection_info(), MHD_queue_response(), MHD_send_hdr_and_body_(), MHD_send_iovec_(), process_request_body(), transmit_error_response_len(), try_ready_chunked_body(), and try_ready_normal_body().
struct MHD_Request MHD_Connection::rq |
Request-specific data
Definition at line 1365 of file internal.h.
Referenced by calculate_add_nonce(), call_connection_handler(), check_argument_match(), check_uri_match(), digest_auth_check_all_inner(), keepalive_possible(), MHD_connection_close_(), MHD_connection_handle_idle(), MHD_connection_handle_write(), MHD_connection_update_event_loop_info(), MHD_get_connection_info(), MHD_get_connection_values(), MHD_get_connection_values_n(), MHD_lookup_connection_value_n(), MHD_lookup_header_token_ci(), MHD_queue_response(), MHD_set_connection_value_n_nocheck_(), need_100_continue(), parse_connection_headers(), parse_http_std_method(), parse_http_version(), process_request_body(), resume_suspended_connections(), test_header(), and transmit_error_response_len().
TransmitCallback MHD_Connection::send_cls |
Function used for writing HTTP response stream.
Definition at line 711 of file internal.h.
Referenced by internal_add_connection(), and MHD_request_handle_write_().
enum MHD_tristate MHD_Connection::sk_corked |
Tracks TCP_CORK / TCP_NOPUSH of the connection socket.
Definition at line 1504 of file internal.h.
Referenced by MHD_connection_set_cork_state_(), new_connection_prepare_(), 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 1509 of file internal.h.
Referenced by MHD_connection_set_nodelay_state_(), MHD_run_tls_handshake_(), new_connection_prepare_(), 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(), internal_run_from_select(), MHD_connection_handle_read(), MHD_send_hdr_and_body_(), new_connection_prepare_(), and send_iov_emu().
bool MHD_Connection::sk_spipe_suppress |
true if connection socket has set SIGPIPE suppression
Definition at line 1499 of file internal.h.
Referenced by MHD_queue_response(), MHD_send_hdr_and_body_(), MHD_send_iovec_(), and new_connection_prepare_().
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 MHD_cleanup_connections(), MHD_connection_get_information_sz(), MHD_get_connection_info(), and new_connection_process_().
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(), internal_add_connection(), internal_get_fdset2(), internal_get_fdset2(), internal_run_from_select(), internal_run_from_select(), internal_suspend_connection_(), MHD_cleanup_connections(), MHD_connection_cleanup_(), MHD_connection_get_information_sz(), MHD_connection_mark_closed_(), MHD_connection_set_cork_state_(), MHD_connection_set_nodelay_state_(), MHD_daemon_close_all_connections_(), MHD_get_connection_info(), MHD_send_data_(), MHD_send_hdr_and_body_(), new_connection_prepare_(), new_connection_process_(), recv_param_adapter(), recv_param_adapter(), send_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 1565 of file internal.h.
Referenced by build_connection_chunked_response_footer(), check_write_done(), MHD_connection_handle_idle(), MHD_connection_handle_read(), MHD_connection_handle_write(), MHD_connection_mark_closed_(), MHD_connection_update_event_loop_info(), MHD_create_post_processor(), MHD_get_connection_info(), MHD_queue_response(), MHD_send_data_(), MHD_send_hdr_and_body_(), recv_param_adapter(), transmit_error_response_len(), try_ready_chunked_body(), and try_ready_normal_body().
bool MHD_Connection::stop_with_error |
Some error happens during processing the connection therefore this connection must be closed. The error may come from the client side (like wrong request format), from the application side (like data callback returned error), or from the OS side (like out-of-memory).
Definition at line 1526 of file internal.h.
Referenced by connection_close_error(), and transmit_error_response_len().
bool MHD_Connection::suspended |
Is the connection suspended?
Definition at line 764 of file internal.h.
Referenced by cleanup_connection(), cleanup_connection(), close_connection(), close_connection(), connection_update_event_loop_info(), internal_suspend_connection_(), MHD_connection_close_(), MHD_connection_get_information_sz(), MHD_connection_handle_idle(), 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_queue_response(), MHD_request_handle_idle_(), MHD_request_handle_read_(), MHD_request_handle_write_(), MHD_resume_suspended_connections_(), MHD_set_connection_option(), MHD_update_last_activity_(), process_request_body(), process_request_body(), resume_suspended_connections(), suspend_action(), and thread_main_handle_connection().
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(), MHD_cleanup_connections(), 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 recv_tls_adapter(), and thread_main_handle_connection().
char* MHD_Connection::write_buffer |
Buffer for writing response (headers only). Allocated in pool.
Definition at line 1409 of file internal.h.
Referenced by MHD_connection_handle_write(), transmit_error_response_len(), and try_ready_chunked_body().
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 1452 of file internal.h.
Referenced by check_write_done(), MHD_connection_handle_idle(), MHD_connection_handle_write(), transmit_error_response_len(), and try_ready_chunked_body().
size_t MHD_Connection::write_buffer_send_offset |
Offset where we are with sending from write_buffer.
Definition at line 1446 of file internal.h.
Referenced by check_write_done(), MHD_connection_handle_idle(), MHD_connection_handle_write(), transmit_error_response_len(), and try_ready_chunked_body().
size_t MHD_Connection::write_buffer_size |
Size of write_buffer (in bytes).
Definition at line 1441 of file internal.h.
Referenced by transmit_error_response_len(), and try_ready_chunked_body().