1
0
mirror of https://github.com/openresty/openresty.git synced 2024-10-13 00:29:41 +00:00
Files
.github
FreeBSD
clients
demo
doc
html
patches
lua-5.1.4-makefile_install_fix.patch
lua-5.1.5-disable_lua50_compat.patch
lua-5.1.5-enable_debug_info.patch
lua-5.1.5-makefile_install_fix.patch
lua_cjson-1.0.2-array_detection_fix.patch
luajit-2.0.0-2ad9834d.patch
luajit-win32-default-paths.patch
nginx-0.8.54-allow_request_body_updating.patch
nginx-0.8.54-named_location_clear_mods_ctx.patch
nginx-0.8.54-no_Werror.patch
nginx-0.8.54-no_error_pages.patch
nginx-0.8.54-redirect_memcpy_overlap.patch
nginx-0.8.54-request_body_in_single_buf.patch
nginx-0.8.54-request_body_preread_fix.patch
nginx-0.8.54-server_header.patch
nginx-0.8.54-subrequest_loop.patch
nginx-0.8.54-variable_header_ignore_no_hash.patch
nginx-1.0.10-allow_request_body_updating.patch
nginx-1.0.10-epoll_check_stale_wev.patch
nginx-1.0.10-gzip_empty_flush_buf.patch
nginx-1.0.10-log_escape_non_ascii.patch
nginx-1.0.10-named_location_clear_mods_ctx.patch
nginx-1.0.10-no_Werror.patch
nginx-1.0.10-no_error_pages.patch
nginx-1.0.10-no_pool.patch
nginx-1.0.10-request_body_in_single_buf.patch
nginx-1.0.10-request_body_preread_fix.patch
nginx-1.0.10-server_header.patch
nginx-1.0.10-subrequest_loop.patch
nginx-1.0.10-variable_header_ignore_no_hash.patch
nginx-1.0.11-allow_request_body_updating.patch
nginx-1.0.11-epoll_check_stale_wev.patch
nginx-1.0.11-gzip_empty_flush_buf.patch
nginx-1.0.11-log_escape_non_ascii.patch
nginx-1.0.11-max_subrequests.patch
nginx-1.0.11-named_location_clear_mods_ctx.patch
nginx-1.0.11-no_Werror.patch
nginx-1.0.11-no_error_pages.patch
nginx-1.0.11-no_pool.patch
nginx-1.0.11-null_character_fixes.patch
nginx-1.0.11-request_body_in_single_buf.patch
nginx-1.0.11-request_body_preread_fix.patch
nginx-1.0.11-server_header.patch
nginx-1.0.11-subrequest_loop.patch
nginx-1.0.11-upstream_pipelining.patch
nginx-1.0.11-variable_header_ignore_no_hash.patch
nginx-1.0.12-allow_request_body_updating.patch
nginx-1.0.12-epoll_check_stale_wev.patch
nginx-1.0.12-gzip_empty_flush_buf.patch
nginx-1.0.12-log_escape_non_ascii.patch
nginx-1.0.12-max_subrequests.patch
nginx-1.0.12-named_location_clear_mods_ctx.patch
nginx-1.0.12-no_Werror.patch
nginx-1.0.12-no_error_pages.patch
nginx-1.0.12-no_pool.patch
nginx-1.0.12-request_body_in_single_buf.patch
nginx-1.0.12-request_body_preread_fix.patch
nginx-1.0.12-server_header.patch
nginx-1.0.12-subrequest_loop.patch
nginx-1.0.12-variable_header_ignore_no_hash.patch
nginx-1.0.14-allow_request_body_updating.patch
nginx-1.0.14-epoll_check_stale_wev.patch
nginx-1.0.14-gzip_empty_flush_buf.patch
nginx-1.0.14-log_escape_non_ascii.patch
nginx-1.0.14-max_subrequests.patch
nginx-1.0.14-named_location_clear_mods_ctx.patch
nginx-1.0.14-no_Werror.patch
nginx-1.0.14-no_error_pages.patch
nginx-1.0.14-no_pool.patch
nginx-1.0.14-null_character_fixes.patch
nginx-1.0.14-request_body_in_single_buf.patch
nginx-1.0.14-request_body_preread_fix.patch
nginx-1.0.14-server_header.patch
nginx-1.0.14-subrequest_loop.patch
nginx-1.0.14-upstream_pipelining.patch
nginx-1.0.14-variable_header_ignore_no_hash.patch
nginx-1.0.15-add_core_vars_polluting_globals.patch
nginx-1.0.15-allow_request_body_updating.patch
nginx-1.0.15-filter_finalize_hang.patch
nginx-1.0.15-gzip_empty_flush_buf.patch
nginx-1.0.15-log_escape_non_ascii.patch
nginx-1.0.15-max_subrequests.patch
nginx-1.0.15-named_location_clear_mods_ctx.patch
nginx-1.0.15-no_Werror.patch
nginx-1.0.15-no_error_pages.patch
nginx-1.0.15-no_pool.patch
nginx-1.0.15-null_character_fixes.patch
nginx-1.0.15-poll_del_event_at_exit.patch
nginx-1.0.15-request_body_in_single_buf.patch
nginx-1.0.15-request_body_preread_fix.patch
nginx-1.0.15-reset_wev_handler_in_named_locations.patch
nginx-1.0.15-resolver_debug_log_overflow.patch
nginx-1.0.15-server_header.patch
nginx-1.0.15-subrequest_loop.patch
nginx-1.0.15-upstream_pipelining.patch
nginx-1.0.15-variable_header_ignore_no_hash.patch
nginx-1.0.4-gcc46_fixes.patch
nginx-1.0.4-no_Werror.patch
nginx-1.0.4-no_error_pages.patch
nginx-1.0.4-no_pool.patch
nginx-1.0.4-request_body_in_single_buf.patch
nginx-1.0.4-request_body_preread_fix.patch
nginx-1.0.4-server_header.patch
nginx-1.0.4-subrequest_loop.patch
nginx-1.0.5-no_Werror.patch
nginx-1.0.5-no_error_pages.patch
nginx-1.0.5-no_pool.patch
nginx-1.0.5-request_body_in_single_buf.patch
nginx-1.0.5-request_body_preread_fix.patch
nginx-1.0.5-server_header.patch
nginx-1.0.5-subrequest_loop.patch
nginx-1.0.6-gzip_empty_flush_buf.patch
nginx-1.0.6-no_Werror.patch
nginx-1.0.6-no_error_pages.patch
nginx-1.0.6-no_pool.patch
nginx-1.0.6-request_body_in_single_buf.patch
nginx-1.0.6-request_body_preread_fix.patch
nginx-1.0.6-server_header.patch
nginx-1.0.6-subrequest_loop.patch
nginx-1.0.6-variable_header_ignore_no_hash.patch
nginx-1.0.8-allow_request_body_updating.patch
nginx-1.0.8-gzip_empty_flush_buf.patch
nginx-1.0.8-named_location_clear_mods_ctx.patch
nginx-1.0.8-no_Werror.patch
nginx-1.0.8-no_error_pages.patch
nginx-1.0.8-no_pool.patch
nginx-1.0.8-request_body_in_single_buf.patch
nginx-1.0.8-request_body_preread_fix.patch
nginx-1.0.8-server_header.patch
nginx-1.0.8-subrequest_loop.patch
nginx-1.0.8-variable_header_ignore_no_hash.patch
nginx-1.0.9-allow_request_body_updating.patch
nginx-1.0.9-epoll_check_stale_wev.patch
nginx-1.0.9-gzip_empty_flush_buf.patch
nginx-1.0.9-log_escape_non_ascii.patch
nginx-1.0.9-named_location_clear_mods_ctx.patch
nginx-1.0.9-no_Werror.patch
nginx-1.0.9-no_error_pages.patch
nginx-1.0.9-no_pool.patch
nginx-1.0.9-request_body_in_single_buf.patch
nginx-1.0.9-request_body_preread_fix.patch
nginx-1.0.9-server_header.patch
nginx-1.0.9-subrequest_loop.patch
nginx-1.0.9-variable_header_ignore_no_hash.patch
nginx-1.1.15-allow_request_body_updating.patch
nginx-1.1.15-gzip_empty_flush_buf.patch
nginx-1.1.15-log_escape_non_ascii.patch
nginx-1.1.15-named_location_clear_mods_ctx.patch
nginx-1.1.15-no_Werror.patch
nginx-1.1.15-no_error_pages.patch
nginx-1.1.15-no_pool.patch
nginx-1.1.15-server_header.patch
nginx-1.1.15-subrequest_loop.patch
nginx-1.1.2-no_error_pages.patch
nginx-1.1.4-variable_header_ignore_no_hash.patch
nginx-1.1.5-named_location_clear_mods_ctx.patch
nginx-1.11.2-always_enable_cc_feature_tests.patch
nginx-1.11.2-balancer_status_code.patch
nginx-1.11.2-builtin_error_page_footer.patch
nginx-1.11.2-cache_manager_exit.patch
nginx-1.11.2-delayed_posted_events.patch
nginx-1.11.2-dtrace.patch
nginx-1.11.2-gcc-maybe-uninitialized-warning.patch
nginx-1.11.2-hash_overflow.patch
nginx-1.11.2-intercept_error_log.patch
nginx-1.11.2-larger_max_error_str.patch
nginx-1.11.2-log_escape_non_ascii.patch
nginx-1.11.2-no_Werror.patch
nginx-1.11.2-no_error_pages.patch
nginx-1.11.2-no_pool.patch
nginx-1.11.2-pcre_conf_opt.patch
nginx-1.11.2-privileged_agent_process.patch
nginx-1.11.2-proxy_host_port_vars.patch
nginx-1.11.2-safe_resolver_ipv6_option.patch
nginx-1.11.2-server_header.patch
nginx-1.11.2-setting_args_invalidates_uri.patch
nginx-1.11.2-single_process_graceful_exit.patch
nginx-1.11.2-slab_defrag.patch
nginx-1.11.2-ssl_cert_cb_yield.patch
nginx-1.11.2-ssl_pending_session.patch
nginx-1.11.2-upstream_pipelining.patch
nginx-1.11.2-upstream_timeout_fields.patch
nginx-1.13.3-always_enable_cc_feature_tests.patch
nginx-1.13.3-balancer_status_code.patch
nginx-1.13.3-builtin_error_page_footer.patch
nginx-1.13.3-cache_manager_exit.patch
nginx-1.13.3-delayed_posted_events.patch
nginx-1.13.3-dtrace.patch
nginx-1.13.3-gcc-maybe-uninitialized-warning.patch
nginx-1.13.3-hash_overflow.patch
nginx-1.13.3-intercept_error_log.patch
nginx-1.13.3-larger_max_error_str.patch
nginx-1.13.3-log_escape_non_ascii.patch
nginx-1.13.3-no_Werror.patch
nginx-1.13.3-no_error_pages.patch
nginx-1.13.3-no_pool.patch
nginx-1.13.3-pcre_conf_opt.patch
nginx-1.13.3-privileged_agent_process.patch
nginx-1.13.3-proxy_host_port_vars.patch
nginx-1.13.3-safe_resolver_ipv6_option.patch
nginx-1.13.3-server_header.patch
nginx-1.13.3-setting_args_invalidates_uri.patch
nginx-1.13.3-single_process_graceful_exit.patch
nginx-1.13.3-slab_defrag.patch
nginx-1.13.3-ssl_cert_cb_yield.patch
nginx-1.13.3-ssl_pending_session.patch
nginx-1.13.3-stream_balancer_export.patch
nginx-1.13.3-stream_proxy_get_next_upstream_tries.patch
nginx-1.13.3-stream_proxy_timeout_fields.patch
nginx-1.13.3-upstream_pipelining.patch
nginx-1.13.3-upstream_timeout_fields.patch
nginx-1.13.4-always_enable_cc_feature_tests.patch
nginx-1.13.4-balancer_status_code.patch
nginx-1.13.4-builtin_error_page_footer.patch
nginx-1.13.4-cache_manager_exit.patch
nginx-1.13.4-delayed_posted_events.patch
nginx-1.13.4-dtrace.patch
nginx-1.13.4-gcc-maybe-uninitialized-warning.patch
nginx-1.13.4-hash_overflow.patch
nginx-1.13.4-intercept_error_log.patch
nginx-1.13.4-larger_max_error_str.patch
nginx-1.13.4-log_escape_non_ascii.patch
nginx-1.13.4-no_Werror.patch
nginx-1.13.4-no_error_pages.patch
nginx-1.13.4-no_pool.patch
nginx-1.13.4-pcre_conf_opt.patch
nginx-1.13.4-privileged_agent_process.patch
nginx-1.13.4-proxy_host_port_vars.patch
nginx-1.13.4-safe_resolver_ipv6_option.patch
nginx-1.13.4-server_header.patch
nginx-1.13.4-setting_args_invalidates_uri.patch
nginx-1.13.4-single_process_graceful_exit.patch
nginx-1.13.4-slab_defrag.patch
nginx-1.13.4-ssl_cert_cb_yield.patch
nginx-1.13.4-ssl_pending_session.patch
nginx-1.13.4-stream_balancer_export.patch
nginx-1.13.4-stream_proxy_get_next_upstream_tries.patch
nginx-1.13.4-stream_proxy_timeout_fields.patch
nginx-1.13.4-upstream_pipelining.patch
nginx-1.13.4-upstream_timeout_fields.patch
nginx-1.13.5-always_enable_cc_feature_tests.patch
nginx-1.13.5-balancer_status_code.patch
nginx-1.13.5-builtin_error_page_footer.patch
nginx-1.13.5-cache_manager_exit.patch
nginx-1.13.5-delayed_posted_events.patch
nginx-1.13.5-dtrace.patch
nginx-1.13.5-gcc-maybe-uninitialized-warning.patch
nginx-1.13.5-hash_overflow.patch
nginx-1.13.5-intercept_error_log.patch
nginx-1.13.5-larger_max_error_str.patch
nginx-1.13.5-log_escape_non_ascii.patch
nginx-1.13.5-no_Werror.patch
nginx-1.13.5-no_error_pages.patch
nginx-1.13.5-no_pool.patch
nginx-1.13.5-pcre_conf_opt.patch
nginx-1.13.5-privileged_agent_process.patch
nginx-1.13.5-proxy_host_port_vars.patch
nginx-1.13.5-safe_resolver_ipv6_option.patch
nginx-1.13.5-server_header.patch
nginx-1.13.5-setting_args_invalidates_uri.patch
nginx-1.13.5-single_process_graceful_exit.patch
nginx-1.13.5-ssl_cert_cb_yield.patch
nginx-1.13.5-ssl_pending_session.patch
nginx-1.13.5-stream_balancer_export.patch
nginx-1.13.5-stream_proxy_get_next_upstream_tries.patch
nginx-1.13.5-stream_proxy_timeout_fields.patch
nginx-1.13.5-upstream_pipelining.patch
nginx-1.13.5-upstream_timeout_fields.patch
nginx-1.13.6-always_enable_cc_feature_tests.patch
nginx-1.13.6-balancer_status_code.patch
nginx-1.13.6-builtin_error_page_footer.patch
nginx-1.13.6-cache_manager_exit.patch
nginx-1.13.6-daemon_destroy_pool.patch
nginx-1.13.6-delayed_posted_events.patch
nginx-1.13.6-dtrace.patch
nginx-1.13.6-gcc-maybe-uninitialized-warning.patch
nginx-1.13.6-hash_overflow.patch
nginx-1.13.6-init_cycle_pool_release.patch
nginx-1.13.6-intercept_error_log.patch
nginx-1.13.6-larger_max_error_str.patch
nginx-1.13.6-log_escape_non_ascii.patch
nginx-1.13.6-no_Werror.patch
nginx-1.13.6-no_error_pages.patch
nginx-1.13.6-no_pool.patch
nginx-1.13.6-pcre_conf_opt.patch
nginx-1.13.6-privileged_agent_process.patch
nginx-1.13.6-proxy_host_port_vars.patch
nginx-1.13.6-resolver_conf_parsing.patch
nginx-1.13.6-safe_resolver_ipv6_option.patch
nginx-1.13.6-server_header.patch
nginx-1.13.6-setting_args_invalidates_uri.patch
nginx-1.13.6-single_process_graceful_exit.patch
nginx-1.13.6-socket_cloexec.patch
nginx-1.13.6-ssl_cert_cb_yield.patch
nginx-1.13.6-ssl_pending_session.patch
nginx-1.13.6-stream_balancer_export.patch
nginx-1.13.6-stream_proxy_get_next_upstream_tries.patch
nginx-1.13.6-stream_proxy_timeout_fields.patch
nginx-1.13.6-stream_ssl_preread_no_skip.patch
nginx-1.13.6-upstream_pipelining.patch
nginx-1.13.6-upstream_timeout_fields.patch
nginx-1.13.8-balancer_status_code.patch
nginx-1.13.8-stream_ssl_preread_no_skip.patch
nginx-1.15.5-always_enable_cc_feature_tests.patch
nginx-1.15.5-balancer_status_code.patch
nginx-1.15.5-builtin_error_page_footer.patch
nginx-1.15.5-cache_manager_exit.patch
nginx-1.15.5-daemon_destroy_pool.patch
nginx-1.15.5-delayed_posted_events.patch
nginx-1.15.5-dtrace.patch
nginx-1.15.5-gcc-maybe-uninitialized-warning.patch
nginx-1.15.5-hash_overflow.patch
nginx-1.15.5-init_cycle_pool_release.patch
nginx-1.15.5-intercept_error_log.patch
nginx-1.15.5-larger_max_error_str.patch
nginx-1.15.5-log_escape_non_ascii.patch
nginx-1.15.5-no_Werror.patch
nginx-1.15.5-no_error_pages.patch
nginx-1.15.5-no_pool.patch
nginx-1.15.5-pcre_conf_opt.patch
nginx-1.15.5-privileged_agent_process.patch
nginx-1.15.5-proxy_host_port_vars.patch
nginx-1.15.5-resolver_conf_parsing.patch
nginx-1.15.5-safe_resolver_ipv6_option.patch
nginx-1.15.5-server_header.patch
nginx-1.15.5-setting_args_invalidates_uri.patch
nginx-1.15.5-single_process_graceful_exit.patch
nginx-1.15.5-socket_cloexec.patch
nginx-1.15.5-ssl_cert_cb_yield.patch
nginx-1.15.5-ssl_pending_session.patch
nginx-1.15.5-stream_balancer_export.patch
nginx-1.15.5-stream_proxy_get_next_upstream_tries.patch
nginx-1.15.5-stream_proxy_timeout_fields.patch
nginx-1.15.5-stream_ssl_preread_no_skip.patch
nginx-1.15.5-upstream_pipelining.patch
nginx-1.15.5-upstream_timeout_fields.patch
nginx-1.15.6-always_enable_cc_feature_tests.patch
nginx-1.15.6-balancer_status_code.patch
nginx-1.15.6-builtin_error_page_footer.patch
nginx-1.15.6-cache_manager_exit.patch
nginx-1.15.6-daemon_destroy_pool.patch
nginx-1.15.6-delayed_posted_events.patch
nginx-1.15.6-dtrace.patch
nginx-1.15.6-gcc-maybe-uninitialized-warning.patch
nginx-1.15.6-hash_overflow.patch
nginx-1.15.6-init_cycle_pool_release.patch
nginx-1.15.6-intercept_error_log.patch
nginx-1.15.6-larger_max_error_str.patch
nginx-1.15.6-log_escape_non_ascii.patch
nginx-1.15.6-no_Werror.patch
nginx-1.15.6-no_error_pages.patch
nginx-1.15.6-no_pool.patch
nginx-1.15.6-pcre_conf_opt.patch
nginx-1.15.6-privileged_agent_process.patch
nginx-1.15.6-proxy_host_port_vars.patch
nginx-1.15.6-resolver_conf_parsing.patch
nginx-1.15.6-safe_resolver_ipv6_option.patch
nginx-1.15.6-server_header.patch
nginx-1.15.6-setting_args_invalidates_uri.patch
nginx-1.15.6-single_process_graceful_exit.patch
nginx-1.15.6-socket_cloexec.patch
nginx-1.15.6-ssl_cert_cb_yield.patch
nginx-1.15.6-ssl_pending_session.patch
nginx-1.15.6-stream_balancer_export.patch
nginx-1.15.6-stream_proxy_get_next_upstream_tries.patch
nginx-1.15.6-stream_proxy_timeout_fields.patch
nginx-1.15.6-stream_ssl_preread_no_skip.patch
nginx-1.15.6-upstream_pipelining.patch
nginx-1.15.6-upstream_timeout_fields.patch
nginx-1.15.8-always_enable_cc_feature_tests.patch
nginx-1.15.8-balancer_status_code.patch
nginx-1.15.8-builtin_error_page_footer.patch
nginx-1.15.8-cache_manager_exit.patch
nginx-1.15.8-daemon_destroy_pool.patch
nginx-1.15.8-delayed_posted_events.patch
nginx-1.15.8-dtrace.patch
nginx-1.15.8-gcc-maybe-uninitialized-warning.patch
nginx-1.15.8-hash_overflow.patch
nginx-1.15.8-init_cycle_pool_release.patch
nginx-1.15.8-intercept_error_log.patch
nginx-1.15.8-larger_max_error_str.patch
nginx-1.15.8-log_escape_non_ascii.patch
nginx-1.15.8-no_Werror.patch
nginx-1.15.8-no_error_pages.patch
nginx-1.15.8-no_pool.patch
nginx-1.15.8-pcre_conf_opt.patch
nginx-1.15.8-privileged_agent_process.patch
nginx-1.15.8-proxy_host_port_vars.patch
nginx-1.15.8-resolver_conf_parsing.patch
nginx-1.15.8-safe_resolver_ipv6_option.patch
nginx-1.15.8-server_header.patch
nginx-1.15.8-setting_args_invalidates_uri.patch
nginx-1.15.8-single_process_graceful_exit.patch
nginx-1.15.8-socket_cloexec.patch
nginx-1.15.8-ssl_cert_cb_yield.patch
nginx-1.15.8-ssl_pending_session.patch
nginx-1.15.8-stream_balancer_export.patch
nginx-1.15.8-stream_proxy_get_next_upstream_tries.patch
nginx-1.15.8-stream_proxy_timeout_fields.patch
nginx-1.15.8-stream_ssl_preread_no_skip.patch
nginx-1.15.8-upstream_pipelining.patch
nginx-1.15.8-upstream_timeout_fields.patch
nginx-1.15.8-win32_max_err_str.patch
nginx-1.17.1-always_enable_cc_feature_tests.patch
nginx-1.17.1-balancer_status_code.patch
nginx-1.17.1-builtin_error_page_footer.patch
nginx-1.17.1-cache_manager_exit.patch
nginx-1.17.1-daemon_destroy_pool.patch
nginx-1.17.1-delayed_posted_events.patch
nginx-1.17.1-dtrace.patch
nginx-1.17.1-gcc-maybe-uninitialized-warning.patch
nginx-1.17.1-hash_overflow.patch
nginx-1.17.1-init_cycle_pool_release.patch
nginx-1.17.1-intercept_error_log.patch
nginx-1.17.1-larger_max_error_str.patch
nginx-1.17.1-log_escape_non_ascii.patch
nginx-1.17.1-no_Werror.patch
nginx-1.17.1-no_error_pages.patch
nginx-1.17.1-no_pool.patch
nginx-1.17.1-pcre_conf_opt.patch
nginx-1.17.1-privileged_agent_process.patch
nginx-1.17.1-proxy_host_port_vars.patch
nginx-1.17.1-resolver_conf_parsing.patch
nginx-1.17.1-reuseport_close_unused_fds.patch
nginx-1.17.1-safe_resolver_ipv6_option.patch
nginx-1.17.1-server_header.patch
nginx-1.17.1-setting_args_invalidates_uri.patch
nginx-1.17.1-single_process_graceful_exit.patch
nginx-1.17.1-socket_cloexec.patch
nginx-1.17.1-ssl_cert_cb_yield.patch
nginx-1.17.1-ssl_sess_cb_yield.patch
nginx-1.17.1-stream_balancer_export.patch
nginx-1.17.1-stream_proxy_get_next_upstream_tries.patch
nginx-1.17.1-stream_proxy_timeout_fields.patch
nginx-1.17.1-stream_ssl_preread_no_skip.patch
nginx-1.17.1-upstream_pipelining.patch
nginx-1.17.1-upstream_timeout_fields.patch
nginx-1.17.1-win32_max_err_str.patch
nginx-1.17.4-always_enable_cc_feature_tests.patch
nginx-1.17.4-balancer_status_code.patch
nginx-1.17.4-builtin_error_page_footer.patch
nginx-1.17.4-cache_manager_exit.patch
nginx-1.17.4-daemon_destroy_pool.patch
nginx-1.17.4-delayed_posted_events.patch
nginx-1.17.4-hash_overflow.patch
nginx-1.17.4-init_cycle_pool_release.patch
nginx-1.17.4-intercept_error_log.patch
nginx-1.17.4-larger_max_error_str.patch
nginx-1.17.4-log_escape_non_ascii.patch
nginx-1.17.4-no_Werror.patch
nginx-1.17.4-no_error_pages.patch
nginx-1.17.4-no_pool.patch
nginx-1.17.4-pcre_conf_opt.patch
nginx-1.17.4-privileged_agent_process.patch
nginx-1.17.4-proxy_host_port_vars.patch
nginx-1.17.4-resolver_conf_parsing.patch
nginx-1.17.4-reuseport_close_unused_fds.patch
nginx-1.17.4-safe_resolver_ipv6_option.patch
nginx-1.17.4-server_header.patch
nginx-1.17.4-setting_args_invalidates_uri.patch
nginx-1.17.4-single_process_graceful_exit.patch
nginx-1.17.4-socket_cloexec.patch
nginx-1.17.4-ssl_cert_cb_yield.patch
nginx-1.17.4-ssl_sess_cb_yield.patch
nginx-1.17.4-stream_balancer_export.patch
nginx-1.17.4-stream_proxy_get_next_upstream_tries.patch
nginx-1.17.4-stream_proxy_timeout_fields.patch
nginx-1.17.4-stream_ssl_preread_no_skip.patch
nginx-1.17.4-upstream_pipelining.patch
nginx-1.17.4-upstream_timeout_fields.patch
nginx-1.17.4-win32_max_err_str.patch
nginx-1.17.8-always_enable_cc_feature_tests.patch
nginx-1.17.8-balancer_status_code.patch
nginx-1.17.8-builtin_error_page_footer.patch
nginx-1.17.8-cache_manager_exit.patch
nginx-1.17.8-daemon_destroy_pool.patch
nginx-1.17.8-delayed_posted_events.patch
nginx-1.17.8-hash_overflow.patch
nginx-1.17.8-init_cycle_pool_release.patch
nginx-1.17.8-intercept_error_log.patch
nginx-1.17.8-larger_max_error_str.patch
nginx-1.17.8-log_escape_non_ascii.patch
nginx-1.17.8-no_Werror.patch
nginx-1.17.8-no_error_pages.patch
nginx-1.17.8-no_pool.patch
nginx-1.17.8-pcre_conf_opt.patch
nginx-1.17.8-privileged_agent_process.patch
nginx-1.17.8-proxy_host_port_vars.patch
nginx-1.17.8-resolver_conf_parsing.patch
nginx-1.17.8-reuseport_close_unused_fds.patch
nginx-1.17.8-safe_resolver_ipv6_option.patch
nginx-1.17.8-server_header.patch
nginx-1.17.8-setting_args_invalidates_uri.patch
nginx-1.17.8-single_process_graceful_exit.patch
nginx-1.17.8-socket_cloexec.patch
nginx-1.17.8-ssl_cert_cb_yield.patch
nginx-1.17.8-ssl_sess_cb_yield.patch
nginx-1.17.8-static_mod_escape_loc_hdr.patch
nginx-1.17.8-stream_balancer_export.patch
nginx-1.17.8-stream_proxy_get_next_upstream_tries.patch
nginx-1.17.8-stream_proxy_timeout_fields.patch
nginx-1.17.8-stream_ssl_preread_no_skip.patch
nginx-1.17.8-upstream_pipelining.patch
nginx-1.17.8-upstream_timeout_fields.patch
nginx-1.17.8-win32_max_err_str.patch
nginx-1.19.2-always_enable_cc_feature_tests.patch
nginx-1.19.2-balancer_status_code.patch
nginx-1.19.2-builtin_error_page_footer.patch
nginx-1.19.2-cache_manager_exit.patch
nginx-1.19.2-daemon_destroy_pool.patch
nginx-1.19.2-delayed_posted_events.patch
nginx-1.19.2-hash_overflow.patch
nginx-1.19.2-init_cycle_pool_release.patch
nginx-1.19.2-intercept_error_log.patch
nginx-1.19.2-larger_max_error_str.patch
nginx-1.19.2-log_escape_non_ascii.patch
nginx-1.19.2-no_Werror.patch
nginx-1.19.2-no_error_pages.patch
nginx-1.19.2-no_pool.patch
nginx-1.19.2-pcre_conf_opt.patch
nginx-1.19.2-privileged_agent_process.patch
nginx-1.19.2-proxy_host_port_vars.patch
nginx-1.19.2-resolver_conf_parsing.patch
nginx-1.19.2-reuseport_close_unused_fds.patch
nginx-1.19.2-safe_resolver_ipv6_option.patch
nginx-1.19.2-server_header.patch
nginx-1.19.2-setting_args_invalidates_uri.patch
nginx-1.19.2-single_process_graceful_exit.patch
nginx-1.19.2-socket_cloexec.patch
nginx-1.19.2-ssl_cert_cb_yield.patch
nginx-1.19.2-ssl_sess_cb_yield.patch
nginx-1.19.2-static_mod_escape_loc_hdr.patch
nginx-1.19.2-stream_balancer_export.patch
nginx-1.19.2-stream_proxy_get_next_upstream_tries.patch
nginx-1.19.2-stream_proxy_timeout_fields.patch
nginx-1.19.2-stream_ssl_preread_no_skip.patch
nginx-1.19.2-upstream_pipelining.patch
nginx-1.19.2-upstream_timeout_fields.patch
nginx-1.19.2-win32_max_err_str.patch
nginx-1.19.3-always_enable_cc_feature_tests.patch
nginx-1.19.3-balancer_status_code.patch
nginx-1.19.3-builtin_error_page_footer.patch
nginx-1.19.3-cache_manager_exit.patch
nginx-1.19.3-daemon_destroy_pool.patch
nginx-1.19.3-delayed_posted_events.patch
nginx-1.19.3-hash_overflow.patch
nginx-1.19.3-init_cycle_pool_release.patch
nginx-1.19.3-intercept_error_log.patch
nginx-1.19.3-larger_max_error_str.patch
nginx-1.19.3-log_escape_non_ascii.patch
nginx-1.19.3-no_Werror.patch
nginx-1.19.3-no_error_pages.patch
nginx-1.19.3-no_pool.patch
nginx-1.19.3-pcre_conf_opt.patch
nginx-1.19.3-privileged_agent_process.patch
nginx-1.19.3-privileged_agent_process_connections.patch
nginx-1.19.3-proxy_host_port_vars.patch
nginx-1.19.3-resolver_conf_parsing.patch
nginx-1.19.3-reuseport_close_unused_fds.patch
nginx-1.19.3-safe_resolver_ipv6_option.patch
nginx-1.19.3-server_header.patch
nginx-1.19.3-setting_args_invalidates_uri.patch
nginx-1.19.3-single_process_graceful_exit.patch
nginx-1.19.3-socket_cloexec.patch
nginx-1.19.3-ssl_cert_cb_yield.patch
nginx-1.19.3-ssl_sess_cb_yield.patch
nginx-1.19.3-static_mod_escape_loc_hdr.patch
nginx-1.19.3-stream_balancer_export.patch
nginx-1.19.3-stream_proxy_get_next_upstream_tries.patch
nginx-1.19.3-stream_proxy_timeout_fields.patch
nginx-1.19.3-stream_ssl_preread_no_skip.patch
nginx-1.19.3-upstream_pipelining.patch
nginx-1.19.3-upstream_timeout_fields.patch
nginx-1.19.3-win32_max_err_str.patch
nginx-1.19.8-always_enable_cc_feature_tests.patch
nginx-1.19.8-balancer_status_code.patch
nginx-1.19.8-builtin_error_page_footer.patch
nginx-1.19.8-cache_manager_exit.patch
nginx-1.19.8-daemon_destroy_pool.patch
nginx-1.19.8-delayed_posted_events.patch
nginx-1.19.8-hash_overflow.patch
nginx-1.19.8-init_cycle_pool_release.patch
nginx-1.19.8-intercept_error_log.patch
nginx-1.19.8-larger_max_error_str.patch
nginx-1.19.8-log_escape_non_ascii.patch
nginx-1.19.8-no_Werror.patch
nginx-1.19.8-no_error_pages.patch
nginx-1.19.8-no_pool.patch
nginx-1.19.8-pcre_conf_opt.patch
nginx-1.19.8-privileged_agent_process.patch
nginx-1.19.8-proxy_host_port_vars.patch
nginx-1.19.8-resolver_conf_parsing.patch
nginx-1.19.8-reuseport_close_unused_fds.patch
nginx-1.19.8-safe_resolver_ipv6_option.patch
nginx-1.19.8-server_header.patch
nginx-1.19.8-setting_args_invalidates_uri.patch
nginx-1.19.8-single_process_graceful_exit.patch
nginx-1.19.8-socket_cloexec.patch
nginx-1.19.8-ssl_cert_cb_yield.patch
nginx-1.19.8-ssl_sess_cb_yield.patch
nginx-1.19.8-static_mod_escape_loc_hdr.patch
nginx-1.19.8-stream_balancer_export.patch
nginx-1.19.8-stream_proxy_get_next_upstream_tries.patch
nginx-1.19.8-stream_proxy_timeout_fields.patch
nginx-1.19.8-stream_ssl_preread_no_skip.patch
nginx-1.19.8-upstream_pipelining.patch
nginx-1.19.8-upstream_timeout_fields.patch
nginx-1.19.8-win32_max_err_str.patch
nginx-1.19.9-always_enable_cc_feature_tests.patch
nginx-1.19.9-balancer_status_code.patch
nginx-1.19.9-builtin_error_page_footer.patch
nginx-1.19.9-cache_manager_exit.patch
nginx-1.19.9-daemon_destroy_pool.patch
nginx-1.19.9-delayed_posted_events.patch
nginx-1.19.9-hash_overflow.patch
nginx-1.19.9-init_cycle_pool_release.patch
nginx-1.19.9-intercept_error_log.patch
nginx-1.19.9-larger_max_error_str.patch
nginx-1.19.9-log_escape_non_ascii.patch
nginx-1.19.9-no_Werror.patch
nginx-1.19.9-no_error_pages.patch
nginx-1.19.9-no_pool.patch
nginx-1.19.9-pcre_conf_opt.patch
nginx-1.19.9-privileged_agent_process.patch
nginx-1.19.9-privileged_agent_process_connections.patch
nginx-1.19.9-proxy_host_port_vars.patch
nginx-1.19.9-resolver_conf_parsing.patch
nginx-1.19.9-reuseport_close_unused_fds.patch
nginx-1.19.9-safe_resolver_ipv6_option.patch
nginx-1.19.9-server_header.patch
nginx-1.19.9-setting_args_invalidates_uri.patch
nginx-1.19.9-single_process_graceful_exit.patch
nginx-1.19.9-socket_cloexec.patch
nginx-1.19.9-ssl_cert_cb_yield.patch
nginx-1.19.9-ssl_client_hello_cb_yield.patch
nginx-1.19.9-ssl_sess_cb_yield.patch
nginx-1.19.9-static_mod_escape_loc_hdr.patch
nginx-1.19.9-stream_balancer_export.patch
nginx-1.19.9-stream_proxy_get_next_upstream_tries.patch
nginx-1.19.9-stream_proxy_timeout_fields.patch
nginx-1.19.9-stream_ssl_preread_no_skip.patch
nginx-1.19.9-upstream_pipelining.patch
nginx-1.19.9-upstream_timeout_fields.patch
nginx-1.19.9-win32_max_err_str.patch
nginx-1.2.1-add_core_vars_polluting_globals.patch
nginx-1.2.1-allow_request_body_updating.patch
nginx-1.2.1-dtrace.patch
nginx-1.2.1-location_if_inherits_proxy.patch
nginx-1.2.1-log_escape_non_ascii.patch
nginx-1.2.1-no_Werror.patch
nginx-1.2.1-no_error_pages.patch
nginx-1.2.1-no_pool.patch
nginx-1.2.1-poll_del_event_at_exit.patch
nginx-1.2.1-resolver_debug_log_overflow.patch
nginx-1.2.1-server_header.patch
nginx-1.2.1-upstream_pipelining.patch
nginx-1.2.3-allow_request_body_updating.patch
nginx-1.2.3-channel-uninit-params.patch
nginx-1.2.3-dtrace.patch
nginx-1.2.3-location_if_inherits_proxy.patch
nginx-1.2.3-log_escape_non_ascii.patch
nginx-1.2.3-no_Werror.patch
nginx-1.2.3-no_error_pages.patch
nginx-1.2.3-no_pool.patch
nginx-1.2.3-nonbuffered-upstream-truncation.patch
nginx-1.2.3-server_header.patch
nginx-1.2.3-upstream_pipelining.patch
nginx-1.2.4-allow_request_body_updating.patch
nginx-1.2.4-channel-uninit-params.patch
nginx-1.2.4-dtrace.patch
nginx-1.2.4-location_if_inherits_proxy.patch
nginx-1.2.4-log_escape_non_ascii.patch
nginx-1.2.4-no_Werror.patch
nginx-1.2.4-no_error_pages.patch
nginx-1.2.4-no_pool.patch
nginx-1.2.4-nonbuffered-upstream-truncation.patch
nginx-1.2.4-server_header.patch
nginx-1.2.4-slab_alloc_no_memory_as_info.patch
nginx-1.2.4-upstream_pipelining.patch
nginx-1.2.4-upstream_test_connect_kqueue.patch
nginx-1.2.5-allow_request_body_updating.patch
nginx-1.2.5-channel-uninit-params.patch
nginx-1.2.5-dtrace.patch
nginx-1.2.5-location_if_inherits_proxy.patch
nginx-1.2.5-log_escape_non_ascii.patch
nginx-1.2.5-no_Werror.patch
nginx-1.2.5-no_error_pages.patch
nginx-1.2.5-no_pool.patch
nginx-1.2.5-nonbuffered-upstream-truncation.patch
nginx-1.2.5-server_header.patch
nginx-1.2.5-slab_alloc_no_memory_as_info.patch
nginx-1.2.5-upstream_pipelining.patch
nginx-1.2.5-upstream_test_connect_kqueue.patch
nginx-1.2.6-channel-uninit-params.patch
nginx-1.2.6-dtrace.patch
nginx-1.2.6-location_if_inherits_proxy.patch
nginx-1.2.6-log_escape_non_ascii.patch
nginx-1.2.6-no_Werror.patch
nginx-1.2.6-no_error_pages.patch
nginx-1.2.6-no_pool.patch
nginx-1.2.6-nonbuffered-upstream-truncation.patch
nginx-1.2.6-resolver_wev_handler_segfault_with_poll.patch
nginx-1.2.6-server_header.patch
nginx-1.2.6-slab_alloc_no_memory_as_info.patch
nginx-1.2.6-upstream_pipelining.patch
nginx-1.2.7-channel-uninit-params.patch
nginx-1.2.7-cve-2013-2070.patch
nginx-1.2.7-dtrace.patch
nginx-1.2.7-location_if_inherits_proxy.patch
nginx-1.2.7-log_escape_non_ascii.patch
nginx-1.2.7-no_Werror.patch
nginx-1.2.7-no_error_pages.patch
nginx-1.2.7-no_pool.patch
nginx-1.2.7-run_posted_requests_in_resolver.patch
nginx-1.2.7-server_header.patch
nginx-1.2.7-slab_alloc_no_memory_as_info.patch
nginx-1.2.7-upstream_pipelining.patch
nginx-1.2.7-upstream_truncation.patch
nginx-1.2.8-channel-uninit-params.patch
nginx-1.2.8-cve-2013-2070.patch
nginx-1.2.8-dtrace.patch
nginx-1.2.8-invalid_referer_hash.patch
nginx-1.2.8-location_if_inherits_proxy.patch
nginx-1.2.8-log_escape_non_ascii.patch
nginx-1.2.8-no_Werror.patch
nginx-1.2.8-no_error_pages.patch
nginx-1.2.8-no_pool.patch
nginx-1.2.8-server_header.patch
nginx-1.2.8-slab_alloc_no_memory_as_info.patch
nginx-1.2.8-upstream_pipelining.patch
nginx-1.2.8-upstream_truncation.patch
nginx-1.21.3-always_enable_cc_feature_tests.patch
nginx-1.21.3-balancer_status_code.patch
nginx-1.21.3-builtin_error_page_footer.patch
nginx-1.21.3-cache_manager_exit.patch
nginx-1.21.3-daemon_destroy_pool.patch
nginx-1.21.3-delayed_posted_events.patch
nginx-1.21.3-hash_overflow.patch
nginx-1.21.3-init_cycle_pool_release.patch
nginx-1.21.3-intercept_error_log.patch
nginx-1.21.3-larger_max_error_str.patch
nginx-1.21.3-log_escape_non_ascii.patch
nginx-1.21.3-no_Werror.patch
nginx-1.21.3-no_error_pages.patch
nginx-1.21.3-no_pool.patch
nginx-1.21.3-pcre_conf_opt.patch
nginx-1.21.3-privileged_agent_process.patch
nginx-1.21.3-privileged_agent_process_connections.patch
nginx-1.21.3-proxy_host_port_vars.patch
nginx-1.21.3-resolver_conf_parsing.patch
nginx-1.21.3-reuseport_close_unused_fds.patch
nginx-1.21.3-safe_resolver_ipv6_option.patch
nginx-1.21.3-server_header.patch
nginx-1.21.3-setting_args_invalidates_uri.patch
nginx-1.21.3-single_process_graceful_exit.patch
nginx-1.21.3-socket_cloexec.patch
nginx-1.21.3-ssl_cert_cb_yield.patch
nginx-1.21.3-ssl_client_hello_cb_yield.patch
nginx-1.21.3-ssl_sess_cb_yield.patch
nginx-1.21.3-stream_balancer_export.patch
nginx-1.21.3-stream_proxy_get_next_upstream_tries.patch
nginx-1.21.3-stream_proxy_timeout_fields.patch
nginx-1.21.3-stream_ssl_preread_no_skip.patch
nginx-1.21.3-upstream_pipelining.patch
nginx-1.21.3-upstream_timeout_fields.patch
nginx-1.21.3-win32_max_err_str.patch
nginx-1.21.4-always_enable_cc_feature_tests.patch
nginx-1.21.4-balancer_status_code.patch
nginx-1.21.4-builtin_error_page_footer.patch
nginx-1.21.4-cache_manager_exit.patch
nginx-1.21.4-daemon_destroy_pool.patch
nginx-1.21.4-delayed_posted_events.patch
nginx-1.21.4-hash_overflow.patch
nginx-1.21.4-init_cycle_pool_release.patch
nginx-1.21.4-intercept_error_log.patch
nginx-1.21.4-larger_max_error_str.patch
nginx-1.21.4-log_escape_non_ascii.patch
nginx-1.21.4-no_Werror.patch
nginx-1.21.4-no_error_pages.patch
nginx-1.21.4-no_pool.patch
nginx-1.21.4-pcre_conf_opt.patch
nginx-1.21.4-privileged_agent_process.patch
nginx-1.21.4-privileged_agent_process_connections.patch
nginx-1.21.4-privileged_agent_process_thread_pool.patch
nginx-1.21.4-proxy_host_port_vars.patch
nginx-1.21.4-resolver_conf_parsing.patch
nginx-1.21.4-reuseport_close_unused_fds.patch
nginx-1.21.4-safe_resolver_ipv6_option.patch
nginx-1.21.4-server_header.patch
nginx-1.21.4-setting_args_invalidates_uri.patch
nginx-1.21.4-single_process_graceful_exit.patch
nginx-1.21.4-socket_cloexec.patch
nginx-1.21.4-ssl_cert_cb_yield.patch
nginx-1.21.4-ssl_client_hello_cb_yield.patch
nginx-1.21.4-ssl_sess_cb_yield.patch
nginx-1.21.4-stream_balancer_export.patch
nginx-1.21.4-stream_proxy_get_next_upstream_tries.patch
nginx-1.21.4-stream_proxy_timeout_fields.patch
nginx-1.21.4-stream_ssl_preread_no_skip.patch
nginx-1.21.4-upstream_pipelining.patch
nginx-1.21.4-upstream_timeout_fields.patch
nginx-1.21.4-win32_max_err_str.patch
nginx-1.23.0-always_enable_cc_feature_tests.patch
nginx-1.23.0-balancer_status_code.patch
nginx-1.23.0-builtin_error_page_footer.patch
nginx-1.23.0-cache_manager_exit.patch
nginx-1.23.0-daemon_destroy_pool.patch
nginx-1.23.0-delayed_posted_events.patch
nginx-1.23.0-hash_overflow.patch
nginx-1.23.0-init_cycle_pool_release.patch
nginx-1.23.0-intercept_error_log.patch
nginx-1.23.0-larger_max_error_str.patch
nginx-1.23.0-log_escape_non_ascii.patch
nginx-1.23.0-no_Werror.patch
nginx-1.23.0-no_error_pages.patch
nginx-1.23.0-no_pool.patch
nginx-1.23.0-pcre_conf_opt.patch
nginx-1.23.0-privileged_agent_process.patch
nginx-1.23.0-privileged_agent_process_connections.patch
nginx-1.23.0-privileged_agent_process_thread_pool.patch
nginx-1.23.0-proxy_host_port_vars.patch
nginx-1.23.0-resolver_conf_parsing.patch
nginx-1.23.0-reuseport_close_unused_fds.patch
nginx-1.23.0-safe_resolver_ipv6_option.patch
nginx-1.23.0-server_header.patch
nginx-1.23.0-setting_args_invalidates_uri.patch
nginx-1.23.0-single_process_graceful_exit.patch
nginx-1.23.0-socket_cloexec.patch
nginx-1.23.0-ssl_cert_cb_yield.patch
nginx-1.23.0-ssl_client_hello_cb_yield.patch
nginx-1.23.0-ssl_sess_cb_yield.patch
nginx-1.23.0-stream_balancer_export.patch
nginx-1.23.0-stream_proxy_get_next_upstream_tries.patch
nginx-1.23.0-stream_proxy_timeout_fields.patch
nginx-1.23.0-stream_ssl_preread_no_skip.patch
nginx-1.23.0-upstream_pipelining.patch
nginx-1.23.0-upstream_timeout_fields.patch
nginx-1.23.0-win32_max_err_str.patch
nginx-1.3.0-resolver_debug_log_overflow.patch
nginx-1.3.11-channel-uninit-params.patch
nginx-1.3.11-dtrace.patch
nginx-1.3.11-location_if_inherits_proxy.patch
nginx-1.3.11-log_escape_non_ascii.patch
nginx-1.3.11-no_Werror.patch
nginx-1.3.11-no_error_pages.patch
nginx-1.3.11-no_pool.patch
nginx-1.3.11-nonbuffered-upstream-truncation.patch
nginx-1.3.11-resolver_wev_handler_segfault_with_poll.patch
nginx-1.3.11-server_header.patch
nginx-1.3.11-slab_alloc_no_memory_as_info.patch
nginx-1.3.11-upstream_pipelining.patch
nginx-1.3.11-upstream_test_connect_kqueue.patch
nginx-1.3.4-allow_request_body_updating.patch
nginx-1.3.4-dtrace.patch
nginx-1.3.4-location_if_inherits_proxy.patch
nginx-1.3.4-log_escape_non_ascii.patch
nginx-1.3.4-no_Werror.patch
nginx-1.3.4-no_error_pages.patch
nginx-1.3.4-no_pool.patch
nginx-1.3.4-server_header.patch
nginx-1.3.4-upstream_pipelining.patch
nginx-1.3.6-allow_request_body_updating.patch
nginx-1.3.6-channel-uninit-params.patch
nginx-1.3.6-dtrace.patch
nginx-1.3.6-location_if_inherits_proxy.patch
nginx-1.3.6-log_escape_non_ascii.patch
nginx-1.3.6-no_Werror.patch
nginx-1.3.6-no_error_pages.patch
nginx-1.3.6-no_pool.patch
nginx-1.3.6-nonbuffered-upstream-truncation.patch
nginx-1.3.6-server_header.patch
nginx-1.3.6-upstream_pipelining.patch
nginx-1.3.7-allow_request_body_updating.patch
nginx-1.3.7-channel-uninit-params.patch
nginx-1.3.7-dtrace.patch
nginx-1.3.7-location_if_inherits_proxy.patch
nginx-1.3.7-log_escape_non_ascii.patch
nginx-1.3.7-no_Werror.patch
nginx-1.3.7-no_error_pages.patch
nginx-1.3.7-no_pool.patch
nginx-1.3.7-nonbuffered-upstream-truncation.patch
nginx-1.3.7-resolver_wev_handler_segfault_with_poll.patch
nginx-1.3.7-server_header.patch
nginx-1.3.7-slab_alloc_no_memory_as_info.patch
nginx-1.3.7-upstream_pipelining.patch
nginx-1.3.7-upstream_test_connect_kqueue.patch
nginx-1.4.1-channel-uninit-params.patch
nginx-1.4.1-cve-2013-2070.patch
nginx-1.4.1-dtrace.patch
nginx-1.4.1-gcc-maybe-uninitialized-warning.patch
nginx-1.4.1-invalid_referer_hash.patch
nginx-1.4.1-location_if_inherits_proxy.patch
nginx-1.4.1-log_escape_non_ascii.patch
nginx-1.4.1-no_Werror.patch
nginx-1.4.1-no_error_pages.patch
nginx-1.4.1-no_pool.patch
nginx-1.4.1-server_header.patch
nginx-1.4.1-slab_alloc_no_memory_as_info.patch
nginx-1.4.1-unix_socket_accept_over_read.patch
nginx-1.4.1-upstream_pipelining.patch
nginx-1.4.1-upstream_truncation.patch
nginx-1.4.2-channel-uninit-params.patch
nginx-1.4.2-cve-2013-2070.patch
nginx-1.4.2-dtrace.patch
nginx-1.4.2-gcc-maybe-uninitialized-warning.patch
nginx-1.4.2-invalid_referer_hash.patch
nginx-1.4.2-location_if_inherits_proxy.patch
nginx-1.4.2-log_escape_non_ascii.patch
nginx-1.4.2-no_Werror.patch
nginx-1.4.2-no_error_pages.patch
nginx-1.4.2-no_pool.patch
nginx-1.4.2-server_header.patch
nginx-1.4.2-slab_alloc_no_memory_as_info.patch
nginx-1.4.2-unix_socket_accept_over_read.patch
nginx-1.4.2-upstream_pipelining.patch
nginx-1.4.2-upstream_truncation.patch
nginx-1.4.3-cache_lock_hang_in_subreq.patch
nginx-1.4.3-cache_manager_exit.patch
nginx-1.4.3-channel-uninit-params.patch
nginx-1.4.3-cve-2013-2070.patch
nginx-1.4.3-dtrace.patch
nginx-1.4.3-gcc-maybe-uninitialized-warning.patch
nginx-1.4.3-gzip_buffered_bug.patch
nginx-1.4.3-gzip_flush_bug.patch
nginx-1.4.3-invalid_referer_hash.patch
nginx-1.4.3-larger_max_error_str.patch
nginx-1.4.3-location_if_inherits_proxy.patch
nginx-1.4.3-log_escape_non_ascii.patch
nginx-1.4.3-no_Werror.patch
nginx-1.4.3-no_error_pages.patch
nginx-1.4.3-no_pool.patch
nginx-1.4.3-pcre_conf_opt.patch
nginx-1.4.3-proxy_host_port_vars.patch
nginx-1.4.3-server_header.patch
nginx-1.4.3-slab_alloc_no_memory_as_info.patch
nginx-1.4.3-unix_socket_accept_over_read.patch
nginx-1.4.3-upstream_pipelining.patch
nginx-1.4.3-upstream_truncation.patch
nginx-1.5.11-cache_lock_hang_in_subreq.patch
nginx-1.5.11-cache_manager_exit.patch
nginx-1.5.11-cve-2013-2070.patch
nginx-1.5.11-dtrace.patch
nginx-1.5.11-gcc-maybe-uninitialized-warning.patch
nginx-1.5.11-larger_max_error_str.patch
nginx-1.5.11-location_if_inherits_proxy.patch
nginx-1.5.11-log_escape_non_ascii.patch
nginx-1.5.11-no_Werror.patch
nginx-1.5.11-no_error_pages.patch
nginx-1.5.11-no_pool.patch
nginx-1.5.11-pcre_conf_opt.patch
nginx-1.5.11-proxy_host_port_vars.patch
nginx-1.5.11-server_header.patch
nginx-1.5.11-setting_args_invalidates_uri.patch
nginx-1.5.11-slab_alloc_no_memory_as_info.patch
nginx-1.5.11-upstream_pipelining.patch
nginx-1.5.12-cache_lock_hang_in_subreq.patch
nginx-1.5.12-cache_manager_exit.patch
nginx-1.5.12-cve-2013-2070.patch
nginx-1.5.12-dtrace.patch
nginx-1.5.12-gcc-maybe-uninitialized-warning.patch
nginx-1.5.12-larger_max_error_str.patch
nginx-1.5.12-location_if_inherits_proxy.patch
nginx-1.5.12-log_escape_non_ascii.patch
nginx-1.5.12-no_Werror.patch
nginx-1.5.12-no_error_pages.patch
nginx-1.5.12-no_pool.patch
nginx-1.5.12-pcre_conf_opt.patch
nginx-1.5.12-proxy_host_port_vars.patch
nginx-1.5.12-server_header.patch
nginx-1.5.12-setting_args_invalidates_uri.patch
nginx-1.5.12-slab_alloc_no_memory_as_info.patch
nginx-1.5.12-upstream_pipelining.patch
nginx-1.5.3-cve-2013-2070.patch
nginx-1.5.3-dtrace.patch
nginx-1.5.3-gcc-maybe-uninitialized-warning.patch
nginx-1.5.3-location_if_inherits_proxy.patch
nginx-1.5.3-log_escape_non_ascii.patch
nginx-1.5.3-no_Werror.patch
nginx-1.5.3-no_error_pages.patch
nginx-1.5.3-no_pool.patch
nginx-1.5.3-server_header.patch
nginx-1.5.3-slab_alloc_no_memory_as_info.patch
nginx-1.5.3-unix_socket_accept_over_read.patch
nginx-1.5.3-upstream_pipelining.patch
nginx-1.5.4-cve-2013-2070.patch
nginx-1.5.4-dtrace.patch
nginx-1.5.4-gcc-maybe-uninitialized-warning.patch
nginx-1.5.4-location_if_inherits_proxy.patch
nginx-1.5.4-log_escape_non_ascii.patch
nginx-1.5.4-no_Werror.patch
nginx-1.5.4-no_error_pages.patch
nginx-1.5.4-no_pool.patch
nginx-1.5.4-server_header.patch
nginx-1.5.4-slab_alloc_no_memory_as_info.patch
nginx-1.5.4-unix_socket_accept_over_read.patch
nginx-1.5.4-upstream_pipelining.patch
nginx-1.5.7-cache_lock_hang_in_subreq.patch
nginx-1.5.7-cache_manager_exit.patch
nginx-1.5.7-cve-2013-2070.patch
nginx-1.5.7-dtrace.patch
nginx-1.5.7-gcc-maybe-uninitialized-warning.patch
nginx-1.5.7-larger_max_error_str.patch
nginx-1.5.7-location_if_inherits_proxy.patch
nginx-1.5.7-log_escape_non_ascii.patch
nginx-1.5.7-no_Werror.patch
nginx-1.5.7-no_error_pages.patch
nginx-1.5.7-no_pool.patch
nginx-1.5.7-pcre_conf_opt.patch
nginx-1.5.7-proxy_host_port_vars.patch
nginx-1.5.7-server_header.patch
nginx-1.5.7-slab_alloc_no_memory_as_info.patch
nginx-1.5.7-upstream_pipelining.patch
nginx-1.5.8-cache_lock_hang_in_subreq.patch
nginx-1.5.8-cache_manager_exit.patch
nginx-1.5.8-cve-2013-2070.patch
nginx-1.5.8-dtrace.patch
nginx-1.5.8-gcc-maybe-uninitialized-warning.patch
nginx-1.5.8-larger_max_error_str.patch
nginx-1.5.8-location_if_inherits_proxy.patch
nginx-1.5.8-log_escape_non_ascii.patch
nginx-1.5.8-no_Werror.patch
nginx-1.5.8-no_error_pages.patch
nginx-1.5.8-no_pool.patch
nginx-1.5.8-pcre_conf_opt.patch
nginx-1.5.8-proxy_host_port_vars.patch
nginx-1.5.8-resolve-names-with-a-trailing-dot.patch
nginx-1.5.8-server_header.patch
nginx-1.5.8-setting_args_invalidates_uri.patch
nginx-1.5.8-slab_alloc_no_memory_as_info.patch
nginx-1.5.8-upstream_pipelining.patch
nginx-1.5.9-cache_lock_hang_in_subreq.patch
nginx-1.5.9-cache_manager_exit.patch
nginx-1.5.9-cve-2013-2070.patch
nginx-1.5.9-dtrace.patch
nginx-1.5.9-gcc-maybe-uninitialized-warning.patch
nginx-1.5.9-larger_max_error_str.patch
nginx-1.5.9-location_if_inherits_proxy.patch
nginx-1.5.9-log_escape_non_ascii.patch
nginx-1.5.9-no_Werror.patch
nginx-1.5.9-no_error_pages.patch
nginx-1.5.9-no_pool.patch
nginx-1.5.9-pcre_conf_opt.patch
nginx-1.5.9-proxy_host_port_vars.patch
nginx-1.5.9-server_header.patch
nginx-1.5.9-setting_args_invalidates_uri.patch
nginx-1.5.9-slab_alloc_no_memory_as_info.patch
nginx-1.5.9-upstream_pipelining.patch
nginx-1.7.0-cache_lock_hang_in_subreq.patch
nginx-1.7.0-cache_manager_exit.patch
nginx-1.7.0-dtrace.patch
nginx-1.7.0-gcc-maybe-uninitialized-warning.patch
nginx-1.7.0-larger_max_error_str.patch
nginx-1.7.0-location_if_inherits_proxy.patch
nginx-1.7.0-log_escape_non_ascii.patch
nginx-1.7.0-no_Werror.patch
nginx-1.7.0-no_error_pages.patch
nginx-1.7.0-no_pool.patch
nginx-1.7.0-pcre_conf_opt.patch
nginx-1.7.0-proxy_host_port_vars.patch
nginx-1.7.0-server_header.patch
nginx-1.7.0-setting_args_invalidates_uri.patch
nginx-1.7.0-slab_defrag.patch
nginx-1.7.0-upstream_pipelining.patch
nginx-1.7.10-cache_manager_exit.patch
nginx-1.7.10-dtrace.patch
nginx-1.7.10-gcc-maybe-uninitialized-warning.patch
nginx-1.7.10-hash_overflow.patch
nginx-1.7.10-larger_max_error_str.patch
nginx-1.7.10-log_escape_non_ascii.patch
nginx-1.7.10-no_Werror.patch
nginx-1.7.10-no_error_pages.patch
nginx-1.7.10-no_pool.patch
nginx-1.7.10-pcre_conf_opt.patch
nginx-1.7.10-proxy_host_port_vars.patch
nginx-1.7.10-server_header.patch
nginx-1.7.10-setting_args_invalidates_uri.patch
nginx-1.7.10-slab_defrag.patch
nginx-1.7.10-upstream_filter_finalize.patch
nginx-1.7.10-upstream_pipelining.patch
nginx-1.7.2-cache_lock_hang_in_subreq.patch
nginx-1.7.2-cache_manager_exit.patch
nginx-1.7.2-dtrace.patch
nginx-1.7.2-gcc-maybe-uninitialized-warning.patch
nginx-1.7.2-larger_max_error_str.patch
nginx-1.7.2-location_if_inherits_proxy.patch
nginx-1.7.2-log_escape_non_ascii.patch
nginx-1.7.2-no_Werror.patch
nginx-1.7.2-no_error_pages.patch
nginx-1.7.2-no_pool.patch
nginx-1.7.2-pcre_conf_opt.patch
nginx-1.7.2-proxy_host_port_vars.patch
nginx-1.7.2-server_header.patch
nginx-1.7.2-setting_args_invalidates_uri.patch
nginx-1.7.2-slab_defrag.patch
nginx-1.7.2-upstream_pipelining.patch
nginx-1.7.3-cache_lock_hang_in_subreq.patch
nginx-1.7.3-cache_manager_exit.patch
nginx-1.7.3-dtrace.patch
nginx-1.7.3-gcc-maybe-uninitialized-warning.patch
nginx-1.7.3-geoip_init_var_fields.patch
nginx-1.7.3-larger_max_error_str.patch
nginx-1.7.3-location_if_inherits_proxy.patch
nginx-1.7.3-log_escape_non_ascii.patch
nginx-1.7.3-no_Werror.patch
nginx-1.7.3-no_error_pages.patch
nginx-1.7.3-no_pool.patch
nginx-1.7.3-pcre_conf_opt.patch
nginx-1.7.3-proxy_host_port_vars.patch
nginx-1.7.3-proxy_ssl_handshake_timer.patch
nginx-1.7.3-server_header.patch
nginx-1.7.3-setting_args_invalidates_uri.patch
nginx-1.7.3-slab_defrag.patch
nginx-1.7.3-upstream_pipelining.patch
nginx-1.7.4-cache_lock_hang_in_subreq.patch
nginx-1.7.4-cache_manager_exit.patch
nginx-1.7.4-dtrace.patch
nginx-1.7.4-gcc-maybe-uninitialized-warning.patch
nginx-1.7.4-larger_max_error_str.patch
nginx-1.7.4-location_if_inherits_proxy.patch
nginx-1.7.4-log_escape_non_ascii.patch
nginx-1.7.4-no_Werror.patch
nginx-1.7.4-no_error_pages.patch
nginx-1.7.4-no_pool.patch
nginx-1.7.4-pcre_conf_opt.patch
nginx-1.7.4-proxy_host_port_vars.patch
nginx-1.7.4-server_header.patch
nginx-1.7.4-setting_args_invalidates_uri.patch
nginx-1.7.4-slab_defrag.patch
nginx-1.7.4-upstream_pipelining.patch
nginx-1.7.5-cache_lock_hang_in_subreq.patch
nginx-1.7.5-cache_manager_exit.patch
nginx-1.7.5-dtrace.patch
nginx-1.7.5-gcc-maybe-uninitialized-warning.patch
nginx-1.7.5-hash_overflow.patch
nginx-1.7.5-larger_max_error_str.patch
nginx-1.7.5-location_if_inherits_proxy.patch
nginx-1.7.5-log_escape_non_ascii.patch
nginx-1.7.5-no_Werror.patch
nginx-1.7.5-no_error_pages.patch
nginx-1.7.5-no_pool.patch
nginx-1.7.5-pcre_conf_opt.patch
nginx-1.7.5-proxy_host_port_vars.patch
nginx-1.7.5-resolver_del_event_invalid_read.patch
nginx-1.7.5-server_header.patch
nginx-1.7.5-setting_args_invalidates_uri.patch
nginx-1.7.5-slab_defrag.patch
nginx-1.7.5-upstream_pipelining.patch
nginx-1.7.7-cache_lock_hang_in_subreq.patch
nginx-1.7.7-cache_manager_exit.patch
nginx-1.7.7-dtrace.patch
nginx-1.7.7-gcc-maybe-uninitialized-warning.patch
nginx-1.7.7-hash_overflow.patch
nginx-1.7.7-larger_max_error_str.patch
nginx-1.7.7-location_if_inherits_proxy.patch
nginx-1.7.7-log_escape_non_ascii.patch
nginx-1.7.7-no_Werror.patch
nginx-1.7.7-no_error_pages.patch
nginx-1.7.7-no_pool.patch
nginx-1.7.7-pcre_conf_opt.patch
nginx-1.7.7-proxy_host_port_vars.patch
nginx-1.7.7-resolver_del_event_invalid_read.patch
nginx-1.7.7-server_header.patch
nginx-1.7.7-setting_args_invalidates_uri.patch
nginx-1.7.7-slab_defrag.patch
nginx-1.7.7-upstream_pipelining.patch
nginx-1.9.11-always_enable_cc_feature_tests.patch
nginx-1.9.11-cache_manager_exit.patch
nginx-1.9.11-dtrace.patch
nginx-1.9.11-gcc-maybe-uninitialized-warning.patch
nginx-1.9.11-hash_overflow.patch
nginx-1.9.11-larger_max_error_str.patch
nginx-1.9.11-log_escape_non_ascii.patch
nginx-1.9.11-no_Werror.patch
nginx-1.9.11-no_error_pages.patch
nginx-1.9.11-no_pool.patch
nginx-1.9.11-pcre_conf_opt.patch
nginx-1.9.11-proxy_host_port_vars.patch
nginx-1.9.11-server_header.patch
nginx-1.9.11-setting_args_invalidates_uri.patch
nginx-1.9.11-slab_defrag.patch
nginx-1.9.11-ssl_cert_cb_yield.patch
nginx-1.9.11-upstream_pipelining.patch
nginx-1.9.15-always_enable_cc_feature_tests.patch
nginx-1.9.15-cache_manager_exit.patch
nginx-1.9.15-dtrace.patch
nginx-1.9.15-gcc-maybe-uninitialized-warning.patch
nginx-1.9.15-hash_overflow.patch
nginx-1.9.15-larger_max_error_str.patch
nginx-1.9.15-log_escape_non_ascii.patch
nginx-1.9.15-no_Werror.patch
nginx-1.9.15-no_error_pages.patch
nginx-1.9.15-no_pool.patch
nginx-1.9.15-pcre_conf_opt.patch
nginx-1.9.15-proxy_host_port_vars.patch
nginx-1.9.15-server_header.patch
nginx-1.9.15-setting_args_invalidates_uri.patch
nginx-1.9.15-slab_defrag.patch
nginx-1.9.15-ssl_cert_cb_yield.patch
nginx-1.9.15-ssl_pending_session.patch
nginx-1.9.15-upstream_pipelining.patch
nginx-1.9.15-upstream_timeout_fields.patch
nginx-1.9.2-cache_manager_exit.patch
nginx-1.9.2-dtrace.patch
nginx-1.9.2-gcc-maybe-uninitialized-warning.patch
nginx-1.9.2-hash_overflow.patch
nginx-1.9.2-larger_max_error_str.patch
nginx-1.9.2-log_escape_non_ascii.patch
nginx-1.9.2-no_Werror.patch
nginx-1.9.2-no_error_pages.patch
nginx-1.9.2-no_pool.patch
nginx-1.9.2-pcre_conf_opt.patch
nginx-1.9.2-proxy_host_port_vars.patch
nginx-1.9.2-server_header.patch
nginx-1.9.2-setting_args_invalidates_uri.patch
nginx-1.9.2-slab_defrag.patch
nginx-1.9.2-upstream_pipelining.patch
nginx-1.9.3-always_enable_cc_feature_tests.patch
nginx-1.9.3-cache_manager_exit.patch
nginx-1.9.3-dtrace.patch
nginx-1.9.3-gcc-maybe-uninitialized-warning.patch
nginx-1.9.3-hash_overflow.patch
nginx-1.9.3-larger_max_error_str.patch
nginx-1.9.3-log_escape_non_ascii.patch
nginx-1.9.3-no_Werror.patch
nginx-1.9.3-no_error_pages.patch
nginx-1.9.3-no_pool.patch
nginx-1.9.3-pcre_conf_opt.patch
nginx-1.9.3-proxy_host_port_vars.patch
nginx-1.9.3-server_header.patch
nginx-1.9.3-setting_args_invalidates_uri.patch
nginx-1.9.3-slab_defrag.patch
nginx-1.9.3-upstream_pipelining.patch
nginx-1.9.7-always_enable_cc_feature_tests.patch
nginx-1.9.7-cache_manager_exit.patch
nginx-1.9.7-dtrace.patch
nginx-1.9.7-gcc-maybe-uninitialized-warning.patch
nginx-1.9.7-hash_overflow.patch
nginx-1.9.7-larger_max_error_str.patch
nginx-1.9.7-log_escape_non_ascii.patch
nginx-1.9.7-no_Werror.patch
nginx-1.9.7-no_error_pages.patch
nginx-1.9.7-no_pool.patch
nginx-1.9.7-pcre_conf_opt.patch
nginx-1.9.7-proxy_host_port_vars.patch
nginx-1.9.7-resolver_security_fixes.patch
nginx-1.9.7-server_header.patch
nginx-1.9.7-setting_args_invalidates_uri.patch
nginx-1.9.7-slab_defrag.patch
nginx-1.9.7-ssl_cert_cb_yield.patch
nginx-1.9.7-upstream_pipelining.patch
ngx_http_redis-0.3.6-variables_in_redis_pass.patch
ngx_http_redis-0.3.7-default_port_fix.patch
ngx_http_redis-0.3.7-variables_in_redis_pass.patch
ngx_http_redis-0.3.7-without_gzip.patch
ngx_http_redis-0.3.9-default_port_fix.patch
ngx_http_redis-0.3.9-variables_in_redis_pass.patch
openssl-1.0.2h-sess_set_get_cb_yield.patch
openssl-1.1.0c-sess_set_get_cb_yield.patch
openssl-1.1.0d-sess_set_get_cb_yield.patch
openssl-1.1.0j-parallel_build_fix.patch
openssl-1.1.1c-sess_set_get_cb_yield.patch
openssl-1.1.1d-win_fix.patch
openssl-1.1.1e-sess_set_get_cb_yield.patch
openssl-1.1.1f-sess_set_get_cb_yield.patch
patch.2013.space.txt
patch.2014.spdy2.txt
patch.2016.write.txt
patch.2016.write2.txt
patch.2017.ranges.txt
patch.2018.h2.txt
patch.2018.mp4.txt
patch.2019.h2.txt
patch.2021.resolver.txt
specs
t
util
.gitattributes
.gitignore
.travis.yml
COPYRIGHT
Makefile
README.markdown
valgrind.suppress
openresty/patches/nginx-1.13.6-resolver_conf_parsing.patch
Datong Sun f0e621b0c4 bugfix: nginx patch: do not build resolver parsing feature under Windows.
bugfix: nginx patch: moved the include of resolv.h to after ngx_config.h to avoid compilation failures on FreeBSD.

