#include <ngx_config.h>
#include <ngx_core.h>
#include <ngx_http.h>
ngx_http_method_name_t;
#define NGX_HTTP_REQUEST_BODY_FILE_OFF …
#define NGX_HTTP_REQUEST_BODY_FILE_ON …
#define NGX_HTTP_REQUEST_BODY_FILE_CLEAN …
static ngx_int_t ngx_http_core_auth_delay(ngx_http_request_t *r);
static void ngx_http_core_auth_delay_handler(ngx_http_request_t *r);
static ngx_int_t ngx_http_core_find_location(ngx_http_request_t *r);
static ngx_int_t ngx_http_core_find_static_location(ngx_http_request_t *r,
ngx_http_location_tree_node_t *node);
static ngx_int_t ngx_http_core_preconfiguration(ngx_conf_t *cf);
static ngx_int_t ngx_http_core_postconfiguration(ngx_conf_t *cf);
static void *ngx_http_core_create_main_conf(ngx_conf_t *cf);
static char *ngx_http_core_init_main_conf(ngx_conf_t *cf, void *conf);
static void *ngx_http_core_create_srv_conf(ngx_conf_t *cf);
static char *ngx_http_core_merge_srv_conf(ngx_conf_t *cf,
void *parent, void *child);
static void *ngx_http_core_create_loc_conf(ngx_conf_t *cf);
static char *ngx_http_core_merge_loc_conf(ngx_conf_t *cf,
void *parent, void *child);
static char *ngx_http_core_server(ngx_conf_t *cf, ngx_command_t *cmd,
void *dummy);
static char *ngx_http_core_location(ngx_conf_t *cf, ngx_command_t *cmd,
void *dummy);
static ngx_int_t ngx_http_core_regex_location(ngx_conf_t *cf,
ngx_http_core_loc_conf_t *clcf, ngx_str_t *regex, ngx_uint_t caseless);
static char *ngx_http_core_types(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
static char *ngx_http_core_type(ngx_conf_t *cf, ngx_command_t *dummy,
void *conf);
static char *ngx_http_core_listen(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
static char *ngx_http_core_server_name(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
static char *ngx_http_core_root(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);
static char *ngx_http_core_limit_except(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
static char *ngx_http_core_set_aio(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
static char *ngx_http_core_directio(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
static char *ngx_http_core_error_page(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
static char *ngx_http_core_open_file_cache(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
static char *ngx_http_core_error_log(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
static char *ngx_http_core_keepalive(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
static char *ngx_http_core_internal(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
static char *ngx_http_core_resolver(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
#if (NGX_HTTP_GZIP)
static ngx_int_t ngx_http_gzip_accept_encoding(ngx_str_t *ae);
static ngx_uint_t ngx_http_gzip_quantity(u_char *p, u_char *last);
static char *ngx_http_gzip_disable(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
#endif
static ngx_int_t ngx_http_get_forwarded_addr_internal(ngx_http_request_t *r,
ngx_addr_t *addr, u_char *xff, size_t xfflen, ngx_array_t *proxies,
int recursive);
#if (NGX_HAVE_OPENAT)
static char *ngx_http_disable_symlinks(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
#endif
static char *ngx_http_core_lowat_check(ngx_conf_t *cf, void *post, void *data);
static char *ngx_http_core_pool_size(ngx_conf_t *cf, void *post, void *data);
static ngx_conf_post_t ngx_http_core_lowat_post = …;
static ngx_conf_post_handler_pt ngx_http_core_pool_size_p = …;
static ngx_conf_enum_t ngx_http_core_request_body_in_file[] = …;
static ngx_conf_enum_t ngx_http_core_satisfy[] = …;
static ngx_conf_enum_t ngx_http_core_lingering_close[] = …;
static ngx_conf_enum_t ngx_http_core_server_tokens[] = …;
static ngx_conf_enum_t ngx_http_core_if_modified_since[] = …;
static ngx_conf_bitmask_t ngx_http_core_keepalive_disable[] = …;
static ngx_path_init_t ngx_http_client_temp_path = …;
#if (NGX_HTTP_GZIP)
static ngx_conf_enum_t ngx_http_gzip_http_version[] = …;
static ngx_conf_bitmask_t ngx_http_gzip_proxied_mask[] = …;
static ngx_str_t ngx_http_gzip_no_cache = …;
static ngx_str_t ngx_http_gzip_no_store = …;
static ngx_str_t ngx_http_gzip_private = …;
#endif
static ngx_command_t ngx_http_core_commands[] = …;
static ngx_http_module_t ngx_http_core_module_ctx = …;
ngx_module_t ngx_http_core_module = …;
ngx_str_t ngx_http_core_get_method = …;
void
ngx_http_handler(ngx_http_request_t *r)
{ … }
void
ngx_http_core_run_phases(ngx_http_request_t *r)
{ … }
ngx_int_t
ngx_http_core_generic_phase(ngx_http_request_t *r, ngx_http_phase_handler_t *ph)
{ … }
ngx_int_t
ngx_http_core_rewrite_phase(ngx_http_request_t *r, ngx_http_phase_handler_t *ph)
{ … }
ngx_int_t
ngx_http_core_find_config_phase(ngx_http_request_t *r,
ngx_http_phase_handler_t *ph)
{ … }
ngx_int_t
ngx_http_core_post_rewrite_phase(ngx_http_request_t *r,
ngx_http_phase_handler_t *ph)
{ … }
ngx_int_t
ngx_http_core_access_phase(ngx_http_request_t *r, ngx_http_phase_handler_t *ph)
{ … }
ngx_int_t
ngx_http_core_post_access_phase(ngx_http_request_t *r,
ngx_http_phase_handler_t *ph)
{ … }
static ngx_int_t
ngx_http_core_auth_delay(ngx_http_request_t *r)
{ … }
static void
ngx_http_core_auth_delay_handler(ngx_http_request_t *r)
{ … }
ngx_int_t
ngx_http_core_content_phase(ngx_http_request_t *r,
ngx_http_phase_handler_t *ph)
{ … }
void
ngx_http_update_location_config(ngx_http_request_t *r)
{ … }
static ngx_int_t
ngx_http_core_find_location(ngx_http_request_t *r)
{ … }
static ngx_int_t
ngx_http_core_find_static_location(ngx_http_request_t *r,
ngx_http_location_tree_node_t *node)
{ … }
void *
ngx_http_test_content_type(ngx_http_request_t *r, ngx_hash_t *types_hash)
{ … }
ngx_int_t
ngx_http_set_content_type(ngx_http_request_t *r)
{ … }
void
ngx_http_set_exten(ngx_http_request_t *r)
{ … }
ngx_int_t
ngx_http_set_etag(ngx_http_request_t *r)
{ … }
void
ngx_http_weak_etag(ngx_http_request_t *r)
{ … }
ngx_int_t
ngx_http_send_response(ngx_http_request_t *r, ngx_uint_t status,
ngx_str_t *ct, ngx_http_complex_value_t *cv)
{ … }
ngx_int_t
ngx_http_send_header(ngx_http_request_t *r)
{ … }
ngx_int_t
ngx_http_output_filter(ngx_http_request_t *r, ngx_chain_t *in)
{ … }
u_char *
ngx_http_map_uri_to_path(ngx_http_request_t *r, ngx_str_t *path,
size_t *root_length, size_t reserved)
{ … }
ngx_int_t
ngx_http_auth_basic_user(ngx_http_request_t *r)
{ … }
#if (NGX_HTTP_GZIP)
ngx_int_t
ngx_http_gzip_ok(ngx_http_request_t *r)
{ … }
static ngx_int_t
ngx_http_gzip_accept_encoding(ngx_str_t *ae)
{ … }
static ngx_uint_t
ngx_http_gzip_quantity(u_char *p, u_char *last)
{ … }
#endif
ngx_int_t
ngx_http_subrequest(ngx_http_request_t *r,
ngx_str_t *uri, ngx_str_t *args, ngx_http_request_t **psr,
ngx_http_post_subrequest_t *ps, ngx_uint_t flags)
{ … }
ngx_int_t
ngx_http_internal_redirect(ngx_http_request_t *r,
ngx_str_t *uri, ngx_str_t *args)
{ … }
ngx_int_t
ngx_http_named_location(ngx_http_request_t *r, ngx_str_t *name)
{ … }
ngx_http_cleanup_t *
ngx_http_cleanup_add(ngx_http_request_t *r, size_t size)
{ … }
ngx_int_t
ngx_http_set_disable_symlinks(ngx_http_request_t *r,
ngx_http_core_loc_conf_t *clcf, ngx_str_t *path, ngx_open_file_info_t *of)
{ … }
ngx_int_t
ngx_http_get_forwarded_addr(ngx_http_request_t *r, ngx_addr_t *addr,
ngx_table_elt_t *headers, ngx_str_t *value, ngx_array_t *proxies,
int recursive)
{ … }
static ngx_int_t
ngx_http_get_forwarded_addr_internal(ngx_http_request_t *r, ngx_addr_t *addr,
u_char *xff, size_t xfflen, ngx_array_t *proxies, int recursive)
{ … }
ngx_int_t
ngx_http_link_multi_headers(ngx_http_request_t *r)
{ … }
static char *
ngx_http_core_server(ngx_conf_t *cf, ngx_command_t *cmd, void *dummy)
{ … }
static char *
ngx_http_core_location(ngx_conf_t *cf, ngx_command_t *cmd, void *dummy)
{ … }
static ngx_int_t
ngx_http_core_regex_location(ngx_conf_t *cf, ngx_http_core_loc_conf_t *clcf,
ngx_str_t *regex, ngx_uint_t caseless)
{ … }
static char *
ngx_http_core_types(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
{ … }
static char *
ngx_http_core_type(ngx_conf_t *cf, ngx_command_t *dummy, void *conf)
{ … }
static ngx_int_t
ngx_http_core_preconfiguration(ngx_conf_t *cf)
{ … }
static ngx_int_t
ngx_http_core_postconfiguration(ngx_conf_t *cf)
{ … }
static void *
ngx_http_core_create_main_conf(ngx_conf_t *cf)
{ … }
static char *
ngx_http_core_init_main_conf(ngx_conf_t *cf, void *conf)
{ … }
static void *
ngx_http_core_create_srv_conf(ngx_conf_t *cf)
{ … }
static char *
ngx_http_core_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child)
{ … }
static void *
ngx_http_core_create_loc_conf(ngx_conf_t *cf)
{ … }
static ngx_str_t ngx_http_core_text_html_type = …;
static ngx_str_t ngx_http_core_image_gif_type = …;
static ngx_str_t ngx_http_core_image_jpeg_type = …;
static ngx_hash_key_t ngx_http_core_default_types[] = …;
static char *
ngx_http_core_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
{ … }
static char *
ngx_http_core_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
{ … }
static char *
ngx_http_core_server_name(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
{ … }
static char *
ngx_http_core_root(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
{ … }
static ngx_http_method_name_t ngx_methods_names[] = …;
static char *
ngx_http_core_limit_except(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
{ … }
static char *
ngx_http_core_set_aio(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
{ … }
static char *
ngx_http_core_directio(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
{ … }
static char *
ngx_http_core_error_page(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
{ … }
static char *
ngx_http_core_open_file_cache(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
{ … }
static char *
ngx_http_core_error_log(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
{ … }
static char *
ngx_http_core_keepalive(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
{ … }
static char *
ngx_http_core_internal(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
{ … }
static char *
ngx_http_core_resolver(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
{ … }
#if (NGX_HTTP_GZIP)
static char *
ngx_http_gzip_disable(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
{ … }
#endif
#if (NGX_HAVE_OPENAT)
static char *
ngx_http_disable_symlinks(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
{ … }
#endif
static char *
ngx_http_core_lowat_check(ngx_conf_t *cf, void *post, void *data)
{ … }
static char *
ngx_http_core_pool_size(ngx_conf_t *cf, void *post, void *data)
{ … }