bugfix: patch: updated safe_resolver_ipv6_option.patch with new offsets to avoid confusing patch while applying.
Signed-off-by: Yichun Zhang (agentzh) <agentzh@gmail.com>
2018-04-20 17:55:54 -07:00

264 lines
7.6 KiB
C

diff --git a/src/core/ngx_resolver.c b/src/core/ngx_resolver.c
index cd55520c..dade1846 100644
--- a/src/core/ngx_resolver.c
+++ b/src/core/ngx_resolver.c
@@ -9,12 +9,26 @@
#include <ngx_core.h>
#include <ngx_event.h>
+#if !(NGX_WIN32)
+#include <resolv.h>
+#endif
+
#define NGX_RESOLVER_UDP_SIZE 4096
#define NGX_RESOLVER_TCP_RSIZE (2 + 65535)
#define NGX_RESOLVER_TCP_WSIZE 8192
+#if !(NGX_WIN32)
+/*
+ * note that 2KB should be more than enough for majority of the
+ * resolv.conf files out there. it also acts as a safety guard to prevent
+ * abuse.
+ */
+#define NGX_RESOLVER_FILE_BUF_SIZE 2048
+#define NGX_RESOLVER_FILE_NAME "/etc/resolv.conf"
+#endif
+
typedef struct {
u_char ident_hi;
@@ -131,6 +145,191 @@ static ngx_resolver_node_t *ngx_resolver_lookup_addr6(ngx_resolver_t *r,
#endif
+#if !(NGX_WIN32)
+static ngx_int_t
+ngx_resolver_read_resolv_conf(ngx_conf_t *cf, ngx_resolver_t *r, u_char *path,
+ size_t path_len)
+{
+ ngx_url_t u;
+ ngx_resolver_connection_t *rec;
+ ngx_fd_t fd;
+ ngx_file_t file;
+ u_char buf[NGX_RESOLVER_FILE_BUF_SIZE];
+ u_char ipv6_buf[NGX_INET6_ADDRSTRLEN];
+ ngx_uint_t address = 0, j, total = 0;
+ ssize_t n, i;
+ enum {
+ sw_nameserver,
+ sw_spaces,
+ sw_address,
+ sw_skip
+ } state;
+
+ file.name.data = path;
+ file.name.len = path_len;
+
+ if (ngx_conf_full_name(cf->cycle, &file.name, 1) != NGX_OK) {
+ return NGX_ERROR;
+ }
+
+ fd = ngx_open_file(file.name.data, NGX_FILE_RDONLY,
+ NGX_FILE_OPEN, 0);
+
+ if (fd == NGX_INVALID_FILE) {
+ ngx_conf_log_error(NGX_LOG_EMERG, cf, ngx_errno,
+ ngx_open_file_n " \"%s\" failed", file.name.data);
+
+ return NGX_ERROR;
+ }
+
+ ngx_memzero(&file, sizeof(ngx_file_t));
+
+ file.fd = fd;
+ file.log = cf->log;
+
+ state = sw_nameserver;
+
+ n = ngx_read_file(&file, buf, NGX_RESOLVER_FILE_BUF_SIZE, 0);
+
+ if (n == NGX_ERROR) {
+ ngx_conf_log_error(NGX_LOG_ALERT, cf, ngx_errno,
+ ngx_read_file_n " \"%s\" failed", file.name.data);
+ }
+
+ if (ngx_close_file(file.fd) == NGX_FILE_ERROR) {
+ ngx_conf_log_error(NGX_LOG_ALERT, cf, ngx_errno,
+ ngx_close_file_n " \"%s\" failed", file.name.data);
+ }
+
+ if (n == NGX_ERROR) {
+ return NGX_ERROR;
+ }
+
+ if (n == 0) {
+ return NGX_OK;
+ }
+
+ for (i = 0; i < n && total < MAXNS; /* void */) {
+ if (buf[i] == '#' || buf[i] == ';') {
+ state = sw_skip;
+ }
+
+ switch (state) {
+
+ case sw_nameserver:
+
+ if ((size_t) n - i >= sizeof("nameserver") - 1
+ && ngx_memcmp(buf + i, "nameserver",
+ sizeof("nameserver") - 1) == 0)
+ {
+ state = sw_spaces;
+ i += sizeof("nameserver") - 1;
+
+ continue;
+ }
+
+ break;
+
+ case sw_spaces:
+ if (buf[i] != '\t' && buf[i] != ' ') {
+ address = i;
+ state = sw_address;
+ }
+
+ break;
+
+ case sw_address:
+
+ if (buf[i] == CR || buf[i] == LF || i == n - 1) {
+ ngx_memzero(&u, sizeof(ngx_url_t));
+
+ u.url.data = buf + address;
+
+ if (i == n - 1 && buf[i] != CR && buf[i] != LF) {
+ u.url.len = n - address;
+
+ } else {
+ u.url.len = i - address;
+ }
+
+ u.default_port = 53;
+
+ /* IPv6? */
+ if (ngx_strlchr(u.url.data, u.url.data + u.url.len,
+ ':') != NULL)
+ {
+ if (u.url.len + 2 > sizeof(ipv6_buf)) {
+ ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+ "IPv6 resolver address is too long:"
+ " \"%V\"", &u.url);
+
+ return NGX_ERROR;
+ }
+
+ ipv6_buf[0] = '[';
+ ngx_memcpy(ipv6_buf + 1, u.url.data, u.url.len);
+ ipv6_buf[u.url.len + 1] = ']';
+
+ u.url.data = ipv6_buf;
+ u.url.len = u.url.len + 2;
+ }
+
+ if (ngx_parse_url(cf->pool, &u) != NGX_OK) {
+ if (u.err) {
+ ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+ "%s in resolver \"%V\"",
+ u.err, &u.url);
+ }
+
+ return NGX_ERROR;
+ }
+
+ rec = ngx_array_push_n(&r->connections, u.naddrs);
+ if (rec == NULL) {
+ return NGX_ERROR;
+ }
+
+ ngx_memzero(rec, u.naddrs * sizeof(ngx_resolver_connection_t));
+
+ for (j = 0; j < u.naddrs; j++) {
+ rec[j].sockaddr = u.addrs[j].sockaddr;
+ rec[j].socklen = u.addrs[j].socklen;
+ rec[j].server = u.addrs[j].name;
+ rec[j].resolver = r;
+ }
+
+ total++;
+
+#if (NGX_DEBUG)
+ /*
+ * logs with level below NGX_LOG_NOTICE will not be printed
+ * in this early phase
+ */
+ ngx_conf_log_error(NGX_LOG_NOTICE, cf, 0,
+ "parsed a resolver: \"%V\"", &u.url);
+#endif
+
+ state = sw_nameserver;
+ }
+
+ break;
+
+ case sw_skip:
+ if (buf[i] == CR || buf[i] == LF) {
+ state = sw_nameserver;
+ }
+
+ break;
+ }
+
+ i++;
+ }
+
+ return NGX_OK;
+}
+#endif
+
+
ngx_resolver_t *
ngx_resolver_create(ngx_conf_t *cf, ngx_str_t *names, ngx_uint_t n)
{
@@ -246,6 +445,39 @@ ngx_resolver_create(ngx_conf_t *cf, ngx_str_t *names, ngx_uint_t n)
}
#endif
+#if !(NGX_WIN32)
+ if (ngx_strncmp(names[i].data, "local=", 6) == 0) {
+
+ if (ngx_strcmp(&names[i].data[6], "on") == 0) {
+ if (ngx_resolver_read_resolv_conf(cf, r,
+ (u_char *)
+ NGX_RESOLVER_FILE_NAME,
+ sizeof(NGX_RESOLVER_FILE_NAME)
+ - 1)
+ != NGX_OK)
+ {
+ ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+ "unable to parse local resolver");
+ return NULL;
+ }
+
+ } else if (ngx_strcmp(&names[i].data[6], "off") != 0) {
+ if (ngx_resolver_read_resolv_conf(cf, r,
+ &names[i].data[6],
+ names[i].len - 6)
+ != NGX_OK)
+ {
+ ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+ "unable to parse local resolver");
+ return NULL;
+ }
+
+ }
+
+ continue;
+ }
+#endif
+
ngx_memzero(&u, sizeof(ngx_url_t));
u.url = names[i];