Showing preview only (7,414K chars total). Download the full file or copy to clipboard to get everything.
Repository: VKCOM/nginx-quic
Branch: master
Commit: e57783d15738
Files: 505
Total size: 6.9 MB
Directory structure:
gitextract_120cn_n1/
├── README
├── auto/
│ ├── cc/
│ │ ├── acc
│ │ ├── bcc
│ │ ├── ccc
│ │ ├── clang
│ │ ├── conf
│ │ ├── gcc
│ │ ├── icc
│ │ ├── msvc
│ │ ├── name
│ │ ├── owc
│ │ └── sunc
│ ├── configure
│ ├── define
│ ├── endianness
│ ├── feature
│ ├── have
│ ├── have_headers
│ ├── headers
│ ├── include
│ ├── init
│ ├── install
│ ├── lib/
│ │ ├── conf
│ │ ├── geoip/
│ │ │ └── conf
│ │ ├── google-perftools/
│ │ │ └── conf
│ │ ├── libatomic/
│ │ │ ├── conf
│ │ │ └── make
│ │ ├── libgd/
│ │ │ └── conf
│ │ ├── libxslt/
│ │ │ └── conf
│ │ ├── make
│ │ ├── openssl/
│ │ │ ├── conf
│ │ │ ├── make
│ │ │ ├── makefile.bcc
│ │ │ └── makefile.msvc
│ │ ├── pcre/
│ │ │ ├── conf
│ │ │ ├── make
│ │ │ ├── makefile.bcc
│ │ │ ├── makefile.msvc
│ │ │ └── makefile.owc
│ │ ├── perl/
│ │ │ ├── conf
│ │ │ └── make
│ │ └── zlib/
│ │ ├── conf
│ │ ├── make
│ │ ├── makefile.bcc
│ │ ├── makefile.msvc
│ │ └── makefile.owc
│ ├── make
│ ├── module
│ ├── modules
│ ├── nohave
│ ├── options
│ ├── os/
│ │ ├── conf
│ │ ├── darwin
│ │ ├── freebsd
│ │ ├── linux
│ │ ├── solaris
│ │ └── win32
│ ├── sources
│ ├── stubs
│ ├── summary
│ ├── threads
│ ├── types/
│ │ ├── sizeof
│ │ ├── typedef
│ │ ├── uintptr_t
│ │ └── value
│ └── unix
├── conf/
│ ├── fastcgi.conf
│ ├── fastcgi_params
│ ├── koi-utf
│ ├── koi-win
│ ├── mime.types
│ ├── nginx.conf
│ ├── scgi_params
│ ├── uwsgi_params
│ └── win-utf
├── contrib/
│ ├── README
│ ├── geo2nginx.pl
│ ├── unicode2nginx/
│ │ ├── koi-utf
│ │ ├── unicode-to-nginx.pl
│ │ └── win-utf
│ └── vim/
│ ├── ftdetect/
│ │ └── nginx.vim
│ ├── ftplugin/
│ │ └── nginx.vim
│ ├── indent/
│ │ └── nginx.vim
│ └── syntax/
│ └── nginx.vim
├── docs/
│ ├── GNUmakefile
│ ├── dtd/
│ │ ├── change_log_conf.dtd
│ │ └── changes.dtd
│ ├── html/
│ │ ├── 50x.html
│ │ └── index.html
│ ├── man/
│ │ └── nginx.8
│ ├── text/
│ │ ├── LICENSE
│ │ └── README
│ ├── xml/
│ │ ├── change_log_conf.xml
│ │ └── nginx/
│ │ └── changes.xml
│ ├── xsls/
│ │ └── changes.xsls
│ └── xslt/
│ └── changes.xslt
├── misc/
│ ├── GNUmakefile
│ └── README
└── src/
├── core/
│ ├── nginx.c
│ ├── nginx.h
│ ├── ngx_array.c
│ ├── ngx_array.h
│ ├── ngx_bpf.c
│ ├── ngx_bpf.h
│ ├── ngx_buf.c
│ ├── ngx_buf.h
│ ├── ngx_conf_file.c
│ ├── ngx_conf_file.h
│ ├── ngx_config.h
│ ├── ngx_connection.c
│ ├── ngx_connection.h
│ ├── ngx_core.h
│ ├── ngx_cpuinfo.c
│ ├── ngx_crc.h
│ ├── ngx_crc32.c
│ ├── ngx_crc32.h
│ ├── ngx_crypt.c
│ ├── ngx_crypt.h
│ ├── ngx_cycle.c
│ ├── ngx_cycle.h
│ ├── ngx_file.c
│ ├── ngx_file.h
│ ├── ngx_hash.c
│ ├── ngx_hash.h
│ ├── ngx_inet.c
│ ├── ngx_inet.h
│ ├── ngx_list.c
│ ├── ngx_list.h
│ ├── ngx_log.c
│ ├── ngx_log.h
│ ├── ngx_md5.c
│ ├── ngx_md5.h
│ ├── ngx_module.c
│ ├── ngx_module.h
│ ├── ngx_murmurhash.c
│ ├── ngx_murmurhash.h
│ ├── ngx_open_file_cache.c
│ ├── ngx_open_file_cache.h
│ ├── ngx_output_chain.c
│ ├── ngx_palloc.c
│ ├── ngx_palloc.h
│ ├── ngx_parse.c
│ ├── ngx_parse.h
│ ├── ngx_parse_time.c
│ ├── ngx_parse_time.h
│ ├── ngx_proxy_protocol.c
│ ├── ngx_proxy_protocol.h
│ ├── ngx_queue.c
│ ├── ngx_queue.h
│ ├── ngx_radix_tree.c
│ ├── ngx_radix_tree.h
│ ├── ngx_rbtree.c
│ ├── ngx_rbtree.h
│ ├── ngx_regex.c
│ ├── ngx_regex.h
│ ├── ngx_resolver.c
│ ├── ngx_resolver.h
│ ├── ngx_rwlock.c
│ ├── ngx_rwlock.h
│ ├── ngx_sha1.c
│ ├── ngx_sha1.h
│ ├── ngx_shmtx.c
│ ├── ngx_shmtx.h
│ ├── ngx_slab.c
│ ├── ngx_slab.h
│ ├── ngx_spinlock.c
│ ├── ngx_string.c
│ ├── ngx_string.h
│ ├── ngx_syslog.c
│ ├── ngx_syslog.h
│ ├── ngx_thread_pool.c
│ ├── ngx_thread_pool.h
│ ├── ngx_times.c
│ └── ngx_times.h
├── event/
│ ├── modules/
│ │ ├── ngx_devpoll_module.c
│ │ ├── ngx_epoll_module.c
│ │ ├── ngx_eventport_module.c
│ │ ├── ngx_iocp_module.c
│ │ ├── ngx_iocp_module.h
│ │ ├── ngx_kqueue_module.c
│ │ ├── ngx_poll_module.c
│ │ ├── ngx_select_module.c
│ │ ├── ngx_win32_poll_module.c
│ │ └── ngx_win32_select_module.c
│ ├── ngx_event.c
│ ├── ngx_event.h
│ ├── ngx_event_accept.c
│ ├── ngx_event_acceptex.c
│ ├── ngx_event_connect.c
│ ├── ngx_event_connect.h
│ ├── ngx_event_connectex.c
│ ├── ngx_event_openssl.c
│ ├── ngx_event_openssl.h
│ ├── ngx_event_openssl_stapling.c
│ ├── ngx_event_pipe.c
│ ├── ngx_event_pipe.h
│ ├── ngx_event_posted.c
│ ├── ngx_event_posted.h
│ ├── ngx_event_timer.c
│ ├── ngx_event_timer.h
│ ├── ngx_event_udp.c
│ ├── ngx_event_udp.h
│ └── quic/
│ ├── bpf/
│ │ ├── bpfgen.sh
│ │ ├── makefile
│ │ └── ngx_quic_reuseport_helper.c
│ ├── ngx_event_quic.c
│ ├── ngx_event_quic.h
│ ├── ngx_event_quic_ack.c
│ ├── ngx_event_quic_ack.h
│ ├── ngx_event_quic_bpf.c
│ ├── ngx_event_quic_bpf_code.c
│ ├── ngx_event_quic_connection.h
│ ├── ngx_event_quic_connid.c
│ ├── ngx_event_quic_connid.h
│ ├── ngx_event_quic_frames.c
│ ├── ngx_event_quic_frames.h
│ ├── ngx_event_quic_migration.c
│ ├── ngx_event_quic_migration.h
│ ├── ngx_event_quic_mtu.c
│ ├── ngx_event_quic_mtu.h
│ ├── ngx_event_quic_output.c
│ ├── ngx_event_quic_output.h
│ ├── ngx_event_quic_protection.c
│ ├── ngx_event_quic_protection.h
│ ├── ngx_event_quic_socket.c
│ ├── ngx_event_quic_socket.h
│ ├── ngx_event_quic_ssl.c
│ ├── ngx_event_quic_ssl.h
│ ├── ngx_event_quic_streams.c
│ ├── ngx_event_quic_streams.h
│ ├── ngx_event_quic_tokens.c
│ ├── ngx_event_quic_tokens.h
│ ├── ngx_event_quic_transport.c
│ └── ngx_event_quic_transport.h
├── http/
│ ├── modules/
│ │ ├── ngx_http_access_module.c
│ │ ├── ngx_http_addition_filter_module.c
│ │ ├── ngx_http_auth_basic_module.c
│ │ ├── ngx_http_auth_request_module.c
│ │ ├── ngx_http_autoindex_module.c
│ │ ├── ngx_http_browser_module.c
│ │ ├── ngx_http_charset_filter_module.c
│ │ ├── ngx_http_chunked_filter_module.c
│ │ ├── ngx_http_dav_module.c
│ │ ├── ngx_http_degradation_module.c
│ │ ├── ngx_http_empty_gif_module.c
│ │ ├── ngx_http_fastcgi_module.c
│ │ ├── ngx_http_flv_module.c
│ │ ├── ngx_http_geo_module.c
│ │ ├── ngx_http_geoip_module.c
│ │ ├── ngx_http_grpc_module.c
│ │ ├── ngx_http_gunzip_filter_module.c
│ │ ├── ngx_http_gzip_filter_module.c
│ │ ├── ngx_http_gzip_static_module.c
│ │ ├── ngx_http_headers_filter_module.c
│ │ ├── ngx_http_image_filter_module.c
│ │ ├── ngx_http_index_module.c
│ │ ├── ngx_http_limit_conn_module.c
│ │ ├── ngx_http_limit_req_module.c
│ │ ├── ngx_http_log_module.c
│ │ ├── ngx_http_map_module.c
│ │ ├── ngx_http_memcached_module.c
│ │ ├── ngx_http_mirror_module.c
│ │ ├── ngx_http_mp4_module.c
│ │ ├── ngx_http_not_modified_filter_module.c
│ │ ├── ngx_http_proxy_module.c
│ │ ├── ngx_http_quic_module.c
│ │ ├── ngx_http_quic_module.h
│ │ ├── ngx_http_random_index_module.c
│ │ ├── ngx_http_range_filter_module.c
│ │ ├── ngx_http_realip_module.c
│ │ ├── ngx_http_referer_module.c
│ │ ├── ngx_http_rewrite_module.c
│ │ ├── ngx_http_scgi_module.c
│ │ ├── ngx_http_secure_link_module.c
│ │ ├── ngx_http_slice_filter_module.c
│ │ ├── ngx_http_split_clients_module.c
│ │ ├── ngx_http_ssi_filter_module.c
│ │ ├── ngx_http_ssi_filter_module.h
│ │ ├── ngx_http_ssl_module.c
│ │ ├── ngx_http_ssl_module.h
│ │ ├── ngx_http_static_module.c
│ │ ├── ngx_http_stub_status_module.c
│ │ ├── ngx_http_sub_filter_module.c
│ │ ├── ngx_http_try_files_module.c
│ │ ├── ngx_http_upstream_hash_module.c
│ │ ├── ngx_http_upstream_ip_hash_module.c
│ │ ├── ngx_http_upstream_keepalive_module.c
│ │ ├── ngx_http_upstream_least_conn_module.c
│ │ ├── ngx_http_upstream_random_module.c
│ │ ├── ngx_http_upstream_zone_module.c
│ │ ├── ngx_http_userid_filter_module.c
│ │ ├── ngx_http_uwsgi_module.c
│ │ ├── ngx_http_xslt_filter_module.c
│ │ └── perl/
│ │ ├── Makefile.PL
│ │ ├── nginx.pm
│ │ ├── nginx.xs
│ │ ├── ngx_http_perl_module.c
│ │ ├── ngx_http_perl_module.h
│ │ └── typemap
│ ├── ngx_http.c
│ ├── ngx_http.h
│ ├── ngx_http_cache.h
│ ├── ngx_http_config.h
│ ├── ngx_http_copy_filter_module.c
│ ├── ngx_http_core_module.c
│ ├── ngx_http_core_module.h
│ ├── ngx_http_file_cache.c
│ ├── ngx_http_header_filter_module.c
│ ├── ngx_http_parse.c
│ ├── ngx_http_postpone_filter_module.c
│ ├── ngx_http_request.c
│ ├── ngx_http_request.h
│ ├── ngx_http_request_body.c
│ ├── ngx_http_script.c
│ ├── ngx_http_script.h
│ ├── ngx_http_special_response.c
│ ├── ngx_http_upstream.c
│ ├── ngx_http_upstream.h
│ ├── ngx_http_upstream_round_robin.c
│ ├── ngx_http_upstream_round_robin.h
│ ├── ngx_http_variables.c
│ ├── ngx_http_variables.h
│ ├── ngx_http_write_filter_module.c
│ ├── v2/
│ │ ├── ngx_http_v2.c
│ │ ├── ngx_http_v2.h
│ │ ├── ngx_http_v2_encode.c
│ │ ├── ngx_http_v2_filter_module.c
│ │ ├── ngx_http_v2_huff_decode.c
│ │ ├── ngx_http_v2_huff_encode.c
│ │ ├── ngx_http_v2_module.c
│ │ ├── ngx_http_v2_module.h
│ │ └── ngx_http_v2_table.c
│ └── v3/
│ ├── ngx_http_v3.c
│ ├── ngx_http_v3.h
│ ├── ngx_http_v3_encode.c
│ ├── ngx_http_v3_encode.h
│ ├── ngx_http_v3_filter_module.c
│ ├── ngx_http_v3_module.c
│ ├── ngx_http_v3_parse.c
│ ├── ngx_http_v3_parse.h
│ ├── ngx_http_v3_request.c
│ ├── ngx_http_v3_streams.c
│ ├── ngx_http_v3_streams.h
│ ├── ngx_http_v3_tables.c
│ └── ngx_http_v3_tables.h
├── mail/
│ ├── ngx_mail.c
│ ├── ngx_mail.h
│ ├── ngx_mail_auth_http_module.c
│ ├── ngx_mail_core_module.c
│ ├── ngx_mail_handler.c
│ ├── ngx_mail_imap_handler.c
│ ├── ngx_mail_imap_module.c
│ ├── ngx_mail_imap_module.h
│ ├── ngx_mail_parse.c
│ ├── ngx_mail_pop3_handler.c
│ ├── ngx_mail_pop3_module.c
│ ├── ngx_mail_pop3_module.h
│ ├── ngx_mail_proxy_module.c
│ ├── ngx_mail_realip_module.c
│ ├── ngx_mail_smtp_handler.c
│ ├── ngx_mail_smtp_module.c
│ ├── ngx_mail_smtp_module.h
│ ├── ngx_mail_ssl_module.c
│ └── ngx_mail_ssl_module.h
├── misc/
│ ├── ngx_cpp_test_module.cpp
│ └── ngx_google_perftools_module.c
├── os/
│ ├── unix/
│ │ ├── ngx_alloc.c
│ │ ├── ngx_alloc.h
│ │ ├── ngx_atomic.h
│ │ ├── ngx_channel.c
│ │ ├── ngx_channel.h
│ │ ├── ngx_daemon.c
│ │ ├── ngx_darwin.h
│ │ ├── ngx_darwin_config.h
│ │ ├── ngx_darwin_init.c
│ │ ├── ngx_darwin_sendfile_chain.c
│ │ ├── ngx_dlopen.c
│ │ ├── ngx_dlopen.h
│ │ ├── ngx_errno.c
│ │ ├── ngx_errno.h
│ │ ├── ngx_file_aio_read.c
│ │ ├── ngx_files.c
│ │ ├── ngx_files.h
│ │ ├── ngx_freebsd.h
│ │ ├── ngx_freebsd_config.h
│ │ ├── ngx_freebsd_init.c
│ │ ├── ngx_freebsd_sendfile_chain.c
│ │ ├── ngx_gcc_atomic_amd64.h
│ │ ├── ngx_gcc_atomic_ppc.h
│ │ ├── ngx_gcc_atomic_sparc64.h
│ │ ├── ngx_gcc_atomic_x86.h
│ │ ├── ngx_linux.h
│ │ ├── ngx_linux_aio_read.c
│ │ ├── ngx_linux_config.h
│ │ ├── ngx_linux_init.c
│ │ ├── ngx_linux_sendfile_chain.c
│ │ ├── ngx_os.h
│ │ ├── ngx_posix_config.h
│ │ ├── ngx_posix_init.c
│ │ ├── ngx_process.c
│ │ ├── ngx_process.h
│ │ ├── ngx_process_cycle.c
│ │ ├── ngx_process_cycle.h
│ │ ├── ngx_readv_chain.c
│ │ ├── ngx_recv.c
│ │ ├── ngx_send.c
│ │ ├── ngx_setaffinity.c
│ │ ├── ngx_setaffinity.h
│ │ ├── ngx_setproctitle.c
│ │ ├── ngx_setproctitle.h
│ │ ├── ngx_shmem.c
│ │ ├── ngx_shmem.h
│ │ ├── ngx_socket.c
│ │ ├── ngx_socket.h
│ │ ├── ngx_solaris.h
│ │ ├── ngx_solaris_config.h
│ │ ├── ngx_solaris_init.c
│ │ ├── ngx_solaris_sendfilev_chain.c
│ │ ├── ngx_sunpro_amd64.il
│ │ ├── ngx_sunpro_atomic_sparc64.h
│ │ ├── ngx_sunpro_sparc64.il
│ │ ├── ngx_sunpro_x86.il
│ │ ├── ngx_thread.h
│ │ ├── ngx_thread_cond.c
│ │ ├── ngx_thread_id.c
│ │ ├── ngx_thread_mutex.c
│ │ ├── ngx_time.c
│ │ ├── ngx_time.h
│ │ ├── ngx_udp_recv.c
│ │ ├── ngx_udp_send.c
│ │ ├── ngx_udp_sendmsg_chain.c
│ │ ├── ngx_user.c
│ │ ├── ngx_user.h
│ │ └── ngx_writev_chain.c
│ └── win32/
│ ├── nginx.rc
│ ├── nginx_icon16.xpm
│ ├── nginx_icon32.xpm
│ ├── nginx_icon48.xpm
│ ├── ngx_alloc.c
│ ├── ngx_alloc.h
│ ├── ngx_atomic.h
│ ├── ngx_dlopen.c
│ ├── ngx_dlopen.h
│ ├── ngx_errno.c
│ ├── ngx_errno.h
│ ├── ngx_event_log.c
│ ├── ngx_files.c
│ ├── ngx_files.h
│ ├── ngx_os.h
│ ├── ngx_process.c
│ ├── ngx_process.h
│ ├── ngx_process_cycle.c
│ ├── ngx_process_cycle.h
│ ├── ngx_service.c
│ ├── ngx_shmem.c
│ ├── ngx_shmem.h
│ ├── ngx_socket.c
│ ├── ngx_socket.h
│ ├── ngx_stat.c
│ ├── ngx_thread.c
│ ├── ngx_thread.h
│ ├── ngx_time.c
│ ├── ngx_time.h
│ ├── ngx_udp_wsarecv.c
│ ├── ngx_user.c
│ ├── ngx_user.h
│ ├── ngx_win32_config.h
│ ├── ngx_win32_init.c
│ ├── ngx_wsarecv.c
│ ├── ngx_wsarecv_chain.c
│ ├── ngx_wsasend.c
│ └── ngx_wsasend_chain.c
└── stream/
├── ngx_stream.c
├── ngx_stream.h
├── ngx_stream_access_module.c
├── ngx_stream_core_module.c
├── ngx_stream_geo_module.c
├── ngx_stream_geoip_module.c
├── ngx_stream_handler.c
├── ngx_stream_limit_conn_module.c
├── ngx_stream_log_module.c
├── ngx_stream_map_module.c
├── ngx_stream_proxy_module.c
├── ngx_stream_quic_module.c
├── ngx_stream_quic_module.h
├── ngx_stream_realip_module.c
├── ngx_stream_return_module.c
├── ngx_stream_script.c
├── ngx_stream_script.h
├── ngx_stream_set_module.c
├── ngx_stream_split_clients_module.c
├── ngx_stream_ssl_module.c
├── ngx_stream_ssl_module.h
├── ngx_stream_ssl_preread_module.c
├── ngx_stream_upstream.c
├── ngx_stream_upstream.h
├── ngx_stream_upstream_hash_module.c
├── ngx_stream_upstream_least_conn_module.c
├── ngx_stream_upstream_random_module.c
├── ngx_stream_upstream_round_robin.c
├── ngx_stream_upstream_round_robin.h
├── ngx_stream_upstream_zone_module.c
├── ngx_stream_variables.c
├── ngx_stream_variables.h
└── ngx_stream_write_filter_module.c
================================================
FILE CONTENTS
================================================
================================================
FILE: README
================================================
Experimental QUIC support for nginx
-----------------------------------
1. Introduction
2. Installing
3. Configuration
4. Clients
5. Troubleshooting
6. Contributing
7. Links
1. Introduction
This is an experimental QUIC [1] / HTTP/3 [2] support for nginx.
The code is developed in a separate "quic" branch available
at https://hg.nginx.org/nginx-quic. Currently it is based
on nginx mainline 1.21.x. We merge new nginx releases into
this branch regularly.
The project code base is under the same BSD license as nginx.
The code is currently at a beta level of quality and should not
be used in production.
We are working on improving HTTP/3 support with the goal of
integrating it to the main NGINX codebase. Expect frequent
updates of this code and don't rely on it for whatever purpose.
We'll be grateful for any feedback and code submissions however
we don't bear any responsibilities for any issues with this code.
You can always contact us via nginx-devel mailing list [3].
What works now:
Currently we support IETF-QUIC draft-29 through final RFC documents.
Earlier drafts are NOT supported as they have incompatible wire format.
nginx should be able to respond to HTTP/3 requests over QUIC and
it should be possible to upload and download big files without errors.
+ The handshake completes successfully
+ One endpoint can update keys and its peer responds correctly
+ 0-RTT data is being received and acted on
+ Connection is established using TLS Resume Ticket
+ A handshake that includes a Retry packet completes successfully
+ Stream data is being exchanged and ACK'ed
+ An H3 transaction succeeded
+ One or both endpoints insert entries into dynamic table and
subsequently reference them from header blocks
+ Version Negotiation packet is sent to client with unknown version
+ Lost packets are detected and retransmitted properly
+ Clients may migrate to new address
Not (yet) supported features:
- Explicit Congestion Notification (ECN) as specified in quic-recovery [5]
- A connection with the spin bit succeeds and the bit is spinning
- Structured Logging
Since the code is experimental and still under development,
a lot of things may not work as expected, for example:
- Flow control mechanism is basic and intended to avoid CPU hog and make
simple interactions possible
- Not all protocol requirements are strictly followed; some of checks are
omitted for the sake of simplicity of initial implementation
2. Installing
You will need a BoringSSL [4] library that provides QUIC support
$ hg clone -b quic https://hg.nginx.org/nginx-quic
$ cd nginx-quic
$ ./auto/configure --with-debug --with-http_v3_module \
--with-cc-opt="-I../boringssl/include" \
--with-ld-opt="-L../boringssl/build/ssl \
-L../boringssl/build/crypto"
$ make
When configuring nginx, you can enable QUIC and HTTP/3 using the
following new configuration options:
--with-http_v3_module - enable QUIC and HTTP/3
--with-http_quic_module - enable QUIC for older HTTP versions
--with-stream_quic_module - enable QUIC in Stream
3. Configuration
The HTTP "listen" directive got two new options: "http3" and "quic".
The "http3" option enables HTTP/3 over QUIC on the specified port.
The "quic" option enables QUIC for older HTTP versions on this port.
The Stream "listen" directive got a new option "quic" which enables
QUIC as client transport protocol instead of TCP or plain UDP.
Along with "http3" or "quic", you also have to specify "reuseport"
option [6] to make it work properly with multiple workers.
A number of directives were added that specify transport parameter values:
quic_max_idle_timeout
quic_max_ack_delay
quic_max_udp_payload_size
quic_initial_max_data
quic_initial_max_stream_data_bidi_local
quic_initial_max_stream_data_bidi_remote
quic_initial_max_stream_data_uni
quic_initial_max_streams_bidi
quic_initial_max_streams_uni
quic_ack_delay_exponent
quic_disable_active_migration
quic_active_connection_id_limit
To enable address validation:
quic_retry on;
To enable 0-RTT:
ssl_early_data on;
Make sure that TLS 1.3 is configured which is required for QUIC:
ssl_protocols TLSv1.3;
To enable GSO (Generic Segmentation Offloading):
quic_gso on;
By default this Linux-specific optimization [8] is disabled.
Enable if your network interface is configured to support GSO.
A number of directives were added that configure HTTP/3:
http3_max_table_capacity
http3_max_blocked_streams
http3_max_concurrent_pushes
http3_push
http3_push_preload
An additional variable is available: $quic.
The value of $quic is "quic" if QUIC connection is used,
or an empty string otherwise.
Example configuration:
http {
log_format quic '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" "$quic"';
access_log logs/access.log quic;
server {
# for better compatibility it's recommended
# to use the same port for quic and https
listen 8443 http3 reuseport;
listen 8443 ssl;
ssl_certificate certs/example.com.crt;
ssl_certificate_key certs/example.com.key;
ssl_protocols TLSv1.3;
location / {
# required for browsers to direct them into quic port
add_header Alt-Svc 'h3=":8443"; ma=86400';
}
}
}
4. Clients
* Browsers
Known to work: Firefox 80+ and Chrome 85+ (QUIC draft 29+)
Beware of strange issues: sometimes browser may decide to ignore QUIC
Cache clearing/restart might help. Always check access.log and
error.log to make sure you are using HTTP/3 and not TCP https.
+ to enable QUIC in Firefox, set the following in 'about:config':
network.http.http3.enabled = true
+ to enable QUIC in Chrome, enable it on command line and force it
on your site:
$ ./chrome --enable-quic --quic-version=h3-29 \
--origin-to-force-quic-on=example.com:8443
* Console clients
Known to work: ngtcp2, firefox's neqo and chromium's console clients:
$ examples/client 127.0.0.1 8443 https://example.com:8443/index.html
$ ./neqo-client https://127.0.0.1:8443/
$ chromium-build/out/my_build/quic_client http://example.com:8443 \
--quic_version=h3-29 \
--allow_unknown_root_cert \
--disable_certificate_verification
If you've got it right, in the access log you should see something like:
127.0.0.1 - - [24/Apr/2020:11:27:29 +0300] "GET / HTTP/3" 200 805 "-"
"nghttp3/ngtcp2 client" "quic"
5. Troubleshooting
Here are some tips that may help you to identify problems:
+ Ensure you are building with proper SSL library that supports QUIC
+ Ensure you are using the proper SSL library in runtime
(`nginx -V` will show you what you are using)
+ Ensure your client is actually sending QUIC requests
(see "Clients" section about browsers and cache)
We recommend to start with simple console client like ngtcp2
to ensure you've got server configured properly before trying
with real browsers that may be very picky with certificates,
for example.
+ Build nginx with debug support [7] and check your debug log.
It should contain all details about connection and why it
failed. All related messages contain "quic " prefix and can
be easily filtered out.
+ If you want to investigate deeper, you may want to enable
additional debugging in src/event/quic/ngx_event_quic_connection.h:
#define NGX_QUIC_DEBUG_PACKETS
#define NGX_QUIC_DEBUG_FRAMES
#define NGX_QUIC_DEBUG_ALLOC
#define NGX_QUIC_DEBUG_CRYPTO
6. Contributing
If you are willing to contribute, please refer to
http://nginx.org/en/docs/contributing_changes.html
7. Links
[1] https://datatracker.ietf.org/doc/html/rfc9000
[2] https://datatracker.ietf.org/doc/html/draft-ietf-quic-http
[3] https://mailman.nginx.org/mailman/listinfo/nginx-devel
[4] https://boringssl.googlesource.com/boringssl/
[5] https://datatracker.ietf.org/doc/html/rfc9002
[6] https://nginx.org/en/docs/http/ngx_http_core_module.html#listen
[7] https://nginx.org/en/docs/debugging_log.html
[8] http://vger.kernel.org/lpc_net2018_talks/willemdebruijn-lpc2018-udpgso-paper-DRAFT-1.pdf
================================================
FILE: auto/cc/acc
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
# aCC: HP ANSI C++ B3910B A.03.55.02
# C89 mode
CFLAGS="$CFLAGS -Ae"
CC_TEST_FLAGS="-Ae"
PCRE_OPT="$PCRE_OPT -Ae"
ZLIB_OPT="$ZLIB_OPT -Ae"
================================================
FILE: auto/cc/bcc
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
# Borland C++ 5.5
# optimizations
# maximize speed
CFLAGS="$CFLAGS -O2"
case $CPU in
pentium)
# optimize for Pentium and Athlon
CPU_OPT="-5"
;;
pentiumpro)
# optimize for Pentium Pro, Pentium II and Pentium III
CPU_OPT="-6"
;;
esac
# __stdcall
#CPU_OPT="$CPU_OPT -ps"
# __fastcall
#CPU_OPT="$CPU_OPT -pr"
CFLAGS="$CFLAGS $CPU_OPT"
# multithreaded
CFLAGS="$CFLAGS -tWM"
# stop on warning
CFLAGS="$CFLAGS -w!"
# disable logo
CFLAGS="$CFLAGS -q"
# precompiled headers
CORE_DEPS="$CORE_DEPS $NGX_OBJS/ngx_config.csm"
NGX_PCH="$NGX_OBJS/ngx_config.csm"
NGX_BUILD_PCH="-H=$NGX_OBJS/ngx_config.csm"
NGX_USE_PCH="-Hu -H=$NGX_OBJS/ngx_config.csm"
# Win32 GUI mode application
#LINK="\$(CC) -laa"
# the resource file
NGX_RES="$NGX_OBJS/nginx.res"
NGX_RCC="brcc32 -fo$NGX_OBJS/nginx.res \$(CORE_INCS) $NGX_WIN32_RC"
# the pragma allows to link the resource file using bcc32 and
# to avoid the direct ilink32 calling and the c0w32.obj's WinMain/main problem
NGX_PRAGMA="#pragma resource \"$NGX_OBJS/nginx.res\""
ngx_include_opt="-I"
ngx_objout="-o"
ngx_binout="-e"
ngx_objext="obj"
ngx_long_start='@&&|
'
ngx_long_end='|'
ngx_regex_dirsep='\\'
ngx_dirsep="\\"
================================================
FILE: auto/cc/ccc
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
# Compaq C V6.5-207
ngx_include_opt="-I"
# warnings
CFLAGS="$CFLAGS -msg_enable level6 -msg_fatal level6"
CFLAGS="$CFLAGS -msg_disable unknownmacro"
CFLAGS="$CFLAGS -msg_disable unusedincl"
CFLAGS="$CFLAGS -msg_disable unnecincl"
CFLAGS="$CFLAGS -msg_disable nestincl"
CFLAGS="$CFLAGS -msg_disable strctpadding"
CFLAGS="$CFLAGS -msg_disable ansialiascast"
CFLAGS="$CFLAGS -msg_disable inlinestoclsmod"
CFLAGS="$CFLAGS -msg_disable cxxkeyword"
CFLAGS="$CFLAGS -msg_disable longlongsufx"
CFLAGS="$CFLAGS -msg_disable valuepres"
# STUB
CFLAGS="$CFLAGS -msg_disable truncintcast"
CFLAGS="$CFLAGS -msg_disable trunclongcast"
CFLAGS="$CFLAGS -msg_disable truncintasn"
CFLAGS="$CFLAGS -msg_disable trunclongint"
CFLAGS="$CFLAGS -msg_disable intconcastsgn"
CFLAGS="$CFLAGS -msg_disable intconstsign"
CFLAGS="$CFLAGS -msg_disable switchlong"
CFLAGS="$CFLAGS -msg_disable subscrbounds2"
CFLAGS="$CFLAGS -msg_disable hexoctunsign"
CFLAGS="$CFLAGS -msg_disable ignorecallval"
CFLAGS="$CFLAGS -msg_disable nonstandcast"
CFLAGS="$CFLAGS -msg_disable embedcomment"
CFLAGS="$CFLAGS -msg_disable unreachcode"
CFLAGS="$CFLAGS -msg_disable questcompare2"
CFLAGS="$CFLAGS -msg_disable unusedtop"
CFLAGS="$CFLAGS -msg_disable unrefdecl"
CFLAGS="$CFLAGS -msg_disable bitnotint"
================================================
FILE: auto/cc/clang
================================================
# Copyright (C) Nginx, Inc.
# clang
NGX_CLANG_VER=`$CC -v 2>&1 | grep 'version' 2>&1 \
| sed -n -e 's/^.*clang version \(.*\)/\1/p' \
-e 's/^.*LLVM version \(.*\)/\1/p'`
echo " + clang version: $NGX_CLANG_VER"
have=NGX_COMPILER value="\"clang $NGX_CLANG_VER\"" . auto/define
CC_TEST_FLAGS="-pipe"
# optimizations
#NGX_CLANG_OPT="-O2"
#NGX_CLANG_OPT="-Oz"
NGX_CLANG_OPT="-O"
case $CPU in
pentium)
# optimize for Pentium
CPU_OPT="-march=pentium"
NGX_CPU_CACHE_LINE=32
;;
pentiumpro | pentium3)
# optimize for Pentium Pro, Pentium II and Pentium III
CPU_OPT="-march=pentiumpro"
NGX_CPU_CACHE_LINE=32
;;
pentium4)
# optimize for Pentium 4
CPU_OPT="-march=pentium4"
NGX_CPU_CACHE_LINE=128
;;
athlon)
# optimize for Athlon
CPU_OPT="-march=athlon"
NGX_CPU_CACHE_LINE=64
;;
opteron)
# optimize for Opteron
CPU_OPT="-march=opteron"
NGX_CPU_CACHE_LINE=64
;;
esac
CC_AUX_FLAGS="$CC_AUX_FLAGS $CPU_OPT"
CFLAGS="$CFLAGS -pipe $CPU_OPT"
if [ ".$PCRE_OPT" = "." ]; then
PCRE_OPT="-O2 -pipe $CPU_OPT"
else
PCRE_OPT="$PCRE_OPT -pipe"
fi
if [ ".$ZLIB_OPT" = "." ]; then
ZLIB_OPT="-O2 -pipe $CPU_OPT"
else
ZLIB_OPT="$ZLIB_OPT -pipe"
fi
# warnings
CFLAGS="$CFLAGS $NGX_CLANG_OPT -Wall -Wextra -Wpointer-arith"
CFLAGS="$CFLAGS -Wconditional-uninitialized"
#CFLAGS="$CFLAGS -Wmissing-prototypes"
# we have a lot of unused function arguments
CFLAGS="$CFLAGS -Wno-unused-parameter"
# deprecated system OpenSSL library on OS X
if [ "$NGX_SYSTEM" = "Darwin" ]; then
CFLAGS="$CFLAGS -Wno-deprecated-declarations"
fi
# stop on warning
CFLAGS="$CFLAGS -Werror"
# debug
CFLAGS="$CFLAGS -g"
if [ ".$CPP" = "." ]; then
CPP="$CC -E"
fi
================================================
FILE: auto/cc/conf
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
LINK="\$(CC)"
MAIN_LINK=
MODULE_LINK="-shared"
ngx_include_opt="-I "
ngx_compile_opt="-c"
ngx_pic_opt="-fPIC"
ngx_objout="-o "
ngx_binout="-o "
ngx_objext="o"
ngx_binext=
ngx_modext=".so"
ngx_long_start=
ngx_long_end=
ngx_regex_dirsep="\/"
ngx_dirsep='/'
ngx_regex_cont=' \\\
'
ngx_cont=' \
'
ngx_tab=' \
'
ngx_spacer=
ngx_long_regex_cont=$ngx_regex_cont
ngx_long_cont=$ngx_cont
. auto/cc/name
if test -n "$CFLAGS"; then
CC_TEST_FLAGS="$CFLAGS $NGX_CC_OPT"
case $NGX_CC_NAME in
ccc)
# Compaq C V6.5-207
ngx_include_opt="-I"
;;
sunc)
MAIN_LINK=
MODULE_LINK="-G"
case "$NGX_MACHINE" in
i86pc)
NGX_AUX=" src/os/unix/ngx_sunpro_x86.il"
;;
sun4u | sun4v)
NGX_AUX=" src/os/unix/ngx_sunpro_sparc64.il"
;;
esac
case $CPU in
amd64)
NGX_AUX=" src/os/unix/ngx_sunpro_amd64.il"
;;
esac
;;
esac
else
case $NGX_CC_NAME in
gcc)
# gcc 2.7.2.3, 2.8.1, 2.95.4, egcs-1.1.2
# 3.0.4, 3.1.1, 3.2.3, 3.3.2, 3.3.3, 3.3.4, 3.4.0, 3.4.2
# 4.0.0, 4.0.1, 4.1.0
. auto/cc/gcc
;;
clang)
# Clang C compiler
. auto/cc/clang
;;
icc)
# Intel C++ compiler 7.1, 8.0, 8.1
. auto/cc/icc
;;
sunc)
# Sun C 5.7 Patch 117837-04 2005/05/11
. auto/cc/sunc
;;
ccc)
# Compaq C V6.5-207
. auto/cc/ccc
;;
acc)
# aCC: HP ANSI C++ B3910B A.03.55.02
. auto/cc/acc
;;
msvc*)
# MSVC++ 6.0 SP2, MSVC++ Toolkit 2003
. auto/cc/msvc
;;
owc)
# Open Watcom C 1.0, 1.2
. auto/cc/owc
;;
bcc)
# Borland C++ 5.5
. auto/cc/bcc
;;
esac
CC_TEST_FLAGS="$CC_TEST_FLAGS $NGX_CC_OPT"
fi
CFLAGS="$CFLAGS $NGX_CC_OPT"
NGX_TEST_LD_OPT="$NGX_LD_OPT"
if [ "$NGX_PLATFORM" != win32 ]; then
if test -n "$NGX_LD_OPT"; then
ngx_feature=--with-ld-opt=\"$NGX_LD_OPT\"
ngx_feature_name=
ngx_feature_run=no
ngx_feature_incs=
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test=
. auto/feature
if [ $ngx_found = no ]; then
echo $0: error: the invalid value in --with-ld-opt=\"$NGX_LD_OPT\"
echo
exit 1
fi
fi
ngx_feature="-Wl,-E switch"
ngx_feature_name=
ngx_feature_run=no
ngx_feature_incs=
ngx_feature_path=
ngx_feature_libs=-Wl,-E
ngx_feature_test=
. auto/feature
if [ $ngx_found = yes ]; then
MAIN_LINK="-Wl,-E"
fi
if [ "$NGX_CC_NAME" = "sunc" ]; then
echo "checking for gcc builtin atomic operations ... disabled"
else
ngx_feature="gcc builtin atomic operations"
ngx_feature_name=NGX_HAVE_GCC_ATOMIC
ngx_feature_run=yes
ngx_feature_incs=
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="long n = 0;
if (!__sync_bool_compare_and_swap(&n, 0, 1))
return 1;
if (__sync_fetch_and_add(&n, 1) != 1)
return 1;
if (n != 2)
return 1;
__sync_synchronize();"
. auto/feature
fi
if [ "$NGX_CC_NAME" = "ccc" ]; then
echo "checking for C99 variadic macros ... disabled"
else
ngx_feature="C99 variadic macros"
ngx_feature_name="NGX_HAVE_C99_VARIADIC_MACROS"
ngx_feature_run=yes
ngx_feature_incs="#include <stdio.h>
#define var(dummy, ...) sprintf(__VA_ARGS__)"
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="char buf[30]; buf[0] = '0';
var(0, buf, \"%d\", 1);
if (buf[0] != '1') return 1"
. auto/feature
fi
ngx_feature="gcc variadic macros"
ngx_feature_name="NGX_HAVE_GCC_VARIADIC_MACROS"
ngx_feature_run=yes
ngx_feature_incs="#include <stdio.h>
#define var(dummy, args...) sprintf(args)"
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="char buf[30]; buf[0] = '0';
var(0, buf, \"%d\", 1);
if (buf[0] != '1') return 1"
. auto/feature
ngx_feature="gcc builtin 64 bit byteswap"
ngx_feature_name="NGX_HAVE_GCC_BSWAP64"
ngx_feature_run=no
ngx_feature_incs=
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="if (__builtin_bswap64(0)) return 1"
. auto/feature
# ngx_feature="inline"
# ngx_feature_name=
# ngx_feature_run=no
# ngx_feature_incs="int inline f(void) { return 1 }"
# ngx_feature_path=
# ngx_feature_libs=
# ngx_feature_test=
# . auto/feature
#
# if [ $ngx_found = yes ]; then
# fi
fi
================================================
FILE: auto/cc/gcc
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
# gcc 2.7.2.3, 2.8.1, 2.95.4, egcs-1.1.2
# 3.0.4, 3.1.1, 3.2.3, 3.3.2, 3.3.3, 3.3.4, 3.4.0, 3.4.2
# 4.0.0, 4.0.1, 4.1.0
NGX_GCC_VER=`$CC -v 2>&1 | grep 'gcc version' 2>&1 \
| sed -e 's/^.* version \(.*\)/\1/'`
echo " + gcc version: $NGX_GCC_VER"
have=NGX_COMPILER value="\"gcc $NGX_GCC_VER\"" . auto/define
# Solaris 7's /usr/ccs/bin/as does not support "-pipe"
CC_TEST_FLAGS="-pipe"
ngx_feature="gcc -pipe switch"
ngx_feature_name=
ngx_feature_run=no
ngx_feature_incs=
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test=
. auto/feature
CC_TEST_FLAGS=
if [ $ngx_found = yes ]; then
PIPE="-pipe"
fi
case "$NGX_MACHINE" in
sun4u | sun4v | sparc | sparc64 )
# "-mcpu=v9" enables the "casa" assembler instruction
CFLAGS="$CFLAGS -mcpu=v9"
;;
esac
# optimizations
#NGX_GCC_OPT="-O2"
#NGX_GCC_OPT="-Os"
NGX_GCC_OPT="-O"
#CFLAGS="$CFLAGS -fomit-frame-pointer"
case $CPU in
pentium)
# optimize for Pentium and Athlon
CPU_OPT="-march=pentium"
NGX_CPU_CACHE_LINE=32
;;
pentiumpro | pentium3)
# optimize for Pentium Pro, Pentium II and Pentium III
CPU_OPT="-march=pentiumpro"
NGX_CPU_CACHE_LINE=32
;;
pentium4)
# optimize for Pentium 4, gcc 3.x
CPU_OPT="-march=pentium4"
NGX_CPU_CACHE_LINE=128
;;
athlon)
# optimize for Athlon, gcc 3.x
CPU_OPT="-march=athlon"
NGX_CPU_CACHE_LINE=64
;;
opteron)
# optimize for Opteron, gcc 3.x
CPU_OPT="-march=opteron"
NGX_CPU_CACHE_LINE=64
;;
sparc32)
# build 32-bit UltraSparc binary
CPU_OPT="-m32"
CORE_LINK="$CORE_LINK -m32"
NGX_CPU_CACHE_LINE=64
;;
sparc64)
# build 64-bit UltraSparc binary
CPU_OPT="-m64"
CORE_LINK="$CORE_LINK -m64"
NGX_CPU_CACHE_LINE=64
;;
ppc64)
# build 64-bit PowerPC binary
CPU_OPT="-m64"
CPU_OPT="$CPU_OPT -falign-functions=32 -falign-labels=32"
CPU_OPT="$CPU_OPT -falign-loops=32 -falign-jumps=32"
CORE_LINK="$CORE_LINK -m64"
NGX_CPU_CACHE_LINE=128
;;
esac
CC_AUX_FLAGS="$CC_AUX_FLAGS $CPU_OPT"
case "$NGX_GCC_VER" in
2.7*)
# batch build
CPU_OPT=
;;
esac
CFLAGS="$CFLAGS $PIPE $CPU_OPT"
if [ ".$PCRE_OPT" = "." ]; then
PCRE_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT"
else
PCRE_OPT="$PCRE_OPT $PIPE"
fi
if [ ".$ZLIB_OPT" = "." ]; then
ZLIB_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT"
else
ZLIB_OPT="$ZLIB_OPT $PIPE"
fi
# warnings
# -W requires at least -O
CFLAGS="$CFLAGS ${NGX_GCC_OPT:--O} -W"
CFLAGS="$CFLAGS -Wall -Wpointer-arith"
#CFLAGS="$CFLAGS -Wconversion"
#CFLAGS="$CFLAGS -Winline"
#CFLAGS="$CFLAGS -Wmissing-prototypes"
case "$NGX_GCC_VER" in
2.*)
# we have a lot of the unused function arguments
CFLAGS="$CFLAGS -Wno-unused"
;;
*)
# we have a lot of the unused function arguments
CFLAGS="$CFLAGS -Wno-unused-parameter"
# 4.2.1 shows the warning in wrong places
#CFLAGS="$CFLAGS -Wunreachable-code"
# deprecated system OpenSSL library on OS X
if [ "$NGX_SYSTEM" = "Darwin" ]; then
CFLAGS="$CFLAGS -Wno-deprecated-declarations"
fi
;;
esac
# stop on warning
CFLAGS="$CFLAGS -Werror"
# debug
CFLAGS="$CFLAGS -g"
# DragonFly's gcc3 generates DWARF
#CFLAGS="$CFLAGS -g -gstabs"
if [ ".$CPP" = "." ]; then
CPP="$CC -E"
fi
================================================
FILE: auto/cc/icc
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
# Intel C++ compiler 7.1, 8.0, 8.1, 9.0, 11.1
NGX_ICC_VER=`$CC -V 2>&1 | grep 'Version' 2>&1 \
| sed -e 's/^.* Version \([^ ]*\) *Build.*$/\1/'`
echo " + icc version: $NGX_ICC_VER"
have=NGX_COMPILER value="\"Intel C Compiler $NGX_ICC_VER\"" . auto/define
# optimizations
CFLAGS="$CFLAGS -O"
CORE_LINK="$CORE_LINK -opt_report_file=$NGX_OBJS/opt_report_file"
case $CPU in
pentium)
# optimize for Pentium and Athlon
CPU_OPT="-march=pentium"
;;
pentiumpro)
# optimize for Pentium Pro, Pentium II and Pentium III
CPU_OPT="-mcpu=pentiumpro -march=pentiumpro"
;;
pentium4)
# optimize for Pentium 4, default
CPU_OPT="-march=pentium4"
;;
esac
CFLAGS="$CFLAGS $CPU_OPT"
if [ ".$PCRE_OPT" = "." ]; then
PCRE_OPT="-O $CPU_OPT"
fi
if [ ".$ZLIB_OPT" = "." ]; then
ZLIB_OPT="-O $CPU_OPT"
fi
# warnings
CFLAGS="$CFLAGS -w2"
# disable some warnings
# invalid type conversion: "int" to "char *"
CFLAGS="$CFLAGS -wd171"
# argument is incompatible with corresponding format string conversion
CFLAGS="$CFLAGS -wd181"
# zero used for undefined preprocessing identifier
CFLAGS="$CFLAGS -wd193"
# the format string ends before this argument
CFLAGS="$CFLAGS -wd268"
# invalid format string conversion
CFLAGS="$CFLAGS -wd269"
# conversion from "long long" to "size_t" may lose significant bits
CFLAGS="$CFLAGS -wd810"
# parameter was never referenced
CFLAGS="$CFLAGS -wd869"
# attribute "unused" is only allowed in a function definition, warning on pTHX_
CFLAGS="$CFLAGS -wd1301"
# STUB
# enumerated type mixed with another type
CFLAGS="$CFLAGS -wd188"
# controlling expression is constant
CFLAGS="$CFLAGS -wd279"
# operands are evaluated in unspecified order
CFLAGS="$CFLAGS -wd981"
# external definition with no prior declaration
CFLAGS="$CFLAGS -wd1418"
# external declaration in primary source file
CFLAGS="$CFLAGS -wd1419"
case "$NGX_ICC_VER" in
9.*)
# "cc" clobber ignored, warnings for Linux's htonl()/htons()
CFLAGS="$CFLAGS -wd1469"
# explicit conversion of a 64-bit integral type to a smaller
# integral type
CFLAGS="$CFLAGS -wd1683"
# conversion from pointer to same-sized integral type,
# warning on offsetof()
CFLAGS="$CFLAGS -wd1684"
# floating-point equality and inequality comparisons are unreliable,
# warning on SvTRUE()
CFLAGS="$CFLAGS -wd1572"
;;
8.*)
# "cc" clobber ignored, warnings for Linux's htonl()/htons()
CFLAGS="$CFLAGS -wd1469"
# floating-point equality and inequality comparisons are unreliable,
# warning on SvTRUE()
CFLAGS="$CFLAGS -wd1572"
;;
*)
;;
esac
# stop on warning
CFLAGS="$CFLAGS -Werror"
# debug
CFLAGS="$CFLAGS -g"
================================================
FILE: auto/cc/msvc
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
# MSVC 6.0 SP2 cl 12.00
# MSVC Toolkit 2003 (7.1) cl 13.10
# MSVC 2005 Express Edition SP1 (8.0) cl 14.00
# MSVC 2008 Express Edition (9.0) cl 15.00
# MSVC 2010 (10.0) cl 16.00
# MSVC 2015 (14.0) cl 19.00
NGX_MSVC_VER=`$NGX_WINE $CC 2>&1 | grep 'Compiler Version' 2>&1 \
| sed -e 's/^.* Version \(.*\)/\1/'`
echo " + cl version: $NGX_MSVC_VER"
have=NGX_COMPILER value="\"cl $NGX_MSVC_VER\"" . auto/define
ngx_msvc_ver=`echo $NGX_MSVC_VER | sed -e 's/^\([0-9]*\).*/\1/'`
# optimizations
# maximize speed, equivalent to -Og -Oi -Ot -Oy -Ob2 -Gs -GF -Gy
CFLAGS="$CFLAGS -O2"
# enable global optimization
#CFLAGS="$CFLAGS -Og"
# enable intrinsic functions
#CFLAGS="$CFLAGS -Oi"
# disable inline expansion
#CFLAGS="$CFLAGS -Ob0"
# explicit inline expansion
#CFLAGS="$CFLAGS -Ob1"
# explicit and implicit inline expansion
#CFLAGS="$CFLAGS -Ob2"
# enable frame pointer omission
#CFLAGS="$CFLAGS -Oy"
# disable stack checking calls
#CFLAGS="$CFLAGS -Gs"
# pools strings as read/write
#CFLAGS="$CFLAGS -Gf"
# pools strings as read-only
#CFLAGS="$CFLAGS -GF"
case $CPU in
pentium)
# optimize for Pentium and Athlon
CPU_OPT="-G5"
;;
pentiumpro)
# optimize for Pentium Pro, Pentium II and Pentium III
CPU_OPT="-G6"
;;
pentium4)
# optimize for Pentium 4, MSVC 7
CPU_OPT="-G7"
;;
esac
# __cdecl, default, must be used with OpenSSL, md5 asm, and sha1 asm
#CPU_OPT="$CPU_OPT -Gd"
# __stdcall
#CPU_OPT="$CPU_OPT -Gz"
# __fastcall
#CPU_OPT="$CPU_OPT -Gr"
CFLAGS="$CFLAGS $CPU_OPT"
# warnings
CFLAGS="$CFLAGS -W4"
# stop on warning
CFLAGS="$CFLAGS -WX"
# disable logo
CFLAGS="$CFLAGS -nologo"
# the link flags
CORE_LINK="$CORE_LINK -link -verbose:lib"
# link with libcmt.lib, multithreaded
LIBC="-MT"
# link with msvcrt.dll
# however, MSVC Toolkit 2003 has no MSVCRT.LIB
#LIBC="-MD"
CFLAGS="$CFLAGS $LIBC"
CORE_LIBS="$CORE_LIBS kernel32.lib user32.lib"
# Win32 GUI mode application
#CORE_LINK="$CORE_LINK -subsystem:windows -entry:mainCRTStartup"
# debug
# msvc under Wine issues
# C1902: Program database manager mismatch; please check your installation
if [ -z "$NGX_WINE" ]; then
CFLAGS="$CFLAGS -Zi -Fd$NGX_OBJS/nginx.pdb"
CORE_LINK="$CORE_LINK -debug"
fi
# MSVC 2005 supports C99 variadic macros
if [ "$ngx_msvc_ver" -ge 14 ]; then
have=NGX_HAVE_C99_VARIADIC_MACROS . auto/have
fi
# precompiled headers
CORE_DEPS="$CORE_DEPS $NGX_OBJS/ngx_config.pch"
CORE_LINK="$CORE_LINK $NGX_OBJS/ngx_pch.obj"
NGX_PCH="$NGX_OBJS/ngx_config.pch"
NGX_BUILD_PCH="-Ycngx_config.h -Fp$NGX_OBJS/ngx_config.pch"
NGX_USE_PCH="-Yungx_config.h -Fp$NGX_OBJS/ngx_config.pch"
# the resource file
NGX_RES="$NGX_OBJS/nginx.res"
NGX_RCC="rc -fo$NGX_RES \$(CORE_INCS) $NGX_WIN32_RC"
CORE_LINK="$NGX_RES $CORE_LINK"
# dynamic modules
#MAIN_LINK="-link -def:$NGX_OBJS/nginx.def"
#MODULE_LINK="-LD $NGX_OBJS/nginx.lib"
ngx_pic_opt=
ngx_objout="-Fo"
ngx_binout="-Fe"
ngx_objext="obj"
ngx_long_start='@<<
'
ngx_long_end='<<'
ngx_long_regex_cont=' \
'
ngx_long_cont='
'
# MSVC understand / in path
#ngx_regex_dirsep='\\'
#ngx_dirsep="\\"
================================================
FILE: auto/cc/name
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
if [ "$NGX_PLATFORM" != win32 ]; then
ngx_feature="C compiler"
ngx_feature_name=
ngx_feature_run=yes
ngx_feature_incs=
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test=
. auto/feature
if [ $ngx_found = no ]; then
echo
echo $0: error: C compiler $CC is not found
echo
exit 1
fi
fi
if [ "$CC" = cl ]; then
NGX_CC_NAME=msvc
echo " + using Microsoft Visual C++ compiler"
elif [ "$CC" = wcl386 ]; then
NGX_CC_NAME=owc
echo " + using Open Watcom C compiler"
elif [ "$CC" = bcc32 ]; then
NGX_CC_NAME=bcc
echo " + using Borland C++ compiler"
elif `$CC -V 2>&1 | grep '^Intel(R) C' >/dev/null 2>&1`; then
NGX_CC_NAME=icc
echo " + using Intel C++ compiler"
elif `$CC -v 2>&1 | grep 'gcc version' >/dev/null 2>&1`; then
NGX_CC_NAME=gcc
echo " + using GNU C compiler"
elif `$CC -v 2>&1 | grep 'clang version' >/dev/null 2>&1`; then
NGX_CC_NAME=clang
echo " + using Clang C compiler"
elif `$CC -v 2>&1 | grep 'LLVM version' >/dev/null 2>&1`; then
NGX_CC_NAME=clang
echo " + using Clang C compiler"
elif `$CC -V 2>&1 | grep 'Sun C' >/dev/null 2>&1`; then
NGX_CC_NAME=sunc
echo " + using Sun C compiler"
elif `$CC -V 2>&1 | grep '^Compaq C' >/dev/null 2>&1`; then
NGX_CC_NAME=ccc
echo " + using Compaq C compiler"
elif `$CC -V 2>&1 | grep '^aCC: ' >/dev/null 2>&1`; then
NGX_CC_NAME=acc
echo " + using HP aC++ compiler"
else
NGX_CC_NAME=unknown
fi
================================================
FILE: auto/cc/owc
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
# Open Watcom C 1.0, 1.2, 1.3
# optimizations
# maximize speed
CFLAGS="$CFLAGS -ot"
# reorder instructions for best pipeline usage
CFLAGS="$CFLAGS -op"
# inline intrinsic functions
CFLAGS="$CFLAGS -oi"
# inline expansion
CFLAGS="$CFLAGS -oe"
# disable stack checking calls
CFLAGS="$CFLAGS -s"
case $CPU in
pentium)
# optimize for Pentium and Athlon
# register-based arguments passing conventions
CPU_OPT="-5r"
# stack-based arguments passing conventions
#CPU_OPT="-5s"
;;
pentiumpro)
# optimize for Pentium Pro, Pentium II and Pentium III
# register-based arguments passing conventions
CPU_OPT="-6r"
# stack-based arguments passing conventions
#CPU_OPT="-6s"
;;
esac
CFLAGS="$CFLAGS $CPU_OPT"
# warnings
# maximum level
CFLAGS="$CFLAGS -wx"
#CFLAGS="$CFLAGS -w3"
# stop on warning
CFLAGS="$CFLAGS -we"
# built target is NT
CFLAGS="$CFLAGS -bt=nt"
# multithreaded
CFLAGS="$CFLAGS -bm"
# debug
CFLAGS="$CFLAGS -d2"
# quiet
CFLAGS="$CFLAGS -zq"
# Open Watcom C 1.2
have=NGX_HAVE_C99_VARIADIC_MACROS . auto/have
# the precompiled headers
#CORE_DEPS="$CORE_DEPS $NGX_OBJS/ngx_config.pch"
#NGX_PCH="$NGX_OBJS/ngx_config.pch"
#NGX_BUILD_PCH="-fhq=$NGX_OBJS/ngx_config.pch"
#NGX_USE_PCH="-fh=$NGX_OBJS/ngx_config.pch"
# the link flags, built target is NT GUI mode application
#CORE_LINK="$CORE_LINK -l=nt_win"
# the resource file
NGX_RCC="wrc \$(CORE_INCS) -fo=$NGX_OBJS/nginx.res "
NGX_RCC="$NGX_RCC $NGX_WIN32_RC $NGX_OBJS/nginx.exe"
ngx_include_opt="-i="
ngx_objout="-fo"
ngx_binout="-fe="
ngx_objext="obj"
ngx_regex_dirsep='\\'
ngx_dirsep="\\"
ngx_long_start=' '
ngx_long_end=' '
ngx_long_regex_cont=' \&\
'
ngx_long_cont=' &
'
ngx_regex_cont=' \&\
'
ngx_cont=' &
'
ngx_tab=' &
'
================================================
FILE: auto/cc/sunc
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
# Sun C 5.7 Patch 117837-04 2005/05/11 Sun Studio 10
# Sun C 5.8 2005/10/13 Sun Studio 11
# Sun C 5.9 SunOS_i386 2007/05/03 Sun Studio 12
# Sun C 5.9 SunOS_sparc 2007/05/03
# Sun C 5.10 SunOS_i386 2009/06/03 Sun Studio 12.1
# Sun C 5.11 SunOS_i386 2010/08/13 Oracle Solaris Studio 12.2
# Sun C 5.12 SunOS_i386 2011/11/16 Oracle Solaris Studio 12.3
# Sun C 5.13 SunOS_i386 2014/10/20 Oracle Solaris Studio 12.4
# Sun C 5.14 SunOS_i386 2016/05/31 Oracle Developer Studio 12.5
NGX_SUNC_VER=`$CC -V 2>&1 | grep 'Sun C' 2>&1 \
| sed -e 's/^.* Sun C \(.*\)/\1/'`
echo " + Sun C version: $NGX_SUNC_VER"
have=NGX_COMPILER value="\"Sun C $NGX_SUNC_VER\"" . auto/define
cat << END > $NGX_AUTOTEST.c
int main(void) {
printf("%d", __SUNPRO_C);
return 0;
}
END
eval "$CC -o $NGX_AUTOTEST $NGX_AUTOTEST.c >> $NGX_ERR 2>&1"
if [ -x $NGX_AUTOTEST ]; then
ngx_sunc_ver=`$NGX_AUTOTEST`
fi
rm -rf $NGX_AUTOTEST*
# 1424 == 0x590, Sun Studio 12
if [ "$ngx_sunc_ver" -ge 1424 ]; then
ngx_sparc32="-m32"
ngx_sparc64="-m64"
ngx_amd64="-m64"
else
ngx_sparc32="-xarch=v8plus"
ngx_sparc64="-xarch=v9"
ngx_amd64="-xarch=amd64"
fi
case "$NGX_MACHINE" in
i86pc)
NGX_AUX=" src/os/unix/ngx_sunpro_x86.il"
;;
sun4u | sun4v)
NGX_AUX=" src/os/unix/ngx_sunpro_sparc64.il"
;;
esac
MAIN_LINK=
MODULE_LINK="-G"
# optimizations
# 20736 == 0x5100, Sun Studio 12.1
if [ "$ngx_sunc_ver" -ge 20736 ]; then
ngx_fast="-fast"
else
# older versions had problems with bit-fields
ngx_fast="-fast -xalias_level=any"
fi
IPO=-xipo
CFLAGS="$CFLAGS $ngx_fast $IPO"
CORE_LINK="$CORE_LINK $ngx_fast $IPO"
case $CPU in
pentium)
# optimize for Pentium and Athlon
CPU_OPT="-xchip=pentium"
;;
pentiumpro)
# optimize for Pentium Pro, Pentium II
CPU_OPT="-xchip=pentium_pro"
;;
pentium3)
# optimize for Pentium III
CPU_OPT="-xchip=pentium3"
#CPU_OPT="$CPU_OPT -xarch=sse"
CPU_OPT="$CPU_OPT -xcache=16/32/4:256/32/4"
;;
pentium4)
# optimize for Pentium 4
CPU_OPT="-xchip=pentium4"
#CPU_OPT="$CPU_OPT -xarch=sse2"
CPU_OPT="$CPU_OPT -xcache=8/64/4:256/128/8"
;;
opteron)
# optimize for Opteron
CPU_OPT="-xchip=opteron"
#CPU_OPT="$CPU_OPT -xarch=sse2"
CPU_OPT="$CPU_OPT -xcache=64/64/2:1024/64/16"
;;
sparc32)
# build 32-bit UltraSparc binary
CPU_OPT="$ngx_sparc32"
CORE_LINK="$CORE_LINK $ngx_sparc32"
CC_AUX_FLAGS="$CC_AUX_FLAGS $ngx_sparc32"
NGX_CPU_CACHE_LINE=64
;;
sparc64)
# build 64-bit UltraSparc binary
CPU_OPT="$ngx_sparc64"
CORE_LINK="$CORE_LINK $ngx_sparc64"
CC_AUX_FLAGS="$CC_AUX_FLAGS $ngx_sparc64"
NGX_CPU_CACHE_LINE=64
;;
amd64)
# build 64-bit amd64 binary
CPU_OPT="$ngx_amd64"
CORE_LINK="$CORE_LINK $ngx_amd64"
CC_AUX_FLAGS="$CC_AUX_FLAGS $ngx_amd64"
NGX_AUX=" src/os/unix/ngx_sunpro_amd64.il"
NGX_CPU_CACHE_LINE=64
;;
esac
CFLAGS="$CFLAGS $CPU_OPT"
if [ ".$PCRE_OPT" = "." ]; then
PCRE_OPT="$ngx_fast $IPO $CPU_OPT"
fi
if [ ".$ZLIB_OPT" = "." ]; then
ZLIB_OPT="$ngx_fast $IPO $CPU_OPT"
fi
# stop on warning
CFLAGS="$CFLAGS -errwarn=%all"
# debug
CFLAGS="$CFLAGS -g"
================================================
FILE: auto/configure
================================================
#!/bin/sh
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
LC_ALL=C
export LC_ALL
. auto/options
. auto/init
. auto/sources
test -d $NGX_OBJS || mkdir -p $NGX_OBJS
echo > $NGX_AUTO_HEADERS_H
echo > $NGX_AUTOCONF_ERR
echo "#define NGX_CONFIGURE \"$NGX_CONFIGURE\"" > $NGX_AUTO_CONFIG_H
if [ $NGX_DEBUG = YES ]; then
have=NGX_DEBUG . auto/have
fi
if test -z "$NGX_PLATFORM"; then
echo "checking for OS"
NGX_SYSTEM=`uname -s 2>/dev/null`
NGX_RELEASE=`uname -r 2>/dev/null`
NGX_MACHINE=`uname -m 2>/dev/null`
echo " + $NGX_SYSTEM $NGX_RELEASE $NGX_MACHINE"
NGX_PLATFORM="$NGX_SYSTEM:$NGX_RELEASE:$NGX_MACHINE";
case "$NGX_SYSTEM" in
MINGW32_* | MINGW64_* | MSYS_*)
NGX_PLATFORM=win32
;;
esac
else
echo "building for $NGX_PLATFORM"
NGX_SYSTEM=$NGX_PLATFORM
fi
. auto/cc/conf
if [ "$NGX_PLATFORM" != win32 ]; then
. auto/headers
fi
. auto/os/conf
if [ "$NGX_PLATFORM" != win32 ]; then
. auto/unix
fi
. auto/threads
. auto/modules
. auto/lib/conf
case ".$NGX_PREFIX" in
.)
NGX_PREFIX=${NGX_PREFIX:-/usr/local/nginx}
have=NGX_PREFIX value="\"$NGX_PREFIX/\"" . auto/define
;;
.!)
NGX_PREFIX=
;;
*)
have=NGX_PREFIX value="\"$NGX_PREFIX/\"" . auto/define
;;
esac
if [ ".$NGX_CONF_PREFIX" != "." ]; then
have=NGX_CONF_PREFIX value="\"$NGX_CONF_PREFIX/\"" . auto/define
fi
have=NGX_SBIN_PATH value="\"$NGX_SBIN_PATH\"" . auto/define
have=NGX_CONF_PATH value="\"$NGX_CONF_PATH\"" . auto/define
have=NGX_PID_PATH value="\"$NGX_PID_PATH\"" . auto/define
have=NGX_LOCK_PATH value="\"$NGX_LOCK_PATH\"" . auto/define
have=NGX_ERROR_LOG_PATH value="\"$NGX_ERROR_LOG_PATH\"" . auto/define
if [ ".$NGX_ERROR_LOG_PATH" = "." ]; then
have=NGX_ERROR_LOG_STDERR . auto/have
fi
have=NGX_HTTP_LOG_PATH value="\"$NGX_HTTP_LOG_PATH\"" . auto/define
have=NGX_HTTP_CLIENT_TEMP_PATH value="\"$NGX_HTTP_CLIENT_TEMP_PATH\""
. auto/define
have=NGX_HTTP_PROXY_TEMP_PATH value="\"$NGX_HTTP_PROXY_TEMP_PATH\""
. auto/define
have=NGX_HTTP_FASTCGI_TEMP_PATH value="\"$NGX_HTTP_FASTCGI_TEMP_PATH\""
. auto/define
have=NGX_HTTP_UWSGI_TEMP_PATH value="\"$NGX_HTTP_UWSGI_TEMP_PATH\""
. auto/define
have=NGX_HTTP_SCGI_TEMP_PATH value="\"$NGX_HTTP_SCGI_TEMP_PATH\""
. auto/define
. auto/make
. auto/lib/make
. auto/install
# STUB
. auto/stubs
have=NGX_USER value="\"$NGX_USER\"" . auto/define
have=NGX_GROUP value="\"$NGX_GROUP\"" . auto/define
if [ ".$NGX_BUILD" != "." ]; then
have=NGX_BUILD value="\"$NGX_BUILD\"" . auto/define
fi
. auto/summary
================================================
FILE: auto/define
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
cat << END >> $NGX_AUTO_CONFIG_H
#ifndef $have
#define $have $value
#endif
END
================================================
FILE: auto/endianness
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
echo $ngx_n "checking for system byte ordering ...$ngx_c"
cat << END >> $NGX_AUTOCONF_ERR
----------------------------------------
checking for system byte ordering
END
cat << END > $NGX_AUTOTEST.c
int main(void) {
int i = 0x11223344;
char *p;
p = (char *) &i;
if (*p == 0x44) return 0;
return 1;
}
END
ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
-o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs"
eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1"
if [ -x $NGX_AUTOTEST ]; then
if $NGX_AUTOTEST >/dev/null 2>&1; then
echo " little endian"
have=NGX_HAVE_LITTLE_ENDIAN . auto/have
else
echo " big endian"
fi
rm -rf $NGX_AUTOTEST*
else
rm -rf $NGX_AUTOTEST*
echo
echo "$0: error: cannot detect system byte ordering"
exit 1
fi
================================================
FILE: auto/feature
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
echo $ngx_n "checking for $ngx_feature ...$ngx_c"
cat << END >> $NGX_AUTOCONF_ERR
----------------------------------------
checking for $ngx_feature
END
ngx_found=no
if test -n "$ngx_feature_name"; then
ngx_have_feature=`echo $ngx_feature_name \
| tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`
fi
if test -n "$ngx_feature_path"; then
for ngx_temp in $ngx_feature_path; do
ngx_feature_inc_path="$ngx_feature_inc_path -I $ngx_temp"
done
fi
cat << END > $NGX_AUTOTEST.c
#include <sys/types.h>
$NGX_INCLUDE_UNISTD_H
$ngx_feature_incs
int main(void) {
$ngx_feature_test;
return 0;
}
END
ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS $ngx_feature_inc_path \
-o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_TEST_LD_OPT $ngx_feature_libs"
ngx_feature_inc_path=
eval "/bin/sh -c \"$ngx_test\" >> $NGX_AUTOCONF_ERR 2>&1"
if [ -x $NGX_AUTOTEST ]; then
case "$ngx_feature_run" in
yes)
# /bin/sh is used to intercept "Killed" or "Abort trap" messages
if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then
echo " found"
ngx_found=yes
if test -n "$ngx_feature_name"; then
have=$ngx_have_feature . auto/have
fi
else
echo " found but is not working"
fi
;;
value)
# /bin/sh is used to intercept "Killed" or "Abort trap" messages
if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then
echo " found"
ngx_found=yes
cat << END >> $NGX_AUTO_CONFIG_H
#ifndef $ngx_feature_name
#define $ngx_feature_name `$NGX_AUTOTEST`
#endif
END
else
echo " found but is not working"
fi
;;
bug)
# /bin/sh is used to intercept "Killed" or "Abort trap" messages
if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then
echo " not found"
else
echo " found"
ngx_found=yes
if test -n "$ngx_feature_name"; then
have=$ngx_have_feature . auto/have
fi
fi
;;
*)
echo " found"
ngx_found=yes
if test -n "$ngx_feature_name"; then
have=$ngx_have_feature . auto/have
fi
;;
esac
else
echo " not found"
echo "----------" >> $NGX_AUTOCONF_ERR
cat $NGX_AUTOTEST.c >> $NGX_AUTOCONF_ERR
echo "----------" >> $NGX_AUTOCONF_ERR
echo $ngx_test >> $NGX_AUTOCONF_ERR
echo "----------" >> $NGX_AUTOCONF_ERR
fi
rm -rf $NGX_AUTOTEST*
================================================
FILE: auto/have
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
cat << END >> $NGX_AUTO_CONFIG_H
#ifndef $have
#define $have 1
#endif
END
================================================
FILE: auto/have_headers
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
cat << END >> $NGX_AUTO_HEADERS_H
#ifndef $have
#define $have 1
#endif
END
================================================
FILE: auto/headers
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
ngx_include="unistd.h"; . auto/include
ngx_include="inttypes.h"; . auto/include
ngx_include="limits.h"; . auto/include
ngx_include="sys/filio.h"; . auto/include
ngx_include="sys/param.h"; . auto/include
ngx_include="sys/mount.h"; . auto/include
ngx_include="sys/statvfs.h"; . auto/include
ngx_include="crypt.h"; . auto/include
================================================
FILE: auto/include
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
echo $ngx_n "checking for $ngx_include ...$ngx_c"
cat << END >> $NGX_AUTOCONF_ERR
----------------------------------------
checking for $ngx_include
END
ngx_found=no
cat << END > $NGX_AUTOTEST.c
$NGX_INCLUDE_SYS_PARAM_H
#include <$ngx_include>
int main(void) {
return 0;
}
END
ngx_test="$CC -o $NGX_AUTOTEST $NGX_AUTOTEST.c"
eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1"
if [ -x $NGX_AUTOTEST ]; then
ngx_found=yes
echo " found"
ngx_name=`echo $ngx_include \
| tr abcdefghijklmnopqrstuvwxyz/. ABCDEFGHIJKLMNOPQRSTUVWXYZ__`
have=NGX_HAVE_$ngx_name . auto/have_headers
eval "NGX_INCLUDE_$ngx_name='#include <$ngx_include>'"
else
echo " not found"
echo "----------" >> $NGX_AUTOCONF_ERR
cat $NGX_AUTOTEST.c >> $NGX_AUTOCONF_ERR
echo "----------" >> $NGX_AUTOCONF_ERR
echo $ngx_test >> $NGX_AUTOCONF_ERR
echo "----------" >> $NGX_AUTOCONF_ERR
fi
rm -rf $NGX_AUTOTEST*
================================================
FILE: auto/init
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
NGX_MAKEFILE=$NGX_OBJS/Makefile
NGX_MODULES_C=$NGX_OBJS/ngx_modules.c
NGX_AUTO_HEADERS_H=$NGX_OBJS/ngx_auto_headers.h
NGX_AUTO_CONFIG_H=$NGX_OBJS/ngx_auto_config.h
NGX_AUTOTEST=$NGX_OBJS/autotest
NGX_AUTOCONF_ERR=$NGX_OBJS/autoconf.err
# STUBs
NGX_ERR=$NGX_OBJS/autoconf.err
MAKEFILE=$NGX_OBJS/Makefile
NGX_PCH=
NGX_USE_PCH=
# check the echo's "-n" option and "\c" capability
if echo "test\c" | grep c >/dev/null; then
if echo -n test | grep n >/dev/null; then
ngx_n=
ngx_c=
else
ngx_n=-n
ngx_c=
fi
else
ngx_n=
ngx_c='\c'
fi
# create Makefile
cat << END > Makefile
default: build
clean:
rm -rf Makefile $NGX_OBJS
.PHONY: default clean
END
================================================
FILE: auto/install
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
if [ $USE_PERL != NO ]; then
cat << END >> $NGX_MAKEFILE
install_perl_modules:
cd $NGX_OBJS/src/http/modules/perl && \$(MAKE) install
END
NGX_INSTALL_PERL_MODULES=install_perl_modules
fi
case ".$NGX_SBIN_PATH" in
./*)
;;
*)
NGX_SBIN_PATH=$NGX_PREFIX/$NGX_SBIN_PATH
;;
esac
case ".$NGX_MODULES_PATH" in
./*)
;;
*)
NGX_MODULES_PATH=$NGX_PREFIX/$NGX_MODULES_PATH
;;
esac
NGX_MODULES_PATH=`dirname $NGX_MODULES_PATH/.`
case ".$NGX_CONF_PATH" in
./*)
;;
*)
NGX_CONF_PATH=$NGX_PREFIX/$NGX_CONF_PATH
;;
esac
NGX_CONF_PREFIX=`dirname $NGX_CONF_PATH`
case ".$NGX_PID_PATH" in
./*)
;;
*)
NGX_PID_PATH=$NGX_PREFIX/$NGX_PID_PATH
;;
esac
case ".$NGX_ERROR_LOG_PATH" in
./* | .)
;;
*)
NGX_ERROR_LOG_PATH=$NGX_PREFIX/$NGX_ERROR_LOG_PATH
;;
esac
case ".$NGX_HTTP_LOG_PATH" in
./*)
;;
*)
NGX_HTTP_LOG_PATH=$NGX_PREFIX/$NGX_HTTP_LOG_PATH
;;
esac
if test -f man/nginx.8 ; then
NGX_MAN=man/nginx.8
else
NGX_MAN=docs/man/nginx.8
fi
if test -d html ; then
NGX_HTML=html
else
NGX_HTML=docs/html
fi
cat << END >> $NGX_MAKEFILE
manpage: $NGX_OBJS/nginx.8
$NGX_OBJS/nginx.8: $NGX_MAN $NGX_AUTO_CONFIG_H
sed -e "s|%%PREFIX%%|$NGX_PREFIX|" \\
-e "s|%%PID_PATH%%|$NGX_PID_PATH|" \\
-e "s|%%CONF_PATH%%|$NGX_CONF_PATH|" \\
-e "s|%%ERROR_LOG_PATH%%|${NGX_ERROR_LOG_PATH:-stderr}|" \\
< $NGX_MAN > \$@
install: build $NGX_INSTALL_PERL_MODULES
test -d '\$(DESTDIR)$NGX_PREFIX' || mkdir -p '\$(DESTDIR)$NGX_PREFIX'
test -d '\$(DESTDIR)`dirname "$NGX_SBIN_PATH"`' \\
|| mkdir -p '\$(DESTDIR)`dirname "$NGX_SBIN_PATH"`'
test ! -f '\$(DESTDIR)$NGX_SBIN_PATH' \\
|| mv '\$(DESTDIR)$NGX_SBIN_PATH' \\
'\$(DESTDIR)$NGX_SBIN_PATH.old'
cp $NGX_OBJS/nginx '\$(DESTDIR)$NGX_SBIN_PATH'
test -d '\$(DESTDIR)$NGX_CONF_PREFIX' \\
|| mkdir -p '\$(DESTDIR)$NGX_CONF_PREFIX'
cp conf/koi-win '\$(DESTDIR)$NGX_CONF_PREFIX'
cp conf/koi-utf '\$(DESTDIR)$NGX_CONF_PREFIX'
cp conf/win-utf '\$(DESTDIR)$NGX_CONF_PREFIX'
test -f '\$(DESTDIR)$NGX_CONF_PREFIX/mime.types' \\
|| cp conf/mime.types '\$(DESTDIR)$NGX_CONF_PREFIX'
cp conf/mime.types '\$(DESTDIR)$NGX_CONF_PREFIX/mime.types.default'
test -f '\$(DESTDIR)$NGX_CONF_PREFIX/fastcgi_params' \\
|| cp conf/fastcgi_params '\$(DESTDIR)$NGX_CONF_PREFIX'
cp conf/fastcgi_params \\
'\$(DESTDIR)$NGX_CONF_PREFIX/fastcgi_params.default'
test -f '\$(DESTDIR)$NGX_CONF_PREFIX/fastcgi.conf' \\
|| cp conf/fastcgi.conf '\$(DESTDIR)$NGX_CONF_PREFIX'
cp conf/fastcgi.conf '\$(DESTDIR)$NGX_CONF_PREFIX/fastcgi.conf.default'
test -f '\$(DESTDIR)$NGX_CONF_PREFIX/uwsgi_params' \\
|| cp conf/uwsgi_params '\$(DESTDIR)$NGX_CONF_PREFIX'
cp conf/uwsgi_params \\
'\$(DESTDIR)$NGX_CONF_PREFIX/uwsgi_params.default'
test -f '\$(DESTDIR)$NGX_CONF_PREFIX/scgi_params' \\
|| cp conf/scgi_params '\$(DESTDIR)$NGX_CONF_PREFIX'
cp conf/scgi_params \\
'\$(DESTDIR)$NGX_CONF_PREFIX/scgi_params.default'
test -f '\$(DESTDIR)$NGX_CONF_PATH' \\
|| cp conf/nginx.conf '\$(DESTDIR)$NGX_CONF_PATH'
cp conf/nginx.conf '\$(DESTDIR)$NGX_CONF_PREFIX/nginx.conf.default'
test -d '\$(DESTDIR)`dirname "$NGX_PID_PATH"`' \\
|| mkdir -p '\$(DESTDIR)`dirname "$NGX_PID_PATH"`'
test -d '\$(DESTDIR)`dirname "$NGX_HTTP_LOG_PATH"`' \\
|| mkdir -p '\$(DESTDIR)`dirname "$NGX_HTTP_LOG_PATH"`'
test -d '\$(DESTDIR)$NGX_PREFIX/html' \\
|| cp -R $NGX_HTML '\$(DESTDIR)$NGX_PREFIX'
END
if test -n "$NGX_ERROR_LOG_PATH"; then
cat << END >> $NGX_MAKEFILE
test -d '\$(DESTDIR)`dirname "$NGX_ERROR_LOG_PATH"`' \\
|| mkdir -p '\$(DESTDIR)`dirname "$NGX_ERROR_LOG_PATH"`'
END
fi
if test -n "$DYNAMIC_MODULES"; then
cat << END >> $NGX_MAKEFILE
test -d '\$(DESTDIR)$NGX_MODULES_PATH' \\
|| mkdir -p '\$(DESTDIR)$NGX_MODULES_PATH'
END
fi
for ngx_module in $DYNAMIC_MODULES
do
ngx_module=$ngx_module$ngx_modext
cat << END >> $NGX_MAKEFILE
test ! -f '\$(DESTDIR)$NGX_MODULES_PATH/$ngx_module' \\
|| mv '\$(DESTDIR)$NGX_MODULES_PATH/$ngx_module' \\
'\$(DESTDIR)$NGX_MODULES_PATH/$ngx_module.old'
cp $NGX_OBJS/$ngx_module '\$(DESTDIR)$NGX_MODULES_PATH/$ngx_module'
END
done
# create Makefile
cat << END >> Makefile
build:
\$(MAKE) -f $NGX_MAKEFILE
install:
\$(MAKE) -f $NGX_MAKEFILE install
modules:
\$(MAKE) -f $NGX_MAKEFILE modules
upgrade:
$NGX_SBIN_PATH -t
kill -USR2 \`cat $NGX_PID_PATH\`
sleep 1
test -f $NGX_PID_PATH.oldbin
kill -QUIT \`cat $NGX_PID_PATH.oldbin\`
.PHONY: build install modules upgrade
END
================================================
FILE: auto/lib/conf
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
if [ $USE_PCRE = YES -o $PCRE != NONE ]; then
. auto/lib/pcre/conf
else
if [ $USE_PCRE = DISABLED -a $HTTP = YES -a $HTTP_REWRITE = YES ]; then
cat << END
$0: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option or you have to enable the PCRE support.
END
exit 1
fi
fi
if [ $USE_OPENSSL = YES ]; then
. auto/lib/openssl/conf
fi
if [ $USE_ZLIB = YES ]; then
. auto/lib/zlib/conf
fi
if [ $USE_LIBXSLT != NO ]; then
. auto/lib/libxslt/conf
fi
if [ $USE_LIBGD != NO ]; then
. auto/lib/libgd/conf
fi
if [ $USE_PERL != NO ]; then
. auto/lib/perl/conf
fi
if [ $USE_GEOIP != NO ]; then
. auto/lib/geoip/conf
fi
if [ $NGX_GOOGLE_PERFTOOLS = YES ]; then
. auto/lib/google-perftools/conf
fi
if [ $NGX_LIBATOMIC != NO ]; then
. auto/lib/libatomic/conf
fi
================================================
FILE: auto/lib/geoip/conf
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
ngx_feature="GeoIP library"
ngx_feature_name=
ngx_feature_run=no
ngx_feature_incs="#include <GeoIP.h>"
ngx_feature_path=
ngx_feature_libs="-lGeoIP"
ngx_feature_test="GeoIP_open(NULL, 0)"
. auto/feature
if [ $ngx_found = no ]; then
# FreeBSD port
ngx_feature="GeoIP library in /usr/local/"
ngx_feature_path="/usr/local/include"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lGeoIP"
else
ngx_feature_libs="-L/usr/local/lib -lGeoIP"
fi
. auto/feature
fi
if [ $ngx_found = no ]; then
# NetBSD port
ngx_feature="GeoIP library in /usr/pkg/"
ngx_feature_path="/usr/pkg/include"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/usr/pkg/lib -L/usr/pkg/lib -lGeoIP"
else
ngx_feature_libs="-L/usr/pkg/lib -lGeoIP"
fi
. auto/feature
fi
if [ $ngx_found = no ]; then
# MacPorts
ngx_feature="GeoIP library in /opt/local/"
ngx_feature_path="/opt/local/include"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lGeoIP"
else
ngx_feature_libs="-L/opt/local/lib -lGeoIP"
fi
. auto/feature
fi
if [ $ngx_found = yes ]; then
CORE_INCS="$CORE_INCS $ngx_feature_path"
if [ $USE_GEOIP = YES ]; then
CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
fi
NGX_LIB_GEOIP=$ngx_feature_libs
ngx_feature="GeoIP IPv6 support"
ngx_feature_name="NGX_HAVE_GEOIP_V6"
ngx_feature_run=no
ngx_feature_incs="#include <stdio.h>
#include <GeoIP.h>"
#ngx_feature_path=
#ngx_feature_libs=
ngx_feature_test="printf(\"%d\", GEOIP_CITY_EDITION_REV0_V6);"
. auto/feature
else
cat << END
$0: error: the GeoIP module requires the GeoIP library.
You can either do not enable the module or install the library.
END
exit 1
fi
================================================
FILE: auto/lib/google-perftools/conf
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
ngx_feature="Google perftools"
ngx_feature_name=
ngx_feature_run=no
ngx_feature_incs=
ngx_feature_path=
ngx_feature_libs="-lprofiler"
ngx_feature_test="void ProfilerStop(void);
ProfilerStop()"
. auto/feature
if [ $ngx_found = no ]; then
# FreeBSD port
ngx_feature="Google perftools in /usr/local/"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lprofiler"
else
ngx_feature_libs="-L/usr/local/lib -lprofiler"
fi
. auto/feature
fi
if [ $ngx_found = no ]; then
# MacPorts
ngx_feature="Google perftools in /opt/local/"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lprofiler"
else
ngx_feature_libs="-L/opt/local/lib -lprofiler"
fi
. auto/feature
fi
if [ $ngx_found = yes ]; then
CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
else
cat << END
$0: error: the Google perftools module requires the Google perftools
library. You can either do not enable the module or install the library.
END
exit 1
fi
================================================
FILE: auto/lib/libatomic/conf
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
if [ $NGX_LIBATOMIC != YES ]; then
have=NGX_HAVE_LIBATOMIC . auto/have
CORE_INCS="$CORE_INCS $NGX_LIBATOMIC/src"
LINK_DEPS="$LINK_DEPS $NGX_LIBATOMIC/src/libatomic_ops.a"
CORE_LIBS="$CORE_LIBS $NGX_LIBATOMIC/src/libatomic_ops.a"
else
ngx_feature="atomic_ops library"
ngx_feature_name=NGX_HAVE_LIBATOMIC
ngx_feature_run=yes
ngx_feature_incs="#define AO_REQUIRE_CAS
#include <atomic_ops.h>"
ngx_feature_path=
ngx_feature_libs="-latomic_ops"
ngx_feature_test="long n = 0;
if (!AO_compare_and_swap(&n, 0, 1))
return 1;
if (AO_fetch_and_add(&n, 1) != 1)
return 1;
if (n != 2)
return 1;
AO_nop();"
. auto/feature
if [ $ngx_found = yes ]; then
CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
else
cat << END
$0: error: libatomic_ops library was not found.
END
exit 1
fi
fi
================================================
FILE: auto/lib/libatomic/make
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
cat << END >> $NGX_MAKEFILE
$NGX_LIBATOMIC/src/libatomic_ops.a: $NGX_LIBATOMIC/Makefile
cd $NGX_LIBATOMIC && \$(MAKE)
$NGX_LIBATOMIC/Makefile: $NGX_MAKEFILE
cd $NGX_LIBATOMIC \\
&& if [ -f Makefile ]; then \$(MAKE) distclean; fi \\
&& ./configure
END
================================================
FILE: auto/lib/libgd/conf
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
ngx_feature="GD library"
ngx_feature_name=
ngx_feature_run=no
ngx_feature_incs="#include <gd.h>"
ngx_feature_path=
ngx_feature_libs="-lgd"
ngx_feature_test="gdImagePtr img = gdImageCreateFromGifPtr(1, NULL);
(void) img"
. auto/feature
if [ $ngx_found = no ]; then
# FreeBSD port
ngx_feature="GD library in /usr/local/"
ngx_feature_path="/usr/local/include"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lgd"
else
ngx_feature_libs="-L/usr/local/lib -lgd"
fi
. auto/feature
fi
if [ $ngx_found = no ]; then
# NetBSD port
ngx_feature="GD library in /usr/pkg/"
ngx_feature_path="/usr/pkg/include"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/usr/pkg/lib -L/usr/pkg/lib -lgd"
else
ngx_feature_libs="-L/usr/pkg/lib -lgd"
fi
. auto/feature
fi
if [ $ngx_found = no ]; then
# MacPorts
ngx_feature="GD library in /opt/local/"
ngx_feature_path="/opt/local/include"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lgd"
else
ngx_feature_libs="-L/opt/local/lib -lgd"
fi
. auto/feature
fi
if [ $ngx_found = yes ]; then
CORE_INCS="$CORE_INCS $ngx_feature_path"
if [ $USE_LIBGD = YES ]; then
CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
fi
NGX_LIB_LIBGD=$ngx_feature_libs
ngx_feature="GD WebP support"
ngx_feature_name="NGX_HAVE_GD_WEBP"
ngx_feature_test="gdImagePtr img = gdImageCreateFromWebpPtr(1, NULL);
(void) img"
. auto/feature
else
cat << END
$0: error: the HTTP image filter module requires the GD library.
You can either do not enable the module or install the libraries.
END
exit 1
fi
================================================
FILE: auto/lib/libxslt/conf
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
ngx_feature="libxslt"
ngx_feature_name=
ngx_feature_run=no
ngx_feature_incs="#include <libxml/parser.h>
#include <libxml/tree.h>
#include <libxslt/xslt.h>
#include <libxslt/xsltInternals.h>
#include <libxslt/transform.h>
#include <libxslt/xsltutils.h>"
ngx_feature_path="/usr/include/libxml2"
ngx_feature_libs="-lxml2 -lxslt"
ngx_feature_test="xmlParserCtxtPtr ctxt = NULL;
xsltStylesheetPtr sheet = NULL;
xmlDocPtr doc = NULL;
xmlParseChunk(ctxt, NULL, 0, 0);
xsltApplyStylesheet(sheet, doc, NULL);"
. auto/feature
if [ $ngx_found = no ]; then
# FreeBSD port
ngx_feature="libxslt in /usr/local/"
ngx_feature_path="/usr/local/include/libxml2 /usr/local/include"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lxml2 -lxslt"
else
ngx_feature_libs="-L/usr/local/lib -lxml2 -lxslt"
fi
. auto/feature
fi
if [ $ngx_found = no ]; then
# NetBSD port
ngx_feature="libxslt in /usr/pkg/"
ngx_feature_path="/usr/pkg/include/libxml2 /usr/pkg/include"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/usr/pkg/lib -L/usr/pkg/lib -lxml2 -lxslt"
else
ngx_feature_libs="-L/usr/pkg/lib -lxml2 -lxslt"
fi
. auto/feature
fi
if [ $ngx_found = no ]; then
# MacPorts
ngx_feature="libxslt in /opt/local/"
ngx_feature_path="/opt/local/include/libxml2 /opt/local/include"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lxml2 -lxslt"
else
ngx_feature_libs="-L/opt/local/lib -lxml2 -lxslt"
fi
. auto/feature
fi
if [ $ngx_found = yes ]; then
CORE_INCS="$CORE_INCS $ngx_feature_path"
if [ $USE_LIBXSLT = YES ]; then
CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
fi
NGX_LIB_LIBXSLT=$ngx_feature_libs
else
cat << END
$0: error: the HTTP XSLT module requires the libxml2/libxslt
libraries. You can either do not enable the module or install the libraries.
END
exit 1
fi
ngx_feature="libexslt"
ngx_feature_name=NGX_HAVE_EXSLT
ngx_feature_run=no
ngx_feature_incs="#include <libexslt/exslt.h>"
ngx_feature_path="/usr/include/libxml2"
ngx_feature_libs="-lexslt"
ngx_feature_test="exsltRegisterAll();"
. auto/feature
if [ $ngx_found = no ]; then
# FreeBSD port
ngx_feature="libexslt in /usr/local/"
ngx_feature_path="/usr/local/include/libxml2 /usr/local/include"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lexslt"
else
ngx_feature_libs="-L/usr/local/lib -lexslt"
fi
. auto/feature
fi
if [ $ngx_found = no ]; then
# NetBSD port
ngx_feature="libexslt in /usr/pkg/"
ngx_feature_path="/usr/pkg/include/libxml2 /usr/local/include"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/usr/pkg/lib -L/usr/pkg/lib -lexslt"
else
ngx_feature_libs="-L/usr/pkg/lib -lexslt"
fi
. auto/feature
fi
if [ $ngx_found = no ]; then
# MacPorts
ngx_feature="libexslt in /opt/local/"
ngx_feature_path="/opt/local/include/libxml2 /opt/local/include"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lexslt"
else
ngx_feature_libs="-L/opt/local/lib -lexslt"
fi
. auto/feature
fi
if [ $ngx_found = yes ]; then
if [ $USE_LIBXSLT = YES ]; then
CORE_LIBS="$CORE_LIBS -lexslt"
fi
NGX_LIB_LIBXSLT="$NGX_LIB_LIBXSLT -lexslt"
fi
================================================
FILE: auto/lib/make
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
if [ $PCRE != NONE -a $PCRE != NO -a $PCRE != YES ]; then
. auto/lib/pcre/make
fi
if [ $OPENSSL != NONE -a $OPENSSL != NO -a $OPENSSL != YES ]; then
. auto/lib/openssl/make
fi
if [ $ZLIB != NONE -a $ZLIB != NO -a $ZLIB != YES ]; then
. auto/lib/zlib/make
fi
if [ $NGX_LIBATOMIC != NO -a $NGX_LIBATOMIC != YES ]; then
. auto/lib/libatomic/make
fi
if [ $USE_PERL != NO ]; then
. auto/lib/perl/make
fi
================================================
FILE: auto/lib/openssl/conf
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
if [ $OPENSSL != NONE ]; then
have=NGX_OPENSSL . auto/have
have=NGX_SSL . auto/have
if [ $USE_OPENSSL_QUIC = YES ]; then
have=NGX_QUIC . auto/have
fi
case "$CC" in
cl | bcc32)
CFLAGS="$CFLAGS -DNO_SYS_TYPES_H"
CORE_INCS="$CORE_INCS $OPENSSL/openssl/include"
CORE_DEPS="$CORE_DEPS $OPENSSL/openssl/include/openssl/ssl.h"
if [ -f $OPENSSL/ms/do_ms.bat ]; then
# before OpenSSL 1.1.0
CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/ssleay32.lib"
CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libeay32.lib"
else
# OpenSSL 1.1.0+
CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libssl.lib"
CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libcrypto.lib"
fi
# libeay32.lib requires gdi32.lib
CORE_LIBS="$CORE_LIBS gdi32.lib"
# OpenSSL 1.0.0 requires crypt32.lib
CORE_LIBS="$CORE_LIBS crypt32.lib"
;;
*)
CORE_INCS="$CORE_INCS $OPENSSL/.openssl/include"
CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h"
CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a"
CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a"
CORE_LIBS="$CORE_LIBS $NGX_LIBDL"
CORE_LIBS="$CORE_LIBS $NGX_LIBPTHREAD"
if [ "$NGX_PLATFORM" = win32 ]; then
CORE_LIBS="$CORE_LIBS -lgdi32 -lcrypt32 -lws2_32"
fi
;;
esac
else
if [ "$NGX_PLATFORM" != win32 ]; then
OPENSSL=NO
ngx_feature="OpenSSL library"
ngx_feature_name="NGX_OPENSSL"
ngx_feature_run=no
ngx_feature_incs="#include <openssl/ssl.h>"
ngx_feature_path=
ngx_feature_libs="-lssl -lcrypto $NGX_LIBDL $NGX_LIBPTHREAD"
ngx_feature_test="SSL_CTX_set_options(NULL, 0)"
. auto/feature
if [ $ngx_found = no ]; then
# FreeBSD port
ngx_feature="OpenSSL library in /usr/local/"
ngx_feature_path="/usr/local/include"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lssl -lcrypto"
else
ngx_feature_libs="-L/usr/local/lib -lssl -lcrypto"
fi
ngx_feature_libs="$ngx_feature_libs $NGX_LIBDL $NGX_LIBPTHREAD"
. auto/feature
fi
if [ $ngx_found = no ]; then
# NetBSD port
ngx_feature="OpenSSL library in /usr/pkg/"
ngx_feature_path="/usr/pkg/include"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/usr/pkg/lib -L/usr/pkg/lib -lssl -lcrypto"
else
ngx_feature_libs="-L/usr/pkg/lib -lssl -lcrypto"
fi
ngx_feature_libs="$ngx_feature_libs $NGX_LIBDL $NGX_LIBPTHREAD"
. auto/feature
fi
if [ $ngx_found = no ]; then
# MacPorts
ngx_feature="OpenSSL library in /opt/local/"
ngx_feature_path="/opt/local/include"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lssl -lcrypto"
else
ngx_feature_libs="-L/opt/local/lib -lssl -lcrypto"
fi
ngx_feature_libs="$ngx_feature_libs $NGX_LIBDL $NGX_LIBPTHREAD"
. auto/feature
fi
if [ $ngx_found = yes ]; then
have=NGX_SSL . auto/have
CORE_INCS="$CORE_INCS $ngx_feature_path"
CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
OPENSSL=YES
fi
fi
if [ $OPENSSL != YES ]; then
cat << END
$0: error: SSL modules require the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
with nginx by using --with-openssl=<path> option.
END
exit 1
fi
if [ $USE_OPENSSL_QUIC = YES ]; then
ngx_feature="OpenSSL QUIC support"
ngx_feature_name="NGX_QUIC"
ngx_feature_run=no
ngx_feature_incs="#include <openssl/ssl.h>"
ngx_feature_path=
ngx_feature_libs="-lssl -lcrypto $NGX_LIBDL $NGX_LIBPTHREAD"
ngx_feature_test="SSL_set_quic_method(NULL, NULL)"
. auto/feature
if [ $ngx_found = no ]; then
cat << END
$0: error: certain modules require OpenSSL QUIC support.
You can either do not enable the modules, or install the OpenSSL library with
QUIC support into the system, or build the OpenSSL library with QUIC support
statically from the source with nginx by using --with-openssl=<path> option.
END
exit 1
fi
fi
fi
================================================
FILE: auto/lib/openssl/make
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
case "$CC" in
cl)
cat << END >> $NGX_MAKEFILE
$OPENSSL/openssl/include/openssl/ssl.h: $NGX_MAKEFILE
\$(MAKE) -f auto/lib/openssl/makefile.msvc \
OPENSSL="$OPENSSL" OPENSSL_OPT="$OPENSSL_OPT"
END
;;
bcc32)
ngx_opt=`echo "-DOPENSSL=\"$OPENSSL\" -DOPENSSL_OPT=\"$OPENSSL_OPT\"" \
| sed -e "s/\//$ngx_regex_dirsep/g"`
cat << END >> $NGX_MAKEFILE
`echo "$OPENSSL\\openssl\\lib\\libeay32.lib: \
$OPENSSL\\openssl\\include\\openssl\\ssl.h" \
| sed -e "s/\//$ngx_regex_dirsep/g"`
`echo "$OPENSSL\\openssl\\lib\\ssleay32.lib: \
$OPENSSL\\openssl\\include\\openssl\\ssl.h" \
| sed -e "s/\//$ngx_regex_dirsep/g"`
`echo "$OPENSSL\\openssl\\include\\openssl\\ssl.h: $NGX_MAKEFILE" \
| sed -e "s/\//$ngx_regex_dirsep/g"`
\$(MAKE) -f auto/lib/openssl/makefile.bcc $ngx_opt
END
;;
*)
case $OPENSSL in
/*) ngx_prefix="$OPENSSL/.openssl" ;;
*) ngx_prefix="$PWD/$OPENSSL/.openssl" ;;
esac
cat << END >> $NGX_MAKEFILE
$OPENSSL/.openssl/include/openssl/ssl.h: $NGX_MAKEFILE
cd $OPENSSL \\
&& if [ -f Makefile ]; then \$(MAKE) clean; fi \\
&& ./config --prefix=$ngx_prefix no-shared no-threads $OPENSSL_OPT \\
&& \$(MAKE) \\
&& \$(MAKE) install_sw LIBDIR=lib
END
;;
esac
================================================
FILE: auto/lib/openssl/makefile.bcc
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
all:
cd $(OPENSSL)
perl Configure BC-32 no-shared --prefix=openssl $(OPENSSL_OPT)
ms\do_nasm
$(MAKE) -f ms\bcb.mak
$(MAKE) -f ms\bcb.mak install
# Borland's make does not expand "[ch]" in
# copy "inc32\openssl\*.[ch]" "openssl\include\openssl"
copy inc32\openssl\*.h openssl\include\openssl
================================================
FILE: auto/lib/openssl/makefile.msvc
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
all:
cd $(OPENSSL)
perl Configure VC-WIN32 no-shared \
--prefix="%cd%/openssl" \
--openssldir="%cd%/openssl/ssl" \
$(OPENSSL_OPT)
if exist ms\do_ms.bat ( \
ms\do_ms \
&& $(MAKE) -f ms\nt.mak \
&& $(MAKE) -f ms\nt.mak install \
) else ( \
$(MAKE) \
&& $(MAKE) install_sw \
)
================================================
FILE: auto/lib/pcre/conf
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
if [ $PCRE != NONE ]; then
CORE_INCS="$CORE_INCS $PCRE"
case "$NGX_CC_NAME" in
msvc | owc | bcc)
have=NGX_PCRE . auto/have
have=PCRE_STATIC . auto/have
CORE_DEPS="$CORE_DEPS $PCRE/pcre.h"
LINK_DEPS="$LINK_DEPS $PCRE/pcre.lib"
CORE_LIBS="$CORE_LIBS $PCRE/pcre.lib"
;;
icc)
have=NGX_PCRE . auto/have
CORE_DEPS="$CORE_DEPS $PCRE/pcre.h"
LINK_DEPS="$LINK_DEPS $PCRE/.libs/libpcre.a"
echo $ngx_n "checking for PCRE library ...$ngx_c"
if [ -f $PCRE/pcre.h ]; then
ngx_pcre_ver=`grep PCRE_MAJOR $PCRE/pcre.h \
| sed -e 's/^.*PCRE_MAJOR.* \(.*\)$/\1/'`
else if [ -f $PCRE/configure.in ]; then
ngx_pcre_ver=`grep PCRE_MAJOR= $PCRE/configure.in \
| sed -e 's/^.*=\(.*\)$/\1/'`
else
ngx_pcre_ver=`grep pcre_major, $PCRE/configure.ac \
| sed -e 's/^.*pcre_major,.*\[\(.*\)\].*$/\1/'`
fi
fi
echo " $ngx_pcre_ver major version found"
# to allow -ipo optimization we link with the *.o but not library
case "$ngx_pcre_ver" in
4|5)
CORE_LIBS="$CORE_LIBS $PCRE/pcre.o"
;;
6)
CORE_LIBS="$CORE_LIBS $PCRE/pcre_chartables.o"
CORE_LIBS="$CORE_LIBS $PCRE/pcre_compile.o"
CORE_LIBS="$CORE_LIBS $PCRE/pcre_exec.o"
CORE_LIBS="$CORE_LIBS $PCRE/pcre_fullinfo.o"
CORE_LIBS="$CORE_LIBS $PCRE/pcre_globals.o"
CORE_LIBS="$CORE_LIBS $PCRE/pcre_tables.o"
CORE_LIBS="$CORE_LIBS $PCRE/pcre_try_flipped.o"
;;
*)
CORE_LIBS="$CORE_LIBS $PCRE/pcre_chartables.o"
CORE_LIBS="$CORE_LIBS $PCRE/pcre_compile.o"
CORE_LIBS="$CORE_LIBS $PCRE/pcre_exec.o"
CORE_LIBS="$CORE_LIBS $PCRE/pcre_fullinfo.o"
CORE_LIBS="$CORE_LIBS $PCRE/pcre_globals.o"
CORE_LIBS="$CORE_LIBS $PCRE/pcre_tables.o"
CORE_LIBS="$CORE_LIBS $PCRE/pcre_try_flipped.o"
CORE_LIBS="$CORE_LIBS $PCRE/pcre_newline.o"
;;
esac
;;
*)
have=NGX_PCRE . auto/have
if [ "$NGX_PLATFORM" = win32 ]; then
have=PCRE_STATIC . auto/have
fi
CORE_DEPS="$CORE_DEPS $PCRE/pcre.h"
LINK_DEPS="$LINK_DEPS $PCRE/.libs/libpcre.a"
CORE_LIBS="$CORE_LIBS $PCRE/.libs/libpcre.a"
;;
esac
if [ $PCRE_JIT = YES ]; then
have=NGX_HAVE_PCRE_JIT . auto/have
PCRE_CONF_OPT="$PCRE_CONF_OPT --enable-jit"
fi
else
if [ "$NGX_PLATFORM" != win32 ]; then
PCRE=NO
ngx_feature="PCRE library"
ngx_feature_name="NGX_PCRE"
ngx_feature_run=no
ngx_feature_incs="#include <pcre.h>"
ngx_feature_path=
ngx_feature_libs="-lpcre"
ngx_feature_test="pcre *re;
re = pcre_compile(NULL, 0, NULL, 0, NULL);
if (re == NULL) return 1"
. auto/feature
if [ $ngx_found = no ]; then
# FreeBSD port
ngx_feature="PCRE library in /usr/local/"
ngx_feature_path="/usr/local/include"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lpcre"
else
ngx_feature_libs="-L/usr/local/lib -lpcre"
fi
. auto/feature
fi
if [ $ngx_found = no ]; then
# RedHat RPM, Solaris package
ngx_feature="PCRE library in /usr/include/pcre/"
ngx_feature_path="/usr/include/pcre"
ngx_feature_libs="-lpcre"
. auto/feature
fi
if [ $ngx_found = no ]; then
# NetBSD port
ngx_feature="PCRE library in /usr/pkg/"
ngx_feature_path="/usr/pkg/include"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/usr/pkg/lib -L/usr/pkg/lib -lpcre"
else
ngx_feature_libs="-L/usr/pkg/lib -lpcre"
fi
. auto/feature
fi
if [ $ngx_found = no ]; then
# MacPorts
ngx_feature="PCRE library in /opt/local/"
ngx_feature_path="/opt/local/include"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lpcre"
else
ngx_feature_libs="-L/opt/local/lib -lpcre"
fi
. auto/feature
fi
if [ $ngx_found = yes ]; then
CORE_INCS="$CORE_INCS $ngx_feature_path"
CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
PCRE=YES
fi
if [ $PCRE = YES ]; then
ngx_feature="PCRE JIT support"
ngx_feature_name="NGX_HAVE_PCRE_JIT"
ngx_feature_test="int jit = 0;
pcre_free_study(NULL);
pcre_config(PCRE_CONFIG_JIT, &jit);
if (jit != 1) return 1;"
. auto/feature
if [ $ngx_found = yes ]; then
PCRE_JIT=YES
fi
fi
fi
if [ $PCRE != YES ]; then
cat << END
$0: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.
END
exit 1
fi
fi
================================================
FILE: auto/lib/pcre/make
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
case "$NGX_CC_NAME" in
msvc)
ngx_makefile=makefile.msvc
ngx_opt="CPU_OPT=\"$CPU_OPT\" LIBC=$LIBC"
ngx_pcre="PCRE=\"$PCRE\""
;;
owc)
ngx_makefile=makefile.owc
ngx_opt="CPU_OPT=\"$CPU_OPT\""
ngx_pcre=`echo PCRE=\"$PCRE\" | sed -e "s/\//$ngx_regex_dirsep/g"`
;;
bcc)
ngx_makefile=makefile.bcc
ngx_opt="-DCPU_OPT=\"$CPU_OPT\""
ngx_pcre=`echo \-DPCRE=\"$PCRE\" | sed -e "s/\//$ngx_regex_dirsep/g"`
;;
*)
ngx_makefile=
;;
esac
if [ -n "$ngx_makefile" ]; then
cat << END >> $NGX_MAKEFILE
`echo "$PCRE/pcre.lib: $PCRE/pcre.h $NGX_MAKEFILE" \
| sed -e "s/\//$ngx_regex_dirsep/g"`
\$(MAKE) -f auto/lib/pcre/$ngx_makefile $ngx_pcre $ngx_opt
`echo "$PCRE/pcre.h:" | sed -e "s/\//$ngx_regex_dirsep/g"`
\$(MAKE) -f auto/lib/pcre/$ngx_makefile $ngx_pcre pcre.h
END
else
cat << END >> $NGX_MAKEFILE
$PCRE/pcre.h: $PCRE/Makefile
$PCRE/Makefile: $NGX_MAKEFILE
cd $PCRE \\
&& if [ -f Makefile ]; then \$(MAKE) distclean; fi \\
&& CC="\$(CC)" CFLAGS="$PCRE_OPT" \\
./configure --disable-shared $PCRE_CONF_OPT
$PCRE/.libs/libpcre.a: $PCRE/Makefile
cd $PCRE \\
&& \$(MAKE) libpcre.la
END
fi
================================================
FILE: auto/lib/pcre/makefile.bcc
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
CFLAGS = -q -O2 -tWM -w-8004 $(CPU_OPT)
PCREFLAGS = -DHAVE_CONFIG_H -DPCRE_STATIC -DPOSIX_MALLOC_THRESHOLD=10 \
-DSUPPORT_PCRE8 -DHAVE_MEMMOVE
pcre.lib:
cd $(PCRE)
bcc32 -c $(CFLAGS) -I. $(PCREFLAGS) pcre_*.c
copy /y nul pcre.lst
for %n in (*.obj) do @echo +%n ^^& >> pcre.lst
echo + >> pcre.lst
tlib pcre.lib @pcre.lst
pcre.h:
cd $(PCRE)
copy /y pcre.h.generic pcre.h
copy /y config.h.generic config.h
copy /y pcre_chartables.c.dist pcre_chartables.c
================================================
FILE: auto/lib/pcre/makefile.msvc
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
CFLAGS = -O2 -Ob1 -Oi -Gs $(LIBC) $(CPU_OPT)
PCREFLAGS = -DHAVE_CONFIG_H -DPCRE_STATIC -DPOSIX_MALLOC_THRESHOLD=10 \
-DSUPPORT_PCRE8 -DHAVE_MEMMOVE
pcre.lib:
cd $(PCRE)
cl -nologo -c $(CFLAGS) -I . $(PCREFLAGS) pcre_*.c
link -lib -out:pcre.lib -verbose:lib pcre_*.obj
pcre.h:
cd $(PCRE)
copy /y pcre.h.generic pcre.h
copy /y config.h.generic config.h
copy /y pcre_chartables.c.dist pcre_chartables.c
================================================
FILE: auto/lib/pcre/makefile.owc
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
CFLAGS = -c -zq -bt=nt -ot -op -oi -oe -s -bm $(CPU_OPT)
PCREFLAGS = -DHAVE_CONFIG_H -DPCRE_STATIC -DPOSIX_MALLOC_THRESHOLD=10 &
-DSUPPORT_PCRE8 -DHAVE_MEMMOVE
pcre.lib:
cd $(PCRE)
wcl386 $(CFLAGS) -i=. $(PCREFLAGS) pcre_*.c
dir /b *.obj > pcre.lst
wlib -n pcre.lib @pcre.lst
pcre.h:
cd $(PCRE)
copy /y pcre.h.generic pcre.h
copy /y config.h.generic config.h
copy /y pcre_chartables.c.dist pcre_chartables.c
================================================
FILE: auto/lib/perl/conf
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
echo "checking for perl"
NGX_PERL_VER=`$NGX_PERL -v 2>&1 | grep '^This is perl' 2>&1 \
| sed -e 's/^This is perl, \(.*\)/\1/'`
if test -n "$NGX_PERL_VER"; then
echo " + perl version: $NGX_PERL_VER"
if [ "`$NGX_PERL -e 'use 5.008006; print "OK"'`" != "OK" ]; then
echo
echo "$0: error: perl 5.8.6 or higher is required"
echo
exit 1;
fi
if [ "`$NGX_PERL -MExtUtils::Embed -e 'print "OK"'`" != "OK" ]; then
echo
echo "$0: error: perl module ExtUtils::Embed is required"
echo
exit 1;
fi
NGX_PM_CFLAGS=`$NGX_PERL -MExtUtils::Embed -e ccopts`
NGX_PM_LDFLAGS=`$NGX_PERL -MConfig -e 'print $Config{lddlflags}'`
NGX_PERL_CFLAGS="$CFLAGS `$NGX_PERL -MExtUtils::Embed -e ccopts`"
# gcc 4.1/4.2 warn about unused values in pTHX_
NGX_PERL_CFLAGS=`echo $NGX_PERL_CFLAGS \
| sed -e 's/-Wunused-value/-Wno-unused-value/'`
# icc8 warns 'declaration hides parameter "my_perl"' in ENTER and LEAVE
NGX_PERL_CFLAGS=`echo $NGX_PERL_CFLAGS \
| sed -e 's/-wd171/-wd171 -wd1599/'`
ngx_perl_ldopts=`$NGX_PERL -MExtUtils::Embed -e ldopts`
ngx_perl_dlext=`$NGX_PERL -MConfig -e 'print $Config{dlext}'`
ngx_perl_libdir="src/http/modules/perl/blib/arch/auto"
ngx_perl_module="$ngx_perl_libdir/nginx/nginx.$ngx_perl_dlext"
if $NGX_PERL -V:usemultiplicity | grep define > /dev/null; then
have=NGX_HAVE_PERL_MULTIPLICITY . auto/have
echo " + perl interpreter multiplicity found"
fi
if $NGX_PERL -V:useithreads | grep undef > /dev/null; then
# FreeBSD port wants to link with -pthread non-threaded perl
ngx_perl_ldopts=`echo $ngx_perl_ldopts | sed 's/ -pthread//'`
fi
if [ "$NGX_SYSTEM" = "Darwin" ]; then
# OS X system perl wants to link universal binaries
ngx_perl_ldopts=`echo $ngx_perl_ldopts \
| sed -e 's/-arch i386//' -e 's/-arch x86_64//'`
fi
if [ $USE_PERL = YES ]; then
CORE_LINK="$CORE_LINK $ngx_perl_ldopts"
fi
NGX_LIB_PERL="$ngx_perl_ldopts"
if test -n "$NGX_PERL_MODULES"; then
have=NGX_PERL_MODULES value="(u_char *) \"$NGX_PERL_MODULES\""
. auto/define
NGX_PERL_MODULES_MAN=$NGX_PERL_MODULES/man3
fi
else
echo
echo "$0: error: perl 5.8.6 or higher is required"
echo
exit 1;
fi
================================================
FILE: auto/lib/perl/make
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
cat << END >> $NGX_MAKEFILE
$NGX_OBJS/src/http/modules/perl/ngx_http_perl_module.o: \\
$NGX_OBJS/$ngx_perl_module
$NGX_OBJS/$ngx_perl_module: \\
\$(CORE_DEPS) \$(HTTP_DEPS) \\
src/http/modules/perl/ngx_http_perl_module.h \\
$NGX_OBJS/src/http/modules/perl/Makefile
cd $NGX_OBJS/src/http/modules/perl && \$(MAKE)
rm -rf $NGX_OBJS/install_perl
$NGX_OBJS/src/http/modules/perl/Makefile: \\
$NGX_AUTO_CONFIG_H \\
src/core/nginx.h \\
src/http/modules/perl/Makefile.PL \\
src/http/modules/perl/nginx.pm \\
src/http/modules/perl/nginx.xs \\
src/http/modules/perl/typemap
grep 'define NGINX_VERSION' src/core/nginx.h \\
| sed -e 's/^.*"\(.*\)".*/\1/' > \\
$NGX_OBJS/src/http/modules/perl/version
sed "s/%%VERSION%%/\`cat $NGX_OBJS/src/http/modules/perl/version\`/" \\
src/http/modules/perl/nginx.pm > \\
$NGX_OBJS/src/http/modules/perl/nginx.pm
cp -p src/http/modules/perl/nginx.xs $NGX_OBJS/src/http/modules/perl/
cp -p src/http/modules/perl/typemap $NGX_OBJS/src/http/modules/perl/
cp -p src/http/modules/perl/Makefile.PL $NGX_OBJS/src/http/modules/perl/
cd $NGX_OBJS/src/http/modules/perl \\
&& NGX_PM_CFLAGS="\$(NGX_PM_CFLAGS) -g $NGX_CC_OPT" \\
NGX_PM_LDFLAGS="$NGX_LD_OPT \$(NGX_PM_LDFLAGS)" \\
NGX_INCS="$CORE_INCS $NGX_OBJS $HTTP_INCS" \\
NGX_DEPS="\$(CORE_DEPS) \$(HTTP_DEPS)" \\
$NGX_PERL Makefile.PL \\
LIB=$NGX_PERL_MODULES \\
INSTALLSITEMAN3DIR=$NGX_PERL_MODULES_MAN
END
================================================
FILE: auto/lib/zlib/conf
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
if [ $ZLIB != NONE ]; then
CORE_INCS="$CORE_INCS $ZLIB"
case "$NGX_CC_NAME" in
msvc | owc | bcc)
have=NGX_ZLIB . auto/have
LINK_DEPS="$LINK_DEPS $ZLIB/zlib.lib"
CORE_LIBS="$CORE_LIBS $ZLIB/zlib.lib"
;;
icc)
have=NGX_ZLIB . auto/have
LINK_DEPS="$LINK_DEPS $ZLIB/libz.a"
# to allow -ipo optimization we link with the *.o but not library
CORE_LIBS="$CORE_LIBS $ZLIB/adler32.o"
CORE_LIBS="$CORE_LIBS $ZLIB/crc32.o"
CORE_LIBS="$CORE_LIBS $ZLIB/deflate.o"
CORE_LIBS="$CORE_LIBS $ZLIB/trees.o"
CORE_LIBS="$CORE_LIBS $ZLIB/zutil.o"
CORE_LIBS="$CORE_LIBS $ZLIB/compress.o"
if [ $ZLIB_ASM != NO ]; then
CORE_LIBS="$CORE_LIBS $ZLIB/match.o"
fi
;;
*)
have=NGX_ZLIB . auto/have
LINK_DEPS="$LINK_DEPS $ZLIB/libz.a"
CORE_LIBS="$CORE_LIBS $ZLIB/libz.a"
#CORE_LIBS="$CORE_LIBS -L $ZLIB -lz"
;;
esac
else
if [ "$NGX_PLATFORM" != win32 ]; then
ZLIB=NO
# FreeBSD, Solaris, Linux
ngx_feature="zlib library"
ngx_feature_name="NGX_ZLIB"
ngx_feature_run=no
ngx_feature_incs="#include <zlib.h>"
ngx_feature_path=
ngx_feature_libs="-lz"
ngx_feature_test="z_stream z; deflate(&z, Z_NO_FLUSH)"
. auto/feature
if [ $ngx_found = yes ]; then
CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
ZLIB=YES
ngx_found=no
fi
fi
if [ $ZLIB != YES ]; then
cat << END
$0: error: the HTTP gzip module requires the zlib library.
You can either disable the module by using --without-http_gzip_module
option, or install the zlib library into the system, or build the zlib library
statically from the source with nginx by using --with-zlib=<path> option.
END
exit 1
fi
fi
================================================
FILE: auto/lib/zlib/make
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
case "$NGX_CC_NAME" in
msvc)
ngx_makefile=makefile.msvc
ngx_opt="CPU_OPT=\"$CPU_OPT\" LIBC=$LIBC"
ngx_zlib="ZLIB=\"$ZLIB\""
;;
owc)
ngx_makefile=makefile.owc
ngx_opt="CPU_OPT=\"$CPU_OPT\""
ngx_zlib=`echo ZLIB=\"$ZLIB\" | sed -e "s/\//$ngx_regex_dirsep/g"`
;;
bcc)
ngx_makefile=makefile.bcc
ngx_opt="-DCPU_OPT=\"$CPU_OPT\""
ngx_zlib=`echo \-DZLIB=\"$ZLIB\" | sed -e "s/\//$ngx_regex_dirsep/g"`
;;
*)
ngx_makefile=
;;
esac
done=NO
case "$NGX_PLATFORM" in
win32)
if [ -n "$ngx_makefile" ]; then
cat << END >> $NGX_MAKEFILE
`echo "$ZLIB/zlib.lib: $NGX_MAKEFILE" | sed -e "s/\//$ngx_regex_dirsep/g"`
\$(MAKE) -f auto/lib/zlib/$ngx_makefile $ngx_opt $ngx_zlib
END
else
cat << END >> $NGX_MAKEFILE
$ZLIB/libz.a: $NGX_MAKEFILE
cd $ZLIB \\
&& \$(MAKE) distclean \\
&& \$(MAKE) -f win32/Makefile.gcc \\
CFLAGS="$ZLIB_OPT" CC="\$(CC)" \\
libz.a
END
fi
done=YES
;;
# FreeBSD: i386
# Linux: i686
*:i386 | *:i686)
case $ZLIB_ASM in
pentium)
cat << END >> $NGX_MAKEFILE
$ZLIB/libz.a: $NGX_MAKEFILE
cd $ZLIB \\
&& \$(MAKE) distclean \\
&& cp contrib/asm586/match.S . \\
&& CFLAGS="$ZLIB_OPT -DASMV" CC="\$(CC)" \\
./configure \\
&& \$(MAKE) OBJA=match.o libz.a
END
done=YES
;;
pentiumpro)
cat << END >> $NGX_MAKEFILE
$ZLIB/libz.a: $NGX_MAKEFILE
cd $ZLIB \\
&& \$(MAKE) distclean \\
&& cp contrib/asm686/match.S . \\
&& CFLAGS="$ZLIB_OPT -DASMV" CC="\$(CC)" \\
./configure \\
&& \$(MAKE) OBJA=match.o libz.a
END
done=YES
;;
NO)
;;
*)
echo "$0: error: invalid --with-zlib-asm=$ZLIB_ASM option."
echo "The valid values are \"pentium\" and \"pentiumpro\" only".
echo
exit 1;
;;
esac
;;
esac
if [ $done = NO ]; then
cat << END >> $NGX_MAKEFILE
$ZLIB/libz.a: $NGX_MAKEFILE
cd $ZLIB \\
&& \$(MAKE) distclean \\
&& CFLAGS="$ZLIB_OPT" CC="\$(CC)" \\
./configure \\
&& \$(MAKE) libz.a
END
fi
================================================
FILE: auto/lib/zlib/makefile.bcc
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
CFLAGS = -q -O2 -tWM -w-8004 -w-8012 $(CPU_OPT)
zlib.lib:
cd $(ZLIB)
bcc32 -c $(CFLAGS) adler32.c crc32.c deflate.c \
trees.c zutil.c compress.c \
inflate.c inffast.c inftrees.c
tlib zlib.lib +adler32.obj +crc32.obj +deflate.obj \
+trees.obj +zutil.obj +compress.obj \
+inflate.obj +inffast.obj +inftrees.obj
================================================
FILE: auto/lib/zlib/makefile.msvc
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
CFLAGS = -nologo -O2 -Ob1 -Oi -Gs $(LIBC) $(CPU_OPT)
zlib.lib:
cd $(ZLIB)
cl -c $(CFLAGS) adler32.c crc32.c deflate.c \
trees.c zutil.c compress.c \
inflate.c inffast.c inftrees.c
link -lib -out:zlib.lib adler32.obj crc32.obj deflate.obj \
trees.obj zutil.obj compress.obj \
inflate.obj inffast.obj inftrees.obj
================================================
FILE: auto/lib/zlib/makefile.owc
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
CFLAGS = -zq -bt=nt -ot -op -oi -oe -s -bm $(CPU_OPT)
zlib.lib:
cd $(ZLIB)
wcl386 -c $(CFLAGS) adler32.c crc32.c deflate.c trees.c zutil.c &
compress.c inflate.c inffast.c inftrees.c
wlib -n zlib.lib adler32.obj crc32.obj deflate.obj trees.obj &
zutil.obj compress.obj inflate.obj inffast.obj inftrees.obj
================================================
FILE: auto/make
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
echo "creating $NGX_MAKEFILE"
mkdir -p $NGX_OBJS/src/core $NGX_OBJS/src/event $NGX_OBJS/src/event/modules \
$NGX_OBJS/src/event/quic \
$NGX_OBJS/src/os/unix $NGX_OBJS/src/os/win32 \
$NGX_OBJS/src/http $NGX_OBJS/src/http/v2 $NGX_OBJS/src/http/v3 \
$NGX_OBJS/src/http/modules $NGX_OBJS/src/http/modules/perl \
$NGX_OBJS/src/mail \
$NGX_OBJS/src/stream \
$NGX_OBJS/src/misc
ngx_objs_dir=$NGX_OBJS$ngx_regex_dirsep
ngx_use_pch=`echo $NGX_USE_PCH | sed -e "s/\//$ngx_regex_dirsep/g"`
cat << END > $NGX_MAKEFILE
CC = $CC
CFLAGS = $CFLAGS
CPP = $CPP
LINK = $LINK
END
if test -n "$NGX_PERL_CFLAGS"; then
echo NGX_PERL_CFLAGS = $NGX_PERL_CFLAGS >> $NGX_MAKEFILE
echo NGX_PM_CFLAGS = $NGX_PM_CFLAGS >> $NGX_MAKEFILE
echo NGX_PM_LDFLAGS = $NGX_PM_LDFLAGS >> $NGX_MAKEFILE
fi
# ALL_INCS, required by the addons and by OpenWatcom C precompiled headers
ngx_incs=`echo $CORE_INCS $NGX_OBJS $HTTP_INCS $MAIL_INCS $STREAM_INCS\
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont$ngx_include_opt\1/g" \
-e "s/\//$ngx_regex_dirsep/g"`
cat << END >> $NGX_MAKEFILE
ALL_INCS = $ngx_include_opt$ngx_incs
END
ngx_all_srcs="$CORE_SRCS"
# the core dependencies and include paths
ngx_deps=`echo $CORE_DEPS $NGX_AUTO_CONFIG_H $NGX_PCH \
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \
-e "s/\//$ngx_regex_dirsep/g"`
ngx_incs=`echo $CORE_INCS $NGX_OBJS \
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont$ngx_include_opt\1/g" \
-e "s/\//$ngx_regex_dirsep/g"`
cat << END >> $NGX_MAKEFILE
CORE_DEPS = $ngx_deps
CORE_INCS = $ngx_include_opt$ngx_incs
END
# the http dependencies and include paths
if [ $HTTP = YES ]; then
ngx_all_srcs="$ngx_all_srcs $HTTP_SRCS"
ngx_deps=`echo $HTTP_DEPS \
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \
-e "s/\//$ngx_regex_dirsep/g"`
ngx_incs=`echo $HTTP_INCS \
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont$ngx_include_opt\1/g" \
-e "s/\//$ngx_regex_dirsep/g"`
cat << END >> $NGX_MAKEFILE
HTTP_DEPS = $ngx_deps
HTTP_INCS = $ngx_include_opt$ngx_incs
END
fi
# the mail dependencies and include paths
if [ $MAIL != NO ]; then
if [ $MAIL = YES ]; then
ngx_all_srcs="$ngx_all_srcs $MAIL_SRCS"
fi
ngx_deps=`echo $MAIL_DEPS \
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \
-e "s/\//$ngx_regex_dirsep/g"`
ngx_incs=`echo $MAIL_INCS \
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont$ngx_include_opt\1/g" \
-e "s/\//$ngx_regex_dirsep/g"`
cat << END >> $NGX_MAKEFILE
MAIL_DEPS = $ngx_deps
MAIL_INCS = $ngx_include_opt$ngx_incs
END
fi
# the stream dependencies and include paths
if [ $STREAM != NO ]; then
if [ $STREAM = YES ]; then
ngx_all_srcs="$ngx_all_srcs $STREAM_SRCS"
fi
ngx_deps=`echo $STREAM_DEPS \
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \
-e "s/\//$ngx_regex_dirsep/g"`
ngx_incs=`echo $STREAM_INCS \
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont$ngx_include_opt\1/g" \
-e "s/\//$ngx_regex_dirsep/g"`
cat << END >> $NGX_MAKEFILE
STREAM_DEPS = $ngx_deps
STREAM_INCS = $ngx_include_opt$ngx_incs
END
fi
ngx_all_srcs="$ngx_all_srcs $MISC_SRCS"
if test -n "$NGX_ADDON_SRCS$DYNAMIC_MODULES"; then
cat << END >> $NGX_MAKEFILE
ADDON_DEPS = \$(CORE_DEPS) $NGX_ADDON_DEPS
END
fi
# nginx
ngx_all_srcs=`echo $ngx_all_srcs | sed -e "s/\//$ngx_regex_dirsep/g"`
for ngx_src in $NGX_ADDON_SRCS
do
ngx_obj="addon/`basename \`dirname $ngx_src\``"
test -d $NGX_OBJS/$ngx_obj || mkdir -p $NGX_OBJS/$ngx_obj
ngx_obj=`echo $ngx_obj/\`basename $ngx_src\` \
| sed -e "s/\//$ngx_regex_dirsep/g"`
ngx_all_srcs="$ngx_all_srcs $ngx_obj"
done
ngx_all_objs=`echo $ngx_all_srcs \
| sed -e "s#\([^ ]*\.\)cpp#$NGX_OBJS\/\1$ngx_objext#g" \
-e "s#\([^ ]*\.\)cc#$NGX_OBJS\/\1$ngx_objext#g" \
-e "s#\([^ ]*\.\)c#$NGX_OBJS\/\1$ngx_objext#g" \
-e "s#\([^ ]*\.\)S#$NGX_OBJS\/\1$ngx_objext#g"`
ngx_modules_c=`echo $NGX_MODULES_C | sed -e "s/\//$ngx_regex_dirsep/g"`
ngx_modules_obj=`echo $ngx_modules_c | sed -e "s/\(.*\.\)c/\1$ngx_objext/"`
if test -n "$NGX_RES"; then
ngx_res=$NGX_RES
else
ngx_res="$NGX_RC $NGX_ICONS"
ngx_rcc=`echo $NGX_RCC | sed -e "s/\//$ngx_regex_dirsep/g"`
fi
ngx_deps=`echo $ngx_all_objs $ngx_modules_obj $ngx_res $LINK_DEPS \
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \
-e "s/\//$ngx_regex_dirsep/g"`
ngx_objs=`echo $ngx_all_objs $ngx_modules_obj \
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_long_regex_cont\1/g" \
-e "s/\//$ngx_regex_dirsep/g"`
ngx_libs=
if test -n "$NGX_LD_OPT$CORE_LIBS"; then
ngx_libs=`echo $NGX_LD_OPT $CORE_LIBS \
| sed -e "s/\//$ngx_regex_dirsep/g" -e "s/^/$ngx_long_regex_cont/"`
fi
ngx_link=${CORE_LINK:+`echo $CORE_LINK \
| sed -e "s/\//$ngx_regex_dirsep/g" -e "s/^/$ngx_long_regex_cont/"`}
ngx_main_link=${MAIN_LINK:+`echo $MAIN_LINK \
| sed -e "s/\//$ngx_regex_dirsep/g" -e "s/^/$ngx_long_regex_cont/"`}
cat << END >> $NGX_MAKEFILE
build: binary modules manpage
binary: $NGX_OBJS${ngx_dirsep}nginx$ngx_binext
$NGX_OBJS${ngx_dirsep}nginx$ngx_binext: $ngx_deps$ngx_spacer
\$(LINK) $ngx_long_start$ngx_binout$NGX_OBJS${ngx_dirsep}nginx$ngx_binext$ngx_long_cont$ngx_objs$ngx_libs$ngx_link$ngx_main_link
$ngx_rcc
$ngx_long_end
modules:
END
# ngx_modules.c
if test -n "$NGX_PCH"; then
ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)"
else
ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) \$(CORE_INCS)"
fi
cat << END >> $NGX_MAKEFILE
$ngx_modules_obj: \$(CORE_DEPS)$ngx_cont$ngx_modules_c
$ngx_cc$ngx_tab$ngx_objout$ngx_modules_obj$ngx_tab$ngx_modules_c$NGX_AUX
END
# the core sources
for ngx_src in $CORE_SRCS
do
ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"`
ngx_obj=`echo $ngx_src \
| sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \
-e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \
-e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \
-e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"`
cat << END >> $NGX_MAKEFILE
$ngx_obj: \$(CORE_DEPS)$ngx_cont$ngx_src
$ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
END
done
# the http sources
if [ $HTTP = YES ]; then
if test -n "$NGX_PCH"; then
ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)"
else
ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) \$(CORE_INCS) \$(HTTP_INCS)"
ngx_perl_cc="\$(CC) $ngx_compile_opt \$(NGX_PERL_CFLAGS)"
ngx_perl_cc="$ngx_perl_cc \$(CORE_INCS) \$(HTTP_INCS)"
fi
for ngx_source in $HTTP_SRCS
do
ngx_src=`echo $ngx_source | sed -e "s/\//$ngx_regex_dirsep/g"`
ngx_obj=`echo $ngx_src \
| sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \
-e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \
-e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \
-e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"`
if [ $ngx_source = src/http/modules/perl/ngx_http_perl_module.c ]; then
cat << END >> $NGX_MAKEFILE
$ngx_obj: \$(CORE_DEPS) \$(HTTP_DEPS)$ngx_cont$ngx_src
$ngx_perl_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
END
else
cat << END >> $NGX_MAKEFILE
$ngx_obj: \$(CORE_DEPS) \$(HTTP_DEPS)$ngx_cont$ngx_src
$ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
END
fi
done
fi
# the mail sources
if [ $MAIL = YES ]; then
if test -n "$NGX_PCH"; then
ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)"
else
ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) \$(CORE_INCS) \$(MAIL_INCS)"
fi
for ngx_src in $MAIL_SRCS
do
ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"`
ngx_obj=`echo $ngx_src \
| sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \
-e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \
-e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \
-e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"`
cat << END >> $NGX_MAKEFILE
$ngx_obj: \$(CORE_DEPS) \$(MAIL_DEPS)$ngx_cont$ngx_src
$ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
END
done
fi
# the stream sources
if [ $STREAM = YES ]; then
if test -n "$NGX_PCH"; then
ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)"
else
ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) \$(CORE_INCS) \$(STREAM_INCS)"
fi
for ngx_src in $STREAM_SRCS
do
ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"`
ngx_obj=`echo $ngx_src \
| sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \
-e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \
-e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \
-e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"`
cat << END >> $NGX_MAKEFILE
$ngx_obj: \$(CORE_DEPS) \$(STREAM_DEPS)$ngx_cont$ngx_src
$ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
END
done
fi
# the misc sources
if test -n "$MISC_SRCS"; then
ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)"
for ngx_src in $MISC_SRCS
do
ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"`
ngx_obj=`echo $ngx_src \
| sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \
-e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \
-e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \
-e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"`
cat << END >> $NGX_MAKEFILE
$ngx_obj: \$(CORE_DEPS) $ngx_cont$ngx_src
$ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
END
done
fi
# the addons sources
if test -n "$NGX_ADDON_SRCS"; then
ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)"
for ngx_src in $NGX_ADDON_SRCS
do
ngx_obj="addon/`basename \`dirname $ngx_src\``"
ngx_obj=`echo $ngx_obj/\`basename $ngx_src\` \
| sed -e "s/\//$ngx_regex_dirsep/g"`
ngx_obj=`echo $ngx_obj \
| sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \
-e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \
-e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \
-e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"`
ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"`
cat << END >> $NGX_MAKEFILE
$ngx_obj: \$(ADDON_DEPS)$ngx_cont$ngx_src
$ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
END
done
fi
# the addons config.make
if test -n "$NGX_ADDONS$DYNAMIC_ADDONS"; then
for ngx_addon_dir in $NGX_ADDONS $DYNAMIC_ADDONS
do
if test -f $ngx_addon_dir/config.make; then
. $ngx_addon_dir/config.make
fi
done
fi
# Win32 resource file
if test -n "$NGX_RES"; then
ngx_res=`echo "$NGX_RES: $NGX_RC $NGX_ICONS" \
| sed -e "s/\//$ngx_regex_dirsep/g"`
ngx_rcc=`echo $NGX_RCC | sed -e "s/\//$ngx_regex_dirsep/g"`
cat << END >> $NGX_MAKEFILE
$ngx_res
$ngx_rcc
END
fi
# the precompiled headers
if test -n "$NGX_PCH"; then
echo "#include <ngx_config.h>" > $NGX_OBJS/ngx_pch.c
ngx_pch="src/core/ngx_config.h $OS_CONFIG $NGX_OBJS/ngx_auto_config.h"
ngx_pch=`echo "$NGX_PCH: $ngx_pch" | sed -e "s/\//$ngx_regex_dirsep/g"`
ngx_src="\$(CC) \$(CFLAGS) $NGX_BUILD_PCH $ngx_compile_opt \$(ALL_INCS)"
ngx_src="$ngx_src $ngx_objout$NGX_OBJS/ngx_pch.obj $NGX_OBJS/ngx_pch.c"
ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"`
cat << END >> $NGX_MAKEFILE
$ngx_pch
$ngx_src
END
fi
# dynamic modules
if test -n "$NGX_PCH"; then
ngx_cc="\$(CC) $ngx_compile_opt $ngx_pic_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)"
else
ngx_cc="\$(CC) $ngx_compile_opt $ngx_pic_opt \$(CFLAGS) \$(ALL_INCS)"
ngx_perl_cc="\$(CC) $ngx_compile_opt $ngx_pic_opt \$(NGX_PERL_CFLAGS)"
ngx_perl_cc="$ngx_perl_cc \$(ALL_INCS)"
fi
for ngx_module in $DYNAMIC_MODULES
do
eval ngx_module_srcs="\$${ngx_module}_SRCS"
eval ngx_module_shrd="\$${ngx_module}_SHRD"
eval eval ngx_module_libs="\\\"\$${ngx_module}_LIBS\\\""
eval ngx_module_modules="\$${ngx_module}_MODULES"
eval ngx_module_order="\$${ngx_module}_ORDER"
ngx_modules_c=$NGX_OBJS/${ngx_module}_modules.c
cat << END > $ngx_modules_c
#include <ngx_config.h>
#include <ngx_core.h>
END
for mod in $ngx_module_modules
do
echo "extern ngx_module_t $mod;" >> $ngx_modules_c
done
echo >> $ngx_modules_c
echo 'ngx_module_t *ngx_modules[] = {' >> $ngx_modules_c
for mod in $ngx_module_modules
do
echo " &$mod," >> $ngx_modules_c
done
cat << END >> $ngx_modules_c
NULL
};
END
echo 'char *ngx_module_names[] = {' >> $ngx_modules_c
for mod in $ngx_module_modules
do
echo " \"$mod\"," >> $ngx_modules_c
done
cat << END >> $ngx_modules_c
NULL
};
END
echo 'char *ngx_module_order[] = {' >> $ngx_modules_c
for mod in $ngx_module_order
do
echo " \"$mod\"," >> $ngx_modules_c
done
cat << END >> $ngx_modules_c
NULL
};
END
ngx_modules_c=`echo $ngx_modules_c | sed -e "s/\//$ngx_regex_dirsep/g"`
ngx_modules_obj=`echo $ngx_modules_c \
| sed -e "s/\(.*\.\)c/\1$ngx_objext/"`
ngx_module_objs=
for ngx_src in $ngx_module_srcs $ngx_module_shrd
do
case "$ngx_src" in
src/*)
ngx_obj=$ngx_src
;;
*)
ngx_obj="addon/`basename \`dirname $ngx_src\``"
mkdir -p $NGX_OBJS/$ngx_obj
ngx_obj="$ngx_obj/`basename $ngx_src`"
;;
esac
ngx_module_objs="$ngx_module_objs $ngx_obj"
done
ngx_module_objs=`echo $ngx_module_objs \
| sed -e "s#\([^ ]*\.\)cpp#$NGX_OBJS\/\1$ngx_objext#g" \
-e "s#\([^ ]*\.\)cc#$NGX_OBJS\/\1$ngx_objext#g" \
-e "s#\([^ ]*\.\)c#$NGX_OBJS\/\1$ngx_objext#g" \
-e "s#\([^ ]*\.\)S#$NGX_OBJS\/\1$ngx_objext#g"`
ngx_deps=`echo $ngx_module_objs $ngx_modules_obj $LINK_DEPS \
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \
-e "s/\//$ngx_regex_dirsep/g"`
ngx_objs=`echo $ngx_module_objs $ngx_modules_obj \
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_long_regex_cont\1/g" \
-e "s/\//$ngx_regex_dirsep/g"`
ngx_obj=$NGX_OBJS$ngx_dirsep$ngx_module$ngx_modext
if [ "$NGX_PLATFORM" = win32 ]; then
ngx_module_libs="$CORE_LIBS $ngx_module_libs"
fi
ngx_libs=
if test -n "$NGX_LD_OPT$ngx_module_libs"; then
ngx_libs=`echo $NGX_LD_OPT $ngx_module_libs \
| sed -e "s/\//$ngx_regex_dirsep/g" -e "s/^/$ngx_long_regex_cont/"`
fi
ngx_link=${CORE_LINK:+`echo $CORE_LINK \
| sed -e "s/\//$ngx_regex_dirsep/g" -e "s/^/$ngx_long_regex_cont/"`}
ngx_module_link=${MODULE_LINK:+`echo $MODULE_LINK \
| sed -e "s/\//$ngx_regex_dirsep/g" -e "s/^/$ngx_long_regex_cont/"`}
cat << END >> $NGX_MAKEFILE
modules: $ngx_obj
$ngx_obj: $ngx_deps$ngx_spacer
\$(LINK) $ngx_long_start$ngx_binout$ngx_obj$ngx_long_cont$ngx_objs$ngx_libs$ngx_link$ngx_module_link
$ngx_long_end
$ngx_modules_obj: \$(CORE_DEPS)$ngx_cont$ngx_modules_c
$ngx_cc$ngx_tab$ngx_objout$ngx_modules_obj$ngx_tab$ngx_modules_c$NGX_AUX
END
for ngx_source in $ngx_module_srcs
do
case "$ngx_source" in
src/*)
ngx_obj=`echo $ngx_source | sed -e "s/\//$ngx_regex_dirsep/g"`
;;
*)
ngx_obj="addon/`basename \`dirname $ngx_source\``"
ngx_obj=`echo $ngx_obj/\`basename $ngx_source\` \
| sed -e "s/\//$ngx_regex_dirsep/g"`
;;
esac
ngx_obj=`echo $ngx_obj \
| sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \
-e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \
-e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \
-e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"`
ngx_src=`echo $ngx_source | sed -e "s/\//$ngx_regex_dirsep/g"`
if [ $ngx_source = src/http/modules/perl/ngx_http_perl_module.c ]; then
cat << END >> $NGX_MAKEFILE
$ngx_obj: \$(ADDON_DEPS)$ngx_cont$ngx_src
$ngx_perl_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
END
else
cat << END >> $NGX_MAKEFILE
$ngx_obj: \$(ADDON_DEPS)$ngx_cont$ngx_src
$ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
END
fi
done
done
================================================
FILE: auto/module
================================================
# Copyright (C) Ruslan Ermilov
# Copyright (C) Nginx, Inc.
case $ngx_module_type in
HTTP_*) ngx_var=HTTP ;;
*) ngx_var=$ngx_module_type ;;
esac
if [ "$ngx_module_link" = DYNAMIC ]; then
for ngx_module in $ngx_module_name; do
# extract the first name
break
done
DYNAMIC_MODULES="$DYNAMIC_MODULES $ngx_module"
eval ${ngx_module}_MODULES=\"$ngx_module_name\"
if [ -z "$ngx_module_order" -a \
\( "$ngx_module_type" = "HTTP_FILTER" \
-o "$ngx_module_type" = "HTTP_AUX_FILTER" \) ]
then
eval ${ngx_module}_ORDER=\"$ngx_module_name \
ngx_http_copy_filter_module\"
else
eval ${ngx_module}_ORDER=\"$ngx_module_order\"
fi
srcs=
shrd=
for src in $ngx_module_srcs
do
found=no
for old in $DYNAMIC_MODULES_SRCS
do
if [ $src = $old ]; then
found=yes
break
fi
done
if [ $found = no ]; then
srcs="$srcs $src"
else
shrd="$shrd $src"
fi
done
eval ${ngx_module}_SRCS=\"$srcs\"
eval ${ngx_module}_SHRD=\"$shrd\"
DYNAMIC_MODULES_SRCS="$DYNAMIC_MODULES_SRCS $srcs"
if test -n "$ngx_module_incs"; then
CORE_INCS="$CORE_INCS $ngx_module_incs"
fi
if test -n "$ngx_module_deps"; then
NGX_ADDON_DEPS="$NGX_ADDON_DEPS $ngx_module_deps"
fi
libs=
for lib in $ngx_module_libs
do
case $lib in
LIBXSLT | LIBGD | GEOIP | PERL)
libs="$libs \$NGX_LIB_$lib"
if eval [ "\$USE_${lib}" = NO ] ; then
eval USE_${lib}=DYNAMIC
fi
;;
PCRE | OPENSSL | ZLIB)
eval USE_${lib}=YES
;;
MD5 | SHA1)
# obsolete
;;
*)
libs="$libs $lib"
;;
esac
done
eval ${ngx_module}_LIBS=\'$libs\'
elif [ "$ngx_module_link" = YES ]; then
eval ${ngx_module_type}_MODULES=\"\$${ngx_module_type}_MODULES \
$ngx_module_name\"
eval ${ngx_var}_SRCS=\"\$${ngx_var}_SRCS $ngx_module_srcs\"
if test -n "$ngx_module_incs"; then
eval ${ngx_var}_INCS=\"\$${ngx_var}_INCS $ngx_module_incs\"
fi
if test -n "$ngx_module_deps"; then
eval ${ngx_var}_DEPS=\"\$${ngx_var}_DEPS $ngx_module_deps\"
fi
for lib in $ngx_module_libs
do
case $lib in
PCRE | OPENSSL | ZLIB | LIBXSLT | LIBGD | PERL | GEOIP)
eval USE_${lib}=YES
;;
MD5 | SHA1)
# obsolete
;;
*)
CORE_LIBS="$CORE_LIBS $lib"
;;
esac
done
elif [ "$ngx_module_link" = ADDON ]; then
eval ${ngx_module_type}_MODULES=\"\$${ngx_module_type}_MODULES \
$ngx_module_name\"
srcs=
for src in $ngx_module_srcs
do
found=no
for old in $NGX_ADDON_SRCS
do
if [ $src = $old ]; then
found=yes
break
fi
done
if [ $found = no ]; then
srcs="$srcs $src"
fi
done
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $srcs"
if test -n "$ngx_module_incs"; then
eval ${ngx_var}_INCS=\"\$${ngx_var}_INCS $ngx_module_incs\"
fi
if test -n "$ngx_module_deps"; then
NGX_ADDON_DEPS="$NGX_ADDON_DEPS $ngx_module_deps"
fi
for lib in $ngx_module_libs
do
case $lib in
PCRE | OPENSSL | ZLIB | LIBXSLT | LIBGD | PERL | GEOIP)
eval USE_${lib}=YES
;;
MD5 | SHA1)
# obsolete
;;
*)
CORE_LIBS="$CORE_LIBS $lib"
;;
esac
done
fi
================================================
FILE: auto/modules
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
if [ $EVENT_SELECT = NO -a $EVENT_FOUND = NO ]; then
EVENT_SELECT=YES
fi
if [ $EVENT_SELECT = YES ]; then
have=NGX_HAVE_SELECT . auto/have
CORE_SRCS="$CORE_SRCS $SELECT_SRCS"
EVENT_MODULES="$EVENT_MODULES $SELECT_MODULE"
fi
if [ $EVENT_POLL = NO -a $EVENT_FOUND = NO ]; then
EVENT_POLL=YES
fi
if [ $EVENT_POLL = YES ]; then
have=NGX_HAVE_POLL . auto/have
CORE_SRCS="$CORE_SRCS $POLL_SRCS"
EVENT_MODULES="$EVENT_MODULES $POLL_MODULE"
fi
if [ $NGX_TEST_BUILD_DEVPOLL = YES ]; then
have=NGX_HAVE_DEVPOLL . auto/have
have=NGX_TEST_BUILD_DEVPOLL . auto/have
EVENT_MODULES="$EVENT_MODULES $DEVPOLL_MODULE"
CORE_SRCS="$CORE_SRCS $DEVPOLL_SRCS"
fi
if [ $NGX_TEST_BUILD_EVENTPORT = YES ]; then
have=NGX_HAVE_EVENTPORT . auto/have
have=NGX_TEST_BUILD_EVENTPORT . auto/have
EVENT_MODULES="$EVENT_MODULES $EVENTPORT_MODULE"
CORE_SRCS="$CORE_SRCS $EVENTPORT_SRCS"
fi
if [ $NGX_TEST_BUILD_EPOLL = YES ]; then
have=NGX_HAVE_EPOLL . auto/have
have=NGX_HAVE_EPOLLRDHUP . auto/have
have=NGX_HAVE_EPOLLEXCLUSIVE . auto/have
have=NGX_HAVE_EVENTFD . auto/have
have=NGX_TEST_BUILD_EPOLL . auto/have
EVENT_MODULES="$EVENT_MODULES $EPOLL_MODULE"
CORE_SRCS="$CORE_SRCS $EPOLL_SRCS"
fi
if [ $NGX_TEST_BUILD_SOLARIS_SENDFILEV = YES ]; then
have=NGX_TEST_BUILD_SOLARIS_SENDFILEV . auto/have
CORE_SRCS="$CORE_SRCS $SOLARIS_SENDFILEV_SRCS"
fi
if [ $HTTP = YES ]; then
HTTP_MODULES=
HTTP_DEPS=
HTTP_INCS=
ngx_module_type=HTTP
if :; then
ngx_module_name="ngx_http_module \
ngx_http_core_module \
ngx_http_log_module \
ngx_http_upstream_module"
ngx_module_incs="src/http src/http/modules"
ngx_module_deps="src/http/ngx_http.h \
src/http/ngx_http_request.h \
src/http/ngx_http_config.h \
src/http/ngx_http_core_module.h \
src/http/ngx_http_cache.h \
src/http/ngx_http_variables.h \
src/http/ngx_http_script.h \
src/http/ngx_http_upstream.h \
src/http/ngx_http_upstream_round_robin.h"
ngx_module_srcs="src/http/ngx_http.c \
src/http/ngx_http_core_module.c \
src/http/ngx_http_special_response.c \
src/http/ngx_http_request.c \
src/http/ngx_http_parse.c \
src/http/modules/ngx_http_log_module.c \
src/http/ngx_http_request_body.c \
src/http/ngx_http_variables.c \
src/http/ngx_http_script.c \
src/http/ngx_http_upstream.c \
src/http/ngx_http_upstream_round_robin.c"
ngx_module_libs=
ngx_module_link=YES
. auto/module
fi
if [ $HTTP_CACHE = YES ]; then
have=NGX_HTTP_CACHE . auto/have
HTTP_SRCS="$HTTP_SRCS $HTTP_FILE_CACHE_SRCS"
fi
# the module order is important
# ngx_http_static_module
# ngx_http_gzip_static_module
# ngx_http_dav_module
# ngx_http_autoindex_module
# ngx_http_index_module
# ngx_http_random_index_module
#
# ngx_http_access_module
# ngx_http_realip_module
#
#
# the filter order is important
# ngx_http_write_filter
# ngx_http_header_filter
# ngx_http_chunked_filter
# ngx_http_v2_filter
# ngx_http_v3_filter
# ngx_http_range_header_filter
# ngx_http_gzip_filter
# ngx_http_postpone_filter
# ngx_http_ssi_filter
# ngx_http_charset_filter
# ngx_http_xslt_filter
# ngx_http_image_filter
# ngx_http_sub_filter
# ngx_http_addition_filter
# ngx_http_gunzip_filter
# ngx_http_userid_filter
# ngx_http_headers_filter
# ngx_http_copy_filter
# ngx_http_range_body_filter
# ngx_http_not_modified_filter
# ngx_http_slice_filter
ngx_module_type=HTTP_FILTER
HTTP_FILTER_MODULES=
ngx_module_order="ngx_http_static_module \
ngx_http_gzip_static_module \
ngx_http_dav_module \
ngx_http_autoindex_module \
ngx_http_index_module \
ngx_http_random_index_module \
ngx_http_access_module \
ngx_http_realip_module \
ngx_http_write_filter_module \
ngx_http_header_filter_module \
ngx_http_chunked_filter_module \
ngx_http_v2_filter_module \
ngx_http_v3_filter_module \
ngx_http_range_header_filter_module \
ngx_http_gzip_filter_module \
ngx_http_postpone_filter_module \
ngx_http_ssi_filter_module \
ngx_http_charset_filter_module \
ngx_http_xslt_filter_module \
ngx_http_image_filter_module \
ngx_http_sub_filter_module \
ngx_http_addition_filter_module \
ngx_http_gunzip_filter_module \
ngx_http_userid_filter_module \
ngx_http_headers_filter_module \
ngx_http_copy_filter_module \
ngx_http_range_body_filter_module \
ngx_http_not_modified_filter_module \
ngx_http_slice_filter_module"
if :; then
ngx_module_name=ngx_http_write_filter_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/ngx_http_write_filter_module.c
ngx_module_libs=
ngx_module_link=YES
. auto/module
fi
if :; then
ngx_module_name=ngx_http_header_filter_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/ngx_http_header_filter_module.c
ngx_module_libs=
ngx_module_link=YES
. auto/module
fi
if :; then
ngx_module_name=ngx_http_chunked_filter_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_chunked_filter_module.c
ngx_module_libs=
ngx_module_link=YES
. auto/module
fi
if [ $HTTP_V2 = YES ]; then
ngx_module_name=ngx_http_v2_filter_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/v2/ngx_http_v2_filter_module.c
ngx_module_libs=
ngx_module_link=$HTTP_V2
. auto/module
fi
if [ $HTTP_V3 = YES ]; then
ngx_module_name=ngx_http_v3_filter_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/v3/ngx_http_v3_filter_module.c
ngx_module_libs=
ngx_module_link=$HTTP_V3
. auto/module
fi
if :; then
ngx_module_name=ngx_http_range_header_filter_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_range_filter_module.c
ngx_module_libs=
ngx_module_link=YES
. auto/module
fi
if [ $HTTP_GZIP = YES ]; then
have=NGX_HTTP_GZIP . auto/have
USE_ZLIB=YES
ngx_module_name=ngx_http_gzip_filter_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_gzip_filter_module.c
ngx_module_libs=
ngx_module_link=$HTTP_GZIP
. auto/module
fi
if :; then
ngx_module_name=ngx_http_postpone_filter_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/ngx_http_postpone_filter_module.c
ngx_module_libs=
ngx_module_link=YES
. auto/module
fi
if [ $HTTP_SSI = YES ]; then
have=NGX_HTTP_SSI . auto/have
ngx_module_name=ngx_http_ssi_filter_module
ngx_module_incs=
ngx_module_deps=src/http/modules/ngx_http_ssi_filter_module.h
ngx_module_srcs=src/http/modules/ngx_http_ssi_filter_module.c
ngx_module_libs=
ngx_module_link=$HTTP_SSI
. auto/module
fi
if [ $HTTP_CHARSET = YES ]; then
ngx_module_name=ngx_http_charset_filter_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_charset_filter_module.c
ngx_module_libs=
ngx_module_link=$HTTP_CHARSET
. auto/module
fi
if [ $HTTP_XSLT != NO ]; then
ngx_module_name=ngx_http_xslt_filter_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_xslt_filter_module.c
ngx_module_libs=LIBXSLT
ngx_module_link=$HTTP_XSLT
. auto/module
fi
if [ $HTTP_IMAGE_FILTER != NO ]; then
ngx_module_name=ngx_http_image_filter_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_image_filter_module.c
ngx_module_libs=LIBGD
ngx_module_link=$HTTP_IMAGE_FILTER
. auto/module
fi
if [ $HTTP_SUB = YES ]; then
ngx_module_name=ngx_http_sub_filter_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_sub_filter_module.c
ngx_module_libs=
ngx_module_link=$HTTP_SUB
. auto/module
fi
if [ $HTTP_ADDITION = YES ]; then
ngx_module_name=ngx_http_addition_filter_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_addition_filter_module.c
ngx_module_libs=
ngx_module_link=$HTTP_ADDITION
. auto/module
fi
if [ $HTTP_GUNZIP = YES ]; then
have=NGX_HTTP_GZIP . auto/have
USE_ZLIB=YES
ngx_module_name=ngx_http_gunzip_filter_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_gunzip_filter_module.c
ngx_module_libs=
ngx_module_link=$HTTP_GUNZIP
. auto/module
fi
if [ $HTTP_USERID = YES ]; then
ngx_module_name=ngx_http_userid_filter_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_userid_filter_module.c
ngx_module_libs=
ngx_module_link=$HTTP_USERID
. auto/module
fi
if :; then
ngx_module_name=ngx_http_headers_filter_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_headers_filter_module.c
ngx_module_libs=
ngx_module_link=YES
. auto/module
fi
ngx_module_type=HTTP_INIT_FILTER
HTTP_INIT_FILTER_MODULES=
if :; then
ngx_module_name=ngx_http_copy_filter_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/ngx_http_copy_filter_module.c
ngx_module_libs=
ngx_module_link=YES
. auto/module
fi
if :; then
ngx_module_name=ngx_http_range_body_filter_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=
ngx_module_libs=
ngx_module_link=YES
. auto/module
fi
if :; then
ngx_module_name=ngx_http_not_modified_filter_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_not_modified_filter_module.c
ngx_module_libs=
ngx_module_link=YES
. auto/module
fi
if [ $HTTP_SLICE = YES ]; then
ngx_module_name=ngx_http_slice_filter_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_slice_filter_module.c
ngx_module_libs=
ngx_module_link=$HTTP_SLICE
. auto/module
fi
ngx_module_type=HTTP
if [ $HTTP_V2 = YES ]; then
have=NGX_HTTP_V2 . auto/have
have=NGX_HTTP_HEADERS . auto/have
ngx_module_name=ngx_http_v2_module
ngx_module_incs=src/http/v2
ngx_module_deps="src/http/v2/ngx_http_v2.h \
src/http/v2/ngx_http_v2_module.h"
ngx_module_srcs="src/http/v2/ngx_http_v2.c \
src/http/v2/ngx_http_v2_table.c \
src/http/v2/ngx_http_v2_encode.c \
src/http/v2/ngx_http_v2_huff_decode.c \
src/http/v2/ngx_http_v2_huff_encode.c \
src/http/v2/ngx_http_v2_module.c"
ngx_module_libs=
ngx_module_link=$HTTP_V2
. auto/module
fi
if [ $HTTP_V3 = YES ]; then
have=NGX_HTTP_V3 . auto/have
have=NGX_HTTP_HEADERS . auto/have
HTTP_QUIC=YES
ngx_module_name=ngx_http_v3_module
ngx_module_incs=src/http/v3
ngx_module_deps="src/http/v3/ngx_http_v3.h \
src/http/v3/ngx_http_v3_encode.h \
src/http/v3/ngx_http_v3_parse.h \
src/http/v3/ngx_http_v3_tables.h \
src/http/v3/ngx_http_v3_streams.h"
ngx_module_srcs="src/http/v3/ngx_http_v3.c \
src/http/v3/ngx_http_v3_encode.c \
src/http/v3/ngx_http_v3_parse.c \
src/http/v3/ngx_http_v3_tables.c \
src/http/v3/ngx_http_v3_streams.c \
src/http/v3/ngx_http_v3_request.c \
src/http/v3/ngx_http_v3_module.c"
ngx_module_libs=
ngx_module_link=$HTTP_V3
if [ $HTTP_V2 = NO ]; then
ngx_module_srcs="$ngx_module_srcs \
src/http/v2/ngx_http_v2_huff_decode.c \
src/http/v2/ngx_http_v2_huff_encode.c"
fi
. auto/module
fi
if :; then
ngx_module_name=ngx_http_static_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_static_module.c
ngx_module_libs=
ngx_module_link=YES
. auto/module
fi
if [ $HTTP_GZIP_STATIC = YES ]; then
have=NGX_HTTP_GZIP . auto/have
ngx_module_name=ngx_http_gzip_static_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_gzip_static_module.c
ngx_module_libs=
ngx_module_link=$HTTP_GZIP_STATIC
. auto/module
fi
if [ $HTTP_DAV = YES ]; then
have=NGX_HTTP_DAV . auto/have
ngx_module_name=ngx_http_dav_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_dav_module.c
ngx_module_libs=
ngx_module_link=$HTTP_DAV
. auto/module
fi
if [ $HTTP_AUTOINDEX = YES ]; then
ngx_module_name=ngx_http_autoindex_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_autoindex_module.c
ngx_module_libs=
ngx_module_link=$HTTP_AUTOINDEX
. auto/module
fi
if :; then
ngx_module_name=ngx_http_index_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_index_module.c
ngx_module_libs=
ngx_module_link=YES
. auto/module
fi
if [ $HTTP_RANDOM_INDEX = YES ]; then
ngx_module_name=ngx_http_random_index_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_random_index_module.c
ngx_module_libs=
ngx_module_link=$HTTP_RANDOM_INDEX
. auto/module
fi
if [ $HTTP_MIRROR = YES ]; then
ngx_module_name=ngx_http_mirror_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_mirror_module.c
ngx_module_libs=
ngx_module_link=$HTTP_MIRROR
. auto/module
fi
if :; then
ngx_module_name=ngx_http_try_files_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_try_files_module.c
ngx_module_libs=
ngx_module_link=YES
. auto/module
fi
if [ $HTTP_AUTH_REQUEST = YES ]; then
ngx_module_name=ngx_http_auth_request_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_auth_request_module.c
ngx_module_libs=
ngx_module_link=$HTTP_AUTH_REQUEST
. auto/module
fi
if [ $HTTP_AUTH_BASIC = YES ]; then
have=NGX_CRYPT . auto/have
ngx_module_name=ngx_http_auth_basic_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_auth_basic_module.c
ngx_module_libs=$CRYPT_LIB
ngx_module_link=$HTTP_AUTH_BASIC
. auto/module
fi
if [ $HTTP_ACCESS = YES ]; then
ngx_module_name=ngx_http_access_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_access_module.c
ngx_module_libs=
ngx_module_link=$HTTP_ACCESS
. auto/module
fi
if [ $HTTP_LIMIT_CONN = YES ]; then
ngx_module_name=ngx_http_limit_conn_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_limit_conn_module.c
ngx_module_libs=
ngx_module_link=$HTTP_LIMIT_CONN
. auto/module
fi
if [ $HTTP_LIMIT_REQ = YES ]; then
ngx_module_name=ngx_http_limit_req_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_limit_req_module.c
ngx_module_libs=
ngx_module_link=$HTTP_LIMIT_REQ
. auto/module
fi
if [ $HTTP_REALIP = YES ]; then
have=NGX_HTTP_REALIP . auto/have
have=NGX_HTTP_X_FORWARDED_FOR . auto/have
ngx_module_name=ngx_http_realip_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_realip_module.c
ngx_module_libs=
ngx_module_link=$HTTP_REALIP
. auto/module
fi
if [ $HTTP_STATUS = YES ]; then
ngx_module_name=ngx_http_status_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_status_module.c
ngx_module_libs=
ngx_module_link=$HTTP_STATUS
. auto/module
fi
if [ $HTTP_GEO = YES ]; then
have=NGX_HTTP_X_FORWARDED_FOR . auto/have
ngx_module_name=ngx_http_geo_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_geo_module.c
ngx_module_libs=
ngx_module_link=$HTTP_GEO
. auto/module
fi
if [ $HTTP_GEOIP != NO ]; then
have=NGX_HTTP_X_FORWARDED_FOR . auto/have
ngx_module_name=ngx_http_geoip_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_geoip_module.c
ngx_module_libs=GEOIP
ngx_module_link=$HTTP_GEOIP
. auto/module
fi
if [ $HTTP_MAP = YES ]; then
ngx_module_name=ngx_http_map_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_map_module.c
ngx_module_libs=
ngx_module_link=$HTTP_MAP
. auto/module
fi
if [ $HTTP_SPLIT_CLIENTS = YES ]; then
ngx_module_name=ngx_http_split_clients_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_split_clients_module.c
ngx_module_libs=
ngx_module_link=$HTTP_SPLIT_CLIENTS
. auto/module
fi
if [ $HTTP_REFERER = YES ]; then
ngx_module_name=ngx_http_referer_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_referer_module.c
ngx_module_libs=
ngx_module_link=$HTTP_REFERER
. auto/module
fi
if [ $HTTP_REWRITE = YES -a $USE_PCRE != DISABLED ]; then
USE_PCRE=YES
ngx_module_name=ngx_http_rewrite_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_rewrite_module.c
ngx_module_libs=
ngx_module_link=$HTTP_REWRITE
. auto/module
fi
if [ $HTTP_QUIC = YES ]; then
USE_OPENSSL_QUIC=YES
have=NGX_HTTP_QUIC . auto/have
HTTP_SSL=YES
ngx_module_name=ngx_http_quic_module
ngx_module_incs=
ngx_module_deps=src/http/modules/ngx_http_quic_module.h
ngx_module_srcs=src/http/modules/ngx_http_quic_module.c
ngx_module_libs=
ngx_module_link=$HTTP_QUIC
. auto/module
fi
if [ $HTTP_SSL = YES ]; then
USE_OPENSSL=YES
have=NGX_HTTP_SSL . auto/have
ngx_module_name=ngx_http_ssl_module
ngx_module_incs=
ngx_module_deps=src/http/modules/ngx_http_ssl_module.h
ngx_module_srcs=src/http/modules/ngx_http_ssl_module.c
ngx_module_libs=
ngx_module_link=$HTTP_SSL
. auto/module
fi
if [ $HTTP_PROXY = YES ]; then
have=NGX_HTTP_X_FORWARDED_FOR . auto/have
ngx_module_name=ngx_http_proxy_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_proxy_module.c
ngx_module_libs=
ngx_module_link=$HTTP_PROXY
. auto/module
fi
if [ $HTTP_FASTCGI = YES ]; then
ngx_module_name=ngx_http_fastcgi_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_fastcgi_module.c
ngx_module_libs=
ngx_module_link=$HTTP_FASTCGI
. auto/module
fi
if [ $HTTP_UWSGI = YES ]; then
ngx_module_name=ngx_http_uwsgi_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_uwsgi_module.c
ngx_module_libs=
ngx_module_link=$HTTP_UWSGI
. auto/module
fi
if [ $HTTP_SCGI = YES ]; then
ngx_module_name=ngx_http_scgi_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_scgi_module.c
ngx_module_libs=
ngx_module_link=$HTTP_SCGI
. auto/module
fi
if [ $HTTP_GRPC = YES -a $HTTP_V2 = YES ]; then
ngx_module_name=ngx_http_grpc_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_grpc_module.c
ngx_module_libs=
ngx_module_link=$HTTP_GRPC
. auto/module
fi
if [ $HTTP_PERL != NO ]; then
ngx_module_name=ngx_http_perl_module
ngx_module_incs=src/http/modules/perl
ngx_module_deps=src/http/modules/perl/ngx_http_perl_module.h
ngx_module_srcs=src/http/modules/perl/ngx_http_perl_module.c
ngx_module_libs=PERL
ngx_module_link=$HTTP_PERL
. auto/module
fi
if [ $HTTP_MEMCACHED = YES ]; then
ngx_module_name=ngx_http_memcached_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_memcached_module.c
ngx_module_libs=
ngx_module_link=$HTTP_MEMCACHED
. auto/module
fi
if [ $HTTP_EMPTY_GIF = YES ]; then
ngx_module_name=ngx_http_empty_gif_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_empty_gif_module.c
ngx_module_libs=
ngx_module_link=$HTTP_EMPTY_GIF
. auto/module
fi
if [ $HTTP_BROWSER = YES ]; then
ngx_module_name=ngx_http_browser_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_browser_module.c
ngx_module_libs=
ngx_module_link=$HTTP_BROWSER
. auto/module
fi
if [ $HTTP_SECURE_LINK = YES ]; then
ngx_module_name=ngx_http_secure_link_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_secure_link_module.c
ngx_module_libs=
ngx_module_link=$HTTP_SECURE_LINK
. auto/module
fi
if [ $HTTP_DEGRADATION = YES ]; then
have=NGX_HTTP_DEGRADATION . auto/have
ngx_module_name=ngx_http_degradation_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_degradation_module.c
ngx_module_libs=
ngx_module_link=$HTTP_DEGRADATION
. auto/module
fi
if [ $HTTP_FLV = YES ]; then
ngx_module_name=ngx_http_flv_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_flv_module.c
ngx_module_libs=
ngx_module_link=$HTTP_FLV
. auto/module
fi
if [ $HTTP_MP4 = YES ]; then
ngx_module_name=ngx_http_mp4_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_mp4_module.c
ngx_module_libs=
ngx_module_link=$HTTP_MP4
. auto/module
fi
if [ $HTTP_UPSTREAM_HASH = YES ]; then
ngx_module_name=ngx_http_upstream_hash_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_upstream_hash_module.c
ngx_module_libs=
ngx_module_link=$HTTP_UPSTREAM_HASH
. auto/module
fi
if [ $HTTP_UPSTREAM_IP_HASH = YES ]; then
ngx_module_name=ngx_http_upstream_ip_hash_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_upstream_ip_hash_module.c
ngx_module_libs=
ngx_module_link=$HTTP_UPSTREAM_IP_HASH
. auto/module
fi
if [ $HTTP_UPSTREAM_LEAST_CONN = YES ]; then
ngx_module_name=ngx_http_upstream_least_conn_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_upstream_least_conn_module.c
ngx_module_libs=
ngx_module_link=$HTTP_UPSTREAM_LEAST_CONN
. auto/module
fi
if [ $HTTP_UPSTREAM_RANDOM = YES ]; then
ngx_module_name=ngx_http_upstream_random_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_upstream_random_module.c
ngx_module_libs=
ngx_module_link=$HTTP_UPSTREAM_RANDOM
. auto/module
fi
if [ $HTTP_UPSTREAM_KEEPALIVE = YES ]; then
ngx_module_name=ngx_http_upstream_keepalive_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_upstream_keepalive_module.c
ngx_module_libs=
ngx_module_link=$HTTP_UPSTREAM_KEEPALIVE
. auto/module
fi
if [ $HTTP_UPSTREAM_ZONE = YES ]; then
have=NGX_HTTP_UPSTREAM_ZONE . auto/have
ngx_module_name=ngx_http_upstream_zone_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_upstream_zone_module.c
ngx_module_libs=
ngx_module_link=$HTTP_UPSTREAM_ZONE
. auto/module
fi
if [ $HTTP_STUB_STATUS = YES ]; then
have=NGX_STAT_STUB . auto/have
ngx_module_name=ngx_http_stub_status_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/modules/ngx_http_stub_status_module.c
ngx_module_libs=
ngx_module_link=$HTTP_STUB_STATUS
. auto/module
fi
fi
if [ $MAIL != NO ]; then
MAIL_MODULES=
MAIL_DEPS=
MAIL_INCS=
ngx_module_type=MAIL
ngx_module_libs=
ngx_module_link=YES
ngx_module_order=
ngx_module_name="ngx_mail_module ngx_mail_core_module"
ngx_module_incs="src/mail"
ngx_module_deps="src/mail/ngx_mail.h"
ngx_module_srcs="src/mail/ngx_mail.c \
src/mail/ngx_mail_core_module.c \
src/mail/ngx_mail_handler.c \
src/mail/ngx_mail_parse.c"
. auto/module
ngx_module_incs=
if [ $MAIL_SSL = YES ]; then
USE_OPENSSL=YES
have=NGX_MAIL_SSL . auto/have
ngx_module_name=ngx_mail_ssl_module
ngx_module_deps=src/mail/ngx_mail_ssl_module.h
ngx_module_srcs=src/mail/ngx_mail_ssl_module.c
. auto/module
fi
if [ $MAIL_POP3 = YES ]; then
ngx_module_name=ngx_mail_pop3_module
ngx_module_deps=src/mail/ngx_mail_pop3_module.h
ngx_module_srcs="src/mail/ngx_mail_pop3_module.c \
src/mail/ngx_mail_pop3_handler.c"
. auto/module
fi
if [ $MAIL_IMAP = YES ]; then
ngx_module_name=ngx_mail_imap_module
ngx_module_deps=src/mail/ngx_mail_imap_module.h
ngx_module_srcs="src/mail/ngx_mail_imap_module.c \
src/mail/ngx_mail_imap_handler.c"
. auto/module
fi
if [ $MAIL_SMTP = YES ]; then
ngx_module_name=ngx_mail_smtp_module
ngx_module_deps=src/mail/ngx_mail_smtp_module.h
ngx_module_srcs="src/mail/ngx_mail_smtp_module.c \
src/mail/ngx_mail_smtp_handler.c"
. auto/module
fi
ngx_module_name=ngx_mail_auth_http_module
ngx_module_deps=
ngx_module_srcs=src/mail/ngx_mail_auth_http_module.c
. auto/module
ngx_module_name=ngx_mail_proxy_module
ngx_module_deps=
ngx_module_srcs=src/mail/ngx_mail_proxy_module.c
. auto/module
ngx_module_name=ngx_mail_realip_module
ngx_module_deps=
ngx_module_srcs=src/mail/ngx_mail_realip_module.c
. auto/module
fi
if [ $STREAM != NO ]; then
STREAM_MODULES=
STREAM_DEPS=
STREAM_INCS=
ngx_module_type=STREAM
ngx_module_libs=
ngx_module_link=YES
ngx_module_order=
ngx_module_name="ngx_stream_module \
ngx_stream_core_module \
ngx_stream_log_module \
ngx_stream_proxy_module \
ngx_stream_upstream_module \
ngx_stream_write_filter_module"
ngx_module_incs="src/stream"
ngx_module_deps="src/stream/ngx_stream.h \
src/stream/ngx_stream_variables.h \
src/stream/ngx_stream_script.h \
src/stream/ngx_stream_upstream.h \
src/stream/ngx_stream_upstream_round_robin.h"
ngx_module_srcs="src/stream/ngx_stream.c \
src/stream/ngx_stream_variables.c \
src/stream/ngx_stream_script.c \
src/stream/ngx_stream_handler.c \
src/stream/ngx_stream_core_module.c \
src/stream/ngx_stream_log_module.c \
src/stream/ngx_stream_proxy_module.c \
src/stream/ngx_stream_upstream.c \
src/stream/ngx_stream_upstream_round_robin.c \
src/stream/ngx_stream_write_filter_module.c"
. auto/module
ngx_module_incs=
if [ $STREAM_QUIC = YES ]; then
USE_OPENSSL_QUIC=YES
have=NGX_STREAM_QUIC . auto/have
STREAM_SSL=YES
ngx_module_name=ngx_stream_quic_module
ngx_module_deps=src/stream/ngx_stream_quic_module.h
ngx_module_srcs=src/stream/ngx_stream_quic_module.c
ngx_module_libs=
ngx_module_link=$STREAM_QUIC
. auto/module
fi
if [ $STREAM_SSL = YES ]; then
USE_OPENSSL=YES
have=NGX_STREAM_SSL . auto/have
ngx_module_name=ngx_stream_ssl_module
ngx_module_deps=src/stream/ngx_stream_ssl_module.h
ngx_module_srcs=src/stream/ngx_stream_ssl_module.c
ngx_module_libs=
ngx_module_link=$STREAM_SSL
. auto/module
fi
if [ $STREAM_REALIP = YES ]; then
ngx_module_name=ngx_stream_realip_module
ngx_module_deps=
ngx_module_srcs=src/stream/ngx_stream_realip_module.c
ngx_module_libs=
ngx_module_link=$STREAM_REALIP
. auto/module
fi
if [ $STREAM_LIMIT_CONN = YES ]; then
ngx_module_name=ngx_stream_limit_conn_module
ngx_module_deps=
ngx_module_srcs=src/stream/ngx_stream_limit_conn_module.c
ngx_module_libs=
ngx_module_link=$STREAM_LIMIT_CONN
. auto/module
fi
if [ $STREAM_ACCESS = YES ]; then
ngx_module_name=ngx_stream_access_module
ngx_module_deps=
ngx_module_srcs=src/stream/ngx_stream_access_module.c
ngx_module_libs=
ngx_module_link=$STREAM_ACCESS
. auto/module
fi
if [ $STREAM_GEO = YES ]; then
ngx_module_name=ngx_stream_geo_module
ngx_module_deps=
ngx_module_srcs=src/stream/ngx_stream_geo_module.c
ngx_module_libs=
ngx_module_link=$STREAM_GEO
. auto/module
fi
if [ $STREAM_GEOIP != NO ]; then
ngx_module_name=ngx_stream_geoip_module
ngx_module_deps=
ngx_module_srcs=src/stream/ngx_stream_geoip_module.c
ngx_module_libs=GEOIP
ngx_module_link=$STREAM_GEOIP
. auto/module
fi
if [ $STREAM_MAP = YES ]; then
ngx_module_name=ngx_stream_map_module
ngx_module_deps=
ngx_module_srcs=src/stream/ngx_stream_map_module.c
ngx_module_libs=
ngx_module_link=$STREAM_MAP
. auto/module
fi
if [ $STREAM_SPLIT_CLIENTS = YES ]; then
ngx_module_name=ngx_stream_split_clients_module
ngx_module_deps=
ngx_module_srcs=src/stream/ngx_stream_split_clients_module.c
ngx_module_libs=
ngx_module_link=$STREAM_SPLIT_CLIENTS
. auto/module
fi
if [ $STREAM_RETURN = YES ]; then
ngx_module_name=ngx_stream_return_module
ngx_module_deps=
ngx_module_srcs=src/stream/ngx_stream_return_module.c
ngx_module_libs=
ngx_module_link=$STREAM_RETURN
. auto/module
fi
if [ $STREAM_SET = YES ]; then
ngx_module_name=ngx_stream_set_module
ngx_module_deps=
ngx_module_srcs=src/stream/ngx_stream_set_module.c
ngx_module_libs=
ngx_module_link=$STREAM_SET
. auto/module
fi
if [ $STREAM_UPSTREAM_HASH = YES ]; then
ngx_module_name=ngx_stream_upstream_hash_module
ngx_module_deps=
ngx_module_srcs=src/stream/ngx_stream_upstream_hash_module.c
ngx_module_libs=
ngx_module_link=$STREAM_UPSTREAM_HASH
. auto/module
fi
if [ $STREAM_UPSTREAM_LEAST_CONN = YES ]; then
ngx_module_name=ngx_stream_upstream_least_conn_module
ngx_module_deps=
ngx_module_srcs=src/stream/ngx_stream_upstream_least_conn_module.c
ngx_module_libs=
ngx_module_link=$STREAM_UPSTREAM_LEAST_CONN
. auto/module
fi
if [ $STREAM_UPSTREAM_RANDOM = YES ]; then
ngx_module_name=ngx_stream_upstream_random_module
ngx_module_deps=
ngx_module_srcs=src/stream/ngx_stream_upstream_random_module.c
ngx_module_libs=
ngx_module_link=$STREAM_UPSTREAM_RANDOM
. auto/module
fi
if [ $STREAM_UPSTREAM_ZONE = YES ]; then
have=NGX_STREAM_UPSTREAM_ZONE . auto/have
ngx_module_name=ngx_stream_upstream_zone_module
ngx_module_deps=
ngx_module_srcs=src/stream/ngx_stream_upstream_zone_module.c
ngx_module_libs=
ngx_module_link=$STREAM_UPSTREAM_ZONE
. auto/module
fi
if [ $STREAM_SSL_PREREAD = YES ]; then
ngx_module_name=ngx_stream_ssl_preread_module
ngx_module_deps=
ngx_module_srcs=src/stream/ngx_stream_ssl_preread_module.c
ngx_module_libs=
ngx_module_link=$STREAM_SSL_PREREAD
. auto/module
fi
fi
#if [ -r $NGX_OBJS/auto ]; then
# . $NGX_OBJS/auto
#fi
if test -n "$NGX_ADDONS"; then
echo configuring additional modules
for ngx_addon_dir in $NGX_ADDONS
do
echo "adding module in $ngx_addon_dir"
ngx_module_type=
ngx_module_name=
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=
ngx_module_libs=
ngx_module_order=
ngx_module_link=ADDON
if test -f $ngx_addon_dir/config; then
. $ngx_addon_dir/config
echo " + $ngx_addon_name was configured"
else
echo "$0: error: no $ngx_addon_dir/config was found"
exit 1
fi
done
fi
if test -n "$DYNAMIC_ADDONS"; then
echo configuring additional dynamic modules
for ngx_addon_dir in $DYNAMIC_ADDONS
do
echo "adding module in $ngx_addon_dir"
ngx_module_type=
ngx_module_name=
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=
ngx_module_libs=
ngx_module_order=
ngx_module_link=DYNAMIC
if test -f $ngx_addon_dir/config; then
. $ngx_addon_dir/config
echo " + $ngx_addon_name was configured"
else
echo "$0: error: no $ngx_addon_dir/config was found"
exit 1
fi
done
fi
if [ $USE_OPENSSL = YES ]; then
ngx_module_type=CORE
ngx_module_name=ngx_openssl_module
ngx_module_incs=
ngx_module_deps=src/event/ngx_event_openssl.h
ngx_module_srcs="src/event/ngx_event_openssl.c
src/event/ngx_event_openssl_stapling.c"
ngx_module_libs=
ngx_module_link=YES
ngx_module_order=
. auto/module
fi
if [ $USE_OPENSSL_QUIC = YES ]; then
ngx_module_type=CORE
ngx_module_name=ngx_quic_module
ngx_module_incs=
ngx_module_deps="src/event/quic/ngx_event_quic.h \
src/event/quic/ngx_event_quic_transport.h \
src/event/quic/ngx_event_quic_protection.h \
src/event/quic/ngx_event_quic_connection.h \
src/event/quic/ngx_event_quic_frames.h \
src/event/quic/ngx_event_quic_connid.h \
src/event/quic/ngx_event_quic_migration.h \
src/event/quic/ngx_event_quic_streams.h \
src/event/quic/ngx_event_quic_ssl.h \
src/event/quic/ngx_event_quic_tokens.h \
src/event/quic/ngx_event_quic_ack.h \
src/event/quic/ngx_event_quic_output.h \
src/event/quic/ngx_event_quic_socket.h \
src/event/quic/ngx_event_quic_mtu.h"
ngx_module_srcs="src/event/quic/ngx_event_quic.c \
src/event/quic/ngx_event_quic_transport.c \
src/event/quic/ngx_event_quic_protection.c \
src/event/quic/ngx_event_quic_frames.c \
src/event/quic/ngx_event_quic_connid.c \
src/event/quic/ngx_event_quic_migration.c \
src/event/quic/ngx_event_quic_streams.c \
src/event/quic/ngx_event_quic_ssl.c \
src/event/quic/ngx_event_quic_tokens.c \
src/event/quic/ngx_event_quic_ack.c \
src/event/quic/ngx_event_quic_output.c \
src/event/quic/ngx_event_quic_socket.c \
src/event/quic/ngx_event_quic_mtu.c"
ngx_module_libs=
ngx_module_link=YES
ngx_module_order=
. auto/module
if [ $NGX_QUIC_BPF$BPF_FOUND$SO_COOKIE_FOUND = YESYESYES ]; then
ngx_module_type=CORE
ngx_module_name=ngx_quic_bpf_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs="src/event/quic/ngx_event_quic_bpf.c \
src/event/quic/ngx_event_quic_bpf_code.c"
ngx_module_libs=
ngx_module_link=YES
ngx_module_order=
. auto/module
have=NGX_QUIC_BPF . auto/have
fi
fi
if [ $USE_PCRE = YES ]; then
ngx_module_type=CORE
ngx_module_name=ngx_regex_module
ngx_module_incs=
ngx_module_deps=src/core/ngx_regex.h
ngx_module_srcs=src/core/ngx_regex.c
ngx_module_libs=
ngx_module_link=YES
ngx_module_order=
. auto/module
fi
modules="$CORE_MODULES $EVENT_MODULES"
# thread pool module should be initialized after events
if [ $USE_THREADS = YES ]; then
modules="$modules $THREAD_POOL_MODULE"
fi
if [ $HTTP = YES ]; then
modules="$modules $HTTP_MODULES $HTTP_FILTER_MODULES \
$HTTP_AUX_FILTER_MODULES $HTTP_INIT_FILTER_MODULES"
NGX_ADDON_DEPS="$NGX_ADDON_DEPS \$(HTTP_DEPS)"
fi
if [ $MAIL != NO ]; then
if [ $MAIL = YES ]; then
modules="$modules $MAIL_MODULES"
elif [ $MAIL = DYNAMIC ]; then
ngx_module_name=$MAIL_MODULES
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=$MAIL_SRCS
ngx_module_libs=
ngx_module_link=DYNAMIC
. auto/module
fi
NGX_ADDON_DEPS="$NGX_ADDON_DEPS \$(MAIL_DEPS)"
fi
if [ $STREAM != NO ]; then
if [ $STREAM = YES ]; then
modules="$modules $STREAM_MODULES"
elif [ $STREAM = DYNAMIC ]; then
ngx_module_name=$STREAM_MODULES
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=$STREAM_SRCS
ngx_module_libs=
ngx_module_link=DYNAMIC
. auto/module
fi
NGX_ADDON_DEPS="$NGX_ADDON_DEPS \$(STREAM_DEPS)"
fi
ngx_module_type=MISC
MISC_MODULES=
if [ $NGX_GOOGLE_PERFTOOLS = YES ]; then
ngx_module_name=ngx_google_perftools_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/misc/ngx_google_perftools_module.c
ngx_module_libs=
ngx_module_link=$NGX_GOOGLE_PERFTOOLS
. auto/module
fi
if [ $NGX_CPP_TEST = YES ]; then
ngx_module_name=
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/misc/ngx_cpp_test_module.cpp
ngx_module_libs=-lstdc++
ngx_module_link=$NGX_CPP_TEST
. auto/module
fi
modules="$modules $MISC_MODULES"
if [ $NGX_COMPAT = YES ]; then
have=NGX_COMPAT . auto/have
have=NGX_HTTP_GZIP . auto/have
have=NGX_HTTP_DAV . auto/have
have=NGX_HTTP_REALIP . auto/have
have=NGX_HTTP_X_FORWARDED_FOR . auto/have
have=NGX_HTTP_HEADERS . auto/have
have=NGX_HTTP_UPSTREAM_ZONE . auto/have
have=NGX_STREAM_UPSTREAM_ZONE . auto/have
fi
cat << END > $NGX_MODULES_C
#include <ngx_config.h>
#include <ngx_core.h>
$NGX_PRAGMA
END
for mod in $modules
do
echo "extern ngx_module_t $mod;" >> $NGX_MODULES_C
done
echo >> $NGX_MODULES_C
echo 'ngx_module_t *ngx_modules[] = {' >> $NGX_MODULES_C
for mod in $modules
do
echo " &$mod," >> $NGX_MODULES_C
done
cat << END >> $NGX_MODULES_C
NULL
};
END
echo 'char *ngx_module_names[] = {' >> $NGX_MODULES_C
for mod in $modules
do
echo " \"$mod\"," >> $NGX_MODULES_C
done
cat << END >> $NGX_MODULES_C
NULL
};
END
================================================
FILE: auto/nohave
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
cat << END >> $NGX_AUTO_CONFIG_H
#ifndef $have
#define $have 0
#endif
END
================================================
FILE: auto/options
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
help=no
NGX_PREFIX=
NGX_SBIN_PATH=
NGX_MODULES_PATH=
NGX_CONF_PREFIX=
NGX_CONF_PATH=
NGX_ERROR_LOG_PATH=
NGX_PID_PATH=
NGX_LOCK_PATH=
NGX_USER=
NGX_GROUP=
NGX_BUILD=
CC=${CC:-cc}
CPP=
NGX_OBJS=objs
NGX_DEBUG=NO
NGX_CC_OPT=
NGX_LD_OPT=
CPU=NO
NGX_RPATH=NO
NGX_TEST_BUILD_DEVPOLL=NO
NGX_TEST_BUILD_EVENTPORT=NO
NGX_TEST_BUILD_EPOLL=NO
NGX_TEST_BUILD_SOLARIS_SENDFILEV=NO
NGX_PLATFORM=
NGX_WINE=
EVENT_FOUND=NO
EVENT_SELECT=NO
EVENT_POLL=NO
USE_THREADS=NO
NGX_FILE_AIO=NO
NGX_QUIC_BPF=YES
HTTP=YES
NGX_HTTP_LOG_PATH=
NGX_HTTP_CLIENT_TEMP_PATH=
NGX_HTTP_PROXY_TEMP_PATH=
NGX_HTTP_FASTCGI_TEMP_PATH=
NGX_HTTP_UWSGI_TEMP_PATH=
NGX_HTTP_SCGI_TEMP_PATH=
HTTP_CACHE=YES
HTTP_CHARSET=YES
HTTP_GZIP=YES
HTTP_SSL=NO
HTTP_QUIC=NO
HTTP_V2=NO
HTTP_V3=NO
HTTP_SSI=YES
HTTP_REALIP=NO
HTTP_XSLT=NO
HTTP_IMAGE_FILTER=NO
HTTP_SUB=NO
HTTP_ADDITION=NO
HTTP_DAV=NO
HTTP_ACCESS=YES
HTTP_AUTH_BASIC=YES
HTTP_AUTH_REQUEST=NO
HTTP_MIRROR=YES
HTTP_USERID=YES
HTTP_SLICE=NO
HTTP_AUTOINDEX=YES
HTTP_RANDOM_INDEX=NO
HTTP_STATUS=NO
HTTP_GEO=YES
HTTP_GEOIP=NO
HTTP_MAP=YES
HTTP_SPLIT_CLIENTS=YES
HTTP_REFERER=YES
HTTP_REWRITE=YES
HTTP_PROXY=YES
HTTP_FASTCGI=YES
HTTP_UWSGI=YES
HTTP_SCGI=YES
HTTP_GRPC=YES
HTTP_PERL=NO
HTTP_MEMCACHED=YES
HTTP_LIMIT_CONN=YES
HTTP_LIMIT_REQ=YES
HTTP_EMPTY_GIF=YES
HTTP_BROWSER=YES
HTTP_SECURE_LINK=NO
HTTP_DEGRADATION=NO
HTTP_FLV=NO
HTTP_MP4=NO
HTTP_GUNZIP=NO
HTTP_GZIP_STATIC=NO
HTTP_UPSTREAM_HASH=YES
HTTP_UPSTREAM_IP_HASH=YES
HTTP_UPSTREAM_LEAST_CONN=YES
HTTP_UPSTREAM_RANDOM=YES
HTTP_UPSTREAM_KEEPALIVE=YES
HTTP_UPSTREAM_ZONE=YES
# STUB
HTTP_STUB_STATUS=NO
MAIL=NO
MAIL_SSL=NO
MAIL_POP3=YES
MAIL_IMAP=YES
MAIL_SMTP=YES
STREAM=NO
STREAM_SSL=NO
STREAM_QUIC=NO
STREAM_REALIP=NO
STREAM_LIMIT_CONN=YES
STREAM_ACCESS=YES
STREAM_GEO=YES
STREAM_GEOIP=NO
STREAM_MAP=YES
STREAM_SPLIT_CLIENTS=YES
STREAM_RETURN=YES
STREAM_SET=YES
STREAM_UPSTREAM_HASH=YES
STREAM_UPSTREAM_LEAST_CONN=YES
STREAM_UPSTREAM_RANDOM=YES
STREAM_UPSTREAM_ZONE=YES
STREAM_SSL_PREREAD=NO
DYNAMIC_MODULES=
DYNAMIC_MODULES_SRCS=
NGX_ADDONS=
NGX_ADDON_SRCS=
NGX_ADDON_DEPS=
DYNAMIC_ADDONS=
NGX_COMPAT=NO
USE_PCRE=NO
PCRE=NONE
PCRE_OPT=
PCRE_CONF_OPT=
PCRE_JIT=NO
USE_OPENSSL=NO
USE_OPENSSL_QUIC=NO
OPENSSL=NONE
USE_ZLIB=NO
ZLIB=NONE
ZLIB_OPT=
ZLIB_ASM=NO
USE_PERL=NO
NGX_PERL=perl
USE_LIBXSLT=NO
USE_LIBGD=NO
USE_GEOIP=NO
NGX_GOOGLE_PERFTOOLS=NO
NGX_CPP_TEST=NO
BPF_FOUND=NO
SO_COOKIE_FOUND=NO
NGX_LIBATOMIC=NO
NGX_CPU_CACHE_LINE=
NGX_POST_CONF_MSG=
opt=
for option
do
opt="$opt `echo $option | sed -e \"s/\(--[^=]*=\)\(.* .*\)/\1'\2'/\"`"
case "$option" in
-*=*) value=`echo "$option" | sed -e 's/[-_a-zA-Z0-9]*=//'` ;;
*) value="" ;;
esac
case "$option" in
--help) help=yes ;;
--prefix=) NGX_PREFIX="!" ;;
--prefix=*) NGX_PREFIX="$value" ;;
--sbin-path=*) NGX_SBIN_PATH="$value" ;;
--modules-path=*) NGX_MODULES_PATH="$value" ;;
--conf-path=*) NGX_CONF_PATH="$value" ;;
--error-log-path=*) NGX_ERROR_LOG_PATH="$value";;
--pid-path=*) NGX_PID_PATH="$value" ;;
--lock-path=*) NGX_LOCK_PATH="$value" ;;
--user=*) NGX_USER="$value" ;;
--group=*) NGX_GROUP="$value" ;;
--crossbuild=*) NGX_PLATFORM="$value" ;;
--build=*) NGX_BUILD="$value" ;;
--builddir=*) NGX_OBJS="$value" ;;
--with-select_module) EVENT_SELECT=YES ;;
--without-select_module) EVENT_SELECT=NONE ;;
--with-poll_module) EVENT_POLL=YES ;;
--without-poll_module) EVENT_POLL=NONE ;;
--with-threads) USE_THREADS=YES ;;
--with-file-aio) NGX_FILE_AIO=YES ;;
--without-quic_bpf_module) NGX_QUIC_BPF=NO ;;
--with-ipv6)
NGX_POST_CONF_MSG="$NGX_POST_CONF_MSG
$0: warning: the \"--with-ipv6\" option is deprecated"
;;
--without-http) HTTP=NO ;;
--without-http-cache) HTTP_CACHE=NO ;;
--http-log-path=*) NGX_HTTP_LOG_PATH="$value" ;;
--http-client-body-temp-path=*) NGX_HTTP_CLIENT_TEMP_PATH="$value" ;;
--http-proxy-temp-path=*) NGX_HTTP_PROXY_TEMP_PATH="$value" ;;
--http-fastcgi-temp-path=*) NGX_HTTP_FASTCGI_TEMP_PATH="$value" ;;
--http-uwsgi-temp-path=*) NGX_HTTP_UWSGI_TEMP_PATH="$value" ;;
--http-scgi-temp-path=*) NGX_HTTP_SCGI_TEMP_PATH="$value" ;;
--with-http_ssl_module) HTTP_SSL=YES ;;
--with-http_quic_module) HTTP_QUIC=YES ;;
--with-http_v2_module) HTTP_V2=YES ;;
--with-http_v3_module) HTTP_V3=YES ;;
--with-http_realip_module) HTTP_REALIP=YES ;;
--with-http_addition_module) HTTP_ADDITION=YES ;;
--with-http_xslt_module) HTTP_XSLT=YES ;;
--with-http_xslt_module=dynamic) HTTP_XSLT=DYNAMIC ;;
--with-http_image_filter_module) HTTP_IMAGE_FILTER=YES ;;
--with-http_image_filter_module=dynamic)
HTTP_IMAGE_FILTER=DYNAMIC ;;
--with-http_geoip_module) HTTP_GEOIP=YES ;;
--with-http_geoip_module=dynamic)
HTTP_GEOIP=DYNAMIC ;;
--with-http_sub_module) HTTP_SUB=YES ;;
--with-http_dav_module) HTTP_DAV=YES ;;
--with-http_flv_module) HTTP_FLV=YES ;;
--with-http_mp4_module) HTTP_MP4=YES ;;
--with-http_gunzip_module) HTTP_GUNZIP=YES ;;
--with-http_gzip_static_module) HTTP_GZIP_STATIC=YES ;;
--with-http_auth_request_module) HTTP_AUTH_REQUEST=YES ;;
--with-http_random_index_module) HTTP_RANDOM_INDEX=YES ;;
--with-http_secure_link_module) HTTP_SECURE_LINK=YES ;;
--with-http_degradation_module) HTTP_DEGRADATION=YES ;;
--with-http_slice_module) HTTP_SLICE=YES ;;
--without-http_charset_module) HTTP_CHARSET=NO ;;
--without-http_gzip_module) HTTP_GZIP=NO ;;
--without-http_ssi_module) HTTP_SSI=NO ;;
--without-http_userid_module) HTTP_USERID=NO ;;
--without-http_access_module) HTTP_ACCESS=NO ;;
--without-http_auth_basic_module) HTTP_AUTH_BASIC=NO ;;
--without-http_mirror_module) HTTP_MIRROR=NO ;;
--without-http_autoindex_module) HTTP_AUTOINDEX=NO ;;
--without-http_status_module) HTTP_STATUS=NO ;;
--without-http_geo_module) HTTP_GEO=NO ;;
--without-http_map_module) HTTP_MAP=NO ;;
--without-http_split_clients_module) HTTP_SPLIT_CLIENTS=NO ;;
--without-http_referer_module) HTTP_REFERER=NO ;;
--without-http_rewrite_module) HTTP_REWRITE=NO ;;
--without-http_proxy_module) HTTP_PROXY=NO ;;
--without-http_fastcgi_module) HTTP_FASTCGI=NO ;;
--without-http_uwsgi_module) HTTP_UWSGI=NO ;;
--without-http_scgi_module) HTTP_SCGI=NO ;;
--without-http_grpc_module) HTTP_GRPC=NO ;;
--without-http_memcached_module) HTTP_MEMCACHED=NO ;;
--without-http_limit_conn_module) HTTP_LIMIT_CONN=NO ;;
--without-http_limit_req_module) HTTP_LIMIT_REQ=NO ;;
--without-http_empty_gif_module) HTTP_EMPTY_GIF=NO ;;
--without-http_browser_module) HTTP_BROWSER=NO ;;
--without-http_upstream_hash_module) HTTP_UPSTREAM_HASH=NO ;;
--without-http_upstream_ip_hash_module) HTTP_UPSTREAM_IP_HASH=NO ;;
--without-http_upstream_least_conn_module)
HTTP_UPSTREAM_LEAST_CONN=NO ;;
--without-http_upstream_random_module)
HTTP_UPSTREAM_RANDOM=NO ;;
--without-http_upstream_keepalive_module) HTTP_UPSTREAM_KEEPALIVE=NO ;;
--without-http_upstream_zone_module) HTTP_UPSTREAM_ZONE=NO ;;
--with-http_perl_module) HTTP_PERL=YES ;;
--with-http_perl_module=dynamic) HTTP_PERL=DYNAMIC ;;
--with-perl_modules_path=*) NGX_PERL_MODULES="$value" ;;
--with-perl=*) NGX_PERL="$value" ;;
# STUB
--with-http_stub_status_module) HTTP_STUB_STATUS=YES ;;
--with-mail) MAIL=YES ;;
--with-mail=dynamic) MAIL=DYNAMIC ;;
--with-mail_ssl_module) MAIL_SSL=YES ;;
# STUB
--with-imap)
MAIL=YES
NGX_POST_CONF_MSG="$NGX_POST_CONF_MSG
$0: warning: the \"--with-imap\" option is deprecated, \
use the \"--with-mail\" option instead"
;;
--with-imap_ssl_module)
MAIL_SSL=YES
NGX_POST_CONF_MSG="$NGX_POST_CONF_MSG
$0: warning: the \"--with-imap_ssl_module\" option is deprecated, \
use the \"--with-mail_ssl_module\" option instead"
;;
--without-mail_pop3_module) MAIL_POP3=NO ;;
--without-mail_imap_module) MAIL_IMAP=NO ;;
--without-mail_smtp_module) MAIL_SMTP=NO ;;
--with-stream) STREAM=YES ;;
--with-stream=dynamic) STREAM=DYNAMIC ;;
--with-stream_ssl_module) STREAM_SSL=YES ;;
--with-stream_quic_module) STREAM_QUIC=YES ;;
--with-stream_realip_module) STREAM_REALIP=YES ;;
--with-stream_geoip_module) STREAM_GEOIP=YES ;;
--with-stream_geoip_module=dynamic)
STREAM_GEOIP=DYNAMIC ;;
--with-stream_ssl_preread_module)
STREAM_SSL_PREREAD=YES ;;
--without-stream_limit_conn_module)
STREAM_LIMIT_CONN=NO ;;
--without-stream_access_module) STREAM_ACCESS=NO ;;
--without-stream_geo_module) STREAM_GEO=NO ;;
--without-stream_map_module) STREAM_MAP=NO ;;
--without-stream_split_clients_module)
STREAM_SPLIT_CLIENTS=NO ;;
--without-stream_return_module) STREAM_RETURN=NO ;;
--without-stream_set_module) STREAM_SET=NO ;;
--without-stream_upstream_hash_module)
STREAM_UPSTREAM_HASH=NO ;;
--without-stream_upstream_least_conn_module)
STREAM_UPSTREAM_LEAST_CONN=NO ;;
--without-stream_upstream_random_module)
STREAM_UPSTREAM_RANDOM=NO ;;
--without-stream_upstream_zone_module)
STREAM_UPSTREAM_ZONE=NO ;;
--with-google_perftools_module) NGX_GOOGLE_PERFTOOLS=YES ;;
--with-cpp_test_module) NGX_CPP_TEST=YES ;;
--add-module=*) NGX_ADDONS="$NGX_ADDONS $value" ;;
--add-dynamic-module=*) DYNAMIC_ADDONS="$DYNAMIC_ADDONS $value" ;;
--with-compat) NGX_COMPAT=YES ;;
--with-cc=*) CC="$value" ;;
--with-cpp=*) CPP="$value" ;;
--with-cc-opt=*) NGX_CC_OPT="$value" ;;
--with-ld-opt=*) NGX_LD_OPT="$value" ;;
--with-cpu-opt=*) CPU="$value" ;;
--with-debug) NGX_DEBUG=YES ;;
--without-pcre) USE_PCRE=DISABLED ;;
--with-pcre) USE_PCRE=YES ;;
--with-pcre=*) PCRE="$value" ;;
--with-pcre-opt=*) PCRE_OPT="$value" ;;
--with-pcre-jit) PCRE_JIT=YES ;;
--with-openssl=*) OPENSSL="$value" ;;
--with-openssl-opt=*) OPENSSL_OPT="$value" ;;
--with-md5=*)
NGX_POST_CONF_MSG="$NGX_POST_CONF_MSG
$0: warning: the \"--with-md5\" option is deprecated"
;;
--with-md5-opt=*)
NGX_POST_CONF_MSG="$NGX_POST_CONF_MSG
$0: warning: the \"--with-md5-opt\" option is deprecated"
;;
--with-md5-asm)
NGX_POST_CONF_MSG="$NGX_POST_CONF_MSG
$0: warning: the \"--with-md5-asm\" option is deprecated"
;;
--with-sha1=*)
NGX_POST_CONF_MSG="$NGX_POST_CONF_MSG
$0: warning: the \"--with-sha1\" option is deprecated"
;;
--with-sha1-opt=*)
NGX_POST_CONF_MSG="$NGX_POST_CONF_MSG
$0: warning: the \"--with-sha1-opt\" option is deprecated"
;;
--with-sha1-asm)
NGX_POST_CONF_MSG="$NGX_POST_CONF_MSG
$0: warning: the \"--with-sha1-asm\" option is deprecated"
;;
--with-zlib=*) ZLIB="$value" ;;
--with-zlib-opt=*) ZLIB_OPT="$value" ;;
--with-zlib-asm=*) ZLIB_ASM="$value" ;;
--with-libatomic) NGX_LIBATOMIC=YES ;;
--with-libatomic=*) NGX_LIBATOMIC="$value" ;;
--test-build-devpoll) NGX_TEST_BUILD_DEVPOLL=YES ;;
--test-build-eventport) NGX_TEST_BUILD_EVENTPORT=YES ;;
--test-build-epoll) NGX_TEST_BUILD_EPOLL=YES ;;
--test-build-solaris-sendfilev) NGX_TEST_BUILD_SOLARIS_SENDFILEV=YES ;;
*)
echo "$0: error: invalid option \"$option\""
exit 1
;;
esac
done
NGX_CONFIGURE="$opt"
if [ $help = yes ]; then
cat << END
--help print this message
--prefix=PATH set installation prefix
--sbin-path=PATH set nginx binary pathname
--modules-path=PATH set modules path
--conf-path=PATH set nginx.conf pathname
--error-log-path=PATH set error log pathname
--pid-path=PATH set nginx.pid pathname
--lock-path=PATH set nginx.lock pathname
--user=USER set non-privileged user for
worker processes
--group=GROUP set non-privileged group for
worker processes
--build=NAME set build name
--builddir=DIR set build directory
--with-select_module enable select module
--without-select_module disable select module
--with-poll_module enable poll module
--without-poll_module disable poll module
--with-threads enable thread pool support
--with-file-aio enable file AIO support
--without-quic_bpf_module disable ngx_quic_bpf_module
--with-http_ssl_module enable ngx_http_ssl_module
--with-http_quic_module enable ngx_http_quic_module
--with-http_v2_module enable ngx_http_v2_module
--with-http_v3_module enable ngx_http_v3_module
--with-http_realip_module enable ngx_http_realip_module
--with-http_addition_module enable ngx_http_addition_module
--with-http_xslt_module enable ngx_http_xslt_module
--with-http_xslt_module=dynamic enable dynamic ngx_http_xslt_module
--with-http_image_filter_module enable ngx_http_image_filter_module
--with-http_image_filter_module=dynamic
enable dynamic ngx_http_image_filter_module
--with-http_geoip_module enable ngx_http_geoip_module
--with-http_geoip_module=dynamic enable dynamic ngx_http_geoip_module
--with-http_sub_module enable ngx_http_sub_module
--with-http_dav_module enable ngx_http_dav_module
--with-http_flv_module enable ngx_http_flv_module
--with-http_mp4_module enable ngx_http_mp4_module
--with-http_gunzip_module enable ngx_http_gunzip_module
--with-http_gzip_static_module enable ngx_http_gzip_static_module
--with-http_auth_request_module enable ngx_http_auth_request_module
--with-http_random_index_module enable ngx_http_random_index_module
--with-http_secure_link_module enable ngx_http_secure_link_module
--with-http_degradation_module enable ngx_http_degradation_module
--with-http_slice_module enable ngx_http_slice_module
--with-http_stub_status_module enable ngx_http_stub_status_module
--without-http_charset_module disable ngx_http_charset_module
--without-http_gzip_module disable ngx_http_gzip_module
--without-http_ssi_module disable ngx_http_ssi_module
--without-http_userid_module disable ngx_http_userid_module
--without-http_access_module disable ngx_http_access_module
--without-http_auth_basic_module disable ngx_http_auth_basic_module
--without-http_mirror_module disable ngx_http_mirror_module
--without-http_autoindex_module disable ngx_http_autoindex_module
--without-http_geo_module disable ngx_http_geo_module
--without-http_map_module disable ngx_http_map_module
--without-http_split_clients_module disable ngx_http_split_clients_module
--without-http_referer_module disable ngx_http_referer_module
--without-http_rewrite_module disable ngx_http_rewrite_module
--without-http_proxy_module disable ngx_http_proxy_module
--without-http_fastcgi_module disable ngx_http_fastcgi_module
--without-http_uwsgi_module disable ngx_http_uwsgi_module
--without-http_scgi_module disable ngx_http_scgi_module
--without-http_grpc_module disable ngx_http_grpc_module
--without-http_memcached_module disable ngx_http_memcached_module
--without-http_limit_conn_module disable ngx_http_limit_conn_module
--without-http_limit_req_module disable ngx_http_limit_req_module
--without-http_empty_gif_module disable ngx_http_empty_gif_module
--without-http_browser_module disable ngx_http_browser_module
--without-http_upstream_hash_module
disable ngx_http_upstream_hash_module
--without-http_upstream_ip_hash_module
disable ngx_http_upstream_ip_hash_module
--without-http_upstream_least_conn_module
disable ngx_http_upstream_least_conn_module
--without-http_upstream_random_module
disable ngx_http_upstream_random_module
--without-http_upstream_keepalive_module
disable ngx_http_upstream_keepalive_module
--without-http_upstream_zone_module
disable ngx_http_upstream_zone_module
--with-http_perl_module enable ngx_http_perl_module
--with-http_perl_module=dynamic enable dynamic ngx_http_perl_module
--with-perl_modules_path=PATH set Perl modules path
--with-perl=PATH set perl binary pathname
--http-log-path=PATH set http access log pathname
--http-client-body-temp-path=PATH set path to store
http client request body temporary files
--http-proxy-temp-path=PATH set path to store
http proxy temporary files
--http-fastcgi-temp-path=PATH set path to store
http fastcgi temporary files
--http-uwsgi-temp-path=PATH set path to store
http uwsgi temporary files
--http-scgi-temp-path=PATH set path to store
http scgi temporary files
--without-http disable HTTP server
--without-http-cache disable HTTP cache
--with-mail enable POP3/IMAP4/SMTP proxy module
--with-mail=dynamic enable dynamic POP3/IMAP4/SMTP proxy module
--with-mail_ssl_module enable ngx_mail_ssl_module
--without-mail_pop3_module disable ngx_mail_pop3_module
--without-mail_imap_module disable ngx_mail_imap_module
--without-mail_smtp_module disable ngx_mail_smtp_module
--with-stream enable TCP/UDP proxy module
--with-stream=dynamic enable dynamic TCP/UDP proxy module
--with-stream_ssl_module enable ngx_stream_ssl_module
--with-stream_quic_module enable ngx_stream_quic_module
--with-stream_realip_module enable ngx_stream_realip_module
--with-stream_geoip_module enable ngx_stream_geoip_module
--with-stream_geoip_module=dynamic enable dynamic ngx_stream_geoip_module
--with-stream_ssl_preread_module enable ngx_stream_ssl_preread_module
--without-stream_limit_conn_module disable ngx_stream_limit_conn_module
--without-stream_access_module disable ngx_stream_access_module
--without-stream_geo_module disable ngx_stream_geo_module
--without-stream_map_module disable ngx_stream_map_module
--without-stream_split_clients_module
disable ngx_stream_split_clients_module
--without-stream_return_module disable ngx_stream_return_module
--without-stream_set_module disable ngx_stream_set_module
--without-stream_upstream_hash_module
disable ngx_stream_upstream_hash_module
--without-stream_upstream_least_conn_module
disable ngx_stream_upstream_least_conn_module
--without-stream_upstream_random_module
disable ngx_stream_upstream_random_module
--without-stream_upstream_zone_module
disable ngx_stream_upstream_zone_module
--with-google_perftools_module enable ngx_google_perftools_module
--with-cpp_test_module enable ngx_cpp_test_module
--add-module=PATH enable external module
--add-dynamic-module=PATH enable dynamic external module
--with-compat dynamic modules compatibility
--with-cc=PATH set C compiler pathname
--with-cpp=PATH set C preprocessor pathname
--with-cc-opt=OPTIONS set additional C compiler options
--with-ld-opt=OPTIONS set additional linker options
--with-cpu-opt=CPU build for the specified CPU, valid values:
pentium, pentiumpro, pentium3, pentium4,
athlon, opteron, sparc32, sparc64, ppc64
--without-pcre disable PCRE library usage
--with-pcre force PCRE library usage
--with-pcre=DIR set path to PCRE library sources
--with-pcre-opt=OPTIONS set additional build options for PCRE
--with-pcre-jit build PCRE with JIT compilation support
--with-zlib=DIR set path to zlib library sources
--with-zlib-opt=OPTIONS set additional build options for zlib
--with-zlib-asm=CPU use zlib assembler sources optimized
for the specified CPU, valid values:
pentium, pentiumpro
--with-libatomic force libatomic_ops library usage
--with-libatomic=DIR set path to libatomic_ops library sources
--with-openssl=DIR set path to OpenSSL library sources
--with-openssl-opt=OPTIONS set additional build options for OpenSSL
--with-debug enable debug logging
END
exit 1
fi
if [ ".$NGX_PLATFORM" = ".win32" ]; then
NGX_WINE=$WINE
fi
NGX_SBIN_PATH=${NGX_SBIN_PATH:-sbin/nginx}
NGX_MODULES_PATH=${NGX_MODULES_PATH:-modules}
NGX_CONF_PATH=${NGX_CONF_PATH:-conf/nginx.conf}
NGX_CONF_PREFIX=`dirname $NGX_CONF_PATH`
NGX_PID_PATH=${NGX_PID_PATH:-logs/nginx.pid}
NGX_LOCK_PATH=${NGX_LOCK_PATH:-logs/nginx.lock}
if [ ".$NGX_ERROR_LOG_PATH" = ".stderr" ]; then
NGX_ERROR_LOG_PATH=
else
NGX_ERROR_LOG_PATH=${NGX_ERROR_LOG_PATH:-logs/error.log}
fi
NGX_HTTP_LOG_PATH=${NGX_HTTP_LOG_PATH:-logs/access.log}
NGX_HTTP_CLIENT_TEMP_PATH=${NGX_HTTP_CLIENT_TEMP_PATH:-client_body_temp}
NGX_HTTP_PROXY_TEMP_PATH=${NGX_HTTP_PROXY_TEMP_PATH:-proxy_temp}
NGX_HTTP_FASTCGI_TEMP_PATH=${NGX_HTTP_FASTCGI_TEMP_PATH:-fastcgi_temp}
NGX_HTTP_UWSGI_TEMP_PATH=${NGX_HTTP_UWSGI_TEMP_PATH:-uwsgi_temp}
NGX_HTTP_SCGI_TEMP_PATH=${NGX_HTTP_SCGI_TEMP_PATH:-scgi_temp}
case ".$NGX_PERL_MODULES" in
./*)
;;
.)
;;
*)
NGX_PERL_MODULES=$NGX_PREFIX/$NGX_PERL_MODULES
;;
esac
================================================
FILE: auto/os/conf
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
echo "checking for $NGX_SYSTEM specific features"
case "$NGX_PLATFORM" in
FreeBSD:*)
. auto/os/freebsd
;;
Linux:*)
. auto/os/linux
;;
SunOS:*)
. auto/os/solaris
;;
Darwin:*)
. auto/os/darwin
;;
win32)
. auto/os/win32
;;
DragonFly:*)
have=NGX_FREEBSD . auto/have_headers
CORE_INCS="$UNIX_INCS"
CORE_DEPS="$UNIX_DEPS $FREEBSD_DEPS"
CORE_SRCS="$UNIX_SRCS $FREEBSD_SRCS"
echo " + sendfile() found"
have=NGX_HAVE_SENDFILE . auto/have
CORE_SRCS="$CORE_SRCS $FREEBSD_SENDFILE_SRCS"
ngx_spacer='
'
;;
NetBSD:*)
CORE_INCS="$UNIX_INCS"
CORE_DEPS="$UNIX_DEPS $POSIX_DEPS"
CORE_SRCS="$UNIX_SRCS"
NGX_RPATH=YES
;;
HP-UX:*)
# HP/UX
have=NGX_HPUX . auto/have_headers
CORE_INCS="$UNIX_INCS"
CORE_DEPS="$UNIX_DEPS $POSIX_DEPS"
CORE_SRCS="$UNIX_SRCS"
CC_AUX_FLAGS="$CC_AUX_FLAGS -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1"
CC_AUX_FLAGS="$CC_AUX_FLAGS -D_HPUX_ALT_XOPEN_SOCKET_API"
;;
OSF1:*)
# Tru64 UNIX
have=NGX_TRU64 . auto/have_headers
have=NGX_HAVE_STRERROR_R . auto/nohave
CORE_INCS="$UNIX_INCS"
CORE_DEPS="$UNIX_DEPS $POSIX_DEPS"
CORE_SRCS="$UNIX_SRCS"
;;
GNU:*)
# GNU Hurd
have=NGX_GNU_HURD . auto/have_headers
CORE_INCS="$UNIX_INCS"
CORE_DEPS="$UNIX_DEPS $POSIX_DEPS"
CORE_SRCS="$UNIX_SRCS"
CC_AUX_FLAGS="$CC_AUX_FLAGS -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
;;
*)
CORE_INCS="$UNIX_INCS"
CORE_DEPS="$UNIX_DEPS $POSIX_DEPS"
CORE_SRCS="$UNIX_SRCS"
;;
esac
case "$NGX_MACHINE" in
i386 | i686 | i86pc)
have=NGX_HAVE_NONALIGNED . auto/have
NGX_MACH_CACHE_LINE=32
;;
amd64 | x86_64)
have=NGX_HAVE_NONALIGNED . auto/have
NGX_MACH_CACHE_LINE=64
;;
sun4u | sun4v | sparc | sparc64)
have=NGX_ALIGNMENT value=16 . auto/define
# TODO
NGX_MACH_CACHE_LINE=64
;;
ia64 )
have=NGX_ALIGNMENT value=16 . auto/define
# TODO
NGX_MACH_CACHE_LINE=64
;;
aarch64 )
have=NGX_ALIGNMENT value=16 . auto/define
NGX_MACH_CACHE_LINE=64
;;
*)
have=NGX_ALIGNMENT value=16 . auto/define
NGX_MACH_CACHE_LINE=32
;;
esac
if test -z "$NGX_CPU_CACHE_LINE"; then
NGX_CPU_CACHE_LINE=$NGX_MACH_CACHE_LINE
fi
have=NGX_CPU_CACHE_LINE value=$NGX_CPU_CACHE_LINE . auto/define
================================================
FILE: auto/os/darwin
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
have=NGX_DARWIN . auto/have_headers
CORE_INCS="$UNIX_INCS"
CORE_DEPS="$UNIX_DEPS $DARWIN_DEPS"
CORE_SRCS="$UNIX_SRCS $DARWIN_SRCS"
ngx_spacer='
'
MAIN_LINK=
MODULE_LINK="-shared -Wl,-undefined,dynamic_lookup"
CC_AUX_FLAGS="$CC_AUX_FLAGS -D__APPLE_USE_RFC_3542"
# kqueue
echo " + kqueue found"
have=NGX_HAVE_KQUEUE . auto/have
have=NGX_HAVE_CLEAR_EVENT . auto/have
EVENT_MODULES="$EVENT_MODULES $KQUEUE_MODULE"
CORE_SRCS="$CORE_SRCS $KQUEUE_SRCS"
EVENT_FOUND=YES
NGX_KQUEUE_CHECKED=YES
ngx_feature="kqueue's EVFILT_TIMER"
ngx_feature_name="NGX_HAVE_TIMER_EVENT"
ngx_feature_run=yes
ngx_feature_incs="#include <sys/event.h>
#include <sys/time.h>"
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="int kq;
struct kevent kev;
struct timespec ts;
if ((kq = kqueue()) == -1) return 1;
kev.ident = 0;
kev.filter = EVFILT_TIMER;
kev.flags = EV_ADD|EV_ENABLE;
kev.fflags = 0;
kev.data = 1000;
kev.udata = 0;
ts.tv_sec = 0;
ts.tv_nsec = 0;
if (kevent(kq, &kev, 1, &kev, 1, &ts) == -1) return 1;
if (kev.flags & EV_ERROR) return 1;"
. auto/feature
ngx_feature="Darwin 64-bit kqueue millisecond timeout bug"
ngx_feature_name=NGX_DARWIN_KEVENT_BUG
ngx_feature_run=bug
ngx_feature_incs="#include <sys/event.h>
#include <sys/time.h>"
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="int kq;
struct kevent kev;
struct timespec ts;
struct timeval tv, tv0;
kq = kqueue();
ts.tv_sec = 0;
ts.tv_nsec = 999000000;
gettimeofday(&tv, 0);
kevent(kq, NULL, 0, &kev, 1, &ts);
gettimeofday(&tv0, 0);
timersub(&tv0, &tv, &tv);
if (tv.tv_sec * 1000000 + tv.tv_usec < 900000) return 1;"
. auto/feature
# sendfile()
ngx_feature="sendfile()"
ngx_feature_name="NGX_HAVE_SENDFILE"
ngx_feature_run=yes
ngx_feature_incs="#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <sys/errno.h>"
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="int s = 0, fd = 1;
off_t n; off_t off = 0;
n = sendfile(s, fd, off, &n, NULL, 0);
if (n == -1 && errno == ENOSYS) return 1"
. auto/feature
if [ $ngx_found = yes ]; then
CORE_SRCS="$CORE_SRCS $DARWIN_SENDFILE_SRCS"
fi
ngx_feature="atomic(3)"
ngx_feature_name=NGX_DARWIN_ATOMIC
ngx_feature_run=no
ngx_feature_incs="#include <libkern/OSAtomic.h>"
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="int32_t lock = 0;
if (!OSAtomicCompareAndSwap32Barrier(0, 1, &lock)) return 1"
. auto/feature
================================================
FILE: auto/os/freebsd
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
have=NGX_FREEBSD . auto/have_headers
CORE_INCS="$UNIX_INCS"
CORE_DEPS="$UNIX_DEPS $FREEBSD_DEPS"
CORE_SRCS="$UNIX_SRCS $FREEBSD_SRCS"
ngx_spacer='
'
# __FreeBSD_version and sysctl kern.osreldate are the best ways
# to determine whether some capability exists and is safe to use.
# __FreeBSD_version is used for the testing of the build environment.
# sysctl kern.osreldate is used for the testing of the kernel capabilities.
version=`grep "#define __FreeBSD_version" /usr/include/osreldate.h \
| sed -e 's/^.* \(.*\)$/\1/'`
osreldate=`/sbin/sysctl -n kern.osreldate`
# setproctitle() in libutil
if [ \( $version -ge 500000 -a $version -lt 500012 \) \
-o $version -lt 410002 ]
then
echo " + setproctitle() in libutil"
CORE_LIBS="$CORE_LIBS -lutil"
NGX_SETPROCTITLE_LIB="-lutil"
fi
# sendfile
if [ $osreldate -gt 300007 ]; then
echo " + sendfile() found"
have=NGX_HAVE_SENDFILE . auto/have
CORE_SRCS="$CORE_SRCS $FREEBSD_SENDFILE_SRCS"
fi
if [ $NGX_FILE_AIO = YES ]; then
if [ $osreldate -gt 502103 ]; then
echo " + sendfile()'s SF_NODISKIO found"
have=NGX_HAVE_AIO_SENDFILE . auto/have
fi
fi
# POSIX semaphores
# http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/127545
if [ $osreldate -ge 701106 ]; then
echo " + POSIX semaphores should work"
else
have=NGX_HAVE_POSIX_SEM . auto/nohave
fi
# kqueue
if [ \( $osreldate -lt 500000 -a $osreldate -ge 410000 \) \
-o $osreldate -ge 500011 ]
then
echo " + kqueue found"
have=NGX_HAVE_KQUEUE . auto/have
have=NGX_HAVE_CLEAR_EVENT . auto/have
EVENT_MODULES="$EVENT_MODULES $KQUEUE_MODULE"
CORE_SRCS="$CORE_SRCS $KQUEUE_SRCS"
EVENT_FOUND=YES
fi
NGX_KQUEUE_CHECKED=YES
# kqueue's NOTE_LOWAT
if [ \( $version -lt 500000 -a $version -ge 430000 \) \
-o $version -ge 500018 ]
then
echo " + kqueue's NOTE_LOWAT found"
have=NGX_HAVE_LOWAT_EVENT . auto/have
fi
# kqueue's EVFILT_TIMER
if [ \( $version -lt 500000 -a $version -ge 440001 \) \
-o $version -ge 500023 ]
then
echo " + kqueue's EVFILT_TIMER found"
have=NGX_HAVE_TIMER_EVENT . auto/have
fi
# cpuset_setaffinity()
if [ $version -ge 701000 ]; then
echo " + cpuset_setaffinity() found"
have=NGX_HAVE_CPUSET_SETAFFINITY . auto/have
fi
================================================
FILE: auto/os/linux
================================================
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
have=NGX_LINUX . auto/have_headers
CORE_INCS="$UNIX_INCS"
CORE_DEPS="$UNIX_DEPS $LINUX_DEPS"
CORE_SRCS="$UNIX_SRCS $LINUX_SRCS"
ngx_spacer='
'
cc_aux_flags="$CC_AUX_FLAGS"
CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
# Linux kernel version
version=$((`uname -r \
| sed -n -e 's/^\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/ \
\1*256*256+\2*256+\3/p' \
-e 's/^\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/\1*256*256+\2*256/p'`))
version=${version:-0}
# posix_fadvise64() had been implemented in 2.5.60
if [ $version -lt 132412 ]; then
have=NGX_HAVE_POSIX_FADVISE . auto/nohave
fi
# epoll, EPOLLET version
ngx_feature="epoll"
ngx_feature_name="NGX_HAVE_EPOLL"
ngx_feature_run=yes
ngx_feature_incs="#include <sys/epoll.h>"
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="int efd = 0;
struct epoll_event ee;
ee.events = EPOLLIN|EPOLLOUT|EPOLLET;
ee.data.ptr = NULL;
(void) ee;
efd = epoll_create(100);
if (efd == -1) return 1;"
. auto/feature
if [ $ngx_found = yes ]; then
have=NGX_HAVE_CLEAR_EVENT . auto/have
CORE_SRCS="$CORE_SRCS $EPOLL_SRCS"
EVENT_MODULES="$EVENT_MODULES $EPOLL_MODULE"
EVENT_FOUND=YES
# EPOLLRDHUP appeared in Linux 2.6.17, glibc 2.8
ngx_feature="EPOLLRDHUP"
ngx_feature_name="NGX_HAVE_EPOLLRDHUP"
ngx_feature_run=no
ngx_feature_incs="#include <sys/epoll.h>"
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="int efd = 0, fd = 0;
struct epoll_event ee;
ee.events = EPOLLIN|EPOLLRDHUP|EPOLLET;
ee.data.ptr = NULL;
epoll_ctl(efd, EPOLL_CTL_ADD, fd, &ee)"
. auto/feature
# EPOLLEXCLUSIVE appeared in Linux 4.5, glibc 2.24
ngx_feature="EPOLLEXCLUSIVE"
ngx_feature_name="NGX_HAVE_EPOLLEXCLUSIVE"
ngx_feature_run=no
ngx_feature_incs="#include <sys/epoll.h>"
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="int efd = 0, fd = 0;
struct epoll_event ee;
ee.events = EPOLLIN|EPOLLEXCLUSIVE;
ee.data.ptr = NULL;
epoll_ctl(efd, EPOLL_CTL_ADD, fd, &ee)"
. auto/feature
# eventfd()
ngx_feature="eventfd()"
ngx_feature_name="NGX_HAVE_EVENTFD"
ngx_feature_run=no
ngx_feature_incs="#include <sys/eventfd.h>"
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="(void) eventfd(0, 0)"
. auto/feature
if [ $ngx_found = yes ]; then
have=NGX_HAVE_SYS_EVENTFD_H . auto/have
fi
if [ $ngx_found = no ]; then
ngx_feature="eventfd() (SYS_eventfd)"
ngx_feature_incs="#include <sys/syscall.h>"
ngx_feature_test="(void) SYS_eventfd"
. auto/feature
fi
fi
# O_PATH and AT_EMPTY_PATH were introduced in 2.6.39, glibc 2.14
ngx_feature="O_PATH"
ngx_feature_name="NGX_HAVE_O_PATH"
ngx_feature_run=no
ngx_feature_incs="#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>"
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="int fd; struct stat sb;
fd = openat(AT_FDCWD, \".\", O_PATH|O_DIRECTORY|O_NOFOLLOW);
if (fstatat(fd, \"\", &sb, AT_EMPTY_PATH) != 0) return 1"
. auto/feature
# sendfile()
CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE"
ngx_feature="sendfile()"
ngx_feature_name="NGX_HAVE_SENDFILE"
ngx_feature_run=yes
ngx_feature_incs="#include <sys/sendfile.h>
#include <errno.h>"
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="int s = 0, fd = 1;
ssize_t n; off_t off = 0;
n = sendfile(s, fd, &off, 1);
if (n == -1 && errno == ENOSYS) return 1"
. auto/feature
if [ $ngx_found = yes ]; then
CORE_SRCS="$CORE_SRCS $LINUX_SENDFILE_SRCS"
fi
# sendfile64()
CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
ngx_feature="sendfile64()"
ngx_feature_name="NGX_HAVE_SENDFILE64"
ngx_feature_run=yes
ngx_feature_incs="#include <sys/sendfile.h>
#include <errno.h>"
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="int s = 0, fd = 1;
ssize_t n; off_t off = 0;
n = sendfile(s, fd, &off, 1);
if (n == -1 && errno == ENOSYS) return 1"
. auto/feature
ngx_include="sys/prctl.h"; . auto/include
# prctl(PR_SET_DUMPABLE)
ngx_feature="prctl(PR_SET_DUMPABLE)"
ngx_feature_name="NGX_HAVE_PR_SET_DUMPABLE"
ngx_feature_run=yes
ngx_feature_incs="#include <sys/prctl.h>"
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="if (prctl(PR_SET_DUMPABLE, 1, 0, 0, 0) == -1) return 1"
. auto/feature
# prctl(PR_SET_KEEPCAPS)
ngx_feature="prctl(PR_SET_KEEPCAPS)"
ngx_feature_name="NGX_HAVE_PR_SET_KEEPCAPS"
ngx_feature_run=yes
ngx_feature_incs="#include <sys/prctl.h>"
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="if (prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0) == -1) return 1"
. auto/feature
# capabilities
ngx_feature="capabilities"
ngx_feature_name="NGX_HAVE_CAPABILITIES"
ngx_feature_run=no
ngx_feature_incs="#include <linux/capability.h>
#include <sys/syscall.h>"
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="struct __user_cap_data_struct data;
struct __user_cap_header_struct header;
header.version = _LINUX_CAPABILITY_VERSION_1;
data.effective = CAP_TO_MASK(CAP_NET_RAW);
data.permitted = 0;
(void) header;
(void) data;
(void) SYS_capset"
. auto/feature
# crypt_r()
ngx_feature="crypt_r()"
ngx_feature_name="NGX_HAVE_GNU_CRYPT_R"
ngx_feature_run=no
ngx_feature_incs="#include <crypt.h>"
ngx_feature_path=
ngx_feature_libs=-lcrypt
ngx_feature_test="struct crypt_data cd;
crypt_r(\"key\", \"salt\", &cd);"
. auto/feature
ngx_include="sys/vfs.h"; . auto/include
CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
#
gitextract_120cn_n1/
├── README
├── auto/
│ ├── cc/
│ │ ├── acc
│ │ ├── bcc
│ │ ├── ccc
│ │ ├── clang
│ │ ├── conf
│ │ ├── gcc
│ │ ├── icc
│ │ ├── msvc
│ │ ├── name
│ │ ├── owc
│ │ └── sunc
│ ├── configure
│ ├── define
│ ├── endianness
│ ├── feature
│ ├── have
│ ├── have_headers
│ ├── headers
│ ├── include
│ ├── init
│ ├── install
│ ├── lib/
│ │ ├── conf
│ │ ├── geoip/
│ │ │ └── conf
│ │ ├── google-perftools/
│ │ │ └── conf
│ │ ├── libatomic/
│ │ │ ├── conf
│ │ │ └── make
│ │ ├── libgd/
│ │ │ └── conf
│ │ ├── libxslt/
│ │ │ └── conf
│ │ ├── make
│ │ ├── openssl/
│ │ │ ├── conf
│ │ │ ├── make
│ │ │ ├── makefile.bcc
│ │ │ └── makefile.msvc
│ │ ├── pcre/
│ │ │ ├── conf
│ │ │ ├── make
│ │ │ ├── makefile.bcc
│ │ │ ├── makefile.msvc
│ │ │ └── makefile.owc
│ │ ├── perl/
│ │ │ ├── conf
│ │ │ └── make
│ │ └── zlib/
│ │ ├── conf
│ │ ├── make
│ │ ├── makefile.bcc
│ │ ├── makefile.msvc
│ │ └── makefile.owc
│ ├── make
│ ├── module
│ ├── modules
│ ├── nohave
│ ├── options
│ ├── os/
│ │ ├── conf
│ │ ├── darwin
│ │ ├── freebsd
│ │ ├── linux
│ │ ├── solaris
│ │ └── win32
│ ├── sources
│ ├── stubs
│ ├── summary
│ ├── threads
│ ├── types/
│ │ ├── sizeof
│ │ ├── typedef
│ │ ├── uintptr_t
│ │ └── value
│ └── unix
├── conf/
│ ├── fastcgi.conf
│ ├── fastcgi_params
│ ├── koi-utf
│ ├── koi-win
│ ├── mime.types
│ ├── nginx.conf
│ ├── scgi_params
│ ├── uwsgi_params
│ └── win-utf
├── contrib/
│ ├── README
│ ├── geo2nginx.pl
│ ├── unicode2nginx/
│ │ ├── koi-utf
│ │ ├── unicode-to-nginx.pl
│ │ └── win-utf
│ └── vim/
│ ├── ftdetect/
│ │ └── nginx.vim
│ ├── ftplugin/
│ │ └── nginx.vim
│ ├── indent/
│ │ └── nginx.vim
│ └── syntax/
│ └── nginx.vim
├── docs/
│ ├── GNUmakefile
│ ├── dtd/
│ │ ├── change_log_conf.dtd
│ │ └── changes.dtd
│ ├── html/
│ │ ├── 50x.html
│ │ └── index.html
│ ├── man/
│ │ └── nginx.8
│ ├── text/
│ │ ├── LICENSE
│ │ └── README
│ ├── xml/
│ │ ├── change_log_conf.xml
│ │ └── nginx/
│ │ └── changes.xml
│ ├── xsls/
│ │ └── changes.xsls
│ └── xslt/
│ └── changes.xslt
├── misc/
│ ├── GNUmakefile
│ └── README
└── src/
├── core/
│ ├── nginx.c
│ ├── nginx.h
│ ├── ngx_array.c
│ ├── ngx_array.h
│ ├── ngx_bpf.c
│ ├── ngx_bpf.h
│ ├── ngx_buf.c
│ ├── ngx_buf.h
│ ├── ngx_conf_file.c
│ ├── ngx_conf_file.h
│ ├── ngx_config.h
│ ├── ngx_connection.c
│ ├── ngx_connection.h
│ ├── ngx_core.h
│ ├── ngx_cpuinfo.c
│ ├── ngx_crc.h
│ ├── ngx_crc32.c
│ ├── ngx_crc32.h
│ ├── ngx_crypt.c
│ ├── ngx_crypt.h
│ ├── ngx_cycle.c
│ ├── ngx_cycle.h
│ ├── ngx_file.c
│ ├── ngx_file.h
│ ├── ngx_hash.c
│ ├── ngx_hash.h
│ ├── ngx_inet.c
│ ├── ngx_inet.h
│ ├── ngx_list.c
│ ├── ngx_list.h
│ ├── ngx_log.c
│ ├── ngx_log.h
│ ├── ngx_md5.c
│ ├── ngx_md5.h
│ ├── ngx_module.c
│ ├── ngx_module.h
│ ├── ngx_murmurhash.c
│ ├── ngx_murmurhash.h
│ ├── ngx_open_file_cache.c
│ ├── ngx_open_file_cache.h
│ ├── ngx_output_chain.c
│ ├── ngx_palloc.c
│ ├── ngx_palloc.h
│ ├── ngx_parse.c
│ ├── ngx_parse.h
│ ├── ngx_parse_time.c
│ ├── ngx_parse_time.h
│ ├── ngx_proxy_protocol.c
│ ├── ngx_proxy_protocol.h
│ ├── ngx_queue.c
│ ├── ngx_queue.h
│ ├── ngx_radix_tree.c
│ ├── ngx_radix_tree.h
│ ├── ngx_rbtree.c
│ ├── ngx_rbtree.h
│ ├── ngx_regex.c
│ ├── ngx_regex.h
│ ├── ngx_resolver.c
│ ├── ngx_resolver.h
│ ├── ngx_rwlock.c
│ ├── ngx_rwlock.h
│ ├── ngx_sha1.c
│ ├── ngx_sha1.h
│ ├── ngx_shmtx.c
│ ├── ngx_shmtx.h
│ ├── ngx_slab.c
│ ├── ngx_slab.h
│ ├── ngx_spinlock.c
│ ├── ngx_string.c
│ ├── ngx_string.h
│ ├── ngx_syslog.c
│ ├── ngx_syslog.h
│ ├── ngx_thread_pool.c
│ ├── ngx_thread_pool.h
│ ├── ngx_times.c
│ └── ngx_times.h
├── event/
│ ├── modules/
│ │ ├── ngx_devpoll_module.c
│ │ ├── ngx_epoll_module.c
│ │ ├── ngx_eventport_module.c
│ │ ├── ngx_iocp_module.c
│ │ ├── ngx_iocp_module.h
│ │ ├── ngx_kqueue_module.c
│ │ ├── ngx_poll_module.c
│ │ ├── ngx_select_module.c
│ │ ├── ngx_win32_poll_module.c
│ │ └── ngx_win32_select_module.c
│ ├── ngx_event.c
│ ├── ngx_event.h
│ ├── ngx_event_accept.c
│ ├── ngx_event_acceptex.c
│ ├── ngx_event_connect.c
│ ├── ngx_event_connect.h
│ ├── ngx_event_connectex.c
│ ├── ngx_event_openssl.c
│ ├── ngx_event_openssl.h
│ ├── ngx_event_openssl_stapling.c
│ ├── ngx_event_pipe.c
│ ├── ngx_event_pipe.h
│ ├── ngx_event_posted.c
│ ├── ngx_event_posted.h
│ ├── ngx_event_timer.c
│ ├── ngx_event_timer.h
│ ├── ngx_event_udp.c
│ ├── ngx_event_udp.h
│ └── quic/
│ ├── bpf/
│ │ ├── bpfgen.sh
│ │ ├── makefile
│ │ └── ngx_quic_reuseport_helper.c
│ ├── ngx_event_quic.c
│ ├── ngx_event_quic.h
│ ├── ngx_event_quic_ack.c
│ ├── ngx_event_quic_ack.h
│ ├── ngx_event_quic_bpf.c
│ ├── ngx_event_quic_bpf_code.c
│ ├── ngx_event_quic_connection.h
│ ├── ngx_event_quic_connid.c
│ ├── ngx_event_quic_connid.h
│ ├── ngx_event_quic_frames.c
│ ├── ngx_event_quic_frames.h
│ ├── ngx_event_quic_migration.c
│ ├── ngx_event_quic_migration.h
│ ├── ngx_event_quic_mtu.c
│ ├── ngx_event_quic_mtu.h
│ ├── ngx_event_quic_output.c
│ ├── ngx_event_quic_output.h
│ ├── ngx_event_quic_protection.c
│ ├── ngx_event_quic_protection.h
│ ├── ngx_event_quic_socket.c
│ ├── ngx_event_quic_socket.h
│ ├── ngx_event_quic_ssl.c
│ ├── ngx_event_quic_ssl.h
│ ├── ngx_event_quic_streams.c
│ ├── ngx_event_quic_streams.h
│ ├── ngx_event_quic_tokens.c
│ ├── ngx_event_quic_tokens.h
│ ├── ngx_event_quic_transport.c
│ └── ngx_event_quic_transport.h
├── http/
│ ├── modules/
│ │ ├── ngx_http_access_module.c
│ │ ├── ngx_http_addition_filter_module.c
│ │ ├── ngx_http_auth_basic_module.c
│ │ ├── ngx_http_auth_request_module.c
│ │ ├── ngx_http_autoindex_module.c
│ │ ├── ngx_http_browser_module.c
│ │ ├── ngx_http_charset_filter_module.c
│ │ ├── ngx_http_chunked_filter_module.c
│ │ ├── ngx_http_dav_module.c
│ │ ├── ngx_http_degradation_module.c
│ │ ├── ngx_http_empty_gif_module.c
│ │ ├── ngx_http_fastcgi_module.c
│ │ ├── ngx_http_flv_module.c
│ │ ├── ngx_http_geo_module.c
│ │ ├── ngx_http_geoip_module.c
│ │ ├── ngx_http_grpc_module.c
│ │ ├── ngx_http_gunzip_filter_module.c
│ │ ├── ngx_http_gzip_filter_module.c
│ │ ├── ngx_http_gzip_static_module.c
│ │ ├── ngx_http_headers_filter_module.c
│ │ ├── ngx_http_image_filter_module.c
│ │ ├── ngx_http_index_module.c
│ │ ├── ngx_http_limit_conn_module.c
│ │ ├── ngx_http_limit_req_module.c
│ │ ├── ngx_http_log_module.c
│ │ ├── ngx_http_map_module.c
│ │ ├── ngx_http_memcached_module.c
│ │ ├── ngx_http_mirror_module.c
│ │ ├── ngx_http_mp4_module.c
│ │ ├── ngx_http_not_modified_filter_module.c
│ │ ├── ngx_http_proxy_module.c
│ │ ├── ngx_http_quic_module.c
│ │ ├── ngx_http_quic_module.h
│ │ ├── ngx_http_random_index_module.c
│ │ ├── ngx_http_range_filter_module.c
│ │ ├── ngx_http_realip_module.c
│ │ ├── ngx_http_referer_module.c
│ │ ├── ngx_http_rewrite_module.c
│ │ ├── ngx_http_scgi_module.c
│ │ ├── ngx_http_secure_link_module.c
│ │ ├── ngx_http_slice_filter_module.c
│ │ ├── ngx_http_split_clients_module.c
│ │ ├── ngx_http_ssi_filter_module.c
│ │ ├── ngx_http_ssi_filter_module.h
│ │ ├── ngx_http_ssl_module.c
│ │ ├── ngx_http_ssl_module.h
│ │ ├── ngx_http_static_module.c
│ │ ├── ngx_http_stub_status_module.c
│ │ ├── ngx_http_sub_filter_module.c
│ │ ├── ngx_http_try_files_module.c
│ │ ├── ngx_http_upstream_hash_module.c
│ │ ├── ngx_http_upstream_ip_hash_module.c
│ │ ├── ngx_http_upstream_keepalive_module.c
│ │ ├── ngx_http_upstream_least_conn_module.c
│ │ ├── ngx_http_upstream_random_module.c
│ │ ├── ngx_http_upstream_zone_module.c
│ │ ├── ngx_http_userid_filter_module.c
│ │ ├── ngx_http_uwsgi_module.c
│ │ ├── ngx_http_xslt_filter_module.c
│ │ └── perl/
│ │ ├── Makefile.PL
│ │ ├── nginx.pm
│ │ ├── nginx.xs
│ │ ├── ngx_http_perl_module.c
│ │ ├── ngx_http_perl_module.h
│ │ └── typemap
│ ├── ngx_http.c
│ ├── ngx_http.h
│ ├── ngx_http_cache.h
│ ├── ngx_http_config.h
│ ├── ngx_http_copy_filter_module.c
│ ├── ngx_http_core_module.c
│ ├── ngx_http_core_module.h
│ ├── ngx_http_file_cache.c
│ ├── ngx_http_header_filter_module.c
│ ├── ngx_http_parse.c
│ ├── ngx_http_postpone_filter_module.c
│ ├── ngx_http_request.c
│ ├── ngx_http_request.h
│ ├── ngx_http_request_body.c
│ ├── ngx_http_script.c
│ ├── ngx_http_script.h
│ ├── ngx_http_special_response.c
│ ├── ngx_http_upstream.c
│ ├── ngx_http_upstream.h
│ ├── ngx_http_upstream_round_robin.c
│ ├── ngx_http_upstream_round_robin.h
│ ├── ngx_http_variables.c
│ ├── ngx_http_variables.h
│ ├── ngx_http_write_filter_module.c
│ ├── v2/
│ │ ├── ngx_http_v2.c
│ │ ├── ngx_http_v2.h
│ │ ├── ngx_http_v2_encode.c
│ │ ├── ngx_http_v2_filter_module.c
│ │ ├── ngx_http_v2_huff_decode.c
│ │ ├── ngx_http_v2_huff_encode.c
│ │ ├── ngx_http_v2_module.c
│ │ ├── ngx_http_v2_module.h
│ │ └── ngx_http_v2_table.c
│ └── v3/
│ ├── ngx_http_v3.c
│ ├── ngx_http_v3.h
│ ├── ngx_http_v3_encode.c
│ ├── ngx_http_v3_encode.h
│ ├── ngx_http_v3_filter_module.c
│ ├── ngx_http_v3_module.c
│ ├── ngx_http_v3_parse.c
│ ├── ngx_http_v3_parse.h
│ ├── ngx_http_v3_request.c
│ ├── ngx_http_v3_streams.c
│ ├── ngx_http_v3_streams.h
│ ├── ngx_http_v3_tables.c
│ └── ngx_http_v3_tables.h
├── mail/
│ ├── ngx_mail.c
│ ├── ngx_mail.h
│ ├── ngx_mail_auth_http_module.c
│ ├── ngx_mail_core_module.c
│ ├── ngx_mail_handler.c
│ ├── ngx_mail_imap_handler.c
│ ├── ngx_mail_imap_module.c
│ ├── ngx_mail_imap_module.h
│ ├── ngx_mail_parse.c
│ ├── ngx_mail_pop3_handler.c
│ ├── ngx_mail_pop3_module.c
│ ├── ngx_mail_pop3_module.h
│ ├── ngx_mail_proxy_module.c
│ ├── ngx_mail_realip_module.c
│ ├── ngx_mail_smtp_handler.c
│ ├── ngx_mail_smtp_module.c
│ ├── ngx_mail_smtp_module.h
│ ├── ngx_mail_ssl_module.c
│ └── ngx_mail_ssl_module.h
├── misc/
│ ├── ngx_cpp_test_module.cpp
│ └── ngx_google_perftools_module.c
├── os/
│ ├── unix/
│ │ ├── ngx_alloc.c
│ │ ├── ngx_alloc.h
│ │ ├── ngx_atomic.h
│ │ ├── ngx_channel.c
│ │ ├── ngx_channel.h
│ │ ├── ngx_daemon.c
│ │ ├── ngx_darwin.h
│ │ ├── ngx_darwin_config.h
│ │ ├── ngx_darwin_init.c
│ │ ├── ngx_darwin_sendfile_chain.c
│ │ ├── ngx_dlopen.c
│ │ ├── ngx_dlopen.h
│ │ ├── ngx_errno.c
│ │ ├── ngx_errno.h
│ │ ├── ngx_file_aio_read.c
│ │ ├── ngx_files.c
│ │ ├── ngx_files.h
│ │ ├── ngx_freebsd.h
│ │ ├── ngx_freebsd_config.h
│ │ ├── ngx_freebsd_init.c
│ │ ├── ngx_freebsd_sendfile_chain.c
│ │ ├── ngx_gcc_atomic_amd64.h
│ │ ├── ngx_gcc_atomic_ppc.h
│ │ ├── ngx_gcc_atomic_sparc64.h
│ │ ├── ngx_gcc_atomic_x86.h
│ │ ├── ngx_linux.h
│ │ ├── ngx_linux_aio_read.c
│ │ ├── ngx_linux_config.h
│ │ ├── ngx_linux_init.c
│ │ ├── ngx_linux_sendfile_chain.c
│ │ ├── ngx_os.h
│ │ ├── ngx_posix_config.h
│ │ ├── ngx_posix_init.c
│ │ ├── ngx_process.c
│ │ ├── ngx_process.h
│ │ ├── ngx_process_cycle.c
│ │ ├── ngx_process_cycle.h
│ │ ├── ngx_readv_chain.c
│ │ ├── ngx_recv.c
│ │ ├── ngx_send.c
│ │ ├── ngx_setaffinity.c
│ │ ├── ngx_setaffinity.h
│ │ ├── ngx_setproctitle.c
│ │ ├── ngx_setproctitle.h
│ │ ├── ngx_shmem.c
│ │ ├── ngx_shmem.h
│ │ ├── ngx_socket.c
│ │ ├── ngx_socket.h
│ │ ├── ngx_solaris.h
│ │ ├── ngx_solaris_config.h
│ │ ├── ngx_solaris_init.c
│ │ ├── ngx_solaris_sendfilev_chain.c
│ │ ├── ngx_sunpro_amd64.il
│ │ ├── ngx_sunpro_atomic_sparc64.h
│ │ ├── ngx_sunpro_sparc64.il
│ │ ├── ngx_sunpro_x86.il
│ │ ├── ngx_thread.h
│ │ ├── ngx_thread_cond.c
│ │ ├── ngx_thread_id.c
│ │ ├── ngx_thread_mutex.c
│ │ ├── ngx_time.c
│ │ ├── ngx_time.h
│ │ ├── ngx_udp_recv.c
│ │ ├── ngx_udp_send.c
│ │ ├── ngx_udp_sendmsg_chain.c
│ │ ├── ngx_user.c
│ │ ├── ngx_user.h
│ │ └── ngx_writev_chain.c
│ └── win32/
│ ├── nginx.rc
│ ├── nginx_icon16.xpm
│ ├── nginx_icon32.xpm
│ ├── nginx_icon48.xpm
│ ├── ngx_alloc.c
│ ├── ngx_alloc.h
│ ├── ngx_atomic.h
│ ├── ngx_dlopen.c
│ ├── ngx_dlopen.h
│ ├── ngx_errno.c
│ ├── ngx_errno.h
│ ├── ngx_event_log.c
│ ├── ngx_files.c
│ ├── ngx_files.h
│ ├── ngx_os.h
│ ├── ngx_process.c
│ ├── ngx_process.h
│ ├── ngx_process_cycle.c
│ ├── ngx_process_cycle.h
│ ├── ngx_service.c
│ ├── ngx_shmem.c
│ ├── ngx_shmem.h
│ ├── ngx_socket.c
│ ├── ngx_socket.h
│ ├── ngx_stat.c
│ ├── ngx_thread.c
│ ├── ngx_thread.h
│ ├── ngx_time.c
│ ├── ngx_time.h
│ ├── ngx_udp_wsarecv.c
│ ├── ngx_user.c
│ ├── ngx_user.h
│ ├── ngx_win32_config.h
│ ├── ngx_win32_init.c
│ ├── ngx_wsarecv.c
│ ├── ngx_wsarecv_chain.c
│ ├── ngx_wsasend.c
│ └── ngx_wsasend_chain.c
└── stream/
├── ngx_stream.c
├── ngx_stream.h
├── ngx_stream_access_module.c
├── ngx_stream_core_module.c
├── ngx_stream_geo_module.c
├── ngx_stream_geoip_module.c
├── ngx_stream_handler.c
├── ngx_stream_limit_conn_module.c
├── ngx_stream_log_module.c
├── ngx_stream_map_module.c
├── ngx_stream_proxy_module.c
├── ngx_stream_quic_module.c
├── ngx_stream_quic_module.h
├── ngx_stream_realip_module.c
├── ngx_stream_return_module.c
├── ngx_stream_script.c
├── ngx_stream_script.h
├── ngx_stream_set_module.c
├── ngx_stream_split_clients_module.c
├── ngx_stream_ssl_module.c
├── ngx_stream_ssl_module.h
├── ngx_stream_ssl_preread_module.c
├── ngx_stream_upstream.c
├── ngx_stream_upstream.h
├── ngx_stream_upstream_hash_module.c
├── ngx_stream_upstream_least_conn_module.c
├── ngx_stream_upstream_random_module.c
├── ngx_stream_upstream_round_robin.c
├── ngx_stream_upstream_round_robin.h
├── ngx_stream_upstream_zone_module.c
├── ngx_stream_variables.c
├── ngx_stream_variables.h
└── ngx_stream_write_filter_module.c
Showing preview only (214K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3508 symbols across 355 files)
FILE: src/core/nginx.c
function main (line 195) | int ngx_cdecl
function ngx_show_version_info (line 390) | static void
function ngx_int_t (line 458) | static ngx_int_t
function ngx_cleanup_environment (line 629) | static void
function ngx_pid_t (line 648) | ngx_pid_t
function ngx_int_t (line 752) | static ngx_int_t
function ngx_int_t (line 898) | static ngx_int_t
function ngx_int_t (line 940) | static ngx_int_t
type group (line 1140) | struct group
type passwd (line 1141) | struct passwd
type passwd (line 1233) | struct passwd
type group (line 1234) | struct group
function ngx_cpuset_t (line 1449) | ngx_cpuset_t *
function ngx_unload_module (line 1616) | static void
FILE: src/core/ngx_array.c
function ngx_array_t (line 12) | ngx_array_t *
function ngx_array_destroy (line 30) | void
FILE: src/core/ngx_array.h
type ngx_array_t (line 16) | typedef struct {
function ngx_inline (line 31) | static ngx_inline ngx_int_t
FILE: src/core/ngx_bpf.c
function ngx_inline (line 13) | static ngx_inline int
function ngx_bpf_program_link (line 20) | void
function ngx_bpf_load_program (line 37) | int
function ngx_bpf_map_create (line 75) | int
function ngx_bpf_map_update (line 101) | int
function ngx_bpf_map_delete (line 117) | int
function ngx_bpf_map_lookup (line 131) | int
FILE: src/core/ngx_bpf.h
type ngx_bpf_reloc_t (line 17) | typedef struct {
type ngx_bpf_program_t (line 22) | typedef struct {
type bpf_map_type (line 36) | enum bpf_map_type
FILE: src/core/ngx_buf.c
function ngx_buf_t (line 12) | ngx_buf_t *
function ngx_chain_t (line 47) | ngx_chain_t *
function ngx_chain_t (line 68) | ngx_chain_t *
function ngx_int_t (line 126) | ngx_int_t
function ngx_chain_t (line 156) | ngx_chain_t *
function ngx_chain_update_chains (line 184) | void
function off_t (line 226) | off_t
function ngx_chain_t (line 271) | ngx_chain_t *
FILE: src/core/ngx_buf.h
type ngx_buf_t (line 18) | typedef struct ngx_buf_s ngx_buf_t;
type ngx_buf_s (line 20) | struct ngx_buf_s {
type ngx_chain_s (line 59) | struct ngx_chain_s {
type ngx_bufs_t (line 65) | typedef struct {
type ngx_output_chain_ctx_t (line 71) | typedef struct ngx_output_chain_ctx_s ngx_output_chain_ctx_t;
type ngx_int_t (line 73) | typedef ngx_int_t (*ngx_output_chain_filter_pt)(void *ctx, ngx_chain_t *...
type ngx_output_chain_ctx_s (line 78) | struct ngx_output_chain_ctx_s {
type ngx_chain_writer_ctx_t (line 116) | typedef struct {
FILE: src/core/ngx_conf_file.c
function ngx_int_t (line 101) | static ngx_int_t
function ngx_int_t (line 355) | static ngx_int_t
function ngx_int_t (line 502) | static ngx_int_t
function ngx_int_t (line 886) | ngx_int_t
function ngx_open_file_t (line 897) | ngx_open_file_t *
function ngx_conf_flush_files (line 961) | static void
function ngx_conf_log_error (line 991) | void ngx_cdecl
FILE: src/core/ngx_conf_file.h
type ngx_command_s (line 77) | struct ngx_command_s {
type ngx_open_file_s (line 89) | struct ngx_open_file_s {
type ngx_conf_file_t (line 98) | typedef struct {
type ngx_conf_dump_t (line 106) | typedef struct {
type ngx_conf_s (line 116) | struct ngx_conf_s {
type ngx_conf_post_t (line 138) | typedef struct {
type ngx_conf_deprecated_t (line 143) | typedef struct {
type ngx_conf_num_bounds_t (line 150) | typedef struct {
type ngx_conf_enum_t (line 157) | typedef struct {
type ngx_conf_bitmask_t (line 165) | typedef struct {
FILE: src/core/ngx_config.h
type ngx_int_t (line 78) | typedef intptr_t ngx_int_t;
type ngx_uint_t (line 79) | typedef uintptr_t ngx_uint_t;
type ngx_flag_t (line 80) | typedef intptr_t ngx_flag_t;
FILE: src/core/ngx_connection.c
function ngx_listening_t (line 19) | ngx_listening_t *
function ngx_int_t (line 98) | ngx_int_t
function ngx_int_t (line 134) | ngx_int_t
function ngx_int_t (line 406) | ngx_int_t
function ngx_configure_listening_sockets (line 732) | void
function ngx_close_listening_sockets (line 1040) | void
function ngx_connection_t (line 1119) | ngx_connection_t *
function ngx_free_connection (line 1185) | void
function ngx_close_connection (line 1198) | void
function ngx_reusable_connection (line 1286) | void
function ngx_drain_connections (line 1317) | static void
function ngx_close_idle_connections (line 1374) | void
function ngx_int_t (line 1394) | ngx_int_t
function ngx_int_t (line 1466) | ngx_int_t
function ngx_int_t (line 1509) | ngx_int_t
FILE: src/core/ngx_connection.h
type ngx_listening_t (line 16) | typedef struct ngx_listening_s ngx_listening_t;
type ngx_listening_s (line 18) | struct ngx_listening_s {
type ngx_connection_log_error_e (line 95) | typedef enum {
type ngx_connection_tcp_nodelay_e (line 104) | typedef enum {
type ngx_connection_tcp_nopush_e (line 111) | typedef enum {
type ngx_connection_s (line 123) | struct ngx_connection_s {
type sockaddr (line 214) | struct sockaddr
FILE: src/core/ngx_core.h
type ngx_module_t (line 15) | typedef struct ngx_module_s ngx_module_t;
type ngx_conf_t (line 16) | typedef struct ngx_conf_s ngx_conf_t;
type ngx_cycle_t (line 17) | typedef struct ngx_cycle_s ngx_cycle_t;
type ngx_pool_t (line 18) | typedef struct ngx_pool_s ngx_pool_t;
type ngx_chain_t (line 19) | typedef struct ngx_chain_s ngx_chain_t;
type ngx_log_t (line 20) | typedef struct ngx_log_s ngx_log_t;
type ngx_open_file_t (line 21) | typedef struct ngx_open_file_s ngx_open_file_t;
type ngx_command_t (line 22) | typedef struct ngx_command_s ngx_command_t;
type ngx_file_t (line 23) | typedef struct ngx_file_s ngx_file_t;
type ngx_event_t (line 24) | typedef struct ngx_event_s ngx_event_t;
type ngx_event_aio_t (line 25) | typedef struct ngx_event_aio_s ngx_event_aio_t;
type ngx_connection_t (line 26) | typedef struct ngx_connection_s ngx_connection_t;
type ngx_thread_task_t (line 27) | typedef struct ngx_thread_task_s ngx_thread_task_t;
type ngx_ssl_t (line 28) | typedef struct ngx_ssl_s ngx_ssl_t;
type ngx_proxy_protocol_t (line 29) | typedef struct ngx_proxy_protocol_s ngx_proxy_protocol_t;
type ngx_quic_stream_t (line 30) | typedef struct ngx_quic_stream_s ngx_quic_stream_t;
type ngx_ssl_connection_t (line 31) | typedef struct ngx_ssl_connection_s ngx_ssl_connection_t;
type ngx_udp_connection_t (line 32) | typedef struct ngx_udp_connection_s ngx_udp_connection_t;
FILE: src/core/ngx_cpuinfo.c
function ngx_inline (line 20) | static ngx_inline void
function ngx_inline (line 49) | static ngx_inline void
function ngx_cpuinfo (line 72) | void
function ngx_cpuinfo (line 133) | void
FILE: src/core/ngx_crc.h
function ngx_inline (line 18) | static ngx_inline uint32_t
FILE: src/core/ngx_crc32.c
function ngx_int_t (line 105) | ngx_int_t
FILE: src/core/ngx_crc32.h
function ngx_inline (line 20) | static ngx_inline uint32_t
function ngx_inline (line 38) | static ngx_inline uint32_t
function ngx_inline (line 57) | static ngx_inline void
FILE: src/core/ngx_crypt.c
function ngx_int_t (line 29) | ngx_int_t
function ngx_int_t (line 51) | static ngx_int_t
function u_char (line 152) | static u_char *
function ngx_int_t (line 167) | static ngx_int_t
function ngx_int_t (line 187) | static ngx_int_t
function ngx_int_t (line 239) | static ngx_int_t
FILE: src/core/ngx_cycle.c
function ngx_cycle_t (line 38) | ngx_cycle_t *
function ngx_destroy_cycle_pools (line 943) | static void
function ngx_int_t (line 951) | static ngx_int_t
function ngx_int_t (line 1017) | ngx_int_t
function ngx_delete_pidfile (line 1065) | void
function ngx_int_t (line 1082) | ngx_int_t
function ngx_int_t (line 1136) | static ngx_int_t
function ngx_reopen_files (line 1167) | void
function ngx_shm_zone_t (line 1291) | ngx_shm_zone_t *
function ngx_clean_old_cycles (line 1365) | static void
function ngx_set_shutdown_timer (line 1422) | void
function ngx_shutdown_timer_handler (line 1440) | static void
FILE: src/core/ngx_cycle.h
type ngx_shm_zone_t (line 25) | typedef struct ngx_shm_zone_s ngx_shm_zone_t;
type ngx_int_t (line 27) | typedef ngx_int_t (*ngx_shm_zone_init_pt) (ngx_shm_zone_t *zone, void *d...
type ngx_shm_zone_s (line 29) | struct ngx_shm_zone_s {
type ngx_cycle_s (line 39) | struct ngx_cycle_s {
type ngx_core_conf_t (line 89) | typedef struct {
FILE: src/core/ngx_file.c
function ngx_int_t (line 20) | ngx_int_t
function ngx_int_t (line 58) | static ngx_int_t
function ngx_write_chain_to_temp_file (line 108) | ssize_t
function ngx_int_t (line 140) | ngx_int_t
function ngx_create_hashed_filename (line 240) | void
function ngx_int_t (line 265) | ngx_int_t
function ngx_err_t (line 303) | ngx_err_t
function ngx_atomic_uint_t (line 347) | ngx_atomic_uint_t
function ngx_int_t (line 525) | ngx_int_t
function ngx_int_t (line 597) | ngx_int_t
function ngx_int_t (line 659) | ngx_int_t
function ngx_int_t (line 794) | ngx_int_t
function ngx_int_t (line 945) | ngx_int_t
FILE: src/core/ngx_file.h
type ngx_file_s (line 16) | struct ngx_file_s {
type ngx_msec_t (line 45) | typedef ngx_msec_t (*ngx_path_manager_pt) (void *data);
type ngx_msec_t (line 46) | typedef ngx_msec_t (*ngx_path_purger_pt) (void *data);
type ngx_path_t (line 50) | typedef struct {
type ngx_path_init_t (line 65) | typedef struct {
type ngx_temp_file_t (line 71) | typedef struct {
type ngx_ext_rename_file_t (line 87) | typedef struct {
type ngx_copy_file_t (line 100) | typedef struct {
type ngx_tree_ctx_t (line 111) | typedef struct ngx_tree_ctx_s ngx_tree_ctx_t;
type ngx_int_t (line 113) | typedef ngx_int_t (*ngx_tree_init_handler_pt) (void *ctx, void *prev);
type ngx_int_t (line 114) | typedef ngx_int_t (*ngx_tree_handler_pt) (ngx_tree_ctx_t *ctx, ngx_str_t...
type ngx_tree_ctx_s (line 116) | struct ngx_tree_ctx_s {
FILE: src/core/ngx_hash.c
function ngx_int_t (line 251) | ngx_int_t
function ngx_int_t (line 489) | ngx_int_t
function ngx_uint_t (line 634) | ngx_uint_t
function ngx_uint_t (line 649) | ngx_uint_t
function ngx_uint_t (line 664) | ngx_uint_t
function ngx_int_t (line 682) | ngx_int_t
function ngx_int_t (line 737) | ngx_int_t
FILE: src/core/ngx_hash.h
type ngx_hash_elt_t (line 16) | typedef struct {
type ngx_hash_t (line 23) | typedef struct {
type ngx_hash_wildcard_t (line 29) | typedef struct {
type ngx_hash_key_t (line 35) | typedef struct {
type ngx_uint_t (line 42) | typedef ngx_uint_t (*ngx_hash_key_pt) (u_char *data, size_t len);
type ngx_hash_combined_t (line 45) | typedef struct {
type ngx_hash_init_t (line 52) | typedef struct {
type ngx_hash_keys_arrays_t (line 75) | typedef struct {
type ngx_table_elt_t (line 92) | typedef struct {
FILE: src/core/ngx_inet.c
type sockaddr (line 16) | struct sockaddr
function in_addr_t (line 19) | in_addr_t
function ngx_int_t (line 64) | ngx_int_t
function ngx_sock_ntop (line 182) | size_t
function ngx_inet_ntop (line 265) | size_t
function ngx_inet6_ntop (line 295) | size_t
function ngx_int_t (line 374) | ngx_int_t
function ngx_int_t (line 474) | ngx_int_t
function ngx_int_t (line 561) | ngx_int_t
function ngx_int_t (line 621) | ngx_int_t
function ngx_int_t (line 683) | ngx_int_t
function ngx_int_t (line 704) | static ngx_int_t
function ngx_int_t (line 782) | static ngx_int_t
function ngx_int_t (line 988) | static ngx_int_t
function ngx_int_t (line 1116) | ngx_int_t
function ngx_int_t (line 1197) | ngx_int_t
function ngx_int_t (line 1262) | static ngx_int_t
function ngx_int_t (line 1323) | ngx_int_t
function in_port_t (line 1403) | in_port_t
function ngx_inet_set_port (line 1431) | void
function ngx_uint_t (line 1461) | ngx_uint_t
FILE: src/core/ngx_inet.h
type ngx_sockaddr_t (line 35) | typedef union {
type ngx_in_cidr_t (line 47) | typedef struct {
type ngx_in6_cidr_t (line 55) | typedef struct {
type ngx_cidr_t (line 63) | typedef struct {
type ngx_addr_t (line 74) | typedef struct {
type ngx_url_t (line 81) | typedef struct {
type sockaddr (line 114) | struct sockaddr
type sockaddr (line 118) | struct sockaddr
type sockaddr (line 125) | struct sockaddr
type sockaddr (line 126) | struct sockaddr
type sockaddr (line 127) | struct sockaddr
type sockaddr (line 128) | struct sockaddr
type sockaddr (line 129) | struct sockaddr
FILE: src/core/ngx_list.c
function ngx_list_t (line 12) | ngx_list_t *
FILE: src/core/ngx_list.h
type ngx_list_part_t (line 16) | typedef struct ngx_list_part_s ngx_list_part_t;
type ngx_list_part_s (line 18) | struct ngx_list_part_s {
type ngx_list_t (line 25) | typedef struct {
function ngx_inline (line 36) | static ngx_inline ngx_int_t
FILE: src/core/ngx_log.c
type ngx_log_memory_buf_t (line 24) | typedef struct {
function ngx_log_error_core (line 101) | void
function ngx_log_error (line 215) | void ngx_cdecl
function ngx_log_debug_core (line 229) | void ngx_cdecl
function ngx_log_abort (line 242) | void ngx_cdecl
function ngx_log_stderr (line 258) | void ngx_cdecl
function u_char (line 287) | u_char *
function ngx_int_t (line 401) | ngx_int_t
function ngx_int_t (line 438) | ngx_int_t
function ngx_log_t (line 463) | ngx_log_t *
function ngx_log_insert (line 676) | static void
function ngx_log_memory_writer (line 712) | static void
function ngx_log_memory_cleanup (line 742) | static void
FILE: src/core/ngx_log.h
type u_char (line 45) | typedef u_char *(*ngx_log_handler_pt) (ngx_log_t *log, u_char *buf, size...
type ngx_log_s (line 50) | struct ngx_log_s {
function ngx_inline (line 250) | static ngx_inline void
function ngx_inline (line 257) | static ngx_inline void
FILE: src/core/ngx_md5.c
function ngx_md5_init (line 18) | void
function ngx_md5_update (line 30) | void
function ngx_md5_final (line 61) | void
function u_char (line 169) | static const u_char *
FILE: src/core/ngx_md5.h
type ngx_md5_t (line 16) | typedef struct {
FILE: src/core/ngx_module.c
function ngx_int_t (line 25) | ngx_int_t
function ngx_int_t (line 42) | ngx_int_t
function ngx_int_t (line 65) | ngx_int_t
function ngx_int_t (line 82) | ngx_int_t
function ngx_int_t (line 156) | ngx_int_t
function ngx_uint_t (line 279) | static ngx_uint_t
function ngx_uint_t (line 318) | static ngx_uint_t
FILE: src/core/ngx_module.h
type ngx_module_s (line 222) | struct ngx_module_s {
type ngx_core_module_t (line 260) | typedef struct {
FILE: src/core/ngx_murmurhash.c
function ngx_murmur_hash2 (line 11) | uint32_t
FILE: src/core/ngx_open_file_cache.c
function ngx_open_file_cache_t (line 56) | ngx_open_file_cache_t *
function ngx_open_file_cache_cleanup (line 88) | static void
function ngx_int_t (line 143) | ngx_int_t
function ngx_fd_t (line 491) | static ngx_fd_t
function ngx_int_t (line 558) | static ngx_int_t
function ngx_fd_t (line 613) | static ngx_fd_t
function ngx_int_t (line 780) | static ngx_int_t
function ngx_int_t (line 839) | static ngx_int_t
function ngx_open_file_add_event (line 953) | static void
function ngx_open_file_cleanup (line 1017) | static void
function ngx_close_cached_file (line 1031) | static void
function ngx_open_file_del_event (line 1077) | static void
function ngx_expire_old_cached_files (line 1094) | static void
function ngx_open_file_cache_rbtree_insert_value (line 1145) | static void
function ngx_cached_open_file_t (line 1186) | static ngx_cached_open_file_t *
function ngx_open_file_cache_remove (line 1226) | static void
FILE: src/core/ngx_open_file_cache.h
type ngx_open_file_info_t (line 19) | typedef struct {
type ngx_cached_open_file_t (line 54) | typedef struct ngx_cached_open_file_s ngx_cached_open_file_t;
type ngx_cached_open_file_s (line 56) | struct ngx_cached_open_file_s {
type ngx_open_file_cache_t (line 91) | typedef struct {
type ngx_open_file_cache_cleanup_t (line 102) | typedef struct {
type ngx_open_file_cache_event_t (line 110) | typedef struct {
FILE: src/core/ngx_output_chain.c
function ngx_int_t (line 45) | ngx_int_t
function ngx_inline (line 247) | static ngx_inline ngx_int_t
function ngx_int_t (line 306) | static ngx_int_t
function ngx_int_t (line 326) | static ngx_int_t
function ngx_int_t (line 395) | static ngx_int_t
function ngx_int_t (line 445) | static ngx_int_t
function ngx_int_t (line 521) | static ngx_int_t
function ngx_int_t (line 675) | ngx_int_t
FILE: src/core/ngx_palloc.c
function ngx_pool_t (line 18) | ngx_pool_t *
function ngx_destroy_pool (line 46) | void
function ngx_reset_pool (line 99) | void
function ngx_inline (line 148) | static ngx_inline void *
function ngx_int_t (line 277) | ngx_int_t
function ngx_pool_cleanup_t (line 311) | ngx_pool_cleanup_t *
function ngx_pool_run_cleanup_file (line 342) | void
function ngx_pool_cleanup_file (line 363) | void
function ngx_pool_delete_file (line 378) | void
FILE: src/core/ngx_palloc.h
type ngx_pool_cleanup_t (line 32) | typedef struct ngx_pool_cleanup_s ngx_pool_cleanup_t;
type ngx_pool_cleanup_s (line 34) | struct ngx_pool_cleanup_s {
type ngx_pool_large_t (line 41) | typedef struct ngx_pool_large_s ngx_pool_large_t;
type ngx_pool_large_s (line 43) | struct ngx_pool_large_s {
type ngx_pool_data_t (line 49) | typedef struct {
type ngx_pool_s (line 57) | struct ngx_pool_s {
type ngx_pool_cleanup_file_t (line 68) | typedef struct {
FILE: src/core/ngx_parse.c
function ngx_parse_size (line 12) | ssize_t
function off_t (line 58) | off_t
function ngx_int_t (line 111) | ngx_int_t
FILE: src/core/ngx_parse_time.c
function time_t (line 14) | time_t
FILE: src/core/ngx_proxy_protocol.c
type ngx_proxy_protocol_header_t (line 19) | typedef struct {
type ngx_proxy_protocol_inet_addrs_t (line 27) | typedef struct {
type ngx_proxy_protocol_inet6_addrs_t (line 35) | typedef struct {
function u_char (line 51) | u_char *
function u_char (line 149) | static u_char *
function u_char (line 192) | static u_char *
function u_char (line 225) | u_char *
function u_char (line 269) | static u_char *
FILE: src/core/ngx_proxy_protocol.h
type ngx_proxy_protocol_s (line 19) | struct ngx_proxy_protocol_s {
FILE: src/core/ngx_queue.c
function ngx_queue_t (line 17) | ngx_queue_t *
function ngx_queue_sort (line 50) | void
FILE: src/core/ngx_queue.h
type ngx_queue_t (line 16) | typedef struct ngx_queue_s ngx_queue_t;
type ngx_queue_s (line 18) | struct ngx_queue_s {
FILE: src/core/ngx_radix_tree.c
function ngx_radix_tree_t (line 15) | ngx_radix_tree_t *
function ngx_int_t (line 108) | ngx_int_t
function ngx_int_t (line 173) | ngx_int_t
function ngx_radix32tree_find (line 236) | uintptr_t
function ngx_int_t (line 268) | ngx_int_t
function ngx_int_t (line 351) | ngx_int_t
function ngx_radix128tree_find (line 424) | uintptr_t
function ngx_radix_node_t (line 463) | static ngx_radix_node_t *
FILE: src/core/ngx_radix_tree.h
type ngx_radix_node_t (line 18) | typedef struct ngx_radix_node_s ngx_radix_node_t;
type ngx_radix_node_s (line 20) | struct ngx_radix_node_s {
type ngx_radix_tree_t (line 28) | typedef struct {
FILE: src/core/ngx_rbtree.c
function ngx_rbtree_insert (line 24) | void
function ngx_rbtree_insert_value (line 96) | void
function ngx_rbtree_insert_timer_value (line 121) | void
function ngx_rbtree_delete (line 156) | void
function ngx_inline (line 318) | static ngx_inline void
function ngx_inline (line 348) | static ngx_inline void
function ngx_rbtree_node_t (line 378) | ngx_rbtree_node_t *
FILE: src/core/ngx_rbtree.h
type ngx_uint_t (line 16) | typedef ngx_uint_t ngx_rbtree_key_t;
type ngx_int_t (line 17) | typedef ngx_int_t ngx_rbtree_key_int_t;
type ngx_rbtree_node_t (line 20) | typedef struct ngx_rbtree_node_s ngx_rbtree_node_t;
type ngx_rbtree_node_s (line 22) | struct ngx_rbtree_node_s {
type ngx_rbtree_t (line 32) | typedef struct ngx_rbtree_s ngx_rbtree_t;
type ngx_rbtree_s (line 37) | struct ngx_rbtree_s {
function ngx_inline (line 76) | static ngx_inline ngx_rbtree_node_t *
FILE: src/core/ngx_regex.c
type ngx_regex_conf_t (line 12) | typedef struct {
function ngx_regex_init (line 72) | void
function ngx_inline (line 80) | static ngx_inline void
function ngx_inline (line 87) | static ngx_inline void
function ngx_int_t (line 94) | ngx_int_t
function ngx_int_t (line 197) | ngx_int_t
function ngx_regex_free (line 244) | static void ngx_libc_cdecl
function ngx_pcre_free_studies (line 253) | static void
function ngx_int_t (line 286) | static ngx_int_t
FILE: src/core/ngx_regex.h
type ngx_regex_t (line 23) | typedef struct {
type ngx_regex_compile_t (line 29) | typedef struct {
type ngx_regex_elt_t (line 43) | typedef struct {
FILE: src/core/ngx_resolver.c
type ngx_resolver_hdr_t (line 19) | typedef struct {
type ngx_resolver_qs_t (line 35) | typedef struct {
type ngx_resolver_an_t (line 43) | typedef struct {
type in6_addr (line 128) | struct in6_addr
function ngx_resolver_t (line 132) | ngx_resolver_t *
function ngx_resolver_cleanup (line 285) | static void
function ngx_resolver_cleanup_tree (line 333) | static void
function ngx_resolver_ctx_t (line 366) | ngx_resolver_ctx_t *
function ngx_int_t (line 405) | ngx_int_t
function ngx_resolve_name_done (line 487) | void
function ngx_int_t (line 578) | static ngx_int_t
function ngx_int_t (line 903) | ngx_int_t
function ngx_resolve_addr_done (line 1124) | void
function ngx_resolver_expire (line 1213) | static void
function ngx_int_t (line 1250) | static ngx_int_t
function ngx_int_t (line 1293) | static ngx_int_t
function ngx_int_t (line 1331) | static ngx_int_t
function ngx_resolver_resend_handler (line 1417) | static void
function time_t (line 1488) | static time_t
function ngx_uint_t (line 1538) | static ngx_uint_t
function ngx_resolver_udp_read (line 1550) | static void
function ngx_resolver_tcp_write (line 1589) | static void
function ngx_resolver_tcp_read (line 1646) | static void
function ngx_resolver_process_response (line 1715) | static void
type in6_addr (line 1915) | struct in6_addr
type in6_addr (line 2262) | struct in6_addr
function else (line 2344) | else if (type == NGX_RESOLVE_AAAA) {
type sockaddr (line 2432) | struct sockaddr
type sockaddr_in (line 2433) | struct sockaddr_in
type sockaddr_in (line 2434) | struct sockaddr_in
function ngx_resolver_process_srv (line 2556) | static void
function ngx_resolver_resolve_srv_names (line 2939) | static void
function ngx_resolver_srv_names_handler (line 3009) | static void
function ngx_resolver_process_ptr (line 3070) | static void
function ngx_resolver_node_t (line 3387) | static ngx_resolver_node_t *
function ngx_resolver_node_t (line 3428) | static ngx_resolver_node_t *
function ngx_resolver_node_t (line 3469) | static ngx_resolver_node_t *
function ngx_resolver_node_t (line 3502) | static ngx_resolver_node_t *
function ngx_resolver_rbtree_insert_value (line 3546) | static void
function ngx_resolver_rbtree_insert_addr6_value (line 3589) | static void
function ngx_int_t (line 3632) | static ngx_int_t
function ngx_int_t (line 3756) | static ngx_int_t
function ngx_int_t (line 3844) | static ngx_int_t
function ngx_int_t (line 3940) | static ngx_int_t
function ngx_int_t (line 4037) | static ngx_int_t
function ngx_resolver_timeout_handler (line 4061) | static void
function ngx_resolver_free_node (line 4074) | static void
function ngx_resolver_free (line 4149) | static void
function ngx_resolver_free_locked (line 4160) | static void
function ngx_resolver_addr_t (line 4184) | static ngx_resolver_addr_t *
function ngx_resolver_report_srv (line 4267) | static void
function u_char (line 4399) | static u_char *
function ngx_int_t (line 4422) | static ngx_int_t
function ngx_int_t (line 4508) | static ngx_int_t
function ngx_int_t (line 4693) | static ngx_int_t
FILE: src/core/ngx_resolver.h
type ngx_resolver_t (line 40) | typedef struct ngx_resolver_s ngx_resolver_t;
type ngx_resolver_connection_t (line 43) | typedef struct {
type ngx_resolver_ctx_t (line 56) | typedef struct ngx_resolver_ctx_s ngx_resolver_ctx_t;
type ngx_resolver_addr_t (line 61) | typedef struct {
type ngx_resolver_srv_t (line 70) | typedef struct {
type ngx_resolver_srv_name_t (line 78) | typedef struct {
type ngx_resolver_node_t (line 92) | typedef struct {
type ngx_resolver_s (line 148) | struct ngx_resolver_s {
type ngx_resolver_ctx_s (line 195) | struct ngx_resolver_ctx_s {
FILE: src/core/ngx_rwlock.c
function ngx_rwlock_wlock (line 19) | void
function ngx_rwlock_rlock (line 51) | void
function ngx_rwlock_unlock (line 89) | void
function ngx_rwlock_downgrade (line 112) | void
FILE: src/core/ngx_sha1.c
function ngx_sha1_init (line 19) | void
function ngx_sha1_update (line 32) | void
function ngx_sha1_final (line 63) | void
function u_char (line 156) | static const u_char *
FILE: src/core/ngx_sha1.h
type ngx_sha1_t (line 16) | typedef struct {
FILE: src/core/ngx_shmtx.c
function ngx_int_t (line 18) | ngx_int_t
function ngx_shmtx_destroy (line 46) | void
function ngx_uint_t (line 62) | ngx_uint_t
function ngx_shmtx_lock (line 69) | void
function ngx_shmtx_unlock (line 136) | void
function ngx_uint_t (line 149) | ngx_uint_t
function ngx_shmtx_wakeup (line 164) | static void
function ngx_int_t (line 202) | ngx_int_t
function ngx_shmtx_destroy (line 235) | void
function ngx_uint_t (line 245) | ngx_uint_t
function ngx_shmtx_lock (line 274) | void
function ngx_shmtx_unlock (line 289) | void
function ngx_uint_t (line 304) | ngx_uint_t
FILE: src/core/ngx_shmtx.h
type ngx_shmtx_sh_t (line 16) | typedef struct {
type ngx_shmtx_t (line 24) | typedef struct {
FILE: src/core/ngx_slab.c
function ngx_slab_sizes_init (line 85) | void
function ngx_slab_init (line 98) | void
function ngx_slab_free (line 449) | void
function ngx_slab_free_locked (line 460) | void
function ngx_slab_page_t (line 677) | static ngx_slab_page_t *
function ngx_slab_free_pages (line 733) | static void
function ngx_slab_error (line 813) | static void
FILE: src/core/ngx_slab.h
type ngx_slab_page_t (line 16) | typedef struct ngx_slab_page_s ngx_slab_page_t;
type ngx_slab_page_s (line 18) | struct ngx_slab_page_s {
type ngx_slab_stat_t (line 25) | typedef struct {
type ngx_slab_pool_t (line 34) | typedef struct {
FILE: src/core/ngx_spinlock.c
function ngx_spinlock (line 12) | void
FILE: src/core/ngx_string.c
function ngx_strlow (line 22) | void
function ngx_strnlen (line 34) | size_t
function u_char (line 50) | u_char *
function u_char (line 74) | u_char *
function u_char (line 484) | static u_char *
function u_char (line 570) | static u_char *
function ngx_int_t (line 635) | ngx_int_t
function ngx_int_t (line 661) | ngx_int_t
function u_char (line 690) | u_char *
function u_char (line 730) | u_char *
function u_char (line 753) | u_char *
function u_char (line 785) | u_char *
function ngx_int_t (line 812) | ngx_int_t
function ngx_int_t (line 835) | ngx_int_t
function ngx_int_t (line 870) | ngx_int_t
function ngx_int_t (line 895) | ngx_int_t
function ngx_int_t (line 926) | ngx_int_t
function ngx_int_t (line 966) | ngx_int_t
function ngx_int_t (line 996) | ngx_int_t
function ngx_atosz (line 1050) | ssize_t
function off_t (line 1078) | off_t
function time_t (line 1106) | time_t
function ngx_int_t (line 1134) | ngx_int_t
function u_char (line 1172) | u_char *
function ngx_encode_base64 (line 1186) | void
function ngx_encode_base64url (line 1196) | void
function ngx_encode_base64_internal (line 1206) | static void
function ngx_int_t (line 1250) | ngx_int_t
function ngx_int_t (line 1277) | ngx_int_t
function ngx_int_t (line 1304) | static ngx_int_t
function ngx_utf8_decode (line 1359) | uint32_t
function ngx_utf8_length (line 1416) | size_t
function u_char (line 1443) | u_char *
function ngx_escape_uri (line 1489) | uintptr_t
function ngx_unescape_uri (line 1671) | void
function ngx_escape_html (line 1801) | uintptr_t
function ngx_escape_json (line 1873) | uintptr_t
function ngx_str_rbtree_insert_value (line 1962) | void
function ngx_str_node_t (line 2002) | ngx_str_node_t *
function ngx_sort (line 2047) | void
function ngx_explicit_memzero (line 2078) | void
FILE: src/core/ngx_string.h
type ngx_str_t (line 16) | typedef struct {
type ngx_keyval_t (line 22) | typedef struct {
type ngx_variable_value_t (line 28) | typedef struct {
function ngx_inline (line 67) | static ngx_inline u_char *
function ngx_inline (line 119) | static ngx_inline u_char *
type ngx_str_node_t (line 217) | typedef struct {
FILE: src/core/ngx_syslog.c
function u_char (line 233) | u_char *
function ngx_syslog_writer (line 250) | void
function ngx_syslog_send (line 284) | ssize_t
function ngx_int_t (line 320) | static ngx_int_t
function ngx_syslog_cleanup (line 362) | static void
FILE: src/core/ngx_syslog.h
type ngx_syslog_peer_t (line 11) | typedef struct {
FILE: src/core/ngx_thread_pool.c
type ngx_thread_pool_conf_t (line 14) | typedef struct {
type ngx_thread_pool_queue_t (line 19) | typedef struct {
type ngx_thread_pool_s (line 29) | struct ngx_thread_pool_s {
function ngx_int_t (line 106) | static ngx_int_t
function ngx_thread_pool_destroy (line 171) | static void
function ngx_thread_pool_exit_handler (line 203) | static void
function ngx_thread_task_t (line 214) | ngx_thread_task_t *
function ngx_int_t (line 230) | ngx_int_t
function ngx_thread_pool_handler (line 364) | static void
function ngx_thread_pool_t (line 518) | ngx_thread_pool_t *
function ngx_thread_pool_t (line 557) | ngx_thread_pool_t *
function ngx_int_t (line 582) | static ngx_int_t
function ngx_thread_pool_exit_worker (line 616) | static void
FILE: src/core/ngx_thread_pool.h
type ngx_thread_task_s (line 17) | struct ngx_thread_task_s {
type ngx_thread_pool_t (line 26) | typedef struct ngx_thread_pool_s ngx_thread_pool_t;
FILE: src/core/ngx_times.c
function ngx_time_init (line 65) | void
function ngx_time_update (line 80) | void
function ngx_msec_t (line 195) | static ngx_msec_t
function ngx_time_sigsafe_update (line 218) | void
function u_char (line 278) | u_char *
function u_char (line 296) | u_char *
function ngx_gmtime (line 323) | void
function time_t (line 428) | time_t
FILE: src/core/ngx_times.h
type ngx_time_t (line 16) | typedef struct {
FILE: src/event/modules/ngx_devpoll_module.c
type dvpoll (line 23) | struct dvpoll {
type ngx_devpoll_conf_t (line 32) | typedef struct {
type pollfd (line 53) | struct pollfd
function ngx_int_t (line 117) | static ngx_int_t
function ngx_devpoll_done (line 194) | static void
function ngx_int_t (line 217) | static ngx_int_t
function ngx_int_t (line 240) | static ngx_int_t
function ngx_int_t (line 290) | static ngx_int_t
function ngx_int_t (line 339) | static ngx_int_t
FILE: src/event/modules/ngx_epoll_module.c
type epoll_data_t (line 38) | typedef union epoll_data {
type epoll_event (line 45) | struct epoll_event {
function epoll_create (line 53) | int epoll_create(int size)
type epoll_event (line 59) | struct epoll_event
function epoll_ctl (line 61) | int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event)
type epoll_event (line 67) | struct epoll_event
function epoll_wait (line 69) | int epoll_wait(int epfd, struct epoll_event *events, int nevents, int ti...
type u_int (line 84) | typedef u_int aio_context_t;
type io_event (line 86) | struct io_event {
type ngx_epoll_conf_t (line 98) | typedef struct {
type epoll_event (line 134) | struct epoll_event
function io_setup (line 226) | static int
function io_destroy (line 233) | static int
function io_getevents (line 240) | static int
function ngx_epoll_aio_init (line 248) | static void
type epoll_event (line 358) | struct epoll_event
function ngx_int_t (line 385) | static ngx_int_t
function ngx_epoll_notify_handler (line 431) | static void
function ngx_epoll_test_rdhup (line 464) | static void
function ngx_epoll_done (line 529) | static void
function ngx_int_t (line 578) | static ngx_int_t
function ngx_int_t (line 642) | static ngx_int_t
function ngx_int_t (line 700) | static ngx_int_t
function ngx_int_t (line 724) | static ngx_int_t
function ngx_int_t (line 764) | static ngx_int_t
function ngx_int_t (line 783) | static ngx_int_t
function ngx_epoll_eventfd_handler (line 941) | static void
FILE: src/event/modules/ngx_eventport_module.c
type clockid_t (line 20) | typedef int clockid_t;
type port_event_t (line 41) | typedef struct {
type port_notify_t (line 49) | typedef struct port_notify {
type itimerspec_t (line 56) | typedef struct itimerspec { /* definition per POSIX.4 */
function port_create (line 65) | int port_create(void)
function port_associate (line 74) | int port_associate(int port, int source, uintptr_t object, int events,
function port_dissociate (line 83) | int port_dissociate(int port, int source, uintptr_t object)
type timespec (line 90) | struct timespec
function port_getn (line 92) | int port_getn(int port, port_event_t list[], uint_t max, uint_t *nget,
function port_send (line 100) | int port_send(int port, int events, void *user)
type sigevent (line 106) | struct sigevent
function timer_create (line 108) | int timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *time...
type itimerspec (line 114) | struct itimerspec
type itimerspec (line 115) | struct itimerspec
function timer_settime (line 117) | int timer_settime(timer_t timerid, int flags, const struct itimerspec *v...
function timer_delete (line 126) | int timer_delete(timer_t timerid)
type ngx_eventport_conf_t (line 134) | typedef struct {
function ngx_int_t (line 210) | static ngx_int_t
function ngx_eventport_done (line 285) | static void
function ngx_int_t (line 311) | static ngx_int_t
function ngx_int_t (line 360) | static ngx_int_t
function ngx_int_t (line 420) | static ngx_int_t
function ngx_int_t (line 435) | static ngx_int_t
FILE: src/event/modules/ngx_iocp_module.c
function ngx_int_t (line 108) | static ngx_int_t
function ngx_thread_value_t (line 158) | static ngx_thread_value_t __stdcall
function ngx_iocp_done (line 181) | static void
function ngx_int_t (line 193) | static ngx_int_t
function ngx_int_t (line 216) | static ngx_int_t
function ngx_int_t (line 234) | static
FILE: src/event/modules/ngx_iocp_module.h
type ngx_iocp_conf_t (line 12) | typedef struct {
FILE: src/event/modules/ngx_kqueue_module.c
type ngx_kqueue_conf_t (line 13) | typedef struct {
type kevent (line 36) | struct kevent
type kevent (line 44) | struct kevent
type kevent (line 45) | struct kevent
type kevent (line 50) | struct kevent
function ngx_int_t (line 116) | static ngx_int_t
function ngx_int_t (line 232) | static ngx_int_t
function ngx_kqueue_done (line 261) | static void
function ngx_int_t (line 282) | static ngx_int_t
function ngx_int_t (line 338) | static ngx_int_t
function ngx_int_t (line 392) | static ngx_int_t
function ngx_int_t (line 480) | static ngx_int_t
function ngx_int_t (line 497) | static ngx_int_t
function ngx_inline (line 676) | static ngx_inline void
FILE: src/event/modules/ngx_poll_module.c
type pollfd (line 24) | struct pollfd
function ngx_int_t (line 67) | static ngx_int_t
function ngx_poll_done (line 104) | static void
function ngx_int_t (line 113) | static ngx_int_t
function ngx_int_t (line 165) | static ngx_int_t
function ngx_int_t (line 238) | static ngx_int_t
FILE: src/event/modules/ngx_select_module.c
function ngx_int_t (line 74) | static ngx_int_t
function ngx_select_done (line 115) | static void
function ngx_int_t (line 124) | static ngx_int_t
function ngx_int_t (line 170) | static ngx_int_t
function ngx_int_t (line 210) | static ngx_int_t
function ngx_select_repair_fd_sets (line 355) | static void
FILE: src/event/modules/ngx_win32_poll_module.c
type pollfd (line 25) | struct pollfd
function ngx_int_t (line 69) | static ngx_int_t
function ngx_poll_done (line 121) | static void
function ngx_int_t (line 132) | static ngx_int_t
function ngx_int_t (line 187) | static ngx_int_t
function ngx_int_t (line 261) | static ngx_int_t
FILE: src/event/modules/ngx_win32_select_module.c
function ngx_int_t (line 76) | static ngx_int_t
function ngx_select_done (line 118) | static void
function ngx_int_t (line 127) | static ngx_int_t
function ngx_int_t (line 180) | static ngx_int_t
function ngx_int_t (line 218) | static ngx_int_t
function ngx_select_repair_fd_sets (line 355) | static void
FILE: src/event/ngx_event.c
function ngx_process_events_and_timers (line 193) | void
function ngx_int_t (line 266) | ngx_int_t
function ngx_int_t (line 346) | ngx_int_t
function ngx_int_t (line 487) | static ngx_int_t
function ngx_timer_signal_handler (line 618) | static void
function ngx_int_t (line 631) | static ngx_int_t
function ngx_int_t (line 933) | ngx_int_t
type sockaddr_in (line 1152) | struct sockaddr_in
type sockaddr_in6 (line 1154) | struct sockaddr_in6
type sockaddr_in6 (line 1219) | struct sockaddr_in6
type sockaddr_in (line 1226) | struct sockaddr_in
FILE: src/event/ngx_event.h
type ngx_event_ovlp_t (line 21) | typedef struct {
type ngx_event_s (line 30) | struct ngx_event_s {
type ngx_event_aio_s (line 143) | struct ngx_event_aio_s {
type ngx_event_actions_t (line 170) | typedef struct {
type ngx_event_conf_t (line 433) | typedef struct {
type ngx_event_module_t (line 450) | typedef struct {
FILE: src/event/ngx_event_accept.c
function ngx_event_accept (line 17) | void
function ngx_int_t (line 320) | ngx_int_t
function ngx_int_t (line 358) | ngx_int_t
function ngx_int_t (line 383) | static ngx_int_t
function ngx_close_accepted_connection (line 423) | static void
function u_char (line 448) | u_char *
function ngx_debug_accepted_connection (line 458) | void
FILE: src/event/ngx_event_acceptex.c
function ngx_event_acceptex (line 16) | void
function ngx_int_t (line 92) | ngx_int_t
function ngx_close_posted_connection (line 204) | static void
function u_char (line 225) | u_char *
FILE: src/event/ngx_event_connect.c
function ngx_int_t (line 20) | ngx_int_t
function ngx_int_t (line 334) | static ngx_int_t
function ngx_int_t (line 429) | ngx_int_t
FILE: src/event/ngx_event_connect.h
type ngx_peer_connection_t (line 22) | typedef struct ngx_peer_connection_s ngx_peer_connection_t;
type ngx_int_t (line 24) | typedef ngx_int_t (*ngx_event_get_peer_pt)(ngx_peer_connection_t *pc,
type ngx_int_t (line 30) | typedef ngx_int_t (*ngx_event_set_peer_session_pt)(ngx_peer_connection_t...
type ngx_peer_connection_s (line 36) | struct ngx_peer_connection_s {
FILE: src/event/ngx_event_connectex.c
function ngx_iocp_wait_connect (line 28) | int ngx_iocp_wait_connect(ngx_connection_t *c)
function ngx_iocp_wait_events (line 121) | void ngx_iocp_wait_events(int main)
FILE: src/event/ngx_event_openssl.c
type ngx_openssl_conf_t (line 16) | typedef struct {
function ngx_int_t (line 142) | ngx_int_t
function ngx_int_t (line 260) | ngx_int_t
function ngx_int_t (line 398) | ngx_int_t
function ngx_int_t (line 421) | ngx_int_t
function ngx_int_t (line 542) | ngx_int_t
function X509 (line 613) | static X509 *
function EVP_PKEY (line 703) | static EVP_PKEY *
function ngx_ssl_password_callback (line 820) | static int
function ngx_int_t (line 848) | ngx_int_t
function ngx_int_t (line 867) | ngx_int_t
function ngx_int_t (line 915) | ngx_int_t
function ngx_int_t (line 952) | ngx_int_t
function ngx_ssl_verify_callback (line 997) | static int
function ngx_ssl_info_callback (line 1067) | static void
function ngx_array_t (line 1115) | ngx_array_t *
function ngx_array_t (line 1245) | ngx_array_t *
function ngx_ssl_passwords_cleanup (line 1308) | static void
function ngx_int_t (line 1324) | ngx_int_t
function ngx_int_t (line 1398) | ngx_int_t
function ngx_int_t (line 1480) | ngx_int_t
function ngx_int_t (line 1509) | ngx_int_t
function ngx_int_t (line 1581) | ngx_int_t
function ngx_ssl_new_client_session (line 1598) | static int
function ngx_int_t (line 1617) | ngx_int_t
function ngx_ssl_session_t (line 1672) | ngx_ssl_session_t *
function ngx_ssl_session_t (line 1686) | ngx_ssl_session_t *
function ngx_int_t (line 1697) | ngx_int_t
function ngx_int_t (line 1711) | ngx_int_t
function ngx_int_t (line 1862) | static ngx_int_t
function ngx_ssl_handshake_log (line 2004) | static void
function ngx_ssl_handshake_handler (line 2058) | static void
function ngx_ssl_recv_chain (line 2081) | ssize_t
function ngx_ssl_recv (line 2144) | ssize_t
function ngx_ssl_recv_early (line 2271) | static ssize_t
function ngx_int_t (line 2390) | static ngx_int_t
function ngx_ssl_write_handler (line 2503) | static void
function ngx_chain_t (line 2524) | ngx_chain_t *
function ngx_ssl_write (line 2712) | ssize_t
function ngx_ssl_write_early (line 2825) | static ssize_t
function ngx_ssl_sendfile (line 2940) | static ssize_t
function ngx_ssl_read_handler (line 3084) | static void
function ngx_ssl_free_buffer (line 3097) | void
function ngx_int_t (line 3108) | ngx_int_t
function ngx_ssl_shutdown_handler (line 3245) | static void
function ngx_ssl_connection_error (line 3268) | static void
function ngx_ssl_clear_error (line 3428) | static void
function ngx_ssl_error (line 3439) | void ngx_cdecl
function ngx_int_t (line 3499) | ngx_int_t
function ngx_int_t (line 3573) | static ngx_int_t
function ngx_int_t (line 3691) | ngx_int_t
function ngx_ssl_new_session (line 3756) | static int
function ngx_ssl_session_t (line 3896) | static ngx_ssl_session_t *
function ngx_ssl_remove_cached_session (line 3998) | void
function ngx_ssl_remove_session (line 4007) | static void
function ngx_ssl_expire_sessions (line 4084) | static void
function ngx_ssl_session_rbtree_insert_value (line 4124) | static void
function ngx_int_t (line 4168) | ngx_int_t
function ngx_ssl_session_ticket_key_callback (line 4309) | static int
function ngx_ssl_session_ticket_keys_cleanup (line 4430) | static void
function ngx_int_t (line 4441) | ngx_int_t
function ngx_ssl_cleanup_ctx (line 4455) | void
function ngx_int_t (line 4474) | ngx_int_t
function ngx_int_t (line 4603) | static ngx_int_t
function ngx_int_t (line 4643) | ngx_int_t
function ngx_int_t (line 4651) | ngx_int_t
function ngx_int_t (line 4659) | ngx_int_t
function ngx_int_t (line 4743) | ngx_int_t
function ngx_int_t (line 4811) | ngx_int_t
function ngx_int_t (line 4838) | ngx_int_t
function ngx_int_t (line 4852) | ngx_int_t
function ngx_int_t (line 4879) | ngx_int_t
function ngx_int_t (line 4910) | ngx_int_t
function ngx_int_t (line 4940) | ngx_int_t
function ngx_int_t (line 4990) | ngx_int_t
function ngx_int_t (line 5034) | ngx_int_t
function ngx_int_t (line 5064) | ngx_int_t
function ngx_int_t (line 5118) | ngx_int_t
function ngx_int_t (line 5172) | ngx_int_t
function ngx_int_t (line 5220) | ngx_int_t
function ngx_int_t (line 5268) | ngx_int_t
function ngx_int_t (line 5308) | ngx_int_t
function ngx_int_t (line 5343) | ngx_int_t
function ngx_int_t (line 5381) | ngx_int_t
function ngx_int_t (line 5426) | ngx_int_t
function ngx_int_t (line 5471) | ngx_int_t
function ngx_openssl_exit (line 5624) | static void
FILE: src/event/ngx_event_openssl.h
type ngx_ssl_ocsp_t (line 86) | typedef struct ngx_ssl_ocsp_s ngx_ssl_ocsp_t;
type ngx_ssl_s (line 89) | struct ngx_ssl_s {
type ngx_ssl_connection_s (line 96) | struct ngx_ssl_connection_s {
type ngx_ssl_sess_id_t (line 141) | typedef struct ngx_ssl_sess_id_s ngx_ssl_sess_id_t;
type ngx_ssl_sess_id_s (line 143) | struct ngx_ssl_sess_id_s {
type ngx_ssl_session_cache_t (line 157) | typedef struct {
type ngx_ssl_session_ticket_key_t (line 166) | typedef struct {
FILE: src/event/ngx_event_openssl_stapling.c
type ngx_ssl_stapling_t (line 17) | typedef struct {
type ngx_ssl_ocsp_conf_t (line 46) | typedef struct {
type ngx_ssl_ocsp_cache_t (line 62) | typedef struct {
type ngx_ssl_ocsp_cache_node_t (line 69) | typedef struct {
type ngx_ssl_ocsp_ctx_t (line 77) | typedef struct ngx_ssl_ocsp_ctx_s ngx_ssl_ocsp_ctx_t;
type ngx_ssl_ocsp_s (line 80) | struct ngx_ssl_ocsp_s {
type ngx_ssl_ocsp_ctx_s (line 92) | struct ngx_ssl_ocsp_ctx_s {
function ngx_int_t (line 194) | ngx_int_t
function ngx_int_t (line 217) | static ngx_int_t
function ngx_int_t (line 296) | static ngx_int_t
function ngx_int_t (line 363) | static ngx_int_t
function ngx_int_t (line 447) | static ngx_int_t
function ngx_int_t (line 544) | ngx_int_t
function ngx_ssl_certificate_status_callback (line 564) | static int
function ngx_ssl_stapling_update (line 616) | static void
function ngx_ssl_stapling_ocsp_handler (line 660) | static void
function time_t (line 719) | static time_t
function ngx_ssl_stapling_cleanup (line 753) | static void
function ngx_int_t (line 768) | ngx_int_t
function ngx_int_t (line 830) | ngx_int_t
function ngx_int_t (line 844) | ngx_int_t
function ngx_ssl_ocsp_validate_next (line 973) | static void
function ngx_ssl_ocsp_handler (line 1075) | static void
function ngx_int_t (line 1119) | static ngx_int_t
function ngx_int_t (line 1208) | ngx_int_t
function ngx_ssl_ocsp_cleanup (line 1240) | void
function ngx_ssl_ocsp_ctx_t (line 1262) | static ngx_ssl_ocsp_ctx_t *
function ngx_ssl_ocsp_done (line 1300) | static void
function ngx_ssl_ocsp_error (line 1314) | static void
function ngx_ssl_ocsp_next (line 1325) | static void
function ngx_ssl_ocsp_request (line 1355) | static void
function ngx_ssl_ocsp_resolve_handler (line 1412) | static void
function ngx_ssl_ocsp_connect (line 1498) | static void
function ngx_ssl_ocsp_write_handler (line 1551) | static void
function ngx_ssl_ocsp_read_handler (line 1604) | static void
function ngx_ssl_ocsp_dummy_handler (line 1680) | static void
function ngx_int_t (line 1688) | static ngx_int_t
function ngx_int_t (line 1806) | static ngx_int_t
function ngx_int_t (line 1837) | static ngx_int_t
function ngx_int_t (line 2042) | static ngx_int_t
function ngx_int_t (line 2116) | static ngx_int_t
function ngx_int_t (line 2303) | static ngx_int_t
function ngx_int_t (line 2318) | static ngx_int_t
function ngx_int_t (line 2441) | ngx_int_t
function ngx_int_t (line 2489) | static ngx_int_t
function ngx_int_t (line 2551) | static ngx_int_t
function ngx_int_t (line 2629) | static ngx_int_t
function u_char (line 2672) | static u_char *
function ngx_int_t (line 2713) | ngx_int_t
function ngx_int_t (line 2724) | ngx_int_t
function ngx_int_t (line 2732) | ngx_int_t
function ngx_int_t (line 2743) | ngx_int_t
function ngx_int_t (line 2751) | ngx_int_t
function ngx_int_t (line 2758) | ngx_int_t
function ngx_ssl_ocsp_cleanup (line 2765) | void
function ngx_int_t (line 2771) | ngx_int_t
FILE: src/event/ngx_event_pipe.c
function ngx_int_t (line 22) | ngx_int_t
function ngx_int_t (line 101) | static ngx_int_t
function ngx_int_t (line 501) | static ngx_int_t
function ngx_int_t (line 737) | static ngx_int_t
function ngx_int_t (line 953) | ngx_int_t
function ngx_inline (line 1024) | static ngx_inline void
function ngx_int_t (line 1055) | ngx_int_t
function ngx_int_t (line 1104) | static ngx_int_t
FILE: src/event/ngx_event_pipe.h
type ngx_event_pipe_t (line 17) | typedef struct ngx_event_pipe_s ngx_event_pipe_t;
type ngx_int_t (line 19) | typedef ngx_int_t (*ngx_event_pipe_input_filter_pt)(ngx_event_pipe_t *p,
type ngx_int_t (line 21) | typedef ngx_int_t (*ngx_event_pipe_output_filter_pt)(void *data,
type ngx_event_pipe_s (line 25) | struct ngx_event_pipe_s {
FILE: src/event/ngx_event_posted.c
function ngx_event_process_posted (line 18) | void
function ngx_event_move_posted_next (line 39) | void
FILE: src/event/ngx_event_timer.c
function ngx_int_t (line 22) | ngx_int_t
function ngx_msec_t (line 32) | ngx_msec_t
function ngx_event_expire_timers (line 53) | void
function ngx_int_t (line 99) | ngx_int_t
FILE: src/event/ngx_event_timer.h
function ngx_inline (line 31) | static ngx_inline void
function ngx_inline (line 50) | static ngx_inline void
FILE: src/event/ngx_event_udp.c
type sockaddr (line 25) | struct sockaddr
type msghdr (line 27) | struct msghdr
function ngx_int_t (line 29) | static ngx_int_t
function ngx_event_recvmsg (line 327) | void
function ngx_event_recvmsg (line 429) | void
function ngx_close_accepted_udp_connection (line 523) | static void
function ngx_udp_shared_recv (line 540) | static ssize_t
function ngx_udp_rbtree_insert_value (line 565) | void
function ngx_int_t (line 618) | static ngx_int_t
function ngx_insert_udp_connection (line 659) | void
function ngx_delete_udp_connection (line 683) | void
function ngx_connection_t (line 698) | static ngx_connection_t *
function ngx_delete_udp_connection (line 768) | void
FILE: src/event/ngx_event_udp.h
type ngx_udp_dgram_t (line 25) | typedef struct {
type ngx_udp_connection_s (line 32) | struct ngx_udp_connection_s {
type ngx_addrinfo_t (line 42) | typedef union {
type cmsghdr (line 56) | struct cmsghdr
type sockaddr (line 57) | struct sockaddr
type cmsghdr (line 58) | struct cmsghdr
type sockaddr (line 59) | struct sockaddr
type msghdr (line 65) | struct msghdr
type mmsghdr (line 68) | struct mmsghdr
FILE: src/event/quic/bpf/ngx_quic_reuseport_helper.c
type bpf_map_def (line 71) | struct bpf_map_def
type bpf_map_def (line 72) | struct bpf_map_def
function ngx_quic_select_socket_by_dcid (line 75) | SEC(PROGNAME)
FILE: src/event/quic/ngx_event_quic.c
function ngx_quic_connstate_dbg (line 61) | void
function ngx_int_t (line 126) | ngx_int_t
function ngx_quic_run (line 203) | void
function ngx_quic_connection_t (line 233) | static ngx_quic_connection_t *
function ngx_int_t (line 365) | static ngx_int_t
function ngx_quic_input_handler (line 412) | static void
function ngx_quic_close_connection (line 473) | void
function ngx_int_t (line 516) | static ngx_int_t
function ngx_quic_finalize_connection (line 638) | void
function ngx_quic_shutdown_connection (line 654) | void
function ngx_quic_close_timer_handler (line 670) | static void
function ngx_int_t (line 682) | static ngx_int_t
function ngx_int_t (line 785) | static ngx_int_t
function ngx_int_t (line 956) | static ngx_int_t
function ngx_quic_discard_ctx (line 1080) | void
function ngx_int_t (line 1145) | static ngx_int_t
function ngx_int_t (line 1169) | static ngx_int_t
function ngx_quic_push_handler (line 1449) | static void
function ngx_quic_shutdown_quic (line 1467) | void
function ngx_quic_version (line 1500) | uint32_t
function ngx_quic_mtu (line 1515) | size_t
FILE: src/event/quic/ngx_event_quic.h
type ngx_quic_tp_t (line 33) | typedef struct {
type ngx_quic_conf_t (line 58) | typedef struct {
type ngx_quic_fqueue_t (line 89) | typedef struct {
type ngx_quic_stream_s (line 98) | struct ngx_quic_stream_s {
FILE: src/event/quic/ngx_event_quic_ack.c
type ngx_quic_ack_stat_t (line 25) | typedef struct {
type ssl_encryption_level_t (line 34) | enum ssl_encryption_level_t
function ngx_inline (line 51) | static ngx_inline ngx_msec_t
function ngx_int_t (line 63) | ngx_int_t
function ngx_quic_rtt_sample (line 178) | static void
function ngx_int_t (line 222) | static ngx_int_t
function ngx_int_t (line 307) | static ngx_int_t
function ngx_quic_congestion_ack (line 334) | void
function ngx_quic_drop_ack_ranges (line 401) | static void
function ngx_int_t (line 459) | static ngx_int_t
function ngx_msec_t (line 548) | static ngx_msec_t
function ngx_quic_persistent_congestion (line 565) | static void
function ngx_quic_resend_frames (line 586) | void
function ngx_quic_congestion_lost (line 681) | static void
function ngx_quic_set_lost_timer (line 743) | void
function ngx_msec_t (line 822) | ngx_msec_t
function ngx_quic_lost_handler (line 848) | static
function ngx_quic_pto_handler (line 865) | void
function ngx_int_t (line 979) | ngx_int_t
function ngx_int_t (line 1217) | ngx_int_t
FILE: src/event/quic/ngx_event_quic_bpf.c
type ngx_quic_sock_group_t (line 31) | typedef struct {
type ngx_quic_bpf_conf_t (line 42) | typedef struct {
type sockaddr (line 59) | struct sockaddr
function ngx_int_t (line 129) | static ngx_int_t
function ngx_quic_bpf_cleanup (line 207) | static void
function ngx_inline (line 227) | static ngx_inline void
function ngx_quic_sock_group_t (line 239) | static ngx_quic_sock_group_t *
function ngx_quic_sock_group_t (line 263) | static ngx_quic_sock_group_t *
function ngx_quic_sock_group_t (line 293) | static ngx_quic_sock_group_t *
function ngx_quic_sock_group_t (line 407) | static ngx_quic_sock_group_t *
function ngx_int_t (line 464) | static ngx_int_t
function ngx_quic_bpf_socket_key (line 518) | static uint64_t
function ngx_int_t (line 537) | static ngx_int_t
function ngx_int_t (line 618) | static ngx_int_t
FILE: src/event/quic/ngx_event_quic_bpf_code.c
type bpf_insn (line 14) | struct bpf_insn
FILE: src/event/quic/ngx_event_quic_connection.h
type ngx_quic_connection_t (line 20) | typedef struct ngx_quic_connection_s ngx_quic_connection_t;
type ngx_quic_server_id_t (line 21) | typedef struct ngx_quic_server_id_s ngx_quic_server_id_t;
type ngx_quic_client_id_t (line 22) | typedef struct ngx_quic_client_id_s ngx_quic_client_id_t;
type ngx_quic_send_ctx_t (line 23) | typedef struct ngx_quic_send_ctx_s ngx_quic_send_ctx_t;
type ngx_quic_socket_t (line 24) | typedef struct ngx_quic_socket_s ngx_quic_socket_t;
type ngx_quic_path_t (line 25) | typedef struct ngx_quic_path_s ngx_quic_path_t;
type ngx_quic_keys_t (line 26) | typedef struct ngx_quic_keys_s ngx_quic_keys_t;
type ngx_quic_client_id_s (line 70) | struct ngx_quic_client_id_s {
type ngx_quic_server_id_s (line 80) | struct ngx_quic_server_id_s {
type ngx_quic_path_s (line 87) | struct ngx_quic_path_s {
type ngx_quic_socket_s (line 106) | struct ngx_quic_socket_s {
type ngx_quic_streams_t (line 118) | typedef struct {
type ngx_quic_congestion_t (line 146) | typedef struct {
type ngx_quic_send_ctx_s (line 162) | struct ngx_quic_send_ctx_s {
type ngx_quic_mtu_t (line 196) | typedef struct {
type ngx_quic_connection_s (line 214) | struct ngx_quic_connection_s {
type ssl_encryption_level_t (line 298) | enum ssl_encryption_level_t
FILE: src/event/quic/ngx_event_quic_connid.c
function ngx_int_t (line 29) | ngx_int_t
function ngx_int_t (line 50) | static ngx_int_t
function ngx_int_t (line 76) | ngx_int_t
function ngx_int_t (line 215) | static ngx_int_t
function ngx_quic_client_id_t (line 240) | static ngx_quic_client_id_t *
function ngx_quic_client_id_t (line 267) | ngx_quic_client_id_t *
function ngx_quic_client_id_t (line 306) | ngx_quic_client_id_t *
function ngx_quic_client_id_t (line 330) | ngx_quic_client_id_t *
function ngx_int_t (line 359) | ngx_int_t
function ngx_int_t (line 484) | ngx_int_t
function ngx_int_t (line 518) | static ngx_int_t
function ngx_int_t (line 555) | static ngx_int_t
function ngx_quic_unref_client_id (line 594) | void
FILE: src/event/quic/ngx_event_quic_frames.c
function ngx_quic_frame_t (line 20) | ngx_quic_frame_t *
function ngx_quic_free_frame (line 65) | void
function ngx_quic_trim_bufs (line 85) | void
function ngx_quic_free_bufs (line 105) | void
function ngx_quic_free_frames (line 153) | void
function ngx_quic_queue_frame_after (line 177) | void
function ngx_quic_queue_frame (line 203) | void
function ngx_quic_queue_frame_priority (line 213) | void
function ngx_quic_queue_frame_remove (line 229) | void
function ngx_int_t (line 251) | ngx_int_t
function ngx_chain_t (line 322) | static ngx_chain_t *
function ngx_chain_t (line 405) | ngx_chain_t *
function ngx_chain_t (line 455) | ngx_chain_t *
function ngx_chain_t (line 489) | ngx_chain_t *
function ngx_int_t (line 548) | ngx_int_t
function ngx_quic_log_frame (line 624) | void
FILE: src/event/quic/ngx_event_quic_frames.h
type ngx_int_t (line 15) | typedef ngx_int_t (*ngx_quic_frame_handler_pt)(ngx_connection_t *c,
FILE: src/event/quic/ngx_event_quic_migration.c
function ngx_int_t (line 23) | ngx_int_t
function ngx_int_t (line 52) | ngx_int_t
function ngx_int_t (line 124) | ngx_int_t
function ngx_quic_path_t (line 216) | static ngx_quic_path_t *
function ngx_quic_path_t (line 254) | ngx_quic_path_t *
function ngx_quic_path_t (line 287) | ngx_quic_path_t *
function ngx_int_t (line 315) | ngx_int_t
function ngx_quic_set_connection_path (line 401) | static void
function ngx_int_t (line 422) | ngx_int_t
function ngx_int_t (line 529) | static ngx_int_t
function ngx_int_t (line 573) | static ngx_int_t
function ngx_quic_path_validation_handler (line 627) | void
function ngx_int_t (line 716) | static ngx_int_t
FILE: src/event/quic/ngx_event_quic_migration.h
type sockaddr (line 34) | struct sockaddr
type sockaddr (line 36) | struct sockaddr
type sockaddr (line 44) | struct sockaddr
FILE: src/event/quic/ngx_event_quic_mtu.c
function ngx_int_t (line 10) | static ngx_int_t
function ngx_quic_mtu_next_probe_packet_length (line 33) | static size_t
function ngx_quic_mtu_get_updated_probe_size (line 51) | static size_t
function ngx_int_t (line 74) | ngx_int_t
function ngx_quic_mtu_ack (line 123) | void
function ngx_quic_mtu_lost (line 140) | void
FILE: src/event/quic/ngx_event_quic_output.c
type sockaddr (line 57) | struct sockaddr
type iovec (line 62) | struct iovec
type sockaddr (line 63) | struct sockaddr
type sockaddr (line 72) | struct sockaddr
function ngx_quic_max_udp_payload (line 77) | size_t
function ngx_int_t (line 90) | ngx_int_t
function ngx_int_t (line 113) | static ngx_int_t
function ngx_int_t (line 155) | static ngx_int_t
function ngx_quic_commit_send (line 253) | static void
function ngx_quic_revert_send (line 286) | static void
function ngx_uint_t (line 312) | static ngx_uint_t
function ngx_int_t (line 375) | static ngx_int_t
function ngx_quic_send_segments (line 463) | static ssize_t
function ngx_uint_t (line 531) | static ngx_uint_t
function ngx_int_t (line 546) | static ngx_int_t
function ngx_quic_sendmmsg (line 674) | static ssize_t
function ngx_uint_t (line 727) | static ngx_uint_t
function ngx_quic_output_packet (line 767) | static ssize_t
function ngx_quic_init_packet (line 964) | static void
function ngx_quic_send (line 1004) | static ssize_t
function ngx_quic_set_packet_number (line 1051) | static void
function ngx_int_t (line 1081) | ngx_int_t
function ngx_int_t (line 1109) | ngx_int_t
function ngx_int_t (line 1160) | ngx_int_t
function ngx_int_t (line 1203) | ngx_int_t
function ngx_int_t (line 1280) | ngx_int_t
function ngx_int_t (line 1349) | ngx_int_t
function ngx_int_t (line 1384) | ngx_int_t
function ngx_int_t (line 1453) | ngx_int_t
function ngx_quic_frame_sendto (line 1480) | ssize_t
function ngx_quic_frame_sendto_dont_fragment (line 1542) | ssize_t
FILE: src/event/quic/ngx_event_quic_output.h
type sockaddr (line 38) | struct sockaddr
type sockaddr (line 42) | struct sockaddr
FILE: src/event/quic/ngx_event_quic_protection.c
type ngx_quic_ciphers_t (line 32) | typedef struct {
type ngx_quic_secret_t (line 39) | typedef struct ngx_quic_secret_s {
type ngx_quic_secrets_t (line 47) | typedef struct {
type ngx_quic_keys_s (line 53) | struct ngx_quic_keys_s {
type ssl_encryption_level_t (line 71) | enum ssl_encryption_level_t
function ngx_int_t (line 90) | static ngx_int_t
function ngx_int_t (line 147) | ngx_int_t
function ngx_int_t (line 240) | static ngx_int_t
function ngx_int_t (line 281) | static ngx_int_t
function ngx_int_t (line 342) | static ngx_int_t
function ngx_int_t (line 405) | static ngx_int_t
function ngx_int_t (line 505) | static ngx_int_t
function ngx_int_t (line 601) | static ngx_int_t
function ngx_quic_keys_set_encryption_secret (line 652) | int ngx_quic_keys_set_encryption_secret(ngx_pool_t *pool, ngx_uint_t is_...
function ngx_quic_keys_t (line 713) | ngx_quic_keys_t *
function ngx_uint_t (line 720) | ngx_uint_t
function ngx_quic_keys_discard (line 728) | void
function ngx_quic_keys_switch (line 736) | void
function ngx_int_t (line 750) | ngx_int_t
function ngx_int_t (line 829) | static ngx_int_t
function ngx_int_t (line 887) | static ngx_int_t
function ngx_int_t (line 940) | ngx_int_t
function ngx_quic_parse_pn (line 989) | static uint64_t
function ngx_quic_compute_nonce (line 1032) | static void
function ngx_int_t (line 1042) | ngx_int_t
function ngx_int_t (line 1053) | ngx_int_t
FILE: src/event/quic/ngx_event_quic_protection.h
type ssl_encryption_level_t (line 24) | enum ssl_encryption_level_t
type ssl_encryption_level_t (line 27) | enum ssl_encryption_level_t
type ssl_encryption_level_t (line 29) | enum ssl_encryption_level_t
FILE: src/event/quic/ngx_event_quic_socket.c
function ngx_int_t (line 18) | ngx_int_t
function ngx_int_t (line 114) | static ngx_int_t
function ngx_quic_socket_t (line 154) | ngx_quic_socket_t *
function ngx_quic_close_socket (line 181) | void
function ngx_quic_unref_path (line 208) | void
function ngx_int_t (line 230) | ngx_int_t
function ngx_quic_connect (line 265) | void
function ngx_quic_close_sockets (line 282) | void
function ngx_quic_socket_t (line 300) | ngx_quic_socket_t *
function ngx_quic_socket_t (line 324) | ngx_quic_socket_t *
FILE: src/event/quic/ngx_event_quic_ssl.c
type ssl_encryption_level_t (line 23) | enum ssl_encryption_level_t
type ssl_encryption_level_t (line 26) | enum ssl_encryption_level_t
type ssl_encryption_level_t (line 30) | enum ssl_encryption_level_t
type ssl_encryption_level_t (line 35) | enum ssl_encryption_level_t
type ssl_encryption_level_t (line 38) | enum ssl_encryption_level_t
function ngx_quic_set_read_secret (line 57) | static int
function ngx_quic_set_write_secret (line 93) | static int
function ngx_quic_set_encryption_secrets (line 118) | static int
function ngx_quic_add_handshake_data (line 168) | static int
function ngx_quic_flush_flight (line 277) | static int
function ngx_quic_send_alert (line 292) | static int
function ngx_int_t (line 318) | ngx_int_t
function ngx_int_t (line 405) | static ngx_int_t
function ngx_int_t (line 518) | ngx_int_t
FILE: src/event/quic/ngx_event_quic_streams.c
function ngx_connection_t (line 38) | ngx_connection_t *
function ngx_quic_rbtree_insert_stream (line 101) | void
function ngx_quic_stream_t (line 129) | ngx_quic_stream_t *
function ngx_int_t (line 152) | ngx_int_t
function ngx_int_t (line 219) | ngx_int_t
function ngx_int_t (line 258) | ngx_int_t
function ngx_quic_stream_t (line 308) | static ngx_quic_stream_t *
function ngx_int_t (line 415) | static ngx_int_t
function ngx_int_t (line 464) | static ngx_int_t
function ngx_int_t (line 490) | ngx_int_t
function ngx_quic_init_streams_handler (line 519) | static void
function ngx_quic_stream_t (line 546) | static ngx_quic_stream_t *
function ngx_quic_empty_handler (line 662) | static void
function ngx_quic_stream_recv (line 668) | static ssize_t
function ngx_quic_stream_send (line 746) | static ssize_t
function ngx_chain_t (line 773) | static ngx_chain_t *
function ngx_quic_max_stream_flow (line 885) | static size_t
function ngx_quic_stream_cleanup_handler (line 941) | static void
function ngx_int_t (line 1059) | ngx_int_t
function ngx_int_t (line 1195) | ngx_int_t
function ngx_int_t (line 1236) | ngx_int_t
function ngx_int_t (line 1244) | ngx_int_t
function ngx_int_t (line 1252) | ngx_int_t
function ngx_int_t (line 1288) | ngx_int_t
function ngx_int_t (line 1347) | ngx_int_t
function ngx_int_t (line 1446) | ngx_int_t
function ngx_int_t (line 1511) | ngx_int_t
function ngx_quic_handle_stream_ack (line 1540) | void
function ngx_int_t (line 1572) | static ngx_int_t
function ngx_int_t (line 1613) | static ngx_int_t
function ngx_quic_add_exemptions (line 1660) | void
function ngx_int_t (line 1675) | static ngx_int_t
function ngx_int_t (line 1715) | static ngx_int_t
function ngx_int_t (line 1750) | ngx_int_t
function ngx_int_t (line 1764) | ngx_int_t
FILE: src/event/quic/ngx_event_quic_tokens.c
type sockaddr (line 22) | struct sockaddr
function ngx_int_t (line 26) | ngx_int_t
function ngx_int_t (line 50) | ngx_int_t
function ngx_quic_address_hash (line 130) | static void
function ngx_int_t (line 174) | ngx_int_t
FILE: src/event/quic/ngx_event_quic_tokens.h
type sockaddr (line 17) | struct sockaddr
FILE: src/event/quic/ngx_event_quic_transport.c
function ngx_inline (line 150) | static ngx_inline u_char *
function ngx_inline (line 180) | static ngx_inline u_char *
function ngx_inline (line 193) | static ngx_inline u_char *
function ngx_inline (line 206) | static ngx_inline u_char *
function u_char (line 219) | static u_char *
function ngx_inline (line 232) | static ngx_inline ngx_uint_t
function ngx_inline (line 251) | static ngx_inline void
function ngx_int_t (line 286) | ngx_int_t
function ngx_int_t (line 316) | static ngx_int_t
function ngx_int_t (line 347) | static ngx_int_t
function ngx_int_t (line 422) | static ngx_int_t
function ngx_int_t (line 437) | static ngx_int_t
function ngx_int_t (line 509) | ngx_int_t
function ngx_quic_create_version_negotiation (line 549) | size_t
function ngx_quic_payload_size (line 580) | size_t
function ngx_quic_create_header (line 615) | size_t
function ngx_quic_create_long_header (line 624) | static size_t
function ngx_quic_create_short_header (line 678) | static size_t
function ngx_quic_create_retry_itag (line 715) | size_t
function ngx_quic_parse_frame (line 744) | ssize_t
function ngx_int_t (line 1130) | static ngx_int_t
function ngx_quic_parse_ack_range (line 1203) | ssize_t
function ngx_quic_create_ack_range (line 1229) | size_t
function ngx_quic_create_frame (line 1250) | ssize_t
function ngx_quic_create_ping (line 1320) | static size_t
function ngx_quic_create_ack (line 1337) | static size_t
function ngx_quic_create_reset_stream (line 1373) | static size_t
function ngx_quic_create_stop_sending (line 1398) | static size_t
function ngx_quic_create_crypto (line 1421) | static size_t
function ngx_quic_create_hs_done (line 1454) | static size_t
function ngx_quic_create_new_token (line 1471) | static size_t
function ngx_quic_create_stream (line 1495) | static size_t
function ngx_quic_create_max_streams (line 1557) | static size_t
function ngx_int_t (line 1581) | static ngx_int_t
function ngx_int_t (line 1687) | ngx_int_t
function ngx_quic_create_max_stream_data (line 1803) | static size_t
function ngx_quic_create_max_data (line 1826) | static size_t
function ngx_quic_create_path_challenge (line 1847) | static size_t
function ngx_quic_create_path_response (line 1868) | static size_t
function ngx_quic_create_new_connection_id (line 1889) | static size_t
function ngx_quic_create_retire_connection_id (line 1918) | static size_t
function ngx_quic_create_transport_params (line 1940) | ssize_t
function ngx_quic_create_close (line 2083) | static size_t
function ngx_quic_dcid_encode_key (line 2122) | void
FILE: src/event/quic/ngx_event_quic_transport.h
type ngx_quic_ack_range_t (line 141) | typedef struct {
type ngx_quic_ack_frame_t (line 147) | typedef struct {
type ngx_quic_new_conn_id_frame_t (line 159) | typedef struct {
type ngx_quic_new_token_frame_t (line 168) | typedef struct {
type ngx_quic_ordered_frame_t (line 178) | typedef struct {
type ngx_quic_ordered_frame_t (line 183) | typedef ngx_quic_ordered_frame_t ngx_quic_crypto_frame_t;
type ngx_quic_stream_frame_t (line 186) | typedef struct {
type ngx_quic_max_data_frame_t (line 198) | typedef struct {
type ngx_quic_close_frame_t (line 203) | typedef struct {
type ngx_quic_reset_stream_frame_t (line 210) | typedef struct {
type ngx_quic_stop_sending_frame_t (line 217) | typedef struct {
type ngx_quic_streams_blocked_frame_t (line 223) | typedef struct {
type ngx_quic_max_streams_frame_t (line 229) | typedef struct {
type ngx_quic_max_stream_data_frame_t (line 235) | typedef struct {
type ngx_quic_data_blocked_frame_t (line 241) | typedef struct {
type ngx_quic_stream_data_blocked_frame_t (line 246) | typedef struct {
type ngx_quic_retire_cid_frame_t (line 252) | typedef struct {
type ngx_quic_path_challenge_frame_t (line 257) | typedef struct {
type ngx_quic_frame_t (line 262) | typedef struct ngx_quic_frame_s ngx_quic_frame_t;
type ngx_quic_frame_s (line 264) | struct ngx_quic_frame_s {
type ngx_quic_header_t (line 304) | typedef struct {
FILE: src/http/modules/ngx_http_access_module.c
type ngx_http_access_rule_t (line 13) | typedef struct {
type ngx_http_access_rule6_t (line 21) | typedef struct {
type ngx_http_access_rule_un_t (line 31) | typedef struct {
type ngx_http_access_loc_conf_t (line 37) | typedef struct {
function ngx_int_t (line 122) | static ngx_int_t
function ngx_int_t (line 182) | static ngx_int_t
function ngx_int_t (line 207) | static ngx_int_t
function ngx_int_t (line 254) | static ngx_int_t
function ngx_int_t (line 275) | static ngx_int_t
function ngx_int_t (line 447) | static ngx_int_t
FILE: src/http/modules/ngx_http_addition_filter_module.c
type ngx_http_addition_conf_t (line 13) | typedef struct {
type ngx_http_addition_ctx_t (line 22) | typedef struct {
function ngx_int_t (line 95) | static ngx_int_t
function ngx_int_t (line 132) | static ngx_int_t
function ngx_int_t (line 200) | static ngx_int_t
FILE: src/http/modules/ngx_http_auth_basic_module.c
type ngx_http_auth_basic_loc_conf_t (line 17) | typedef struct {
function ngx_int_t (line 89) | static ngx_int_t
function ngx_int_t (line 284) | static ngx_int_t
function ngx_int_t (line 317) | static ngx_int_t
function ngx_int_t (line 380) | static ngx_int_t
FILE: src/http/modules/ngx_http_auth_request_module.c
type ngx_http_auth_request_conf_t (line 13) | typedef struct {
type ngx_http_auth_request_ctx_t (line 19) | typedef struct {
type ngx_http_auth_request_variable_t (line 26) | typedef struct {
function ngx_int_t (line 101) | static ngx_int_t
function ngx_int_t (line 216) | static ngx_int_t
function ngx_int_t (line 231) | static ngx_int_t
function ngx_int_t (line 289) | static ngx_int_t
function ngx_int_t (line 337) | static ngx_int_t
FILE: src/http/modules/ngx_http_autoindex_module.c
type ngx_http_autoindex_ctx_t (line 15) | typedef struct {
type ngx_http_autoindex_entry_t (line 26) | typedef struct {
type ngx_http_autoindex_loc_conf_t (line 40) | typedef struct {
function ngx_int_t (line 152) | static ngx_int_t
function ngx_buf_t (line 432) | static ngx_buf_t *
function ngx_buf_t (line 702) | static ngx_buf_t *
function ngx_int_t (line 812) | static ngx_int_t
function ngx_buf_t (line 853) | static ngx_buf_t *
function ngx_http_autoindex_cmp_entries (line 951) | static int ngx_libc_cdecl
function ngx_buf_t (line 973) | static ngx_buf_t *
function ngx_int_t (line 1009) | static ngx_int_t
function ngx_int_t (line 1056) | static ngx_int_t
FILE: src/http/modules/ngx_http_browser_module.c
type ngx_http_modern_browser_mask_t (line 24) | typedef struct {
type ngx_http_modern_browser_t (line 32) | typedef struct {
type ngx_http_browser_conf_t (line 40) | typedef struct {
function ngx_int_t (line 229) | static ngx_int_t
function ngx_uint_t (line 255) | static ngx_uint_t
function ngx_int_t (line 383) | static ngx_int_t
function ngx_int_t (line 397) | static ngx_int_t
function ngx_http_modern_browser_sort (line 527) | static int ngx_libc_cdecl
FILE: src/http/modules/ngx_http_charset_filter_module.c
type ngx_http_charset_t (line 23) | typedef struct {
type ngx_http_charset_recode_t (line 32) | typedef struct {
type ngx_http_charset_tables_t (line 38) | typedef struct {
type ngx_http_charset_main_conf_t (line 46) | typedef struct {
type ngx_http_charset_loc_conf_t (line 53) | typedef struct {
type ngx_http_charset_ctx_t (line 63) | typedef struct {
type ngx_http_charset_conf_ctx_t (line 81) | typedef struct {
function ngx_int_t (line 216) | static ngx_int_t
function ngx_int_t (line 316) | static ngx_int_t
function ngx_int_t (line 384) | static ngx_int_t
function ngx_int_t (line 421) | static ngx_int_t
function ngx_int_t (line 464) | static ngx_int_t
function ngx_inline (line 490) | static ngx_inline void
function ngx_int_t (line 513) | static ngx_int_t
function ngx_int_t (line 546) | static ngx_int_t
function ngx_uint_t (line 651) | static ngx_uint_t
function ngx_chain_t (line 684) | static ngx_chain_t *
function ngx_chain_t (line 965) | static ngx_chain_t *
function ngx_chain_t (line 1092) | static ngx_chain_t *
function ngx_chain_t (line 1126) | static ngx_chain_t *
function ngx_int_t (line 1448) | static ngx_int_t
function ngx_int_t (line 1607) | static ngx_int_t
FILE: src/http/modules/ngx_http_chunked_filter_module.c
type ngx_http_chunked_filter_ctx_t (line 13) | typedef struct {
function ngx_int_t (line 59) | static ngx_int_t
function ngx_int_t (line 104) | static ngx_int_t
function ngx_chain_t (line 228) | static ngx_chain_t *
function ngx_int_t (line 331) | static ngx_int_t
FILE: src/http/modules/ngx_http_dav_module.c
type ngx_http_dav_loc_conf_t (line 21) | typedef struct {
type ngx_http_dav_copy_ctx_t (line 29) | typedef struct {
function ngx_int_t (line 142) | static ngx_int_t
function ngx_http_dav_put_handler (line 205) | static void
function ngx_int_t (line 304) | static ngx_int_t
function ngx_int_t (line 405) | static ngx_int_t
function ngx_int_t (line 448) | static ngx_int_t
function ngx_int_t (line 466) | static ngx_int_t
function ngx_int_t (line 484) | static ngx_int_t
function ngx_int_t (line 491) | static ngx_int_t
function ngx_int_t (line 535) | static ngx_int_t
function ngx_int_t (line 860) | static ngx_int_t
function ngx_int_t (line 896) | static ngx_int_t
function ngx_int_t (line 960) | static ngx_int_t
function ngx_int_t (line 1000) | static ngx_int_t
function ngx_int_t (line 1038) | static ngx_int_t
function ngx_int_t (line 1072) | static ngx_int_t
function ngx_int_t (line 1156) | static ngx_int_t
FILE: src/http/modules/ngx_http_degradation_module.c
type ngx_http_degradation_main_conf_t (line 13) | typedef struct {
type ngx_http_degradation_loc_conf_t (line 18) | typedef struct {
function ngx_int_t (line 90) | static ngx_int_t
function ngx_uint_t (line 105) | ngx_uint_t
function ngx_int_t (line 227) | static ngx_int_t
FILE: src/http/modules/ngx_http_empty_gif_module.c
function ngx_int_t (line 112) | static ngx_int_t
FILE: src/http/modules/ngx_http_fastcgi_module.c
type ngx_http_fastcgi_main_conf_t (line 13) | typedef struct {
type ngx_http_fastcgi_params_t (line 18) | typedef struct {
type ngx_http_fastcgi_loc_conf_t (line 27) | typedef struct {
type ngx_http_fastcgi_state_e (line 56) | typedef enum {
type ngx_http_fastcgi_split_part_t (line 70) | typedef struct {
type ngx_http_fastcgi_ctx_t (line 76) | typedef struct {
type ngx_http_fastcgi_header_t (line 115) | typedef struct {
type ngx_http_fastcgi_begin_request_t (line 127) | typedef struct {
type ngx_http_fastcgi_header_small_t (line 135) | typedef struct {
type ngx_http_fastcgi_request_start_t (line 143) | typedef struct {
function ngx_int_t (line 680) | static ngx_int_t
function ngx_int_t (line 761) | static ngx_int_t
function ngx_int_t (line 811) | static ngx_int_t
function ngx_int_t (line 834) | static ngx_int_t
function ngx_int_t (line 1323) | static ngx_int_t
function ngx_int_t (line 1348) | static ngx_int_t
function ngx_int_t (line 1636) | static ngx_int_t
function ngx_int_t (line 2080) | static ngx_int_t
function ngx_int_t (line 2113) | static ngx_int_t
function ngx_int_t (line 2420) | static ngx_int_t
function ngx_int_t (line 2636) | static ngx_int_t
function ngx_http_fastcgi_abort_request (line 2743) | static void
function ngx_http_fastcgi_finalize_request (line 2753) | static void
function ngx_int_t (line 2763) | static ngx_int_t
function ngx_int_t (line 3263) | static ngx_int_t
function ngx_int_t (line 3468) | static ngx_int_t
function ngx_int_t (line 3510) | static ngx_int_t
function ngx_http_fastcgi_ctx_t (line 3535) | static ngx_http_fastcgi_ctx_t *
FILE: src/http/modules/ngx_http_flv_module.c
function ngx_int_t (line 61) | static ngx_int_t
FILE: src/http/modules/ngx_http_geo_module.c
type ngx_http_geo_range_t (line 13) | typedef struct {
type ngx_http_geo_trees_t (line 20) | typedef struct {
type ngx_http_geo_high_ranges_t (line 28) | typedef struct {
type ngx_http_geo_variable_value_node_t (line 34) | typedef struct {
type ngx_http_geo_conf_ctx_t (line 41) | typedef struct {
type ngx_http_geo_ctx_t (line 69) | typedef struct {
type ngx_http_geo_header_t (line 157) | typedef struct {
function ngx_int_t (line 173) | static ngx_int_t
function ngx_int_t (line 246) | static ngx_int_t
function ngx_int_t (line 326) | static ngx_int_t
function ngx_int_t (line 347) | static ngx_int_t
type in6_addr (line 398) | struct in6_addr
function ngx_uint_t (line 985) | static ngx_uint_t
function ngx_http_variable_value_t (line 1245) | static ngx_http_variable_value_t *
function ngx_int_t (line 1322) | static ngx_int_t
function ngx_int_t (line 1403) | static ngx_int_t
function ngx_http_geo_create_binary_base (line 1577) | static void
function u_char (line 1655) | static u_char *
FILE: src/http/modules/ngx_http_geoip_module.c
type ngx_http_geoip_conf_t (line 21) | typedef struct {
type ngx_http_geoip_var_t (line 35) | typedef struct {
function u_long (line 239) | static u_long
function geoipv6_t (line 291) | static geoipv6_t
function ngx_int_t (line 340) | static ngx_int_t
function ngx_int_t (line 388) | static ngx_int_t
function ngx_int_t (line 442) | static ngx_int_t
function ngx_int_t (line 490) | static ngx_int_t
function ngx_int_t (line 534) | static ngx_int_t
function ngx_int_t (line 566) | static ngx_int_t
function GeoIPRecord (line 598) | static GeoIPRecord *
function ngx_int_t (line 621) | static ngx_int_t
function ngx_int_t (line 880) | static ngx_int_t
function ngx_http_geoip_cleanup (line 909) | static void
FILE: src/http/modules/ngx_http_grpc_module.c
type ngx_http_grpc_headers_t (line 13) | typedef struct {
type ngx_http_grpc_loc_conf_t (line 21) | typedef struct {
type ngx_http_grpc_state_e (line 45) | typedef enum {
type ngx_http_grpc_conn_t (line 60) | typedef struct {
type ngx_http_grpc_ctx_t (line 68) | typedef struct {
type ngx_http_grpc_frame_t (line 132) | typedef struct {
function ngx_int_t (line 536) | static ngx_int_t
function ngx_int_t (line 609) | static ngx_int_t
function ngx_int_t (line 706) | static ngx_int_t
function ngx_int_t (line 1194) | static ngx_int_t
function ngx_int_t (line 1221) | static ngx_int_t
function ngx_int_t (line 1583) | static ngx_int_t
function ngx_int_t (line 1945) | static ngx_int_t
function ngx_int_t (line 1985) | static ngx_int_t
function ngx_int_t (line 2499) | static ngx_int_t
function ngx_int_t (line 2594) | static ngx_int_t
function ngx_int_t (line 2813) | static ngx_int_t
function ngx_int_t (line 3370) | static ngx_int_t
function ngx_int_t (line 3396) | static ngx_int_t
function ngx_int_t (line 3414) | static ngx_int_t
function ngx_int_t (line 3495) | static ngx_int_t
function ngx_int_t (line 3613) | static ngx_int_t
function ngx_int_t (line 3718) | static ngx_int_t
function ngx_int_t (line 3887) | static ngx_int_t
function ngx_int_t (line 3978) | static ngx_int_t
function ngx_int_t (line 4015) | static ngx_int_t
function ngx_int_t (line 4054) | static ngx_int_t
function ngx_chain_t (line 4123) | static ngx_chain_t *
function ngx_http_grpc_ctx_t (line 4167) | static ngx_http_grpc_ctx_t *
function ngx_int_t (line 4187) | static ngx_int_t
function ngx_http_grpc_cleanup (line 4248) | static void
function ngx_http_grpc_abort_request (line 4259) | static void
function ngx_http_grpc_finalize_request (line 4268) | static void
function ngx_int_t (line 4277) | static ngx_int_t
function ngx_int_t (line 4309) | static ngx_int_t
function ngx_int_t (line 4562) | static ngx_int_t
function ngx_int_t (line 4872) | static ngx_int_t
FILE: src/http/modules/ngx_http_gunzip_filter_module.c
type ngx_http_gunzip_conf_t (line 16) | typedef struct {
type ngx_http_gunzip_ctx_t (line 22) | typedef struct {
function ngx_int_t (line 120) | static ngx_int_t
function ngx_int_t (line 174) | static ngx_int_t
function ngx_int_t (line 301) | static ngx_int_t
function ngx_int_t (line 332) | static ngx_int_t
function ngx_int_t (line 373) | static ngx_int_t
function ngx_int_t (line 414) | static ngx_int_t
function ngx_int_t (line 566) | static ngx_int_t
function ngx_http_gunzip_filter_free (line 628) | static void
function ngx_int_t (line 677) | static ngx_int_t
FILE: src/http/modules/ngx_http_gzip_filter_module.c
type ngx_http_gzip_conf_t (line 15) | typedef struct {
type ngx_http_gzip_ctx_t (line 33) | typedef struct {
function ngx_int_t (line 219) | static ngx_int_t
function ngx_int_t (line 297) | static ngx_int_t
function ngx_http_gzip_filter_memory (line 466) | static void
function ngx_int_t (line 532) | static ngx_int_t
function ngx_int_t (line 600) | static ngx_int_t
function ngx_int_t (line 636) | static ngx_int_t
function ngx_int_t (line 698) | static ngx_int_t
function ngx_int_t (line 741) | static ngx_int_t
function ngx_int_t (line 868) | static ngx_int_t
function ngx_http_gzip_filter_free (line 965) | static void
function ngx_http_gzip_filter_free_copy_buf (line 977) | static void
function ngx_int_t (line 991) | static ngx_int_t
function ngx_int_t (line 1007) | static ngx_int_t
function ngx_int_t (line 1114) | static ngx_int_t
FILE: src/http/modules/ngx_http_gzip_static_module.c
type ngx_http_gzip_static_conf_t (line 18) | typedef struct {
function ngx_int_t (line 82) | static ngx_int_t
function ngx_int_t (line 315) | static ngx_int_t
FILE: src/http/modules/ngx_http_headers_filter_module.c
type ngx_http_header_val_t (line 13) | typedef struct ngx_http_header_val_s ngx_http_header_val_t;
type ngx_int_t (line 15) | typedef ngx_int_t (*ngx_http_set_header_pt)(ngx_http_request_t *r,
type ngx_http_set_header_t (line 19) | typedef struct {
type ngx_http_header_val_s (line 26) | struct ngx_http_header_val_s {
type ngx_http_expires_t (line 35) | typedef enum {
type ngx_http_headers_conf_t (line 46) | typedef struct {
function ngx_int_t (line 165) | static ngx_int_t
function ngx_int_t (line 247) | static ngx_int_t
function ngx_int_t (line 324) | static ngx_int_t
function ngx_int_t (line 470) | static ngx_int_t
function ngx_int_t (line 542) | static ngx_int_t
function ngx_int_t (line 563) | static ngx_int_t
function ngx_int_t (line 603) | static ngx_int_t
function ngx_int_t (line 618) | static ngx_int_t
function ngx_int_t (line 708) | static ngx_int_t
FILE: src/http/modules/ngx_http_image_filter_module.c
type ngx_http_image_filter_conf_t (line 40) | typedef struct {
type ngx_http_image_filter_ctx_t (line 63) | typedef struct {
function ngx_int_t (line 220) | static ngx_int_t
function ngx_int_t (line 291) | static ngx_int_t
function ngx_int_t (line 400) | static ngx_int_t
function ngx_uint_t (line 423) | static ngx_uint_t
function ngx_int_t (line 470) | static ngx_int_t
function ngx_buf_t (line 524) | static ngx_buf_t *
function ngx_buf_t (line 578) | static ngx_buf_t *
function ngx_buf_t (line 631) | static ngx_buf_t *
function ngx_http_image_length (line 652) | static void
function ngx_int_t (line 665) | static ngx_int_t
function ngx_buf_t (line 819) | static ngx_buf_t *
function gdImagePtr (line 1091) | static gdImagePtr
function gdImagePtr (line 1138) | static gdImagePtr
function u_char (line 1166) | static u_char *
function ngx_http_image_cleanup (line 1230) | static void
function ngx_uint_t (line 1237) | static ngx_uint_t
function ngx_uint_t (line 1255) | static ngx_uint_t
function ngx_int_t (line 1665) | static ngx_int_t
FILE: src/http/modules/ngx_http_index_module.c
type ngx_http_index_t (line 13) | typedef struct {
type ngx_http_index_loc_conf_t (line 20) | typedef struct {
function ngx_int_t (line 96) | static ngx_int_t
function ngx_int_t (line 284) | static ngx_int_t
function ngx_int_t (line 367) | static ngx_int_t
function ngx_int_t (line 442) | static ngx_int_t
FILE: src/http/modules/ngx_http_limit_conn_module.c
type ngx_http_limit_conn_node_t (line 18) | typedef struct {
type ngx_http_limit_conn_cleanup_t (line 26) | typedef struct {
type ngx_http_limit_conn_shctx_t (line 32) | typedef struct {
type ngx_http_limit_conn_ctx_t (line 38) | typedef struct {
type ngx_http_limit_conn_limit_t (line 45) | typedef struct {
type ngx_http_limit_conn_conf_t (line 51) | typedef struct {
function ngx_int_t (line 179) | static ngx_int_t
function ngx_http_limit_conn_rbtree_insert_value (line 311) | static void
function ngx_rbtree_node_t (line 352) | static ngx_rbtree_node_t *
function ngx_http_limit_conn_cleanup (line 391) | static void
function ngx_inline (line 420) | static ngx_inline void
function ngx_int_t (line 436) | static ngx_int_t
function ngx_int_t (line 498) | static ngx_int_t
function ngx_int_t (line 723) | static ngx_int_t
function ngx_int_t (line 742) | static ngx_int_t
FILE: src/http/modules/ngx_http_limit_req_module.c
type ngx_http_limit_req_node_t (line 20) | typedef struct {
type ngx_http_limit_req_shctx_t (line 33) | typedef struct {
type ngx_http_limit_req_ctx_t (line 40) | typedef struct {
type ngx_http_limit_req_limit_t (line 50) | typedef struct {
type ngx_http_limit_req_conf_t (line 58) | typedef struct {
function ngx_int_t (line 194) | static ngx_int_t
function ngx_http_limit_req_delay (line 332) | static void
function ngx_http_limit_req_rbtree_insert_value (line 363) | static void
function ngx_int_t (line 404) | static ngx_int_t
function ngx_msec_t (line 535) | static ngx_msec_t
function ngx_http_limit_req_unlock (line 609) | static void
function ngx_http_limit_req_expire (line 632) | static void
function ngx_int_t (line 698) | static ngx_int_t
function ngx_int_t (line 764) | static ngx_int_t
function ngx_int_t (line 1067) | static ngx_int_t
function ngx_int_t (line 1086) | static ngx_int_t
FILE: src/http/modules/ngx_http_log_module.c
type ngx_http_log_op_t (line 17) | typedef struct ngx_http_log_op_s ngx_http_log_op_t;
type u_char (line 19) | typedef u_char *(*ngx_http_log_op_run_pt) (ngx_http_request_t *r, u_char...
type ngx_http_log_op_s (line 26) | struct ngx_http_log_op_s {
type ngx_http_log_fmt_t (line 34) | typedef struct {
type ngx_http_log_main_conf_t (line 41) | typedef struct {
type ngx_http_log_buf_t (line 47) | typedef struct {
type ngx_http_log_script_t (line 58) | typedef struct {
type ngx_http_log_t (line 64) | typedef struct {
type ngx_http_log_loc_conf_t (line 75) | typedef struct {
type ngx_http_log_var_t (line 86) | typedef struct {
function ngx_int_t (line 253) | static ngx_int_t
function ngx_http_log_write (line 405) | static void
function ngx_http_log_script_write (line 471) | static ssize_t
function ngx_http_log_gzip (line 586) | static ssize_t
function ngx_http_log_gzip_free (line 705) | static void
function ngx_http_log_flush (line 718) | static void
function ngx_http_log_flush_handler (line 762) | static void
function u_char (line 772) | static u_char *
function u_char (line 791) | static u_char *
function u_char (line 799) | static u_char *
function u_char (line 812) | static u_char *
function u_char (line 819) | static u_char *
function u_char (line 826) | static u_char *
function u_char (line 837) | static u_char *
function u_char (line 854) | static u_char *
function u_char (line 876) | static u_char *
function u_char (line 889) | static u_char *
function u_char (line 907) | static u_char *
function ngx_int_t (line 915) | static ngx_int_t
function ngx_http_log_variable_getlen (line 950) | static size_t
function u_char (line 970) | static u_char *
function ngx_http_log_escape (line 991) | static uintptr_t
function ngx_http_log_json_variable_getlen (line 1051) | static size_t
function u_char (line 1071) | static u_char *
function ngx_http_log_unescaped_variable_getlen (line 1092) | static size_t
function u_char (line 1109) | static u_char *
function ngx_int_t (line 1867) | static ngx_int_t
FILE: src/http/modules/ngx_http_map_module.c
type ngx_http_map_conf_t (line 13) | typedef struct {
type ngx_http_map_conf_ctx_t (line 19) | typedef struct {
type ngx_http_map_ctx_t (line 34) | typedef struct {
function ngx_int_t (line 107) | static ngx_int_t
function ngx_http_map_cmp_dns_wildcards (line 368) | static int ngx_libc_cdecl
FILE: src/http/modules/ngx_http_memcached_module.c
type ngx_http_memcached_loc_conf_t (line 13) | typedef struct {
type ngx_http_memcached_ctx_t (line 20) | typedef struct {
function ngx_int_t (line 175) | static ngx_int_t
function ngx_int_t (line 237) | static ngx_int_t
function ngx_int_t (line 302) | static ngx_int_t
function ngx_int_t (line 309) | static ngx_int_t
function ngx_int_t (line 452) | static ngx_int_t
function ngx_int_t (line 473) | static ngx_int_t
function ngx_http_memcached_abort_request (line 571) | static void
function ngx_http_memcached_finalize_request (line 580) | static void
FILE: src/http/modules/ngx_http_mirror_module.c
type ngx_http_mirror_loc_conf_t (line 13) | typedef struct {
type ngx_http_mirror_ctx_t (line 19) | typedef struct {
function ngx_int_t (line 85) | static ngx_int_t
function ngx_http_mirror_body_handler (line 133) | static void
function ngx_int_t (line 149) | static ngx_int_t
function ngx_int_t (line 248) | static ngx_int_t
FILE: src/http/modules/ngx_http_mp4_module.c
type ngx_http_mp4_conf_t (line 45) | typedef struct {
type ngx_mp4_stsc_entry_t (line 52) | typedef struct {
type ngx_mp4_edts_atom_t (line 59) | typedef struct {
type ngx_mp4_elst_atom_t (line 65) | typedef struct {
type ngx_http_mp4_trak_t (line 78) | typedef struct {
type ngx_http_mp4_file_t (line 148) | typedef struct {
type ngx_http_mp4_atom_handler_t (line 188) | typedef struct {
function ngx_int_t (line 476) | static ngx_int_t
function ngx_int_t (line 730) | static ngx_int_t
function ngx_int_t (line 786) | static ngx_int_t
type ngx_mp4_atom_header_t (line 941) | typedef struct {
type ngx_mp4_atom_header64_t (line 946) | typedef struct {
function ngx_int_t (line 953) | static ngx_int_t
function ngx_int_t (line 1057) | static ngx_int_t
function ngx_int_t (line 1106) | static ngx_int_t
function ngx_int_t (line 1162) | static ngx_int_t
function ngx_int_t (line 1242) | static ngx_int_t
function ngx_http_mp4_update_mdat_atom (line 1272) | static size_t
type ngx_mp4_mvhd_atom_t (line 1317) | typedef struct {
type ngx_mp4_mvhd64_atom_t (line 1339) | typedef struct {
function ngx_int_t (line 1362) | static ngx_int_t
function ngx_int_t (line 1457) | static ngx_int_t
function ngx_http_mp4_update_trak_atom (line 1506) | static void
function ngx_int_t (line 1518) | static ngx_int_t
type ngx_mp4_tkhd_atom_t (line 1529) | typedef struct {
type ngx_mp4_tkhd64_atom_t (line 1549) | typedef struct {
function ngx_int_t (line 1570) | static ngx_int_t
function ngx_int_t (line 1665) | static ngx_int_t
function ngx_http_mp4_update_mdia_atom (line 1690) | static void
type ngx_mp4_mdhd_atom_t (line 1702) | typedef struct {
type ngx_mp4_mdhd64_atom_t (line 1715) | typedef struct {
function ngx_int_t (line 1729) | static ngx_int_t
function ngx_http_mp4_update_mdhd_atom (line 1821) | static void
function ngx_int_t (line 1848) | static ngx_int_t
function ngx_int_t (line 1879) | static ngx_int_t
function ngx_http_mp4_update_minf_atom (line 1904) | static void
function ngx_int_t (line 1919) | static ngx_int_t
function ngx_int_t (line 1950) | static ngx_int_t
function ngx_int_t (line 1981) | static ngx_int_t
function ngx_int_t (line 2012) | static ngx_int_t
function ngx_http_mp4_update_edts_atom (line 2037) | static void
function ngx_http_mp4_update_stbl_atom (line 2090) | static void
type ngx_mp4_stsd_atom_t (line 2102) | typedef struct {
function ngx_int_t (line 2114) | static ngx_int_t
type ngx_mp4_stts_atom_t (line 2161) | typedef struct {
type ngx_mp4_stts_entry_t (line 2169) | typedef struct {
function ngx_int_t (line 2175) | static ngx_int_t
function ngx_int_t (line 2236) | static ngx_int_t
function ngx_int_t (line 2284) | static ngx_int_t
function ngx_http_mp4_seek_key_frame (line 2402) | static uint32_t
type ngx_http_mp4_stss_atom_t (line 2445) | typedef struct {
function ngx_int_t (line 2454) | static ngx_int_t
function ngx_int_t (line 2516) | static ngx_int_t
function ngx_http_mp4_crop_stss_data (line 2576) | static void
type ngx_mp4_ctts_atom_t (line 2638) | typedef struct {
type ngx_mp4_ctts_entry_t (line 2646) | typedef struct {
function ngx_int_t (line 2652) | static ngx_int_t
function ngx_http_mp4_update_ctts_atom (line 2714) | static void
function ngx_http_mp4_crop_ctts_data (line 2763) | static void
type ngx_mp4_stsc_atom_t (line 2835) | typedef struct {
function ngx_int_t (line 2844) | static ngx_int_t
function ngx_int_t (line 2905) | static ngx_int_t
function ngx_int_t (line 2977) | static ngx_int_t
type ngx_mp4_stsz_atom_t (line 3175) | typedef struct {
function ngx_int_t (line 3185) | static ngx_int_t
function ngx_int_t (line 3260) | static ngx_int_t
type ngx_mp4_stco_atom_t (line 3351) | typedef struct {
function ngx_int_t (line 3360) | static ngx_int_t
function ngx_int_t (line 3420) | static ngx_int_t
function ngx_http_mp4_adjust_stco_atom (line 3529) | static void
type ngx_mp4_co64_atom_t (line 3557) | typedef struct {
function ngx_int_t (line 3566) | static ngx_int_t
function ngx_int_t (line 3626) | static ngx_int_t
function ngx_http_mp4_adjust_co64_atom (line 3730) | static void
FILE: src/http/modules/ngx_http_not_modified_filter_module.c
function ngx_int_t (line 54) | static ngx_int_t
function ngx_uint_t (line 112) | static ngx_uint_t
function ngx_uint_t (line 135) | static ngx_uint_t
function ngx_uint_t (line 171) | static ngx_uint_t
function ngx_int_t (line 259) | static ngx_int_t
FILE: src/http/modules/ngx_http_proxy_module.c
type ngx_http_proxy_main_conf_t (line 26) | typedef struct {
type ngx_http_proxy_rewrite_t (line 31) | typedef struct ngx_http_proxy_rewrite_s ngx_http_proxy_rewrite_t;
type ngx_int_t (line 33) | typedef ngx_int_t (*ngx_http_proxy_rewrite_pt)(ngx_http_request_t *r,
type ngx_http_proxy_rewrite_s (line 37) | struct ngx_http_proxy_rewrite_s {
type ngx_http_proxy_cookie_flags_t (line 51) | typedef struct {
type ngx_http_proxy_vars_t (line 64) | typedef struct {
type ngx_http_proxy_headers_t (line 73) | typedef struct {
type ngx_http_proxy_loc_conf_t (line 81) | typedef struct {
type ngx_http_proxy_ctx_t (line 132) | typedef struct {
function ngx_int_t (line 932) | static ngx_int_t
function ngx_int_t (line 1031) | static ngx_int_t
function ngx_int_t (line 1135) | static ngx_int_t
function ngx_int_t (line 1233) | static ngx_int_t
function ngx_int_t (line 1606) | static ngx_int_t
function ngx_int_t (line 1632) | static ngx_int_t
function ngx_int_t (line 1799) | static ngx_int_t
function ngx_int_t (line 1878) | static ngx_int_t
function ngx_int_t (line 2034) | static ngx_int_t
function ngx_int_t (line 2093) | static ngx_int_t
function ngx_int_t (line 2173) | static ngx_int_t
function ngx_int_t (line 2325) | static ngx_int_t
function ngx_int_t (line 2391) | static ngx_int_t
function ngx_http_proxy_abort_request (line 2492) | static void
function ngx_http_proxy_finalize_request (line 2502) | static void
function ngx_int_t (line 2512) | static ngx_int_t
function ngx_int_t (line 2535) | static ngx_int_t
function ngx_int_t (line 2558) | static ngx_int_t
function ngx_int_t (line 2607) | static ngx_int_t
function ngx_int_t (line 2636) | static ngx_int_t
function ngx_int_t (line 2660) | static ngx_int_t
function ngx_int_t (line 2692) | static ngx_int_t
function ngx_int_t (line 2828) | static ngx_int_t
function ngx_int_t (line 2893) | static ngx_int_t
function ngx_int_t (line 2915) | static ngx_int_t
function ngx_int_t (line 3014) | static ngx_int_t
function ngx_int_t (line 3143) | static ngx_int_t
function ngx_int_t (line 3169) | static ngx_int_t
function ngx_int_t (line 3192) | static ngx_int_t
function ngx_int_t (line 3223) | static ngx_int_t
function ngx_int_t (line 3265) | static ngx_int_t
function ngx_int_t (line 3935) | static ngx_int_t
function ngx_int_t (line 4672) | static ngx_int_t
function ngx_int_t (line 4921) | static ngx_int_t
function ngx_http_proxy_set_vars (line 5024) | static void
FILE: src/http/modules/ngx_http_quic_module.c
function ngx_int_t (line 270) | ngx_int_t
function ngx_int_t (line 340) | static ngx_int_t
function ngx_int_t (line 361) | static ngx_int_t
function ngx_int_t (line 391) | static ngx_int_t
FILE: src/http/modules/ngx_http_random_index_module.c
type ngx_http_random_index_loc_conf_t (line 13) | typedef struct {
function ngx_int_t (line 73) | static ngx_int_t
function ngx_int_t (line 260) | static ngx_int_t
function ngx_int_t (line 301) | static ngx_int_t
FILE: src/http/modules/ngx_http_range_filter_module.c
type ngx_http_range_t (line 48) | typedef struct {
type ngx_http_range_filter_ctx_t (line 55) | typedef struct {
function ngx_int_t (line 146) | static ngx_int_t
function ngx_int_t (line 268) | static ngx_int_t
function ngx_int_t (line 411) | static ngx_int_t
function ngx_int_t (line 462) | static ngx_int_t
function ngx_int_t (line 587) | static ngx_int_t
function ngx_int_t (line 623) | static ngx_int_t
function ngx_int_t (line 658) | static ngx_int_t
function ngx_int_t (line 698) | static ngx_int_t
function ngx_int_t (line 821) | static ngx_int_t
function ngx_int_t (line 951) | static ngx_int_t
function ngx_int_t (line 961) | static ngx_int_t
FILE: src/http/modules/ngx_http_realip_module.c
type ngx_http_realip_loc_conf_t (line 19) | typedef struct {
type ngx_http_realip_ctx_t (line 28) | typedef struct {
function ngx_int_t (line 129) | static ngx_int_t
function ngx_int_t (line 250) | static ngx_int_t
function ngx_http_realip_cleanup (line 299) | static void
type sockaddr_in (line 324) | struct sockaddr_in
type sockaddr_in6 (line 326) | struct sockaddr_in6
type sockaddr_in6 (line 399) | struct sockaddr_in6
type sockaddr_in (line 406) | struct sockaddr_in
function ngx_int_t (line 500) | static ngx_int_t
function ngx_int_t (line 519) | static ngx_int_t
function ngx_http_realip_ctx_t (line 545) | static ngx_http_realip_ctx_t *
function ngx_int_t (line 572) | static ngx_int_t
function ngx_int_t (line 593) | static ngx_int_t
FILE: src/http/modules/ngx_http_referer_module.c
type ngx_http_referer_conf_t (line 16) | typedef struct {
function ngx_int_t (line 114) | static ngx_int_t
function ngx_int_t (line 270) | static ngx_int_t
function ngx_int_t (line 545) | static ngx_int_t
function ngx_int_t (line 584) | static ngx_int_t
function ngx_int_t (line 645) | static ngx_int_t
function ngx_http_cmp_referer_wildcards (line 673) | static int ngx_libc_cdecl
FILE: src/http/modules/ngx_http_rewrite_module.c
type ngx_http_rewrite_loc_conf_t (line 13) | typedef struct {
function ngx_int_t (line 136) | static ngx_int_t
function ngx_int_t (line 187) | static ngx_int_t
function ngx_int_t (line 271) | static ngx_int_t
FILE: src/http/modules/ngx_http_scgi_module.c
type ngx_http_scgi_main_conf_t (line 14) | typedef struct {
type ngx_http_scgi_params_t (line 19) | typedef struct {
type ngx_http_scgi_loc_conf_t (line 28) | typedef struct {
function ngx_int_t (line 477) | static ngx_int_t
function ngx_int_t (line 559) | static ngx_int_t
function ngx_int_t (line 609) | static ngx_int_t
function ngx_int_t (line 632) | static ngx_int_t
function ngx_int_t (line 945) | static ngx_int_t
function ngx_int_t (line 968) | static ngx_int_t
function ngx_int_t (line 1021) | static ngx_int_t
function ngx_int_t (line 1155) | static ngx_int_t
function ngx_http_scgi_abort_request (line 1186) | static void
function ngx_http_scgi_finalize_request (line 1196) | static void
function ngx_int_t (line 1651) | static ngx_int_t
FILE: src/http/modules/ngx_http_secure_link_module.c
type ngx_http_secure_link_conf_t (line 14) | typedef struct {
type ngx_http_secure_link_ctx_t (line 21) | typedef struct {
function ngx_int_t (line 100) | static ngx_int_t
function ngx_int_t (line 198) | static ngx_int_t
function ngx_int_t (line 269) | static ngx_int_t
function ngx_int_t (line 346) | static ngx_int_t
FILE: src/http/modules/ngx_http_slice_filter_module.c
type ngx_http_slice_loc_conf_t (line 13) | typedef struct {
type ngx_http_slice_ctx_t (line 18) | typedef struct {
type ngx_http_slice_content_range_t (line 29) | typedef struct {
function ngx_int_t (line 101) | static ngx_int_t
function ngx_int_t (line 217) | static ngx_int_t
function ngx_int_t (line 290) | static ngx_int_t
function ngx_int_t (line 394) | static ngx_int_t
function off_t (line 447) | static off_t
function ngx_int_t (line 524) | static ngx_int_t
function ngx_int_t (line 540) | static ngx_int_t
FILE: src/http/modules/ngx_http_split_clients_module.c
type ngx_http_split_clients_part_t (line 13) | typedef struct {
type ngx_http_split_clients_ctx_t (line 19) | typedef struct {
function ngx_int_t (line 74) | static ngx_int_t
FILE: src/http/modules/ngx_http_ssi_filter_module.c
type ngx_http_ssi_loc_conf_t (line 20) | typedef struct {
type ngx_http_ssi_var_t (line 35) | typedef struct {
type ngx_http_ssi_block_t (line 42) | typedef struct {
type ngx_http_ssi_state_e (line 49) | typedef enum {
function ngx_int_t (line 329) | static ngx_int_t
function ngx_int_t (line 388) | static ngx_int_t
function ngx_int_t (line 914) | static ngx_int_t
function ngx_http_ssi_buffered (line 978) | static void
function ngx_int_t (line 990) | static ngx_int_t
function ngx_str_t (line 1555) | static ngx_str_t *
function ngx_int_t (line 1626) | static ngx_int_t
function ngx_int_t (line 1877) | static ngx_int_t
function ngx_int_t (line 1985) | static ngx_int_t
function ngx_int_t (line 2201) | static ngx_int_t
function ngx_int_t (line 2229) | static ngx_int_t
function ngx_int_t (line 2245) | static ngx_int_t
function ngx_int_t (line 2381) | static ngx_int_t
function ngx_int_t (line 2409) | static ngx_int_t
function ngx_int_t (line 2466) | static ngx_int_t
function ngx_int_t (line 2640) | static ngx_int_t
function ngx_int_t (line 2659) | static ngx_int_t
function ngx_int_t (line 2674) | static ngx_int_t
function ngx_int_t (line 2710) | static ngx_int_t
function ngx_int_t (line 2724) | static ngx_int_t
function ngx_int_t (line 2780) | static ngx_int_t
function ngx_int_t (line 2923) | static ngx_int_t
FILE: src/http/modules/ngx_http_ssi_filter_module.h
type ngx_http_ssi_main_conf_t (line 33) | typedef struct {
type ngx_http_ssi_ctx_t (line 39) | typedef struct {
type ngx_int_t (line 87) | typedef ngx_int_t (*ngx_http_ssi_command_pt) (ngx_http_request_t *r,
type ngx_http_ssi_param_t (line 91) | typedef struct {
type ngx_http_ssi_command_t (line 100) | typedef struct {
FILE: src/http/modules/ngx_http_ssl_module.c
type ngx_int_t (line 13) | typedef ngx_int_t (*ngx_ssl_variable_handler_pt)(ngx_connection_t *c,
function ngx_http_ssl_alpn_select (line 414) | static int
function ngx_int_t (line 503) | static ngx_int_t
function ngx_int_t (line 534) | static ngx_int_t
function ngx_int_t (line 566) | static ngx_int_t
function ngx_int_t (line 936) | static ngx_int_t
function ngx_int_t (line 1269) | static ngx_int_t
FILE: src/http/modules/ngx_http_ssl_module.h
type ngx_http_ssl_srv_conf_t (line 17) | typedef struct {
FILE: src/http/modules/ngx_http_static_module.c
function ngx_int_t (line 48) | static ngx_int_t
function ngx_int_t (line 283) | static ngx_int_t
FILE: src/http/modules/ngx_http_stub_status_module.c
function ngx_int_t (line 83) | static ngx_int_t
function ngx_int_t (line 153) | static ngx_int_t
function ngx_int_t (line 198) | static ngx_int_t
FILE: src/http/modules/ngx_http_sub_filter_module.c
type ngx_http_sub_pair_t (line 13) | typedef struct {
type ngx_http_sub_match_t (line 19) | typedef struct {
type ngx_http_sub_tables_t (line 25) | typedef struct {
type ngx_http_sub_loc_conf_t (line 34) | typedef struct {
type ngx_http_sub_ctx_t (line 51) | typedef struct {
function ngx_int_t (line 170) | static ngx_int_t
function ngx_int_t (line 284) | static ngx_int_t
function ngx_int_t (line 537) | static ngx_int_t
function ngx_int_t (line 606) | static ngx_int_t
function ngx_int_t (line 743) | static ngx_int_t
function ngx_http_sub_init_tables (line 947) | static void
function ngx_int_t (line 992) | static ngx_int_t
function ngx_int_t (line 1008) | static ngx_int_t
FILE: src/http/modules/ngx_http_try_files_module.c
type ngx_http_try_file_t (line 13) | typedef struct {
type ngx_http_try_files_loc_conf_t (line 23) | typedef struct {
function ngx_int_t (line 78) | static ngx_int_t
function ngx_int_t (line 388) | static ngx_int_t
FILE: src/http/modules/ngx_http_upstream_hash_module.c
type ngx_http_upstream_chash_point_t (line 13) | typedef struct {
type ngx_http_upstream_chash_points_t (line 19) | typedef struct {
type ngx_http_upstream_hash_srv_conf_t (line 25) | typedef struct {
type ngx_http_upstream_hash_peer_data_t (line 31) | typedef struct {
function ngx_int_t (line 110) | static ngx_int_t
function ngx_int_t (line 123) | static ngx_int_t
function ngx_int_t (line 162) | static ngx_int_t
function ngx_int_t (line 285) | static ngx_int_t
function ngx_http_upstream_chash_cmp_points (line 411) | static int ngx_libc_cdecl
function ngx_uint_t (line 431) | static ngx_uint_t
function ngx_int_t (line 463) | static ngx_int_t
function ngx_int_t (line 492) | static ngx_int_t
FILE: src/http/modules/ngx_http_upstream_ip_hash_module.c
type ngx_http_upstream_ip_hash_peer_data_t (line 13) | typedef struct {
function ngx_int_t (line 83) | static ngx_int_t
function ngx_int_t (line 96) | static ngx_int_t
function ngx_int_t (line 148) | static ngx_int_t
FILE: src/http/modules/ngx_http_upstream_keepalive_module.c
type ngx_http_upstream_keepalive_srv_conf_t (line 13) | typedef struct {
type ngx_http_upstream_keepalive_cache_t (line 28) | typedef struct {
type ngx_http_upstream_keepalive_peer_data_t (line 40) | typedef struct {
function ngx_int_t (line 146) | static ngx_int_t
function ngx_int_t (line 192) | static ngx_int_t
function ngx_int_t (line 235) | static ngx_int_t
function ngx_http_upstream_free_keepalive_peer (line 304) | static void
function ngx_http_upstream_keepalive_dummy_handler (line 413) | static void
function ngx_http_upstream_keepalive_close_handler (line 421) | static void
function ngx_http_upstream_keepalive_close (line 464) | static void
function ngx_int_t (line 489) | static ngx_int_t
function ngx_http_upstream_keepalive_save_session (line 498) | static void
FILE: src/http/modules/ngx_http_upstream_least_conn_module.c
function ngx_int_t (line 65) | static ngx_int_t
function ngx_int_t (line 82) | static ngx_int_t
function ngx_int_t (line 99) | static ngx_int_t
FILE: src/http/modules/ngx_http_upstream_random_module.c
type ngx_http_upstream_random_range_t (line 12) | typedef struct {
type ngx_http_upstream_random_srv_conf_t (line 18) | typedef struct {
type ngx_http_upstream_random_peer_data_t (line 24) | typedef struct {
function ngx_int_t (line 96) | static ngx_int_t
function ngx_int_t (line 117) | static ngx_int_t
function ngx_int_t (line 153) | static ngx_int_t
function ngx_int_t (line 203) | static ngx_int_t
function ngx_int_t (line 297) | static ngx_int_t
function ngx_uint_t (line 406) | static ngx_uint_t
FILE: src/http/modules/ngx_http_upstream_zone_module.c
function ngx_int_t (line 120) | static ngx_int_t
function ngx_http_upstream_rr_peers_t (line 186) | static ngx_http_upstream_rr_peers_t *
function ngx_http_upstream_rr_peer_t (line 263) | static ngx_http_upstream_rr_peer_t *
FILE: src/http/modules/ngx_http_userid_filter_module.c
type ngx_http_userid_conf_t (line 30) | typedef struct {
type ngx_http_userid_ctx_t (line 47) | typedef struct {
function ngx_int_t (line 226) | static ngx_int_t
function ngx_int_t (line 256) | static ngx_int_t
function ngx_int_t (line 286) | static ngx_int_t
function ngx_http_userid_ctx_t (line 319) | static ngx_http_userid_ctx_t *
function ngx_int_t (line 389) | static ngx_int_t
function ngx_int_t (line 525) | static ngx_int_t
function ngx_int_t (line 648) | static ngx_int_t
function ngx_int_t (line 669) | static ngx_int_t
function ngx_int_t (line 679) | static ngx_int_t
function ngx_int_t (line 779) | static ngx_int_t
function ngx_int_t (line 916) | static ngx_int_t
FILE: src/http/modules/ngx_http_uwsgi_module.c
type ngx_http_uwsgi_main_conf_t (line 15) | typedef struct {
type ngx_http_uwsgi_params_t (line 20) | typedef struct {
type ngx_http_uwsgi_loc_conf_t (line 29) | typedef struct {
function ngx_int_t (line 642) | static ngx_int_t
function ngx_int_t (line 738) | static ngx_int_t
function ngx_int_t (line 822) | static ngx_int_t
function ngx_int_t (line 845) | static ngx_int_t
function ngx_int_t (line 1166) | static ngx_int_t
function ngx_int_t (line 1189) | static ngx_int_t
function ngx_int_t (line 1242) | static ngx_int_t
function ngx_int_t (line 1376) | static ngx_int_t
function ngx_http_uwsgi_abort_request (line 1407) | static void
function ngx_http_uwsgi_finalize_request (line 1417) | static void
function ngx_int_t (line 1937) | static ngx_int_t
function ngx_int_t (line 2408) | static ngx_int_t
FILE: src/http/modules/ngx_http_xslt_filter_module.c
type ngx_http_xslt_file_t (line 30) | typedef struct {
type ngx_http_xslt_filter_main_conf_t (line 36) | typedef struct {
type ngx_http_xslt_param_t (line 42) | typedef struct {
type ngx_http_xslt_sheet_t (line 49) | typedef struct {
type ngx_http_xslt_filter_loc_conf_t (line 55) | typedef struct {
type ngx_http_xslt_filter_ctx_t (line 65) | typedef struct {
function ngx_int_t (line 201) | static ngx_int_t
function ngx_int_t (line 242) | static ngx_int_t
function ngx_int_t (line 309) | static ngx_int_t
function ngx_int_t (line 369) | static ngx_int_t
function ngx_http_xslt_sax_external_subset (line 412) | static void
function ngx_http_xslt_sax_error (line 463) | static void ngx_cdecl
function ngx_buf_t (line 488) | static ngx_buf_t *
function ngx_int_t (line 628) | static ngx_int_t
function u_char (line 769) | static u_char *
function u_char (line 791) | static u_char *
function ngx_http_xslt_cleanup (line 813) | static void
function ngx_http_xslt_cleanup_dtd (line 1026) | static void
function ngx_http_xslt_cleanup_stylesheet (line 1033) | static void
function ngx_int_t (line 1126) | static ngx_int_t
function ngx_int_t (line 1139) | static ngx_int_t
function ngx_http_xslt_filter_exit (line 1152) | static void
FILE: src/http/modules/perl/ngx_http_perl_module.c
type ngx_http_perl_main_conf_t (line 14) | typedef struct {
type ngx_http_perl_loc_conf_t (line 22) | typedef struct {
type ngx_http_perl_variable_t (line 28) | typedef struct {
function ngx_http_perl_xs_init (line 161) | static void
function ngx_int_t (line 170) | static ngx_int_t
function ngx_http_perl_handle_request (line 181) | void
function ngx_http_perl_sleep_handler (line 288) | void
function ngx_int_t (line 311) | static ngx_int_t
function ngx_int_t (line 381) | static ngx_int_t
function PerlInterpreter (line 574) | static PerlInterpreter *
function ngx_int_t (line 667) | static ngx_int_t
function ngx_int_t (line 701) | static ngx_int_t
function ngx_http_perl_eval_anon_sub (line 819) | static void
function ngx_http_perl_cleanup_perl (line 879) | static void
function ngx_int_t (line 901) | static ngx_int_t
function ngx_int_t (line 1089) | static ngx_int_t
function ngx_http_perl_exit (line 1110) | static void
FILE: src/http/modules/perl/ngx_http_perl_module.h
type ngx_http_request_t (line 21) | typedef ngx_http_request_t *nginx;
type ngx_http_perl_ctx_t (line 23) | typedef struct {
type ngx_http_perl_var_t (line 46) | typedef struct {
FILE: src/http/ngx_http.c
function ngx_int_t (line 349) | static ngx_int_t
function ngx_int_t (line 412) | static ngx_int_t
function ngx_int_t (line 453) | static ngx_int_t
function ngx_int_t (line 669) | static ngx_int_t
function ngx_int_t (line 798) | static ngx_int_t
function ngx_int_t (line 844) | ngx_int_t
function ngx_int_t (line 895) | static ngx_int_t
function ngx_int_t (line 926) | static ngx_int_t
function ngx_int_t (line 999) | static ngx_int_t
function ngx_http_create_locations_list (line 1040) | static void
function ngx_http_location_tree_node_t (line 1104) | static ngx_http_location_tree_node_t *
function ngx_int_t (line 1177) | ngx_int_t
function ngx_int_t (line 1231) | static ngx_int_t
function ngx_int_t (line 1347) | static ngx_int_t
function ngx_int_t (line 1408) | static ngx_int_t
function ngx_int_t (line 1446) | static ngx_int_t
function ngx_int_t (line 1493) | static ngx_int_t
function ngx_int_t (line 1649) | static ngx_int_t
function ngx_http_cmp_dns_wildcards (line 1683) | static int ngx_libc_cdecl
function ngx_int_t (line 1695) | static ngx_int_t
function ngx_listening_t (line 1768) | static ngx_listening_t *
function ngx_int_t (line 1852) | static ngx_int_t
function ngx_int_t (line 1923) | static ngx_int_t
function ngx_int_t (line 2136) | ngx_int_t
FILE: src/http/ngx_http.h
type ngx_http_request_t (line 16) | typedef struct ngx_http_request_s ngx_http_request_t;
type ngx_http_upstream_t (line 17) | typedef struct ngx_http_upstream_s ngx_http_upstream_t;
type ngx_http_cache_t (line 18) | typedef struct ngx_http_cache_s ngx_http_cache_t;
type ngx_http_file_cache_t (line 19) | typedef struct ngx_http_file_cache_s ngx_http_file_cache_t;
type ngx_http_log_ctx_t (line 20) | typedef struct ngx_http_log_ctx_s ngx_http_log_ctx_t;
type ngx_http_chunked_t (line 21) | typedef struct ngx_http_chunked_s ngx_http_chunked_t;
type ngx_http_v2_stream_t (line 22) | typedef struct ngx_http_v2_stream_s ngx_http_v2_stream_t;
type ngx_http_v3_parse_t (line 23) | typedef struct ngx_http_v3_parse_s ngx_http_v3_parse_t;
type ngx_http_v3_session_t (line 24) | typedef struct ngx_http_v3_session_s ngx_http_v3_session_t;
type ngx_int_t (line 26) | typedef ngx_int_t (*ngx_http_header_handler_pt)(ngx_http_request_t *r,
type u_char (line 28) | typedef u_char *(*ngx_http_log_handler_pt)(ngx_http_request_t *r,
type ngx_http_log_ctx_s (line 60) | struct ngx_http_log_ctx_s {
type ngx_http_chunked_s (line 67) | struct ngx_http_chunked_s {
type ngx_http_status_t (line 74) | typedef struct {
FILE: src/http/ngx_http_cache.h
type ngx_http_cache_valid_t (line 33) | typedef struct {
type ngx_http_file_cache_node_t (line 39) | typedef struct {
type ngx_http_cache_s (line 65) | struct ngx_http_cache_s {
type ngx_http_file_cache_header_t (line 128) | typedef struct {
type ngx_http_file_cache_sh_t (line 147) | typedef struct {
type ngx_http_file_cache_s (line 159) | struct ngx_http_file_cache_s {
FILE: src/http/ngx_http_config.h
type ngx_http_conf_ctx_t (line 17) | typedef struct {
type ngx_http_module_t (line 24) | typedef struct {
FILE: src/http/ngx_http_copy_filter_module.c
type ngx_http_copy_filter_conf_t (line 13) | typedef struct {
function ngx_int_t (line 86) | static ngx_int_t
function ngx_http_copy_aio_handler (line 170) | static void
function ngx_http_copy_aio_event_handler (line 186) | static void
function ngx_http_copy_aio_sendfile_preload (line 213) | static ssize_t
function ngx_http_copy_aio_sendfile_event_handler (line 240) | static void
function ngx_int_t (line 262) | static ngx_int_t
function ngx_http_copy_thread_event_handler (line 309) | static void
function ngx_int_t (line 372) | static ngx_int_t
FILE: src/http/ngx_http_core_module.c
type ngx_http_method_name_t (line 13) | typedef struct {
function ngx_http_handler (line 819) | void
function ngx_http_core_run_phases (line 862) | void
function ngx_int_t (line 884) | ngx_int_t
function ngx_int_t (line 921) | ngx_int_t
function ngx_int_t (line 948) | ngx_int_t
function ngx_int_t (line 1042) | ngx_int_t
function ngx_int_t (line 1086) | ngx_int_t
function ngx_int_t (line 1153) | ngx_int_t
function ngx_int_t (line 1185) | static ngx_int_t
function ngx_http_core_auth_delay_handler (line 1226) | static void
function ngx_int_t (line 1249) | ngx_int_t
function ngx_http_update_location_config (line 1302) | void
function ngx_int_t (line 1393) | static ngx_int_t
function ngx_int_t (line 1470) | static ngx_int_t
function ngx_int_t (line 1592) | ngx_int_t
function ngx_http_set_exten (line 1648) | void
function ngx_int_t (line 1672) | ngx_int_t
function ngx_http_weak_etag (line 1709) | void
function ngx_int_t (line 1749) | ngx_int_t
function ngx_int_t (line 1830) | ngx_int_t
function ngx_int_t (line 1852) | ngx_int_t
function u_char (line 1874) | u_char *
function ngx_int_t (line 1948) | ngx_int_t
function ngx_int_t (line 2022) | ngx_int_t
function ngx_int_t (line 2190) | static ngx_int_t
function ngx_uint_t (line 2258) | static ngx_uint_t
function ngx_int_t (line 2314) | ngx_int_t
function ngx_int_t (line 2498) | ngx_int_t
function ngx_int_t (line 2553) | ngx_int_t
function ngx_http_cleanup_t (line 2629) | ngx_http_cleanup_t *
function ngx_int_t (line 2663) | ngx_int_t
function ngx_int_t (line 2713) | ngx_int_t
function ngx_int_t (line 2760) | static ngx_int_t
type sockaddr_in (line 2815) | struct sockaddr_in
type sockaddr_in (line 2899) | struct sockaddr_in
type sockaddr (line 2904) | struct sockaddr
type sockaddr_in (line 2906) | struct sockaddr_in
type sockaddr_in (line 2916) | struct sockaddr_in
function ngx_int_t (line 3143) | static ngx_int_t
function ngx_int_t (line 3276) | static ngx_int_t
function ngx_int_t (line 3283) | static ngx_int_t
FILE: src/http/ngx_http_core_module.h
type ngx_thread_pool_t (line 19) | typedef struct ngx_thread_pool_s ngx_thread_pool_t;
type ngx_http_location_tree_node_t (line 63) | typedef struct ngx_http_location_tree_node_s ngx_http_location_tree_nod...
type ngx_http_core_loc_conf_t (line 64) | typedef struct ngx_http_core_loc_conf_s ngx_http_core_loc_conf_t;
type ngx_http_listen_opt_t (line 67) | typedef struct {
type ngx_http_phases (line 110) | typedef enum {
type ngx_http_phase_handler_t (line 131) | typedef struct ngx_http_phase_handler_s ngx_http_phase_handler_t;
type ngx_int_t (line 133) | typedef ngx_int_t (*ngx_http_phase_handler_pt)(ngx_http_request_t *r,
type ngx_http_phase_handler_s (line 136) | struct ngx_http_phase_handler_s {
type ngx_http_phase_engine_t (line 143) | typedef struct {
type ngx_http_phase_t (line 150) | typedef struct {
type ngx_http_core_main_conf_t (line 155) | typedef struct {
type ngx_http_core_srv_conf_t (line 182) | typedef struct {
type ngx_http_server_name_t (line 218) | typedef struct {
type ngx_http_virtual_names_t (line 227) | typedef struct {
type ngx_http_addr_conf_s (line 235) | struct ngx_http_addr_conf_s {
type ngx_http_in_addr_t (line 249) | typedef struct {
type ngx_http_in6_addr_t (line 257) | typedef struct {
type ngx_http_port_t (line 265) | typedef struct {
type ngx_http_conf_port_t (line 272) | typedef struct {
type ngx_http_conf_addr_t (line 280) | typedef struct {
type ngx_http_err_page_t (line 298) | typedef struct {
type ngx_http_core_loc_conf_s (line 306) | struct ngx_http_core_loc_conf_s {
type ngx_http_location_queue_t (line 453) | typedef struct {
type ngx_http_location_tree_node_s (line 464) | struct ngx_http_location_tree_node_s {
type ngx_int_t (line 521) | typedef ngx_int_t (*ngx_http_output_header_filter_pt)(ngx_http_request_t...
type ngx_int_t (line 522) | typedef ngx_int_t (*ngx_http_output_body_filter_pt)
type ngx_int_t (line 524) | typedef ngx_int_t (*ngx_http_request_body_filter_pt)
FILE: src/http/ngx_http_file_cache.c
function ngx_int_t (line 82) | static ngx_int_t
function ngx_int_t (line 175) | ngx_int_t
function ngx_int_t (line 197) | ngx_int_t
function ngx_http_file_cache_create_key (line 227) | void
function ngx_int_t (line 264) | ngx_int_t
function ngx_int_t (line 404) | static ngx_int_t
function ngx_http_file_cache_lock_wait_handler (line 463) | static void
function ngx_http_file_cache_lock_wait (line 483) | static void
function ngx_int_t (line 527) | static ngx_int_t
function ngx_http_file_cache_aio_read (line 668) | static ssize_t
function ngx_http_cache_aio_event_handler (line 724) | static void
function ngx_int_t (line 753) | static ngx_int_t
function ngx_http_cache_thread_event_handler (line 796) | static void
function ngx_int_t (line 821) | static ngx_int_t
function ngx_int_t (line 934) | static ngx_int_t
function ngx_http_file_cache_node_t (line 969) | static ngx_http_file_cache_node_t *
function ngx_http_file_cache_rbtree_insert_value (line 1014) | static void
function ngx_http_file_cache_vary (line 1057) | static void
function ngx_http_file_cache_vary_header (line 1106) | static void
function ngx_int_t (line 1209) | static ngx_int_t
function ngx_int_t (line 1243) | ngx_int_t
function ngx_int_t (line 1308) | static ngx_int_t
function ngx_http_file_cache_update (line 1358) | void
function ngx_http_file_cache_update_header (line 1433) | void
function ngx_int_t (line 1565) | ngx_int_t
function ngx_http_file_cache_free (line 1618) | void
function ngx_http_file_cache_cleanup (line 1683) | static void
function time_t (line 1704) | static time_t
function time_t (line 1798) | static time_t
function ngx_http_file_cache_delete (line 1909) | static void
function ngx_msec_t (line 1960) | static ngx_msec_t
function ngx_http_file_cache_loader (line 2047) | static void
function ngx_int_t (line 2093) | static ngx_int_t
function ngx_int_t (line 2100) | static ngx_int_t
function ngx_int_t (line 2132) | static ngx_int_t
function ngx_http_file_cache_loader_sleep (line 2145) | static void
function ngx_int_t (line 2157) | static ngx_int_t
function ngx_int_t (line 2211) | static ngx_int_t
function ngx_int_t (line 2266) | static ngx_int_t
function ngx_http_file_cache_set_watermark (line 2281) | static void
function time_t (line 2291) | time_t
FILE: src/http/ngx_http_header_filter_module.c
function ngx_int_t (line 156) | static ngx_int_t
function ngx_int_t (line 624) | static ngx_int_t
FILE: src/http/ngx_http_parse.c
function ngx_int_t (line 103) | ngx_int_t
function ngx_int_t (line 818) | ngx_int_t
function ngx_int_t (line 1096) | ngx_int_t
function ngx_int_t (line 1247) | ngx_int_t
function ngx_int_t (line 1623) | ngx_int_t
function ngx_int_t (line 1841) | ngx_int_t
function ngx_int_t (line 1963) | ngx_int_t
function ngx_int_t (line 2036) | ngx_int_t
function ngx_int_t (line 2087) | ngx_int_t
function ngx_http_split_args (line 2129) | void
function ngx_int_t (line 2150) | ngx_int_t
FILE: src/http/ngx_http_postpone_filter_module.c
function ngx_int_t (line 54) | static ngx_int_t
function ngx_int_t (line 141) | static ngx_int_t
function ngx_int_t (line 180) | static ngx_int_t
function ngx_int_t (line 252) | static ngx_int_t
FILE: src/http/ngx_http_request.c
function ngx_http_init_connection (line 201) | void
function ngx_http_wait_request_handler (line 387) | static void
function ngx_http_request_t (line 517) | ngx_http_request_t *
function ngx_http_request_t (line 549) | static ngx_http_request_t *
function ngx_http_ssl_handshake (line 653) | static void
function ngx_http_ssl_handshake_handler (line 803) | static void
function ngx_http_ssl_servername (line 861) | int
function ngx_http_ssl_certificate (line 990) | int
function ngx_http_process_request_line (line 1061) | static void
function ngx_int_t (line 1224) | ngx_int_t
function ngx_http_process_request_headers (line 1345) | static void
function ngx_http_read_request_header (line 1535) | static ssize_t
function ngx_int_t (line 1592) | static ngx_int_t
function ngx_int_t (line 1747) | static ngx_int_t
function ngx_int_t (line 1763) | static ngx_int_t
function ngx_int_t (line 1787) | static ngx_int_t
function ngx_int_t (line 1836) | static ngx_int_t
function ngx_int_t (line 1851) | static ngx_int_t
function ngx_int_t (line 1924) | static ngx_int_t
function ngx_int_t (line 1953) | ngx_int_t
function ngx_http_process_request (line 2042) | void
function ngx_int_t (line 2134) | ngx_int_t
function ngx_int_t (line 2226) | ngx_int_t
function ngx_int_t (line 2309) | static ngx_int_t
function ngx_http_request_handler (line 2395) | static void
function ngx_http_run_posted_requests (line 2432) | void
function ngx_int_t (line 2465) | ngx_int_t
function ngx_http_finalize_request (line 2488) | void
function ngx_http_terminate_request (line 2675) | static void
function ngx_http_terminate_handler (line 2725) | static void
function ngx_http_finalize_connection (line 2737) | static void
function ngx_int_t (line 2809) | static ngx_int_t
function ngx_http_writer (line 2842) | static void
function ngx_http_request_finalizer (line 2915) | static void
function ngx_http_block_reading (line 2925) | void
function ngx_http_test_reading (line 2943) | void
function ngx_http_set_keepalive (line 3081) | static void
function ngx_http_keepalive_handler (line 3296) | static void
function ngx_http_set_lingering_close (line 3427) | static void
function ngx_http_lingering_close_handler (line 3498) | static void
function ngx_http_empty_handler (line 3558) | void
function ngx_http_request_empty_handler (line 3567) | void
function ngx_int_t (line 3577) | ngx_int_t
function ngx_int_t (line 3610) | static ngx_int_t
function ngx_http_close_request (line 3647) | void
function ngx_http_free_request (line 3680) | void
function ngx_http_log_request (line 3775) | static void
function ngx_http_close_connection (line 3793) | void
function u_char (line 3832) | static u_char *
function u_char (line 3864) | static u_char *
FILE: src/http/ngx_http_request.h
type ngx_http_state_e (line 155) | typedef enum {
type ngx_http_header_t (line 170) | typedef struct {
type ngx_http_header_out_t (line 177) | typedef struct {
type ngx_http_headers_in_t (line 183) | typedef struct {
type ngx_http_headers_out_t (line 256) | typedef struct {
type ngx_http_request_body_t (line 296) | typedef struct {
type ngx_http_addr_conf_t (line 312) | typedef struct ngx_http_addr_conf_s ngx_http_addr_conf_t;
type ngx_http_connection_t (line 314) | typedef struct {
type ngx_http_cleanup_t (line 341) | typedef struct ngx_http_cleanup_s ngx_http_cleanup_t;
type ngx_http_cleanup_s (line 343) | struct ngx_http_cleanup_s {
type ngx_int_t (line 350) | typedef ngx_int_t (*ngx_http_post_subrequest_pt)(ngx_http_request_t *r,
type ngx_http_post_subrequest_t (line 353) | typedef struct {
type ngx_http_postponed_request_t (line 359) | typedef struct ngx_http_postponed_request_s ngx_http_postponed_request_t;
type ngx_http_postponed_request_s (line 361) | struct ngx_http_postponed_request_s {
type ngx_http_posted_request_t (line 368) | typedef struct ngx_http_posted_request_s ngx_http_posted_request_t;
type ngx_http_posted_request_s (line 370) | struct ngx_http_posted_request_s {
type ngx_int_t (line 376) | typedef ngx_int_t (*ngx_http_handler_pt)(ngx_http_request_t *r);
type ngx_http_request_s (line 380) | struct ngx_http_request_s {
type ngx_http_ephemeral_t (line 610) | typedef struct {
FILE: src/http/ngx_http_request_body.c
function ngx_int_t (line 31) | ngx_int_t
function ngx_int_t (line 231) | ngx_int_t
function ngx_http_read_client_request_body_handler (line 275) | static void
function ngx_int_t (line 294) | static ngx_int_t
function ngx_int_t (line 465) | static ngx_int_t
function ngx_int_t (line 547) | static ngx_int_t
function ngx_int_t (line 629) | ngx_int_t
function ngx_http_discarded_request_body_handler (line 709) | void
function ngx_int_t (line 781) | static ngx_int_t
function ngx_int_t (line 844) | static ngx_int_t
function ngx_int_t (line 937) | static ngx_int_t
function ngx_int_t (line 981) | static ngx_int_t
function ngx_int_t (line 993) | static ngx_int_t
function ngx_int_t (line 1080) | static ngx_int_t
function ngx_int_t (line 1264) | ngx_int_t
FILE: src/http/ngx_http_script.c
function ngx_http_script_flush_complex_value (line 35) | void
function ngx_int_t (line 57) | ngx_int_t
function ngx_http_complex_value_size (line 107) | size_t
function ngx_int_t (line 138) | ngx_int_t
function ngx_int_t (line 346) | ngx_int_t
function ngx_int_t (line 373) | ngx_int_t
function ngx_uint_t (line 444) | ngx_uint_t
function ngx_int_t (line 459) | ngx_int_t
function u_char (line 614) | u_char *
function ngx_http_script_flush_no_cacheable_variables (line 663) | void
function ngx_int_t (line 681) | static ngx_int_t
function ngx_int_t (line 725) | static ngx_int_t
function ngx_int_t (line 808) | static ngx_int_t
function ngx_http_script_copy_len_code (line 852) | size_t
function ngx_http_script_copy_code (line 865) | void
function ngx_int_t (line 888) | static ngx_int_t
function ngx_http_script_copy_var_len_code (line 933) | size_t
function ngx_http_script_copy_var_code (line 958) | void
function ngx_int_t (line 990) | static ngx_int_t
function ngx_http_script_mark_args_code (line 1013) | size_t
function ngx_http_script_start_args_code (line 1023) | void
function ngx_http_script_regex_start_code (line 1037) | void
function ngx_http_script_regex_end_code (line 1194) | void
function ngx_int_t (line 1298) | static ngx_int_t
function ngx_http_script_copy_capture_len_code (line 1333) | size_t
function ngx_http_script_copy_capture_code (line 1371) | void
function ngx_int_t (line 1413) | static ngx_int_t
function ngx_http_script_full_name_len_code (line 1443) | static size_t
function ngx_http_script_full_name_code (line 1457) | static void
function ngx_http_script_return_code (line 1487) | void
function ngx_http_script_break_code (line 1508) | void
function ngx_http_script_if_code (line 1524) | void
function ngx_http_script_equal_code (line 1553) | void
function ngx_http_script_not_equal_code (line 1581) | void
function ngx_http_script_file_code (line 1609) | void
function ngx_http_script_complex_value_code (line 1750) | void
function ngx_http_script_value_code (line 1792) | void
function ngx_http_script_set_var_code (line 1811) | void
function ngx_http_script_var_set_handler_code (line 1847) | void
function ngx_http_script_var_code (line 1865) | void
function ngx_http_script_nop_code (line 1895) | void
FILE: src/http/ngx_http_script.h
type ngx_http_script_engine_t (line 17) | typedef struct {
type ngx_http_script_compile_t (line 39) | typedef struct {
type ngx_http_complex_value_t (line 66) | typedef struct {
type ngx_http_compile_complex_value_t (line 78) | typedef struct {
type ngx_http_script_copy_code_t (line 93) | typedef struct {
type ngx_http_script_var_code_t (line 99) | typedef struct {
type ngx_http_script_var_handler_code_t (line 105) | typedef struct {
type ngx_http_script_copy_capture_code_t (line 112) | typedef struct {
type ngx_http_script_regex_code_t (line 120) | typedef struct {
type ngx_http_script_regex_end_code_t (line 143) | typedef struct {
type ngx_http_script_full_name_code_t (line 158) | typedef struct {
type ngx_http_script_return_code_t (line 164) | typedef struct {
type ngx_http_script_file_op_e (line 171) | typedef enum {
type ngx_http_script_file_code_t (line 183) | typedef struct {
type ngx_http_script_if_code_t (line 189) | typedef struct {
type ngx_http_script_complex_value_code_t (line 196) | typedef struct {
type ngx_http_script_value_code_t (line 202) | typedef struct {
FILE: src/http/ngx_http_special_response.c
function ngx_int_t (line 415) | ngx_int_t
function ngx_int_t (line 527) | ngx_int_t
function ngx_http_clean_header (line 567) | void
function ngx_int_t (line 587) | static ngx_int_t
function ngx_int_t (line 671) | static ngx_int_t
function ngx_int_t (line 786) | static ngx_int_t
FILE: src/http/ngx_http_upstream.c
function ngx_int_t (line 478) | ngx_int_t
function ngx_http_upstream_init (line 511) | void
function ngx_http_upstream_init_request (line 555) | static void
function ngx_int_t (line 829) | static ngx_int_t
function ngx_int_t (line 1010) | static ngx_int_t
function ngx_int_t (line 1053) | static ngx_int_t
function ngx_int_t (line 1121) | static ngx_int_t
function ngx_int_t (line 1145) | static ngx_int_t
function ngx_http_upstream_resolve_handler (line 1196) | static void
function ngx_http_upstream_handler (line 1276) | static void
function ngx_http_upstream_rd_check_broken_connection (line 1310) | static void
function ngx_http_upstream_wr_check_broken_connection (line 1317) | static void
function ngx_http_upstream_check_broken_connection (line 1324) | static void
function ngx_http_upstream_connect (line 1531) | static void
function ngx_http_upstream_ssl_init_connection (line 1688) | static void
function ngx_http_upstream_ssl_handshake_handler (line 1765) | static void
function ngx_http_upstream_ssl_handshake (line 1788) | static void
function ngx_http_upstream_ssl_save_session (line 1838) | static void
function ngx_int_t (line 1859) | static ngx_int_t
function ngx_int_t (line 1953) | static ngx_int_t
function ngx_int_t (line 1994) | static ngx_int_t
function ngx_http_upstream_send_request (line 2080) | static void
function ngx_int_t (line 2193) | static ngx_int_t
function ngx_http_upstream_send_request_handler (line 2313) | static void
function ngx_http_upstream_read_request_handler (line 2350) | static void
function ngx_http_upstream_process_header (line 2372) | static void
function ngx_int_t (line 2529) | static ngx_int_t
function ngx_int_t (line 2668) | static ngx_int_t
function ngx_int_t (line 2751) | static ngx_int_t
function ngx_int_t (line 2802) | static ngx_int_t
function ngx_int_t (line 2945) | static ngx_int_t
function ngx_http_upstream_send_response (line 2990) | static void
function ngx_http_upstream_upgrade (line 3333) | static void
function ngx_http_upstream_upgraded_read_downstream (line 3389) | static void
function ngx_http_upstream_upgraded_write_downstream (line 3396) | static void
function ngx_http_upstream_upgraded_read_upstream (line 3403) | static void
function ngx_http_upstream_upgraded_write_upstream (line 3411) | static void
function ngx_http_upstream_process_upgraded (line 3419) | static void
function ngx_http_upstream_process_non_buffered_downstream (line 3612) | static void
function ngx_http_upstream_process_non_buffered_upstream (line 3639) | static void
function ngx_http_upstream_process_non_buffered_request (line 3662) | static void
function ngx_int_t (line 3795) | ngx_int_t
function ngx_int_t (line 3802) | ngx_int_t
function ngx_int_t (line 3865) | static ngx_int_t
function ngx_http_upstream_thread_event_handler (line 3911) | static void
function ngx_int_t (line 3946) | static ngx_int_t
function ngx_http_upstream_process_downstream (line 3964) | static void
function ngx_http_upstream_process_upstream (line 4016) | static void
function ngx_http_upstream_process_request (line 4062) | static void
function ngx_http_upstream_store (line 4171) | static void
function ngx_http_upstream_dummy_handler (line 4252) | static void
function ngx_http_upstream_next (line 4260) | static void
function ngx_http_upstream_cleanup (line 4416) | static void
function ngx_http_upstream_finalize_request (line 4428) | static void
function ngx_int_t (line 4594) | static ngx_int_t
function ngx_int_t (line 4610) | static ngx_int_t
function ngx_int_t (line 4618) | static ngx_int_t
function ngx_int_t (line 4633) | static ngx_int_t
function ngx_int_t (line 4649) | static ngx_int_t
function ngx_int_t (line 4684) | static ngx_int_t
function ngx_int_t (line 4822) | static ngx_int_t
function ngx_int_t (line 4862) | static ngx_int_t
function ngx_int_t (line 4920) | static ngx_int_t
function ngx_int_t (line 4945) | static ngx_int_t
function ngx_int_t (line 4983) | static ngx_int_t
function ngx_int_t (line 4997) | static ngx_int_t
function ngx_int_t (line 5014) | static ngx_int_t
function ngx_int_t (line 5031) | static ngx_int_t
function ngx_int_t (line 5064) | static ngx_int_t
function ngx_int_t (line 5086) | static ngx_int_t
function ngx_int_t (line 5120) | static ngx_int_t
function ngx_int_t (line 5172) | static ngx_int_t
function ngx_int_t (line 5193) | static ngx_int_t
function ngx_int_t (line 5237) | static ngx_int_t
function ngx_int_t (line 5283) | static ngx_int_t
function ngx_int_t (line 5318) | static ngx_int_t
function ngx_int_t (line 5358) | static ngx_int_t
function ngx_int_t (line 5379) | static ngx_int_t
function ngx_int_t (line 5398) | static ngx_int_t
function ngx_int_t (line 5469) | static ngx_int_t
function ngx_int_t (line 5534) | static ngx_int_t
function ngx_int_t (line 5612) | static ngx_int_t
function ngx_int_t (line 5681) | static ngx_int_t
function ngx_int_t (line 5696) | static ngx_int_t
function ngx_int_t (line 5711) | static ngx_int_t
function ngx_int_t (line 5747) | static ngx_int_t
function ngx_int_t (line 5770) | static ngx_int_t
function ngx_int_t (line 5800) | static ngx_int_t
function ngx_http_upstream_srv_conf_t (line 6098) | ngx_http_upstream_srv_conf_t *
function ngx_int_t (line 6309) | static ngx_int_t
function ngx_int_t (line 6406) | ngx_int_t
FILE: src/http/ngx_http_upstream.h
type ngx_http_upstream_state_t (line 59) | typedef struct {
type ngx_http_upstream_main_conf_t (line 73) | typedef struct {
type ngx_http_upstream_srv_conf_t (line 79) | typedef struct ngx_http_upstream_srv_conf_s ngx_http_upstream_srv_conf_t;
type ngx_int_t (line 81) | typedef ngx_int_t (*ngx_http_upstream_init_pt)(ngx_conf_t *cf,
type ngx_int_t (line 83) | typedef ngx_int_t (*ngx_http_upstream_init_peer_pt)(ngx_http_request_t *r,
type ngx_http_upstream_peer_t (line 87) | typedef struct {
type ngx_http_upstream_server_t (line 94) | typedef struct {
type ngx_http_upstream_srv_conf_s (line 121) | struct ngx_http_upstream_srv_conf_s {
type ngx_http_upstream_local_t (line 140) | typedef struct {
type ngx_http_upstream_conf_t (line 149) | typedef struct {
type ngx_http_upstream_header_t (line 250) | typedef struct {
type ngx_http_upstream_headers_in_t (line 260) | typedef struct {
type ngx_http_upstream_resolved_t (line 303) | typedef struct {
type ngx_http_upstream_s (line 323) | struct ngx_http_upstream_s {
type ngx_http_upstream_next_t (line 407) | typedef struct {
type ngx_http_upstream_param_t (line 413) | typedef struct {
FILE: src/http/ngx_http_upstream_round_robin.c
function ngx_int_t (line 30) | ngx_int_t
function ngx_int_t (line 256) | ngx_int_t
function ngx_int_t (line 311) | ngx_int_t
function ngx_int_t (line 430) | ngx_int_t
function ngx_http_upstream_rr_peer_t (line 521) | static ngx_http_upstream_rr_peer_t *
function ngx_http_upstream_free_round_robin_peer (line 599) | void
function ngx_int_t (line 675) | ngx_int_t
function ngx_http_upstream_save_round_robin_peer_session (line 738) | void
function ngx_int_t (line 840) | static ngx_int_t
function ngx_http_upstream_empty_save_session (line 847) | static void
FILE: src/http/ngx_http_upstream_round_robin.h
type ngx_http_upstream_rr_peer_t (line 17) | typedef struct ngx_http_upstream_rr_peer_s ngx_http_upstream_rr_peer_t;
type ngx_http_upstream_rr_peer_s (line 19) | struct ngx_http_upstream_rr_peer_s {
type ngx_http_upstream_rr_peers_t (line 59) | typedef struct ngx_http_upstream_rr_peers_s ngx_http_upstream_rr_peers_t;
type ngx_http_upstream_rr_peers_s (line 61) | struct ngx_http_upstream_rr_peers_s {
type ngx_http_upstream_rr_peer_data_t (line 128) | typedef struct {
FILE: src/http/ngx_http_variables.c
function ngx_http_variable_t (line 410) | ngx_http_variable_t *
function ngx_http_variable_t (line 489) | static ngx_http_variable_t *
function ngx_int_t (line 544) | ngx_int_t
function ngx_http_variable_value_t (line 604) | ngx_http_variable_value_t *
function ngx_http_variable_value_t (line 654) | ngx_http_variable_value_t *
function ngx_http_variable_value_t (line 674) | ngx_http_variable_value_t *
function ngx_int_t (line 744) | static ngx_int_t
function ngx_http_variable_request_set (line 769) | static void
function ngx_int_t (line 784) | static ngx_int_t
function ngx_int_t (line 806) | static ngx_int_t
function ngx_int_t (line 829) | static ngx_int_t
function ngx_int_t (line 837) | static ngx_int_t
function ngx_int_t (line 845) | static ngx_int_t
function ngx_int_t (line 918) | static ngx_int_t
function ngx_int_t (line 928) | static ngx_int_t
function ngx_int_t (line 938) | static ngx_int_t
function ngx_int_t (line 948) | ngx_int_t
function ngx_int_t (line 1006) | static ngx_int_t
function ngx_int_t (line 1042) | static ngx_int_t
function ngx_int_t (line 1070) | static ngx_int_t
function ngx_int_t (line 1100) | static ngx_int_t
function ngx_int_t (line 1153) | static ngx_int_t
function ngx_int_t (line 1194) | static ngx_int_t
function ngx_int_t (line 1219) | static ngx_int_t
function ngx_int_t (line 1271) | static ngx_int_t
function ngx_int_t (line 1285) | static ngx_int_t
function ngx_int_t (line 1311) | static ngx_int_t
function ngx_int_t (line 1336) | static ngx_int_t
function ngx_int_t (line 1369) | static ngx_int_t
function ngx_int_t (line 1400) | static ngx_int_t
function ngx_int_t (line 1430) | static ngx_int_t
function ngx_int_t (line 1458) | static ngx_int_t
function ngx_http_variable_set_args (line 1482) | static void
function ngx_int_t (line 1492) | static ngx_int_t
function ngx_int_t (line 1511) | static ngx_int_t
function ngx_int_t (line 1552) | static ngx_int_t
function ngx_int_t (line 1625) | static ngx_int_t
function ngx_int_t (line 1648) | static ngx_int_t
function ngx_int_t (line 1666) | static ngx_int_t
function ngx_int_t (line 1685) | static ngx_int_t
function ngx_int_t (line 1712) | static ngx_int_t
function ngx_int_t (line 1733) | static ngx_int_t
function ngx_int_t (line 1761) | static ngx_int_t
function ngx_int_t (line 1775) | static ngx_int_t
function ngx_int_t (line 1808) | static ngx_int_t
function ngx_int_t (line 1827) | static ngx_int_t
function ngx_int_t (line 1864) | static ngx_int_t
function ngx_int_t (line 1888) | static ngx_int_t
function ngx_int_t (line 1925) | static ngx_int_t
function ngx_int_t (line 1955) | static ngx_int_t
function ngx_int_t (line 1988) | static ngx_int_t
function ngx_http_variable_set_limit_rate (line 2007) | static void
function ngx_int_t (line 2030) | static ngx_int_t
function ngx_int_t (line 2050) | static ngx_int_t
function ngx_int_t (line 2111) | static ngx_int_t
function ngx_int_t (line 2131) | static ngx_int_t
function ngx_int_t (line 2152) | static ngx_int_t
function ngx_int_t (line 2181) | static ngx_int_t
function ngx_int_t (line 2222) | static ngx_int_t
function ngx_int_t (line 2243) | static ngx_int_t
function ngx_int_t (line 2264) | static ngx_int_t
function ngx_int_t (line 2289) | static ngx_int_t
function ngx_int_t (line 2303) | static ngx_int_t
function ngx_int_t (line 2317) | static ngx_int_t
function ngx_int_t (line 2338) | static ngx_int_t
function ngx_int_t (line 2362) | static ngx_int_t
function ngx_int_t (line 2386) | static ngx_int_t
function ngx_int_t (line 2471) | static ngx_int_t
function ngx_http_regex_t (line 2480) | ngx_http_regex_t *
function ngx_int_t (line 2553) | ngx_int_t
function ngx_int_t (line 2625) | ngx_int_t
function ngx_int_t (line 2668) | ngx_int_t
FILE: src/http/ngx_http_variables.h
type ngx_variable_value_t (line 17) | typedef ngx_variable_value_t ngx_http_variable_value_t;
type ngx_http_variable_t (line 21) | typedef struct ngx_http_variable_s ngx_http_variable_t;
type ngx_int_t (line 25) | typedef ngx_int_t (*ngx_http_get_variable_pt) (ngx_http_request_t *r,
type ngx_http_variable_s (line 37) | struct ngx_http_variable_s {
type ngx_http_regex_variable_t (line 66) | typedef struct {
type ngx_http_regex_t (line 72) | typedef struct {
type ngx_http_map_regex_t (line 81) | typedef struct {
type ngx_http_map_t (line 95) | typedef struct {
FILE: src/http/ngx_http_write_filter_module.c
function ngx_int_t (line 47) | ngx_int_t
function ngx_int_t (line 364) | static ngx_int_t
FILE: src/http/v2/ngx_http_v2.c
type ngx_http_v2_parse_header_t (line 14) | typedef struct {
function ngx_http_v2_init (line 232) | void
function ngx_http_v2_read_handler (line 342) | static void
function ngx_http_v2_write_handler (line 469) | static void
function ngx_int_t (line 519) | ngx_int_t
function ngx_http_v2_handle_connection (line 634) | static void
function ngx_http_v2_lingering_close (line 713) | static void
function ngx_http_v2_lingering_close_handler (line 789) | static void
function u_char (line 849) | static u_char *
function u_char (line 870) | static u_char *
function u_char (line 891) | static u_char *
function u_char (line 916) | static u_char *
function u_char (line 951) | static u_char *
function u_char (line 1091) | static u_char *
function u_char (line 1194) | static u_char *
function u_char (line 1397) | static u_char *
function u_char (line 1497) | static u_char *
function u_char (line 1584) | static u_char *
function u_char (line 1639) | static u_char *
function u_char (line 1684) | static u_char *
function u_char (line 1726) | static u_char *
function u_char (line 1893) | static u_char *
function u_char (line 1935) | static u_char *
function u_char (line 1997) | static u_char *
function u_char (line 2077) | static u_char *
function u_char (line 2164) | static u_char *
function u_char (line 2205) | static u_char *
function u_char (line 2317) | static u_char *
function u_char (line 2328) | static u_char *
function u_char (line 2377) | static u_char *
function u_char (line 2421) | static u_char *
function u_char (line 2550) | static u_char *
function u_char (line 2561) | static u_char *
function u_char (line 2582) | static u_char *
function u_char (line 2593) | static u_char *
function u_char (line 2615) | static u_char *
function u_char (line 2644) | static u_char *
function u_char (line 2666) | static u_char *
function ngx_int_t (line 2679) | static ngx_int_t
function ngx_http_v2_stream_t (line 2735) | ngx_http_v2_stream_t *
function ngx_int_t (line 2892) | static ngx_int_t
function ngx_int_t (line 2965) | static ngx_int_t
function ngx_int_t (line 2983) | static ngx_int_t
function ngx_int_t (line 3011) | static ngx_int_t
function ngx_int_t (line 3039) | static ngx_int_t
function ngx_http_v2_out_frame_t (line 3067) | static ngx_http_v2_out_frame_t *
function ngx_int_t (line 3141) | static ngx_int_t
function ngx_http_v2_stream_t (line 3162) | static ngx_http_v2_stream_t *
function ngx_http_v2_node_t (line 3313) | static ngx_http_v2_node_t *
function ngx_http_v2_node_t (line 3358) | static ngx_http_v2_node_t *
function ngx_int_t (line 3439) | static ngx_int_t
function ngx_int_t (line 3491) | static ngx_int_t
function ngx_int_t (line 3540) | static ngx_int_t
function ngx_int_t (line 3579) | static ngx_int_t
function ngx_int_t (line 3675) | static ngx_int_t
function ngx_int_t (line 3721) | static ngx_int_t
function ngx_int_t (line 3728) | static ngx_int_t
function ngx_int_t (line 3770) | static ngx_int_t
function ngx_int_t (line 3825) | static ngx_int_t
function ngx_int_t (line 3854) | static ngx_int_t
function ngx_http_v2_run_request (line 3945) | static void
function ngx_http_v2_run_request_handler (line 3993) | static void
function ngx_int_t (line 4009) | ngx_int_t
function ngx_int_t (line 4155) | static ngx_int_t
function ngx_int_t (line 4287) | static ngx_int_t
function ngx_http_v2_read_client_request_body_handler (line 4379) | static void
function ngx_int_t (line 4485) | ngx_int_t
function ngx_int_t (line 4578) | static ngx_int_t
function ngx_http_v2_close_stream (line 4608) | void
function ngx_http_v2_close_stream_handler (line 4728) | static void
function ngx_http_v2_retry_close_stream_handler (line 4753) | static void
function ngx_http_v2_handle_connection_handler (line 4769) | static void
function ngx_http_v2_idle_handler (line 4802) | static void
function ngx_http_v2_finalize_connection (line 4869) | static void
function ngx_int_t (line 4957) | static ngx_int_t
function ngx_http_v2_set_dependency (line 5019) | static void
function ngx_http_v2_node_children_update (line 5110) | static void
function ngx_http_v2_pool_cleanup (line 5130) | static void
FILE: src/http/v2/ngx_http_v2.h
type ngx_http_v2_connection_t (line 57) | typedef struct ngx_http_v2_connection_s ngx_http_v2_connection_t;
type ngx_http_v2_node_t (line 58) | typedef struct ngx_http_v2_node_s ngx_http_v2_node_t;
type ngx_http_v2_out_frame_t (line 59) | typedef struct ngx_http_v2_out_frame_s ngx_http_v2_out_frame_t;
type u_char (line 62) | typedef u_char *(*ngx_http_v2_handler_pt) (ngx_http_v2_connection_t *h2c,
type ngx_http_v2_header_t (line 66) | typedef struct {
type ngx_http_v2_state_t (line 72) | typedef struct {
type ngx_http_v2_hpack_t (line 102) | typedef struct {
type ngx_http_v2_connection_s (line 117) | struct ngx_http_v2_connection_s {
type ngx_http_v2_node_s (line 170) | struct ngx_http_v2_node_s {
type ngx_http_v2_stream_s (line 184) | struct ngx_http_v2_stream_s {
type ngx_http_v2_out_frame_s (line 223) | struct ngx_http_v2_out_frame_s {
function ngx_inline (line 238) | static ngx_inline void
function ngx_inline (line 264) | static ngx_inline void
function ngx_inline (line 282) | static ngx_inline void
FILE: src/http/v2/ngx_http_v2_encode.c
function u_char (line 17) | u_char *
function u_char (line 43) | static u_char *
FILE: src/http/v2/ngx_http_v2_filter_module.c
type ngx_http_v2_push_header_t (line 30) | typedef struct {
function ngx_int_t (line 133) | static ngx_int_t
function ngx_int_t (line 673) | static ngx_int_t
function ngx_int_t (line 897) | static ngx_int_t
function ngx_http_v2_out_frame_t (line 1078) | static ngx_http_v2_out_frame_t *
function ngx_http_v2_out_frame_t (line 1183) | static ngx_http_v2_out_frame_t *
function ngx_http_v2_out_frame_t (line 1302) | static ngx_http_v2_out_frame_t *
function ngx_chain_t (line 1416) | static ngx_chain_t *
function ngx_chain_t (line 1635) | static ngx_chain_t *
function ngx_http_v2_out_frame_t (line 1668) | static ngx_http_v2_out_frame_t *
function ngx_inline (line 1756) | static ngx_inline ngx_int_t
function ngx_http_v2_waiting_queue (line 1778) | static void
function ngx_inline (line 1809) | static ngx_inline ngx_int_t
function ngx_int_t (line 1834) | static ngx_int_t
function ngx_int_t (line 1890) | static ngx_int_t
function ngx_int_t (line 1946) | static ngx_int_t
function ngx_inline (line 2041) | static ngx_inline void
function ngx_inline (line 2067) | static ngx_inline void
function ngx_http_v2_filter_cleanup (line 2097) | static void
function ngx_int_t (line 2169) | static ngx_int_t
FILE: src/http/v2/ngx_http_v2_huff_decode.c
type ngx_http_v2_huff_decode_code_t (line 13) | typedef struct {
function ngx_int_t (line 2642) | ngx_int_t
function ngx_inline (line 2694) | static ngx_inline ngx_int_t
FILE: src/http/v2/ngx_http_v2_huff_encode.c
type ngx_http_v2_huff_encode_code_t (line 14) | typedef struct {
function ngx_http_v2_huff_encode (line 191) | size_t
FILE: src/http/v2/ngx_http_v2_module.c
function ngx_int_t (line 220) | static ngx_int_t
function ngx_int_t (line 239) | static ngx_int_t
function ngx_int_t (line 273) | static ngx_int_t
FILE: src/http/v2/ngx_http_v2_module.h
type ngx_http_v2_main_conf_t (line 17) | typedef struct {
type ngx_http_v2_srv_conf_t (line 23) | typedef struct {
type ngx_http_v2_loc_conf_t (line 32) | typedef struct {
FILE: src/http/v2/ngx_http_v2_table.c
function ngx_str_t (line 89) | ngx_str_t *
function ngx_str_t (line 96) | ngx_str_t *
function ngx_int_t (line 103) | ngx_int_t
function ngx_int_t (line 188) | ngx_int_t
function ngx_int_t (line 302) | static ngx_int_t
function ngx_int_t (line 335) | ngx_int_t
FILE: src/http/v3/ngx_http_v3.c
function ngx_int_t (line 17) | ngx_int_t
function ngx_http_v3_keepalive_handler (line 72) | static void
function ngx_http_v3_cleanup_session (line 86) | static void
function ngx_int_t (line 99) | ngx_int_t
FILE: src/http/v3/ngx_http_v3.h
type ngx_http_v3_srv_conf_t (line 97) | typedef struct {
type ngx_http_v3_loc_conf_t (line 105) | typedef struct {
type ngx_http_v3_parse_s (line 112) | struct ngx_http_v3_parse_s {
type ngx_http_v3_session_s (line 119) | struct ngx_http_v3_session_s {
FILE: src/http/v3/ngx_http_v3_encode.c
function ngx_http_v3_encode_varlen_int (line 13) | uintptr_t
function ngx_http_v3_encode_prefix_int (line 63) | uintptr_t
function ngx_http_v3_encode_field_section_prefix (line 102) | uintptr_t
function ngx_http_v3_encode_field_ri (line 121) | uintptr_t
function ngx_http_v3_encode_field_lri (line 136) | uintptr_t
function ngx_http_v3_encode_field_l (line 182) | uintptr_t
function ngx_http_v3_encode_field_pbi (line 246) | uintptr_t
function ngx_http_v3_encode_field_lpbi (line 261) | uintptr_t
FILE: src/http/v3/ngx_http_v3_filter_module.c
type ngx_http_v3_filter_ctx_t (line 32) | typedef struct {
function ngx_int_t (line 92) | static ngx_int_t
function ngx_int_t (line 609) | static ngx_int_t
function ngx_int_t (line 827) | static ngx_int_t
function ngx_int_t (line 895) | static ngx_int_t
function ngx_int_t (line 1045) | static ngx_int_t
function ngx_http_v3_push_request_handler (line 1092) | static void
function ngx_chain_t (line 1107) | static ngx_chain_t *
function ngx_int_t (line 1277) | static ngx_int_t
function ngx_chain_t (line 1394) | static ngx_chain_t *
function ngx_int_t (line 1528) | static ngx_int_t
FILE: src/http/v3/ngx_http_v3_parse.c
function ngx_http_v3_parse_start_local (line 64) | static void
function ngx_http_v3_parse_end_local (line 75) | static void
function ngx_int_t (line 83) | static ngx_int_t
function ngx_int_t (line 97) | static ngx_int_t
function ngx_int_t (line 182) | static ngx_int_t
function ngx_int_t (line 247) | ngx_int_t
function ngx_int_t (line 405) | static ngx_int_t
function ngx_int_t (line 490) | static ngx_int_t
function ngx_int_t (line 585) | static ngx_int_t
function ngx_int_t (line 672) | static ngx_int_t
function ngx_int_t (line 736) | static ngx_int_t
function ngx_int_t (line 842) | static ngx_int_t
function ngx_int_t (line 953) | static ngx_int_t
function ngx_int_t (line 1004) | static ngx_int_t
function ngx_int_t (line 1098) | static ngx_int_t
function ngx_int_t (line 1142) | static ngx_int_t
function ngx_int_t (line 1359) | static ngx_int_t
function ngx_int_t (line 1418) | static ngx_int_t
function ngx_int_t (line 1523) | static ngx_int_t
function ngx_int_t (line 1626) | static ngx_int_t
function ngx_int_t (line 1744) | static ngx_int_t
function ngx_int_t (line 1838) | ngx_int_t
function ngx_int_t (line 1931) | ngx_int_t
FILE: src/http/v3/ngx_http_v3_parse.h
type ngx_http_v3_parse_varlen_int_t (line 17) | typedef struct {
type ngx_http_v3_parse_prefix_int_t (line 23) | typedef struct {
type ngx_http_v3_parse_settings_t (line 30) | typedef struct {
type ngx_http_v3_parse_field_section_prefix_t (line 37) | typedef struct {
type ngx_http_v3_parse_literal_t (line 47) | typedef struct {
type ngx_http_v3_parse_field_t (line 57) | typedef struct {
type ngx_http_v3_parse_field_rep_t (line 71) | typedef struct {
type ngx_http_v3_parse_headers_t (line 77) | typedef struct {
type ngx_http_v3_parse_encoder_t (line 87) | typedef struct {
type ngx_http_v3_parse_decoder_t (line 94) | typedef struct {
type ngx_http_v3_parse_control_t (line 100) | typedef struct {
type ngx_http_v3_parse_uni_t (line 109) | typedef struct {
type ngx_http_v3_parse_data_t (line 120) | typedef struct {
FILE: src/http/v3/ngx_http_v3_request.c
function ngx_http_v3_init (line 54) | void
function ngx_http_v3_wait_request_handler (line 137) | static void
function ngx_http_v3_reset_connection (line 279) | void
function ngx_http_v3_cleanup_request (line 302) | static void
function ngx_http_v3_process_request (line 326) | static void
function ngx_int_t (line 470) | static ngx_int_t
function ngx_int_t (line 541) | static ngx_int_t
function ngx_int_t (line 592) | static ngx_int_t
function ngx_int_t (line 746) | static ngx_int_t
function ngx_int_t (line 847) | static ngx_int_t
function ngx_int_t (line 935) | ngx_int_t
function ngx_http_v3_read_client_request_body_handler (line 995) | static void
function ngx_int_t (line 1014) | ngx_int_t
function ngx_int_t (line 1034) | static ngx_int_t
function ngx_int_t (line 1199) | static ngx_int_t
FILE: src/http/v3/ngx_http_v3_streams.c
type ngx_http_v3_uni_stream_t (line 13) | typedef struct {
type ngx_http_v3_push_t (line 19) | typedef struct {
function ngx_http_v3_init_uni_stream (line 35) | void
function ngx_http_v3_close_uni_stream (line 80) | static void
function ngx_int_t (line 106) | ngx_int_t
function ngx_http_v3_uni_read_handler (line 171) | static void
function ngx_http_v3_dummy_write_handler (line 257) | static void
function ngx_connection_t (line 276) | ngx_connection_t *
function ngx_http_v3_push_cleanup (line 340) | static void
function ngx_connection_t (line 350) | static ngx_connection_t *
function ngx_int_t (line 435) | ngx_int_t
function ngx_int_t (line 493) | ngx_int_t
function ngx_int_t (line 537) | ngx_int_t
function ngx_int_t (line 580) | ngx_int_t
function ngx_int_t (line 622) | ngx_int_t
function ngx_int_t (line 665) | ngx_int_t
function ngx_int_t (line 685) | ngx_int_t
function ngx_int_t (line 700) | ngx_int_t
function ngx_int_t (line 741) | ngx_int_t
FILE: src/http/v3/ngx_http_v3_tables.c
type ngx_http_v3_block_t (line 21) | typedef struct {
function ngx_int_t (line 158) | ngx_int_t
function ngx_int_t (line 196) | ngx_int_t
function ngx_int_t (line 249) | ngx_int_t
function ngx_http_v3_cleanup_table (line 301) | void
function ngx_int_t (line 321) | static ngx_int_t
function ngx_int_t (line 364) | ngx_int_t
function ngx_int_t (line 390) | ngx_int_t
function ngx_int_t (line 402) | ngx_int_t
function ngx_int_t (line 414) | ngx_int_t
function ngx_int_t (line 449) | ngx_int_t
function ngx_int_t (line 485) | ngx_int_t
function ngx_int_t (line 538) | ngx_int_t
function ngx_http_v3_unblock (line 610) | static void
function ngx_int_t (line 623) | static ngx_int_t
function ngx_int_t (line 651) | ngx_int_t
FILE: src/http/v3/ngx_http_v3_tables.h
type ngx_http_v3_field_t (line 17) | typedef struct {
type ngx_http_v3_dynamic_table_t (line 23) | typedef struct {
FILE: src/mail/ngx_mail.c
function ngx_int_t (line 224) | static ngx_int_t
function ngx_int_t (line 383) | static ngx_int_t
function ngx_int_t (line 418) | static ngx_int_t
function ngx_int_t (line 453) | static ngx_int_t
FILE: src/mail/ngx_mail.h
type ngx_mail_conf_ctx_t (line 23) | typedef struct {
type ngx_mail_listen_t (line 29) | typedef struct {
type ngx_mail_addr_conf_t (line 56) | typedef struct {
type ngx_mail_in_addr_t (line 63) | typedef struct {
type ngx_mail_in6_addr_t (line 71) | typedef struct {
type ngx_mail_port_t (line 79) | typedef struct {
type ngx_mail_conf_port_t (line 86) | typedef struct {
type ngx_mail_conf_addr_t (line 93) | typedef struct {
type ngx_mail_core_main_conf_t (line 98) | typedef struct {
type ngx_mail_protocol_t (line 109) | typedef struct ngx_mail_protocol_s ngx_mail_protocol_t;
type ngx_mail_core_srv_conf_t (line 112) | typedef struct {
type ngx_pop3_state_e (line 135) | typedef enum {
type ngx_imap_state_e (line 147) | typedef enum {
type ngx_smtp_state_e (line 160) | typedef enum {
type ngx_mail_proxy_ctx_t (line 180) | typedef struct {
type ngx_mail_session_t (line 187) | typedef struct {
type ngx_mail_log_ctx_t (line 249) | typedef struct {
type ngx_int_t (line 322) | typedef ngx_int_t (*ngx_mail_parse_command_pt)(ngx_mail_session_t *s);
type ngx_mail_protocol_s (line 325) | struct ngx_mail_protocol_s {
type ngx_mail_module_t (line 342) | typedef struct {
FILE: src/mail/ngx_mail_auth_http_module.c
type ngx_mail_auth_http_conf_t (line 15) | typedef struct {
type ngx_mail_auth_http_ctx_t (line 32) | typedef struct ngx_mail_auth_http_ctx_s ngx_mail_auth_http_ctx_t;
type ngx_mail_auth_http_ctx_s (line 37) | struct ngx_mail_auth_http_ctx_s {
function ngx_mail_auth_http_init (line 161) | void
function ngx_mail_auth_http_write_handler (line 235) | static void
function ngx_mail_auth_http_read_handler (line 299) | static void
function ngx_mail_auth_http_ignore_status_line (line 355) | static void
function ngx_mail_auth_http_process_headers (line 462) | static void
function ngx_mail_auth_sleep_handler (line 858) | static void
function ngx_int_t (line 917) | static ngx_int_t
function ngx_mail_auth_http_block_read (line 1100) | static void
function ngx_mail_auth_http_dummy_handler (line 1123) | static void
function ngx_buf_t (line 1131) | static ngx_buf_t *
function ngx_int_t (line 1475) | static ngx_int_t
FILE: src/mail/ngx_mail_handler.c
function ngx_mail_init_connection (line 26) | void
function ngx_mail_proxy_protocol_handler (line 197) | static void
function ngx_mail_init_session_handler (line 272) | static void
function ngx_mail_starttls_handler (line 304) | void
function ngx_mail_ssl_init_connection (line 323) | static void
function ngx_mail_ssl_handshake_handler (line 352) | static void
function ngx_int_t (line 387) | static ngx_int_t
function ngx_mail_init_session (line 454) | static void
function ngx_int_t (line 480) | ngx_int_t
function ngx_int_t (line 502) | ngx_int_t
function ngx_int_t (line 523) | ngx_int_t
function ngx_int_t (line 582) | ngx_int_t
function ngx_int_t (line 611) | ngx_int_t
function ngx_int_t (line 644) | ngx_int_t
function ngx_int_t (line 673) | ngx_int_t
function ngx_int_t (line 722) | ngx_int_t
function ngx_mail_send (line 756) | void
function ngx_int_t (line 828) | ngx_int_t
function ngx_mail_auth (line 903) | void
function ngx_mail_session_internal_server_error (line 925) | void
function ngx_mail_close_connection (line 939) | void
function u_char (line 972) | u_char *
FILE: src/mail/ngx_mail_imap_handler.c
function ngx_mail_imap_init_session (line 36) | void
function ngx_mail_imap_init_protocol (line 57) | void
function ngx_mail_imap_auth_state (line 101) | void
function ngx_int_t (line 303) | static ngx_int_t
function ngx_int_t (line 349) | static ngx_int_t
function ngx_int_t (line 426) | static ngx_int_t
function ngx_int_t (line 458) | static ngx_int_t
FILE: src/mail/ngx_mail_imap_module.h
type ngx_mail_imap_srv_conf_t (line 17) | typedef struct {
FILE: src/mail/ngx_mail_parse.c
function ngx_int_t (line 17) | ngx_int_t
function ngx_int_t (line 227) | ngx_int_t
function ngx_int_t (line 679) | ngx_int_t
function ngx_int_t (line 903) | ngx_int_t
FILE: src/mail/ngx_mail_pop3_handler.c
function ngx_mail_pop3_init_session (line 32) | void
function ngx_mail_pop3_init_protocol (line 78) | void
function ngx_mail_pop3_auth_state (line 119) | void
function ngx_int_t (line 309) | static ngx_int_t
function ngx_int_t (line 342) | static ngx_int_t
function ngx_int_t (line 369) | static ngx_int_t
function ngx_int_t (line 401) | static ngx_int_t
function ngx_int_t (line 423) | static ngx_int_t
function ngx_int_t (line 472) | static ngx_int_t
FILE: src/mail/ngx_mail_pop3_module.h
type ngx_mail_pop3_srv_conf_t (line 17) | typedef struct {
FILE: src/mail/ngx_mail_proxy_module.c
type ngx_mail_proxy_conf_t (line 15) | typedef struct {
function ngx_mail_proxy_init (line 128) | void
function ngx_mail_proxy_block_read (line 209) | static void
function ngx_mail_proxy_pop3_handler (line 226) | static void
function ngx_mail_proxy_imap_handler (line 364) | static void
function ngx_mail_proxy_smtp_handler (line 523) | static void
function ngx_mail_proxy_write_handler (line 858) | static void
function ngx_int_t (line 887) | static ngx_int_t
function ngx_int_t (line 948) | static ngx_int_t
function ngx_mail_proxy_handler (line 1109) | static void
function ngx_mail_proxy_upstream_error (line 1280) | static void
function ngx_mail_proxy_internal_server_error (line 1301) | static void
function ngx_mail_proxy_close_session (line 1316) | static void
FILE: src/mail/ngx_mail_realip_module.c
type ngx_mail_realip_srv_conf_t (line 13) | typedef struct {
function ngx_int_t (line 67) | ngx_int_t
function ngx_int_t (line 103) | static ngx_int_t
type sockaddr_in (line 145) | struct sockaddr_in
type sockaddr_in6 (line 147) | struct sockaddr_in6
type sockaddr_in6 (line 220) | struct sockaddr_in6
type sockaddr_in (line 227) | struct sockaddr_in
FILE: src/mail/ngx_mail_smtp_handler.c
function ngx_mail_smtp_init_session (line 56) | void
function ngx_mail_smtp_resolve_addr_handler (line 101) | static void
function ngx_mail_smtp_resolve_name (line 152) | static void
function ngx_mail_smtp_resolve_name_handler (line 185) | static void
function ngx_mail_smtp_block_reading (line 248) | static void
function ngx_mail_smtp_greeting (line 280) | static void
function ngx_mail_smtp_invalid_pipelining (line 317) | static void
function ngx_mail_smtp_init_protocol (line 376) | void
function ngx_int_t (line 408) | static ngx_int_t
function ngx_mail_smtp_auth_state (line 430) | void
function ngx_int_t (line 596) | static ngx_int_t
function ngx_int_t (line 656) | static ngx_int_t
function ngx_int_t (line 739) | static ngx_int_t
function ngx_int_t (line 789) | static ngx_int_t
function ngx_int_t (line 828) | static ngx_int_t
function ngx_int_t (line 839) | static ngx_int_t
function ngx_int_t (line 872) | static ngx_int_t
function ngx_mail_smtp_log_rejected_command (line 907) | static void
FILE: src/mail/ngx_mail_smtp_module.h
type ngx_mail_smtp_srv_conf_t (line 18) | typedef struct {
FILE: src/mail/ngx_mail_ssl_module.c
function ngx_mail_ssl_alpn_select (line 255) | static int
FILE: src/mail/ngx_mail_ssl_module.h
type ngx_mail_ssl_conf_t (line 22) | typedef struct {
FILE: src/misc/ngx_cpp_test_module.cpp
function ngx_cpp_test_handler (line 27) | void
FILE: src/misc/ngx_google_perftools_module.c
type ngx_google_perftools_conf_t (line 25) | typedef struct {
function ngx_int_t (line 86) | static ngx_int_t
FILE: src/os/unix/ngx_atomic.h
type ngx_atomic_int_t (line 23) | typedef long ngx_atomic_int_t;
type AO_t (line 24) | typedef AO_t ngx_atomic_uint_t;
type ngx_atomic_uint_t (line 25) | typedef volatile ngx_atomic_uint_t ngx_atomic_t;
type ngx_atomic_int_t (line 47) | typedef long ngx_atomic_int_t;
type ngx_atomic_uint_t (line 48) | typedef unsigned long ngx_atomic_uint_t;
type ngx_atomic_uint_t (line 56) | typedef volatile ngx_atomic_uint_t ngx_atomic_t;
type ngx_atomic_int_t (line 93) | typedef int64_t ngx_atomic_int_t;
type ngx_atomic_uint_t (line 94) | typedef uint64_t ngx_atomic_uint_t;
type ngx_atomic_int_t (line 105) | typedef int32_t ngx_atomic_int_t;
type ngx_atomic_uint_t (line 106) | typedef uint32_t ngx_atomic_uint_t;
type ngx_atomic_uint_t (line 121) | typedef volatile ngx_atomic_uint_t ngx_atomic_t;
type ngx_atomic_int_t (line 126) | typedef int32_t ngx_atomic_int_t;
type ngx_atomic_uint_t (line 127) | typedef uint32_t ngx_atomic_uint_t;
type ngx_atomic_uint_t (line 128) | typedef volatile ngx_atomic_uint_t ngx_atomic_t;
type ngx_atomic_int_t (line 167) | typedef int64_t ngx_atomic_int_t;
type ngx_atomic_uint_t (line 168) | typedef uint64_t ngx_atomic_uint_t;
type ngx_atomic_uint_t (line 169) | typedef volatile ngx_atomic_uint_t ngx_atomic_t;
type ngx_atomic_int_t (line 210) | typedef int64_t ngx_atomic_int_t;
type ngx_atomic_uint_t (line 211) | typedef uint64_t ngx_atomic_uint_t;
type ngx_atomic_int_t (line 216) | typedef int32_t ngx_atomic_int_t;
type ngx_atomic_uint_t (line 217) | typedef uint32_t ngx_atomic_uint_t;
type ngx_atomic_uint_t (line 222) | typedef volatile ngx_atomic_uint_t ngx_atomic_t;
type ngx_atomic_int_t (line 247) | typedef int64_t ngx_atomic_int_t;
type ngx_atomic_uint_t (line 248) | typedef uint64_t ngx_atomic_uint_t;
type ngx_atomic_int_t (line 253) | typedef int32_t ngx_atomic_int_t;
type ngx_atomic_uint_t (line 254) | typedef uint32_t ngx_atomic_uint_t;
type ngx_atomic_uint_t (line 259) | typedef volatile ngx_atomic_uint_t ngx_atomic_t;
type ngx_atomic_int_t (line 271) | typedef int32_t ngx_atomic_int_t;
type ngx_atomic_uint_t (line 272) | typedef uint32_t ngx_atomic_uint_t;
type ngx_atomic_uint_t (line 273) | typedef volatile ngx_atomic_uint_t ngx_atomic_t;
function ngx_inline (line 277) | static ngx_inline ngx_atomic_uint_t
function ngx_inline (line 290) | static ngx_inline ngx_atomic_int_t
FILE: src/os/unix/ngx_channel.c
function ngx_int_t (line 13) | ngx_int_t
function ngx_int_t (line 95) | ngx_int_t
function ngx_int_t (line 198) | ngx_int_t
function ngx_close_channel (line 243) | void
FILE: src/os/unix/ngx_channel.h
type ngx_channel_t (line 17) | typedef struct {
FILE: src/os/unix/ngx_daemon.c
function ngx_int_t (line 12) | ngx_int_t
FILE: src/os/unix/ngx_darwin_init.c
type sysctl_t (line 38) | typedef struct {
function ngx_debug_init (line 63) | void
function ngx_int_t (line 91) | ngx_int_t
function ngx_os_specific_status (line 174) | void
FILE: src/os/unix/ngx_darwin_sendfile_chain.c
function ngx_chain_t (line 30) | ngx_chain_t *
FILE: src/os/unix/ngx_errno.c
function u_char (line 24) | u_char *
function ngx_int_t (line 46) | ngx_int_t
function u_char (line 76) | u_char *
function ngx_int_t (line 94) | ngx_int_t
FILE: src/os/unix/ngx_errno.h
type ngx_err_t (line 16) | typedef int ngx_err_t;
FILE: src/os/unix/ngx_file_aio_read.c
function ngx_int_t (line 39) | ngx_int_t
function ngx_file_aio_read (line 61) | ssize_t
function ngx_file_aio_result (line 148) | static ssize_t
function ngx_file_aio_event_handler (line 203) | static void
FILE: src/os/unix/ngx_files.c
function ngx_read_file (line 30) | ssize_t
type ngx_thread_file_ctx_t (line 80) | typedef struct {
function ngx_thread_read (line 94) | ssize_t
function ngx_thread_read_handler (line 155) | static void
function ngx_write_file (line 192) | ssize_t
function ngx_fd_t (line 276) | ngx_fd_t
function ngx_write_chain_to_file (line 292) | ssize_t
function ngx_chain_t (line 345) | static ngx_chain_t *
function ngx_writev_file (line 391) | static ssize_t
function ngx_thread_write_chain_to_file (line 476) | ssize_t
function ngx_thread_write_chain_to_file_handler (line 536) | static void
function ngx_int_t (line 600) | ngx_int_t
function ngx_int_t (line 618) | ngx_int_t
function ngx_close_file_mapping (line 656) | void
function ngx_int_t (line 671) | ngx_int_t
function ngx_int_t (line 686) | ngx_int_t
function ngx_int_t (line 704) | ngx_int_t
function ngx_int_t (line 727) | ngx_int_t
function ngx_close_glob (line 751) | void
function ngx_err_t (line 758) | ngx_err_t
function ngx_err_t (line 775) | ngx_err_t
function ngx_err_t (line 792) | ngx_err_t
function ngx_int_t (line 811) | ngx_int_t
function ngx_int_t (line 831) | ngx_int_t
function ngx_int_t (line 846) | ngx_int_t
function ngx_fs_bsize (line 865) | size_t
function off_t (line 888) | off_t
function ngx_fs_bsize (line 902) | size_t
function off_t (line 925) | off_t
function ngx_fs_bsize (line 939) | size_t
function off_t (line 946) | off_t
FILE: src/os/unix/ngx_files.h
type ngx_fd_t (line 16) | typedef int ngx_fd_t;
type ngx_file_info_t (line 17) | typedef struct stat ngx_file_info_t;
type ino_t (line 18) | typedef ino_t ngx_file_uniq_t;
type ngx_file_mapping_t (line 21) | typedef struct {
type ngx_dir_t (line 30) | typedef struct {
type ngx_glob_t (line 40) | typedef struct {
function ngx_inline (line 144) | static ngx_inline ssize_t
function ngx_inline (line 249) | static ngx_inline ngx_int_t
FILE: src/os/unix/ngx_freebsd_config.h
type ngx_aiocb_t (line 94) | typedef struct aiocb ngx_aiocb_t;
FILE: src/os/unix/ngx_freebsd_init.c
type sysctl_t (line 47) | typedef struct {
function ngx_debug_init (line 76) | void
function ngx_int_t (line 101) | ngx_int_t
function ngx_os_specific_status (line 230) | void
FILE: src/os/unix/ngx_freebsd_sendfile_chain.c
function ngx_chain_t (line 32) | ngx_chain_t *
FILE: src/os/unix/ngx_gcc_atomic_amd64.h
function ngx_inline (line 36) | static ngx_inline ngx_atomic_uint_t
function ngx_inline (line 66) | static ngx_inline ngx_atomic_int_t
FILE: src/os/unix/ngx_gcc_atomic_ppc.h
function ngx_inline (line 28) | static ngx_inline ngx_atomic_uint_t
function ngx_inline (line 58) | static ngx_inline ngx_atomic_int_t
function ngx_inline (line 91) | static ngx_inline ngx_atomic_uint_t
function ngx_inline (line 121) | static ngx_inline ngx_atomic_int_t
FILE: src/os/unix/ngx_gcc_atomic_sparc64.h
function ngx_inline (line 33) | static ngx_inline ngx_atomic_uint_t
function ngx_inline (line 47) | static ngx_inline ngx_atomic_int_t
FILE: src/os/unix/ngx_gcc_atomic_x86.h
function ngx_inline (line 37) | static ngx_inline ngx_atomic_uint_t
function ngx_inline (line 79) | static ngx_inline ngx_atomic_int_t
function ngx_inline (line 101) | static ngx_inline ngx_atomic_int_t
FILE: src/os/unix/ngx_linux_aio_read.c
function io_submit (line 20) | static int
function ngx_int_t (line 27) | ngx_int_t
function ngx_file_aio_read (line 49) | ssize_t
function ngx_file_aio_event_handler (line 137) | static void
FILE: src/os/unix/ngx_linux_config.h
type ngx_aiocb_t (line 98) | typedef struct iocb ngx_aiocb_t;
FILE: src/os/unix/ngx_linux_init.c
function ngx_int_t (line 33) | ngx_int_t
function ngx_os_specific_status (line 55) | void
FILE: src/os/unix/ngx_linux_sendfile_chain.c
function ngx_chain_t (line 49) | ngx_chain_t *
function ngx_linux_sendfile (line 231) | static ssize_t
type ngx_linux_sendfile_ctx_t (line 306) | typedef struct {
function ngx_linux_sendfile_thread (line 316) | static ssize_t
function ngx_linux_sendfile_thread_handler (line 405) | static void
FILE: src/os/unix/ngx_os.h
type ngx_chain_t (line 23) | typedef ngx_chain_t *(*ngx_send_chain_pt)(ngx_connection_t *c, ngx_chain...
type ngx_os_io_t (line 26) | typedef struct {
type ngx_iovec_t (line 64) | typedef struct {
FILE: src/os/unix/ngx_posix_config.h
type ngx_aiocb_t (line 139) | typedef struct aiocb ngx_aiocb_t;
FILE: src/os/unix/ngx_posix_init.c
type rlimit (line 19) | struct rlimit
function ngx_int_t (line 34) | ngx_int_t
function ngx_os_status (line 98) | void
function ngx_int_t (line 119) | ngx_int_t
FILE: src/os/unix/ngx_process.c
type ngx_signal_t (line 14) | typedef struct {
function ngx_pid_t (line 86) | ngx_pid_t
function ngx_pid_t (line 261) | ngx_pid_t
function ngx_execute_proc (line 269) | static void
function ngx_int_t (line 284) | ngx_int_t
function ngx_signal_handler (line 318) | static void
function ngx_process_get_status (line 470) | static void
function ngx_unlock_mutexes (line 564) | static void
function ngx_debug_point (line 611) | void
function ngx_int_t (line 631) | ngx_int_t
FILE: src/os/unix/ngx_process.h
type pid_t (line 16) | typedef pid_t ngx_pid_t;
type ngx_process_t (line 22) | typedef struct {
type ngx_exec_ctx_t (line 39) | typedef struct {
FILE: src/os/unix/ngx_process_cycle.c
function ngx_master_process_cycle (line 73) | void
function ngx_single_process_cycle (line 278) | void
function ngx_start_worker_processes (line 335) | static void
function ngx_start_cache_manager_processes (line 352) | static void
function ngx_pass_open_channel (line 395) | static void
function ngx_signal_worker_processes (line 431) | static void
function ngx_uint_t (line 533) | static ngx_uint_t
function ngx_master_process_exit (line 655) | static void
function ngx_worker_process_cycle (line 698) | static void
function ngx_worker_process_init (line 751) | static void
function ngx_worker_process_exit (line 948) | static void
function ngx_channel_handler (line 1009) | static void
function ngx_cache_manager_process_cycle (line 1097) | static void
function ngx_cache_manager_process_handler (line 1148) | static void
function ngx_cache_loader_process_handler (line 1177) | static void
FILE: src/os/unix/ngx_process_cycle.h
type ngx_cache_manager_ctx_t (line 30) | typedef struct {
FILE: src/os/unix/ngx_readv_chain.c
function ngx_readv_chain (line 13) | ssize_t
FILE: src/os/unix/ngx_recv.c
function ngx_unix_recv (line 13) | ssize_t
FILE: src/os/unix/ngx_send.c
function ngx_unix_send (line 13) | ssize_t
FILE: src/os/unix/ngx_setaffinity.c
function ngx_setaffinity (line 13) | void
function ngx_setaffinity (line 35) | void
FILE: src/os/unix/ngx_setaffinity.h
type cpu_set_t (line 16) | typedef cpu_set_t ngx_cpuset_t;
type cpuset_t (line 22) | typedef cpuset_t ngx_cpuset_t;
type ngx_cpuset_t (line 32) | typedef uint64_t ngx_cpuset_t;
FILE: src/os/unix/ngx_setproctitle.c
function ngx_int_t (line 34) | ngx_int_t
function ngx_setproctitle (line 78) | void
FILE: src/os/unix/ngx_shmem.c
function ngx_int_t (line 14) | ngx_int_t
function ngx_shm_free (line 31) | void
function ngx_int_t (line 42) | ngx_int_t
function ngx_shm_free (line 72) | void
function ngx_int_t (line 87) | ngx_int_t
function ngx_shm_free (line 117) | void
FILE: src/os/unix/ngx_shmem.h
type ngx_shm_t (line 16) | typedef struct {
FILE: src/os/unix/ngx_socket.c
function ngx_nonblocking (line 26) | int
function ngx_blocking (line 37) | int
function ngx_tcp_nopush (line 52) | int
function ngx_tcp_push (line 64) | int
function ngx_tcp_nopush (line 78) | int
function ngx_tcp_push (line 90) | int
function ngx_tcp_nopush (line 103) | int
function ngx_tcp_push (line 110) | int
FILE: src/os/unix/ngx_socket.h
type ngx_socket_t (line 17) | typedef int ngx_socket_t;
FILE: src/os/unix/ngx_solaris_init.c
function ngx_int_t (line 34) | ngx_int_t
function ngx_os_specific_status (line 68) | void
FILE: src/os/unix/ngx_solaris_sendfilev_chain.c
type sendfilevec_t (line 17) | typedef struct sendfilevec {
function sendfilev (line 26) | static ssize_t sendfilev(int fd, const struct sendfilevec *vec,
function ngx_chain_t (line 41) | ngx_chain_t *
FILE: src/os/unix/ngx_sunpro_atomic_sparc64.h
function ngx_inline (line 24) | static ngx_inline ngx_atomic_uint_t
function ngx_inline (line 34) | static ngx_inline ngx_atomic_int_t
FILE: src/os/unix/ngx_thread.h
type pthread_mutex_t (line 20) | typedef pthread_mutex_t ngx_thread_mutex_t;
type pthread_cond_t (line 28) | typedef pthread_cond_t ngx_thread_cond_t;
type pid_t (line 39) | typedef pid_t ngx_tid_t;
type ngx_tid_t (line 44) | typedef uint32_t ngx_tid_t;
type ngx_tid_t (line 49) | typedef uint64_t ngx_tid_t;
type ngx_tid_t (line 54) | typedef uint64_t ngx_tid_t;
FILE: src/os/unix/ngx_thread_cond.c
function ngx_int_t (line 12) | ngx_int_t
function ngx_int_t (line 27) | ngx_int_t
function ngx_int_t (line 42) | ngx_int_t
function ngx_int_t (line 57) | ngx_int_t
FILE: src/os/unix/ngx_thread_id.c
function ngx_tid_t (line 20) | ngx_tid_t
function ngx_tid_t (line 30) | ngx_tid_t
function ngx_tid_t (line 46) | ngx_tid_t
function ngx_tid_t (line 64) | ngx_tid_t
FILE: src/os/unix/ngx_thread_mutex.c
function ngx_int_t (line 77) | ngx_int_t
function ngx_int_t (line 115) | ngx_int_t
function ngx_int_t (line 131) | ngx_int_t
function ngx_int_t (line 147) | ngx_int_t
FILE: src/os/unix/ngx_time.c
function ngx_timezone_update (line 24) | void
function ngx_localtime (line 56) | void
function ngx_libc_localtime (line 75) | void
function ngx_libc_gmtime (line 91) | void
FILE: src/os/unix/ngx_time.h
type ngx_rbtree_key_t (line 16) | typedef ngx_rbtree_key_t ngx_msec_t;
type ngx_rbtree_key_int_t (line 17) | typedef ngx_rbtree_key_int_t ngx_msec_int_t;
type ngx_tm_t (line 19) | typedef struct tm ngx_tm_t;
type tm (line 58) | struct tm
type tm (line 59) | struct tm
FILE: src/os/unix/ngx_udp_recv.c
function ngx_udp_unix_recv (line 13) | ssize_t
FILE: src/os/unix/ngx_udp_send.c
function ngx_udp_unix_send (line 13) | ssize_t
FILE: src/os/unix/ngx_udp_sendmsg_chain.c
function ngx_chain_t (line 18) | ngx_chain_t *
function ngx_chain_t (line 113) | static ngx_chain_t *
function ngx_sendmsg_vec (line 206) | static ssize_t
function ngx_set_srcaddr_cmsg (line 245) | size_t
function ngx_int_t (line 320) | ngx_int_t
function ngx_sendmsg (line 387) | ssize_t
function ngx_int_t (line 437) | ngx_int_t
FILE: src/os/unix/ngx_user.c
function ngx_int_t (line 16) | ngx_int_t
function ngx_int_t (line 46) | ngx_int_t
FILE: src/os/unix/ngx_user.h
type uid_t (line 16) | typedef uid_t ngx_uid_t;
type gid_t (line 17) | typedef gid_t ngx_gid_t;
FILE: src/os/unix/ngx_writev_chain.c
function ngx_chain_t (line 13) | ngx_chain_t *
function ngx_chain_t (line 107) | ngx_chain_t *
function ngx_writev (line 181) | ssize_t
FILE: src/os/win32/ngx_atomic.h
type ngx_atomic_int_t (line 18) | typedef int32_t ngx_atomic_int_t;
type ngx_atomic_uint_t (line 19) | typedef uint32_t ngx_atomic_uint_t;
type ngx_atomic_uint_t (line 20) | typedef volatile ngx_atomic_uint_t ngx_atomic_t;
FILE: src/os/win32/ngx_errno.c
function u_char (line 12) | u_char *
function ngx_int_t (line 56) | ngx_int_t
FILE: src/os/win32/ngx_errno.h
type DWORD (line 16) | typedef DWORD ngx_err_t;
FILE: src/os/win32/ngx_event_log.c
function ngx_event_log (line 14) | void ngx_cdecl
FILE: src/os/win32/ngx_files.c
function ngx_fd_t (line 21) | ngx_fd_t
function ngx_read_file (line 61) | ssize_t
function ngx_write_file (line 94) | ssize_t
function ngx_write_chain_to_file (line 127) | ssize_t
function ngx_read_fd (line 164) | ssize_t
function ngx_write_fd (line 177) | ssize_t
function ngx_write_console (line 190) | ssize_t
function ngx_err_t (line 205) | ngx_err_t
function ngx_int_t (line 260) | ngx_int_t
function ngx_int_t (line 305) | ngx_int_t
function ngx_int_t (line 326) | ngx_int_t
function ngx_close_file_mapping (line 397) | void
function u_char (line 419) | u_char *
function ngx_int_t (line 427) | ngx_int_t
function ngx_int_t (line 462) | ngx_int_t
function ngx_int_t (line 479) | ngx_int_t
function ngx_int_t (line 490) | ngx_int_t
function ngx_int_t (line 537) | ngx_int_t
function ngx_close_glob (line 589) | void
function ngx_int_t (line 607) | ngx_int_t
function ngx_int_t (line 614) | ngx_int_t
function ngx_int_t (line 621) | ngx_int_t
function ngx_int_t (line 628) | ngx_int_t
function ngx_int_t (line 635) | ngx_int_t
function ngx_fs_bsize (line 642) | size_t
function off_t (line 661) | off_t
function ngx_int_t (line 674) | static ngx_int_t
function u_short (line 818) | static u_short *
FILE: src/os/win32/ngx_files.h
type HANDLE (line 16) | typedef HANDLE ngx_fd_t;
type BY_HANDLE_FILE_INFORMATION (line 17) | typedef BY_HANDLE_FILE_INFORMATION ngx_file_info_t;
type ngx_file_uniq_t (line 18) | typedef uint64_t ngx_file_uniq_t;
type ngx_file_mapping_t (line 21) | typedef struct {
type ngx_dir_t (line 31) | typedef struct {
type ngx_glob_t (line 41) | typedef struct {
FILE: src/os/win32/ngx_os.h
type ngx_chain_t (line 23) | typedef ngx_chain_t *(*ngx_send_chain_pt)(ngx_connection_t *c, ngx_chain...
type ngx_os_io_t (line 26) | typedef struct {
FILE: src/os/win32/ngx_process.c
function ngx_pid_t (line 20) | ngx_pid_t
function ngx_pid_t (line 206) | ngx_pid_t
FILE: src/os/win32/ngx_process.h
type DWORD (line 12) | typedef DWORD ngx_pid_t;
type ngx_cpuset_t (line 25) | typedef uint64_t ngx_cpuset_t;
type ngx_process_t (line 28) | typedef struct {
type ngx_exec_ctx_t (line 46) | typedef struct {
FILE: src/os/win32/ngx_process_cycle.c
function ngx_master_process_cycle (line 63) | void
function ngx_console_init (line 252) | static void
function ngx_console_handler (line 275) | static int __stdcall
function ngx_int_t (line 317) | static ngx_int_t
function ngx_int_t (line 367) | static ngx_int_t
function ngx_reopen_worker_processes (line 387) | static void
function ngx_quit_worker_processes (line 407) | static void
function ngx_terminate_worker_processes (line 442) | static void
function ngx_uint_t (line 469) | static ngx_uint_t
function ngx_master_process_exit (line 541) | static void
function ngx_worker_process_cycle (line 569) | static void
function ngx_thread_value_t (line 762) | static ngx_thread_value_t __stdcall
function ngx_worker_process_exit (line 822) | static void
function ngx_thread_value_t (line 858) | static ngx_thread_value_t __stdcall
function ngx_cache_manager_process_handler (line 918) | static void
function ngx_thread_value_t (line 956) | static ngx_thread_value_t __stdcall
function ngx_single_process_cycle (line 984) | void
function ngx_int_t (line 1005) | ngx_int_t
function ngx_close_handle (line 1036) | void
FILE: src/os/win32/ngx_service.c
function ngx_int_t (line 19) | ngx_int_t
function service_main (line 36) | void
function u_int (line 90) | u_int
FILE: src/os/win32/ngx_shmem.c
function ngx_int_t (line 44) | ngx_int_t
function ngx_int_t (line 123) | ngx_int_t
function ngx_shm_free (line 147) | void
FILE: src/os/win32/ngx_shmem.h
type ngx_shm_t (line 16) | typedef struct {
FILE: src/os/win32/ngx_socket.c
function ngx_nonblocking (line 12) | int
function ngx_blocking (line 21) | int
function ngx_socket_nread (line 30) | int
function ngx_tcp_push (line 45) | int
FILE: src/os/win32/ngx_socket.h
type SOCKET (line 19) | typedef SOCKET ngx_socket_t;
type socklen_t (line 20) | typedef int socklen_t;
type TRANSMIT_FILE_BUFFERS (line 93) | typedef struct _TRANSMIT_FILE_BUFFERS {
type TRANSMIT_PACKETS_ELEMENT (line 128) | typedef struct _TRANSMIT_PACKETS_ELEMENT {
type WSAPOLLFD (line 229) | typedef struct pollfd {
FILE: src/os/win32/ngx_stat.c
function ngx_file_type (line 12) | int ngx_file_type(char *file, ngx_file_info_t *sb)
FILE: src/os/win32/ngx_thread.c
function ngx_err_t (line 12) | ngx_err_t
FILE: src/os/win32/ngx_thread.h
type HANDLE (line 16) | typedef HANDLE ngx_tid_t;
type DWORD (line 17) | typedef DWORD ngx_thread_value_t;
FILE: src/os/win32/ngx_time.c
function ngx_gettimeofday (line 12) | void
function ngx_libc_localtime (line 41) | void
function ngx_libc_gmtime (line 51) | void
function ngx_int_t (line 61) | ngx_int_t
FILE: src/os/win32/ngx_time.h
type ngx_rbtree_key_t (line 16) | typedef ngx_rbtree_key_t ngx_msec_t;
type ngx_rbtree_key_int_t (line 17) | typedef ngx_rbtree_key_int_t ngx_msec_int_t;
type SYSTEMTIME (line 19) | typedef SYSTEMTIME ngx_tm_t;
type FILETIME (line 20) | typedef FILETIME ngx_mtime_t;
type tm (line 46) | struct tm
type tm (line 47) | struct tm
type timeval (line 48) | struct timeval
FILE: src/os/win32/ngx_udp_wsarecv.c
function ngx_udp_wsarecv (line 13) | ssize_t
function ngx_udp_overlapped_wsarecv (line 54) | ssize_t
FILE: src/os/win32/ngx_user.c
function ngx_int_t (line 13) | ngx_int_t
FILE: src/os/win32/ngx_win32_config.h
type time_t (line 69) | typedef long time_t;
type __int32 (line 146) | typedef __int32 int32_t;
type __int32 (line 152) | typedef __int32 int32_t;
type __int64 (line 164) | typedef __int64 int64_t;
type u_int (line 169) | typedef u_int uintptr_t;
type __int64 (line 176) | typedef __int64 off_t;
type dev_t (line 186) | typedef int dev_t;
type ino_t (line 187) | typedef unsigned int ino_t;
type dev_t (line 194) | typedef int dev_t;
type ino_t (line 195) | typedef unsigned int ino_t;
type __int64 (line 202) | typedef __int64 ssize_t;
type in_addr_t (line 209) | typedef uint32_t in_addr_t;
type u_short (line 210) | typedef u_short in_port_t;
type sig_atomic_t (line 211) | typedef int sig_atomic_t;
FILE: src/os/win32/ngx_win32_init.c
type ngx_osviex_stub_t (line 35) | typedef struct {
function ngx_int_t (line 67) | ngx_int_t
function ngx_os_status (line 282) | void
FILE: src/os/win32/ngx_wsarecv.c
function ngx_wsarecv (line 13) | ssize_t
function ngx_overlapped_wsarecv (line 105) | ssize_t
FILE: src/os/win32/ngx_wsarecv_chain.c
function ngx_wsarecv_chain (line 16) | ssize_t
FILE: src/os/win32/ngx_wsasend.c
function ngx_wsasend (line 13) | ssize_t
function ngx_overlapped_wsasend (line 68) | ssize_t
FILE: src/os/win32/ngx_wsasend_chain.c
function ngx_chain_t (line 16) | ngx_chain_t *
function ngx_chain_t (line 132) | ngx_chain_t *
FILE: src/stream/ngx_stream.c
function ngx_int_t (line 272) | static ngx_int_t
function ngx_int_t (line 321) | static ngx_int_t
function ngx_int_t (line 380) | static ngx_int_t
function ngx_int_t (line 557) | static ngx_int_t
function ngx_int_t (line 595) | static ngx_int_t
function ngx_int_t (line 633) | static ngx_int_t
FILE: src/stream/ngx_stream.h
type ngx_stream_session_t (line 24) | typedef struct ngx_stream_session_s ngx_stream_session_t;
type ngx_stream_conf_ctx_t (line 41) | typedef struct {
type ngx_stream_listen_t (line 47) | typedef struct {
type ngx_stream_addr_conf_t (line 80) | typedef struct {
type ngx_stream_in_addr_t (line 88) | typedef struct {
type ngx_stream_in6_addr_t (line 96) | typedef struct {
type ngx_stream_port_t (line 104) | typedef struct {
type ngx_stream_conf_port_t (line 111) | typedef struct {
type ngx_stream_conf_addr_t (line 119) | typedef struct {
type ngx_stream_phases (line 124) | typedef enum {
type ngx_stream_phase_handler_t (line 135) | typedef struct ngx_stream_phase_handler_s ngx_stream_phase_handler_t;
type ngx_int_t (line 137) | typedef ngx_int_t (*ngx_stream_phase_handler_pt)(ngx_stream_session_t *s,
type ngx_int_t (line 139) | typedef ngx_int_t (*ngx_stream_handler_pt)(ngx_stream_session_t *s);
type ngx_stream_phase_handler_s (line 143) | struct ngx_stream_phase_handler_s {
type ngx_stream_phase_engine_t (line 150) | typedef struct {
type ngx_stream_phase_t (line 155) | typedef struct {
type ngx_stream_core_main_conf_t (line 160) | typedef struct {
type ngx_stream_core_srv_conf_t (line 181) | typedef struct {
type ngx_stream_session_s (line 204) | struct ngx_stream_session_s {
type ngx_stream_module_t (line 243) | typedef struct {
type ngx_int_t (line 311) | typedef ngx_int_t (*ngx_stream_filter_pt)(ngx_stream_session_t *s,
FILE: src/stream/ngx_stream_access_module.c
type ngx_stream_access_rule_t (line 13) | typedef struct {
type ngx_stream_access_rule6_t (line 21) | typedef struct {
type ngx_stream_access_rule_un_t (line 31) | typedef struct {
type ngx_stream_access_srv_conf_t (line 37) | typedef struct {
function ngx_int_t (line 118) | static ngx_int_t
function ngx_int_t (line 178) | static ngx_int_t
function ngx_int_t (line 203) | static ngx_int_t
function ngx_int_t (line 250) | static ngx_int_t
function ngx_int_t (line 272) | static ngx_int_t
function ngx_int_t (line 437) | static ngx_int_t
FILE: src/stream/ngx_stream_core_module.c
function ngx_stream_core_run_phases (line 140) | void
function ngx_int_t (line 162) | ngx_int_t
function ngx_int_t (line 202) | ngx_int_t
function ngx_int_t (line 314) | ngx_int_t
function ngx_int_t (line 341) | static ngx_int_t
FILE: src/stream/ngx_stream_geo_module.c
type ngx_stream_geo_range_t (line 13) | typedef struct {
type ngx_stream_geo_trees_t (line 20) | typedef struct {
type ngx_stream_geo_high_ranges_t (line 28) | typedef struct {
type ngx_stream_geo_variable_value_node_t (line 34) | typedef struct {
type ngx_stream_geo_conf_ctx_t (line 41) | typedef struct {
type ngx_stream_geo_ctx_t (line 67) | typedef struct {
type ngx_stream_geo_header_t (line 148) | typedef struct {
function ngx_int_t (line 164) | static ngx_int_t
function ngx_int_t (line 237) | static ngx_int_t
function ngx_int_t (line 317) | static ngx_int_t
type in6_addr (line 368) | struct in6_addr
function ngx_uint_t (line 935) | static ngx_uint_t
function ngx_stream_variable_value_t (line 1195) | static ngx_stream_variable_value_t *
function ngx_int_t (line 1248) | static ngx_int_t
function ngx_int_t (line 1329) | static ngx_int_t
function ngx_stream_geo_create_binary_base (line 1505) | static void
function u_char (line 1583) | static u_char *
FILE: src/stream/ngx_stream_geoip_module.c
type ngx_stream_geoip_conf_t (line 21) | typedef struct {
type ngx_stream_geoip_var_t (line 33) | typedef struct {
function u_long (line 217) | static u_long
function geoipv6_t (line 261) | static geoipv6_t
function ngx_int_t (line 302) | static ngx_int_t
function ngx_int_t (line 350) | static ngx_int_t
function ngx_int_t (line 404) | static ngx_int_t
function ngx_int_t (line 452) | static ngx_int_t
function ngx_int_t (line 496) | static ngx_int_t
function ngx_int_t (line 528) | static ngx_int_t
function GeoIPRecord (line 560) | static GeoIPRecord *
function ngx_int_t (line 583) | static ngx_int_t
function ngx_stream_geoip_cleanup (line 798) | static void
FILE: src/stream/ngx_stream_handler.c
function ngx_stream_init_connection (line 20) | void
function ngx_stream_proxy_protocol_handler (line 224) | static void
function ngx_stream_session_handler (line 302) | void
function ngx_stream_finalize_session (line 315) | void
function ngx_stream_log_session (line 329) | static void
function ngx_stream_close_connection (line 347) | static void
function u_char (line 378) | static u_char *
FILE: src/stream/ngx_stream_limit_conn_module.c
type ngx_stream_limit_conn_node_t (line 18) | typedef struct {
type ngx_stream_limit_conn_cleanup_t (line 26) | typedef struct {
type ngx_stream_limit_conn_shctx_t (line 32) | typedef struct {
type ngx_stream_limit_conn_ctx_t (line 38) | typedef struct {
type ngx_stream_limit_conn_limit_t (line 45) | typedef struct {
type ngx_stream_limit_conn_conf_t (line 51) | typedef struct {
function ngx_int_t (line 163) | static ngx_int_t
function ngx_stream_limit_conn_rbtree_insert_value (line 291) | static void
function ngx_rbtree_node_t (line 332) | static ngx_rbtree_node_t *
function ngx_stream_limit_conn_cleanup (line 372) | static void
function ngx_inline (line 401) | static ngx_inline void
function ngx_int_t (line 417) | static ngx_int_t
function ngx_int_t (line 480) | static ngx_int_t
function ngx_int_t (line 702) | static ngx_int_t
function ngx_int_t (line 721) | static ngx_int_t
FILE: src/stream/ngx_stream_log_module.c
type ngx_stream_log_op_t (line 17) | typedef struct ngx_stream_log_op_s ngx_stream_log_op_t;
type u_char (line 19) | typedef u_char *(*ngx_stream_log_op_run_pt) (ngx_stream_session_t *s,
type ngx_stream_log_op_s (line 26) | struct ngx_stream_log_op_s {
type ngx_stream_log_fmt_t (line 34) | typedef struct {
type ngx_stream_log_main_conf_t (line 41) | typedef struct {
type ngx_stream_log_buf_t (line 46) | typedef struct {
type ngx_stream_log_script_t (line 57) | typedef struct {
type ngx_stream_log_t (line 63) | typedef struct {
type ngx_stream_log_srv_conf_t (line 74) | typedef struct {
type ngx_stream_log_var_t (line 85) | typedef struct {
function ngx_int_t (line 200) | static ngx_int_t
function ngx_stream_log_write (line 353) | static void
function ngx_stream_log_script_write (line 419) | static ssize_t
function ngx_stream_log_gzip (line 477) | static ssize_t
function ngx_stream_log_gzip_free (line 596) | static void
function ngx_stream_log_flush (line 610) | static void
function ngx_stream_log_flush_handler (line 655) | static void
function u_char (line 665) | static u_char *
function u_char (line 684) | static u_char *
function ngx_int_t (line 692) | static ngx_int_t
function ngx_stream_log_variable_getlen (line 727) | static size_t
function u_char (line 747) | static u_char *
function ngx_stream_log_escape (line 769) | static uintptr_t
function ngx_stream_log_json_variable_getlen (line 829) | sta
Condensed preview — 505 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (7,684K chars).
[
{
"path": "README",
"chars": 9090,
"preview": "Experimental QUIC support for nginx\n-----------------------------------\n\n1. Introduction\n2. Installing\n3. Configuration\n"
},
{
"path": "auto/cc/acc",
"chars": 201,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\n# aCC: HP ANSI C++ B3910B A.03.55.02\n\n# C89 mode\n\nCFLAGS=\"$CF"
},
{
"path": "auto/cc/bcc",
"chars": 1275,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\n# Borland C++ 5.5\n\n# optimizations\n\n# maximize speed\nCFLAGS=\""
},
{
"path": "auto/cc/ccc",
"chars": 1324,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\n# Compaq C V6.5-207\n\nngx_include_opt=\"-I\"\n\n# warnings\n\nCFLAGS"
},
{
"path": "auto/cc/clang",
"chars": 1881,
"preview": "\n# Copyright (C) Nginx, Inc.\n\n\n# clang\n\n\nNGX_CLANG_VER=`$CC -v 2>&1 | grep 'version' 2>&1 \\\n |"
},
{
"path": "auto/cc/conf",
"chars": 5269,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\nLINK=\"\\$(CC)\"\n\nMAIN_LINK=\nMODULE_LINK=\"-shared\"\n\nngx_include_"
},
{
"path": "auto/cc/gcc",
"chars": 3588,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\n# gcc 2.7.2.3, 2.8.1, 2.95.4, egcs-1.1.2\n# 3.0.4, 3.1.1, "
},
{
"path": "auto/cc/icc",
"chars": 2874,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\n# Intel C++ compiler 7.1, 8.0, 8.1, 9.0, 11.1\n\nNGX_ICC_VER=`$"
},
{
"path": "auto/cc/msvc",
"chars": 3308,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\n# MSVC 6.0 SP2 cl 12.00\n# MSVC Too"
},
{
"path": "auto/cc/name",
"chars": 1568,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\nif [ \"$NGX_PLATFORM\" != win32 ]; then\n\n ngx_feature=\"C com"
},
{
"path": "auto/cc/owc",
"chars": 1862,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\n# Open Watcom C 1.0, 1.2, 1.3\n\n# optimizations\n\n# maximize sp"
},
{
"path": "auto/cc/sunc",
"chars": 3516,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\n# Sun C 5.7 Patch 117837-04 2005/05/11 Sun Studio 10\n# Sun"
},
{
"path": "auto/configure",
"chars": 2590,
"preview": "#!/bin/sh\n\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\nLC_ALL=C\nexport LC_ALL\n\n. auto/options\n. auto/init\n"
},
{
"path": "auto/define",
"chars": 141,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\ncat << END >> $NGX_AUTO_CONFIG_H\n\n#ifndef $have\n#define $have"
},
{
"path": "auto/endianness",
"chars": 889,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\necho $ngx_n \"checking for system byte ordering ...$ngx_c\"\n\nca"
},
{
"path": "auto/feature",
"chars": 2812,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\necho $ngx_n \"checking for $ngx_feature ...$ngx_c\"\n\ncat << END"
},
{
"path": "auto/have",
"chars": 136,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\ncat << END >> $NGX_AUTO_CONFIG_H\n\n#ifndef $have\n#define $have"
},
{
"path": "auto/have_headers",
"chars": 137,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\ncat << END >> $NGX_AUTO_HEADERS_H\n\n#ifndef $have\n#define $hav"
},
{
"path": "auto/headers",
"chars": 411,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\nngx_include=\"unistd.h\"; . auto/include\nngx_include=\"intt"
},
{
"path": "auto/include",
"chars": 1020,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\necho $ngx_n \"checking for $ngx_include ...$ngx_c\"\n\ncat << END"
},
{
"path": "auto/init",
"chars": 768,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\nNGX_MAKEFILE=$NGX_OBJS/Makefile\nNGX_MODULES_C=$NGX_OBJS/ngx_m"
},
{
"path": "auto/install",
"chars": 4875,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\nif [ $USE_PERL != NO ]; then\n\n cat << END "
},
{
"path": "auto/lib/conf",
"chars": 952,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\nif [ $USE_PCRE = YES -o $PCRE != NONE ]; then\n . auto/lib/"
},
{
"path": "auto/lib/geoip/conf",
"chars": 1968,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\n ngx_feature=\"GeoIP library\"\n ngx_feature_name=\n ngx"
},
{
"path": "auto/lib/google-perftools/conf",
"chars": 1181,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\n ngx_feature=\"Google perftools\"\n ngx_feature_name=\n "
},
{
"path": "auto/lib/libatomic/conf",
"chars": 1090,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\nif [ $NGX_LIBATOMIC != YES ]; then\n\n have=NGX_HAVE_LIBATOM"
},
{
"path": "auto/lib/libatomic/make",
"chars": 364,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\n cat << END >> "
},
{
"path": "auto/lib/libgd/conf",
"chars": 1893,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\n ngx_feature=\"GD library\"\n ngx_feature_name=\n ngx_fe"
},
{
"path": "auto/lib/libxslt/conf",
"chars": 3796,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\n ngx_feature=\"libxslt\"\n ngx_feature_name=\n ngx_featu"
},
{
"path": "auto/lib/make",
"chars": 482,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\nif [ $PCRE != NONE -a $PCRE != NO -a $PCRE != YES ]; then\n "
},
{
"path": "auto/lib/openssl/conf",
"chars": 4874,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\nif [ $OPENSSL != NONE ]; then\n\n have=NGX_OPENSSL . auto/ha"
},
{
"path": "auto/lib/openssl/make",
"chars": 1491,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\ncase \"$CC\" in\n\n cl)\n\n cat << END "
},
{
"path": "auto/lib/openssl/makefile.bcc",
"chars": 365,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\nall:\n\tcd $(OPENSSL)\n\n\tperl Configure BC-32 no-shared --prefix"
},
{
"path": "auto/lib/openssl/makefile.msvc",
"chars": 399,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\nall:\n\tcd $(OPENSSL)\n\n\tperl Configure VC-WIN32 no-shared\t\t\t\t\\\n"
},
{
"path": "auto/lib/pcre/conf",
"chars": 5984,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\nif [ $PCRE != NONE ]; then\n CORE_INCS=\"$CORE_INCS $PCRE\"\n\n"
},
{
"path": "auto/lib/pcre/make",
"chars": 1371,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\ncase \"$NGX_CC_NAME\" in\n\n msvc)\n ngx_makefile=makefi"
},
{
"path": "auto/lib/pcre/makefile.bcc",
"chars": 530,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\nCFLAGS =\t-q -O2 -tWM -w-8004 $(CPU_OPT)\nPCREFLAGS =\t-DHAVE_CO"
},
{
"path": "auto/lib/pcre/makefile.msvc",
"chars": 474,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\nCFLAGS =\t-O2 -Ob1 -Oi -Gs $(LIBC) $(CPU_OPT)\nPCREFLAGS =\t-DHA"
},
{
"path": "auto/lib/pcre/makefile.owc",
"chars": 484,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\nCFLAGS =\t-c -zq -bt=nt -ot -op -oi -oe -s -bm $(CPU_OPT)\nPCRE"
},
{
"path": "auto/lib/perl/conf",
"chars": 2505,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\necho \"checking for perl\"\n\n\nNGX_PERL_VER=`$NGX_PERL -v 2>&1 | "
},
{
"path": "auto/lib/perl/make",
"chars": 1548,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\ncat << END "
},
{
"path": "auto/lib/zlib/conf",
"chars": 2040,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\nif [ $ZLIB != NONE ]; then\n CORE_INCS=\"$CORE_INCS $ZLIB\"\n\n"
},
{
"path": "auto/lib/zlib/make",
"chars": 2525,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\ncase \"$NGX_CC_NAME\" in\n\n msvc)\n ngx_makefile=makefi"
},
{
"path": "auto/lib/zlib/makefile.bcc",
"chars": 382,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\nCFLAGS = -q -O2 -tWM -w-8004 -w-8012 $(CPU_OPT)\n\nzlib.lib:\n\tc"
},
{
"path": "auto/lib/zlib/makefile.msvc",
"chars": 385,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\nCFLAGS = -nologo -O2 -Ob1 -Oi -Gs $(LIBC) $(CPU_OPT)\n\nzlib.li"
},
{
"path": "auto/lib/zlib/makefile.owc",
"chars": 374,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\nCFLAGS = -zq -bt=nt -ot -op -oi -oe -s -bm $(CPU_OPT)\n\nzlib.l"
},
{
"path": "auto/make",
"chars": 18382,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\necho \"creating $NGX_MAKEFILE\"\n\nmkdir -p $NGX_OBJS/src/core $N"
},
{
"path": "auto/module",
"chars": 3934,
"preview": "\n# Copyright (C) Ruslan Ermilov\n# Copyright (C) Nginx, Inc.\n\n\ncase $ngx_module_type in\n HTTP_*) ngx_var=HTTP ;;\n *"
},
{
"path": "auto/modules",
"chars": 43394,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\nif [ $EVENT_SELECT = NO -a $EVENT_FOUND = NO ]; then\n EVEN"
},
{
"path": "auto/nohave",
"chars": 136,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\ncat << END >> $NGX_AUTO_CONFIG_H\n\n#ifndef $have\n#define $have"
},
{
"path": "auto/options",
"chars": 26125,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\nhelp=no\n\nNGX_PREFIX=\nNGX_SBIN_PATH=\nNGX_MODULES_PATH=\nNGX_CON"
},
{
"path": "auto/os/conf",
"chars": 2669,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\necho \"checking for $NGX_SYSTEM specific features\"\n\ncase \"$NGX"
},
{
"path": "auto/os/darwin",
"chars": 3035,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\nhave=NGX_DARWIN . auto/have_headers\n\nCORE_INCS=\"$UNIX_INCS\"\nC"
},
{
"path": "auto/os/freebsd",
"chars": 2344,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\nhave=NGX_FREEBSD . auto/have_headers\n\nCORE_INCS=\"$UNIX_INCS\"\n"
},
{
"path": "auto/os/linux",
"chars": 8445,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\nhave=NGX_LINUX . auto/have_headers\n\nCORE_INCS=\"$UNIX_INCS\"\nCO"
},
{
"path": "auto/os/solaris",
"chars": 1400,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\nhave=NGX_SOLARIS . auto/have_headers\n\nCORE_INCS=\"$UNIX_INCS\"\n"
},
{
"path": "auto/os/win32",
"chars": 794,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\nhave=NGX_WIN32 . auto/have_headers\n\nCORE_INCS=\"$WIN32_INCS\"\nC"
},
{
"path": "auto/sources",
"chars": 8807,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\nCORE_MODULES=\"ngx_core_module ngx_errlog_module ngx_conf_modu"
},
{
"path": "auto/stubs",
"chars": 120,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\nhave=NGX_SUPPRESS_WARN . auto/have\n\nhave=NGX_SMP . auto/have\n"
},
{
"path": "auto/summary",
"chars": 2014,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\necho\necho \"Configuration summary\"\n\n\nif [ $USE_THREADS = YES ]"
},
{
"path": "auto/threads",
"chars": 394,
"preview": "\n# Copyright (C) Nginx, Inc.\n\n\nif [ $USE_THREADS = YES ]; then\n\n if [ \"$NGX_PLATFORM\" = win32 ]; then\n cat << "
},
{
"path": "auto/types/sizeof",
"chars": 1423,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\necho $ngx_n \"checking for $ngx_type size ...$ngx_c\"\n\ncat << E"
},
{
"path": "auto/types/typedef",
"chars": 1681,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\necho $ngx_n \"checking for $ngx_type ...$ngx_c\"\n\ncat << END >>"
},
{
"path": "auto/types/uintptr_t",
"chars": 915,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\necho $ngx_n \"checking for uintptr_t ...$ngx_c\"\n\ncat << END >>"
},
{
"path": "auto/types/value",
"chars": 155,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\ncat << END >> $NGX_AUTO_CONFIG_H\n\n#ifndef $ngx_param\n#define "
},
{
"path": "auto/unix",
"chars": 27002,
"preview": "\n# Copyright (C) Igor Sysoev\n# Copyright (C) Nginx, Inc.\n\n\nNGX_USER=${NGX_USER:-nobody}\n\nif [ -z \"$NGX_GROUP\" ]; then\n "
},
{
"path": "conf/fastcgi.conf",
"chars": 1077,
"preview": "\nfastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\nfastcgi_param QUERY_STRING $query_string;\n"
},
{
"path": "conf/fastcgi_params",
"chars": 1007,
"preview": "\nfastcgi_param QUERY_STRING $query_string;\nfastcgi_param REQUEST_METHOD $request_method;\nfastcgi_param CONT"
},
{
"path": "conf/koi-utf",
"chars": 2837,
"preview": "\n# This map is not a full koi8-r <> utf8 map: it does not contain\n# box-drawing and some other characters. Besides this"
},
{
"path": "conf/koi-win",
"chars": 2223,
"preview": "\ncharset_map koi8-r windows-1251 {\n\n 80 88 ; # euro\n\n 95 95 ; # bullet\n\n 9A A0 ; # \n\n 9E B7 ; # "
},
{
"path": "conf/mime.types",
"chars": 5349,
"preview": "\ntypes {\n text/html html htm shtml;\n text/css "
},
{
"path": "conf/nginx.conf",
"chars": 2656,
"preview": "\n#user nobody;\nworker_processes 1;\n\n#error_log logs/error.log;\n#error_log logs/error.log notice;\n#error_log logs/e"
},
{
"path": "conf/scgi_params",
"chars": 636,
"preview": "\nscgi_param REQUEST_METHOD $request_method;\nscgi_param REQUEST_URI $request_uri;\nscgi_param QUERY_STRING "
},
{
"path": "conf/uwsgi_params",
"chars": 664,
"preview": "\nuwsgi_param QUERY_STRING $query_string;\nuwsgi_param REQUEST_METHOD $request_method;\nuwsgi_param CONTENT_TY"
},
{
"path": "conf/win-utf",
"chars": 3610,
"preview": "\n# This map is not a full windows-1251 <> utf8 map: it does not\n# contain Serbian and Macedonian letters. If you need a"
},
{
"path": "contrib/README",
"chars": 543,
"preview": "\ngeo2nginx.pl \t\tby Andrei Nigmatulin\n\n\tThe perl script to convert CSV geoip database ( free download\n\tat http://www.maxm"
},
{
"path": "contrib/geo2nginx.pl",
"chars": 1272,
"preview": "#!/usr/bin/perl -w\r\n\r\n# (c) Andrei Nigmatulin, 2005\r\n#\r\n# this script provided \"as is\", without any warranties. use it a"
},
{
"path": "contrib/unicode2nginx/koi-utf",
"chars": 5991,
"preview": "charset_map koi8-r utf-8 {\n\n 80 E29480 ; #\tBOX DRAWINGS LIGHT HORIZONTAL\n 81 E29482 ; #\tBOX DRAWINGS LIGHT VER"
},
{
"path": "contrib/unicode2nginx/unicode-to-nginx.pl",
"chars": 1090,
"preview": "#!/usr/bin/perl -w\n\n# Convert unicode mappings to nginx configuration file format.\n\n# You may find useful mappings in va"
},
{
"path": "contrib/unicode2nginx/win-utf",
"chars": 5339,
"preview": "charset_map windows-1251 utf-8 {\n\n 80 D082 ; #CYRILLIC CAPITAL LETTER DJE\n 81 D083 ; #CYRILLIC CAPITAL LETTER "
},
{
"path": "contrib/vim/ftdetect/nginx.vim",
"chars": 198,
"preview": "au BufRead,BufNewFile *.nginx set ft=nginx\nau BufRead,BufNewFile */etc/nginx/* set ft=nginx\nau BufRead,BufNewFile */usr/"
},
{
"path": "contrib/vim/ftplugin/nginx.vim",
"chars": 29,
"preview": "setlocal commentstring=#\\ %s\n"
},
{
"path": "contrib/vim/indent/nginx.vim",
"chars": 250,
"preview": "if exists(\"b:did_indent\")\n finish\nendif\nlet b:did_indent = 1\n\nsetlocal indentexpr=\n\n\" cindent actually works for ngin"
},
{
"path": "contrib/vim/syntax/nginx.vim",
"chars": 136585,
"preview": "\" Vim syntax file\n\" Language: nginx.conf\n\nif exists(\"b:current_syntax\")\n finish\nend\n\n\" general syntax\n\nif has(\"patch-7."
},
{
"path": "docs/GNUmakefile",
"chars": 958,
"preview": "\nVER=\t$(shell grep 'define NGINX_VERSION' src/core/nginx.h\t\t\\\n\t\t| sed -e 's/^.*\"\\(.*\\)\".*/\\1/')\nNGINX=\tnginx-$(VER)\nTEMP"
},
{
"path": "docs/dtd/change_log_conf.dtd",
"chars": 714,
"preview": "\n<!ELEMENT configuration (length, start, indent, changes+) >\n\n<!ELEMENT length (#PCDATA) >\n<!ELEMENT start "
},
{
"path": "docs/dtd/changes.dtd",
"chars": 614,
"preview": "\n<!ENTITY nbsp \" \" >\n<!ENTITY mdash \" - \" >\n\n\n<!ELEMENT change_log (changes)* >\n<!ATTLIST c"
},
{
"path": "docs/html/50x.html",
"chars": 497,
"preview": "<!DOCTYPE html>\n<html>\n<head>\n<title>Error</title>\n<style>\nhtml { color-scheme: light dark; }\nbody { width: 35em; margin"
},
{
"path": "docs/html/index.html",
"chars": 615,
"preview": "<!DOCTYPE html>\n<html>\n<head>\n<title>Welcome to nginx!</title>\n<style>\nhtml { color-scheme: light dark; }\nbody { width: "
},
{
"path": "docs/man/nginx.8",
"chars": 5480,
"preview": ".\\\"\n.\\\" Copyright (C) 2010, 2019 Sergey A. Osokin\n.\\\" Copyright (C) Nginx, Inc.\n.\\\" All rights reserved.\n.\\\"\n.\\\" Redistr"
},
{
"path": "docs/text/LICENSE",
"chars": 1397,
"preview": "/* \n * Copyright (C) 2002-2021 Igor Sysoev\n * Copyright (C) 2011-2021 Nginx, Inc.\n * All rights reserved.\n *\n * Redistri"
},
{
"path": "docs/text/README",
"chars": 49,
"preview": "\nDocumentation is available at http://nginx.org\n\n"
},
{
"path": "docs/xml/change_log_conf.xml",
"chars": 1007,
"preview": "<?xml version=\"1.0\" ?>\n<!DOCTYPE configuration SYSTEM \"../dtd/change_log_conf.dtd\" >\n\n<configuration>\n\n<length>76</lengt"
},
{
"path": "docs/xml/nginx/changes.xml",
"chars": 683061,
"preview": "<?xml version=\"1.0\" ?>\n<!DOCTYPE change_log SYSTEM \"../../dtd/changes.dtd\" >\n\n\n<change_log title=\"nginx\">\n\n\n<changes ver"
},
{
"path": "docs/xsls/changes.xsls",
"chars": 3289,
"preview": "X:stylesheet {\n\nX:output method=\"text\";\n\nX:param lang=\"'en'\";\nX:param configuration=\"'../xml/change_log_conf.xml'\";\n\nX:v"
},
{
"path": "docs/xslt/changes.xslt",
"chars": 5400,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">\n\n"
},
{
"path": "misc/GNUmakefile",
"chars": 4274,
"preview": "\nVER =\t\t$(shell grep 'define NGINX_VERSION' src/core/nginx.h\t\\\n\t\t\t| sed -e 's/^.*\"\\(.*\\)\".*/\\1/')\nNGINX =\t\tnginx-$(VER)\n"
},
{
"path": "misc/README",
"chars": 280,
"preview": "\nmake -f misc/GNUmakefile release\n\nthe required tools:\n*) xsltproc to build CHANGES,\n*) xslscript.pl ( http://hg.nginx.o"
},
{
"path": "src/core/nginx.c",
"chars": 39708,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n#inclu"
},
{
"path": "src/core/nginx.h",
"chars": 476,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGINX_H_INCLUDED_\n#define _NGINX_H_INCLUDED"
},
{
"path": "src/core/ngx_array.c",
"chars": 2694,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n\n\nngx_"
},
{
"path": "src/core/ngx_array.h",
"chars": 1069,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_ARRAY_H_INCLUDED_\n#define _NGX_ARRAY_H_"
},
{
"path": "src/core/ngx_bpf.c",
"chars": 3039,
"preview": "\n/*\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n\n#define NGX_BPF_LOGBUF_SIZE (16 *"
},
{
"path": "src/core/ngx_bpf.h",
"chars": 1032,
"preview": "\n/*\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_BPF_H_INCLUDED_\n#define _NGX_BPF_H_INCLUDED_\n\n\n#include <ngx_config."
},
{
"path": "src/core/ngx_buf.c",
"chars": 5490,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n\n\nngx_"
},
{
"path": "src/core/ngx_buf.h",
"chars": 4993,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_BUF_H_INCLUDED_\n#define _NGX_BUF_H_INCL"
},
{
"path": "src/core/ngx_conf_file.c",
"chars": 34390,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n\n#defi"
},
{
"path": "src/core/ngx_conf_file.h",
"chars": 10320,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_CONF_FILE_H_INCLUDED_\n#define _NGX_CONF"
},
{
"path": "src/core/ngx_config.h",
"chars": 2777,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_CONFIG_H_INCLUDED_\n#define _NGX_CONFIG_"
},
{
"path": "src/core/ngx_connection.c",
"chars": 42501,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n#inclu"
},
{
"path": "src/core/ngx_connection.h",
"chars": 6312,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_CONNECTION_H_INCLUDED_\n#define _NGX_CON"
},
{
"path": "src/core/ngx_core.h",
"chars": 3126,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_CORE_H_INCLUDED_\n#define _NGX_CORE_H_IN"
},
{
"path": "src/core/ngx_cpuinfo.c",
"chars": 2423,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n\n\n#if "
},
{
"path": "src/core/ngx_crc.h",
"chars": 616,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_CRC_H_INCLUDED_\n#define _NGX_CRC_H_INCL"
},
{
"path": "src/core/ngx_crc32.c",
"chars": 4927,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n\n\n/*\n "
},
{
"path": "src/core/ngx_crc32.h",
"chars": 1359,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_CRC32_H_INCLUDED_\n#define _NGX_CRC32_H_"
},
{
"path": "src/core/ngx_crypt.c",
"chars": 6777,
"preview": "\n/*\n * Copyright (C) Maxim Dounin\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n#include <ngx_crypt.h>\n#include <n"
},
{
"path": "src/core/ngx_crypt.h",
"chars": 308,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_CRYPT_H_INCLUDED_\n#define _NGX_CRYPT_H_"
},
{
"path": "src/core/ngx_cycle.c",
"chars": 38105,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n#inclu"
},
{
"path": "src/core/ngx_cycle.h",
"chars": 4320,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_CYCLE_H_INCLUDED_\n#define _NGX_CYCLE_H_"
},
{
"path": "src/core/ngx_file.c",
"chars": 27105,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n\n\nstat"
},
{
"path": "src/core/ngx_file.h",
"chars": 4667,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_FILE_H_INCLUDED_\n#define _NGX_FILE_H_IN"
},
{
"path": "src/core/ngx_hash.c",
"chars": 23024,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n\n\nvoid"
},
{
"path": "src/core/ngx_hash.h",
"chars": 2812,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_HASH_H_INCLUDED_\n#define _NGX_HASH_H_IN"
},
{
"path": "src/core/ngx_inet.c",
"chars": 30798,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n\n\nstat"
},
{
"path": "src/core/ngx_inet.h",
"chars": 3703,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_INET_H_INCLUDED_\n#define _NGX_INET_H_IN"
},
{
"path": "src/core/ngx_list.c",
"chars": 1102,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n\n\nngx_"
},
{
"path": "src/core/ngx_list.h",
"chars": 1436,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_LIST_H_INCLUDED_\n#define _NGX_LIST_H_IN"
},
{
"path": "src/core/ngx_log.c",
"chars": 16637,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n\n\nstat"
},
{
"path": "src/core/ngx_log.h",
"chars": 9716,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_LOG_H_INCLUDED_\n#define _NGX_LOG_H_INCL"
},
{
"path": "src/core/ngx_md5.c",
"chars": 8633,
"preview": "\n/*\n * An internal implementation, based on Alexander Peslyak's\n * public domain implementation:\n * http://openwall.info"
},
{
"path": "src/core/ngx_md5.h",
"chars": 475,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_MD5_H_INCLUDED_\n#define _NGX_MD5_H_INCL"
},
{
"path": "src/core/ngx_module.c",
"chars": 8294,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Maxim Dounin\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h"
},
{
"path": "src/core/ngx_module.h",
"chars": 6970,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Maxim Dounin\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_MODULE_H_"
},
{
"path": "src/core/ngx_murmurhash.c",
"chars": 763,
"preview": "\n/*\n * Copyright (C) Austin Appleby\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n\n\nuint32_t\nngx_murmur_hash2(u_ch"
},
{
"path": "src/core/ngx_murmurhash.h",
"chars": 286,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_MURMURHASH_H_INCLUDED_\n#define _NGX_MUR"
},
{
"path": "src/core/ngx_open_file_cache.c",
"chars": 31195,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n#inclu"
},
{
"path": "src/core/ngx_open_file_cache.h",
"chars": 3305,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n\n\n#ifn"
},
{
"path": "src/core/ngx_output_chain.c",
"chars": 20520,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n#inclu"
},
{
"path": "src/core/ngx_palloc.c",
"chars": 8225,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n\n\nstat"
},
{
"path": "src/core/ngx_palloc.h",
"chars": 2263,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_PALLOC_H_INCLUDED_\n#define _NGX_PALLOC_"
},
{
"path": "src/core/ngx_parse.c",
"chars": 5578,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n\n\nssiz"
},
{
"path": "src/core/ngx_parse.h",
"chars": 362,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_PARSE_H_INCLUDED_\n#define _NGX_PARSE_H_"
},
{
"path": "src/core/ngx_parse_time.c",
"chars": 5500,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n\n\nstat"
},
{
"path": "src/core/ngx_parse_time.h",
"chars": 382,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_PARSE_TIME_H_INCLUDED_\n#define _NGX_PAR"
},
{
"path": "src/core/ngx_proxy_protocol.c",
"chars": 10549,
"preview": "\n/*\n * Copyright (C) Roman Arutyunyan\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n\n"
},
{
"path": "src/core/ngx_proxy_protocol.h",
"chars": 637,
"preview": "\n/*\n * Copyright (C) Roman Arutyunyan\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_PROXY_PROTOCOL_H_INCLUDED_\n#define"
},
{
"path": "src/core/ngx_queue.c",
"chars": 1477,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n\n\n/*\n "
},
{
"path": "src/core/ngx_queue.h",
"chars": 3533,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n\n\n#ifn"
},
{
"path": "src/core/ngx_radix_tree.c",
"chars": 9177,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n\n\nstat"
},
{
"path": "src/core/ngx_radix_tree.h",
"chars": 1318,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_RADIX_TREE_H_INCLUDED_\n#define _NGX_RAD"
},
{
"path": "src/core/ngx_rbtree.c",
"chars": 9335,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n\n\n/*\n "
},
{
"path": "src/core/ngx_rbtree.h",
"chars": 2427,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_RBTREE_H_INCLUDED_\n#define _NGX_RBTREE_"
},
{
"path": "src/core/ngx_regex.c",
"chars": 9694,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n\n\ntype"
},
{
"path": "src/core/ngx_regex.h",
"chars": 1190,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_REGEX_H_INCLUDED_\n#define _NGX_REGEX_H_"
},
{
"path": "src/core/ngx_resolver.c",
"chars": 106112,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n#inclu"
},
{
"path": "src/core/ngx_resolver.h",
"chars": 6364,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n\n\n#ifn"
},
{
"path": "src/core/ngx_rwlock.c",
"chars": 2198,
"preview": "\n/*\n * Copyright (C) Ruslan Ermilov\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n\n\n#"
},
{
"path": "src/core/ngx_rwlock.h",
"chars": 401,
"preview": "\n/*\n * Copyright (C) Ruslan Ermilov\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_RWLOCK_H_INCLUDED_\n#define _NGX_RWLO"
},
{
"path": "src/core/ngx_sha1.c",
"chars": 9696,
"preview": "\n/*\n * Copyright (C) Maxim Dounin\n * Copyright (C) Nginx, Inc.\n *\n * An internal SHA1 implementation.\n */\n\n\n#include <ng"
},
{
"path": "src/core/ngx_sha1.h",
"chars": 491,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_SHA1_H_INCLUDED_\n#define _NGX_SHA1_H_IN"
},
{
"path": "src/core/ngx_shmtx.c",
"chars": 5874,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n\n\n#if "
},
{
"path": "src/core/ngx_shmtx.h",
"chars": 943,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_SHMTX_H_INCLUDED_\n#define _NGX_SHMTX_H_"
},
{
"path": "src/core/ngx_slab.c",
"chars": 20003,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n\n\n#defi"
},
{
"path": "src/core/ngx_slab.h",
"chars": 1483,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_SLAB_H_INCLUDED_\n#define _NGX_SLAB_H_IN"
},
{
"path": "src/core/ngx_spinlock.c",
"chars": 820,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n\n\nvoid"
},
{
"path": "src/core/ngx_string.c",
"chars": 46475,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n\n\nstat"
},
{
"path": "src/core/ngx_string.h",
"chars": 6641,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_STRING_H_INCLUDED_\n#define _NGX_STRING_"
},
{
"path": "src/core/ngx_syslog.c",
"chars": 9903,
"preview": "\n/*\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n#include <ngx_event.h>\n\n\n#define NG"
},
{
"path": "src/core/ngx_syslog.h",
"chars": 703,
"preview": "\n/*\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_SYSLOG_H_INCLUDED_\n#define _NGX_SYSLOG_H_INCLUDED_\n\n\ntypedef struct "
},
{
"path": "src/core/ngx_thread_pool.c",
"chars": 15532,
"preview": "\n/*\n * Copyright (C) Nginx, Inc.\n * Copyright (C) Valentin V. Bartenev\n * Copyright (C) Ruslan Ermilov\n */\n\n\n#include <n"
},
{
"path": "src/core/ngx_thread_pool.h",
"chars": 844,
"preview": "\n/*\n * Copyright (C) Nginx, Inc.\n * Copyright (C) Valentin V. Bartenev\n */\n\n\n#ifndef _NGX_THREAD_POOL_H_INCLUDED_\n#defin"
},
{
"path": "src/core/ngx_times.c",
"chars": 11602,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n\n\nstat"
},
{
"path": "src/core/ngx_times.h",
"chars": 1227,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_TIMES_H_INCLUDED_\n#define _NGX_TIMES_H_"
},
{
"path": "src/event/modules/ngx_devpoll_module.c",
"chars": 14506,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n#inclu"
},
{
"path": "src/event/modules/ngx_epoll_module.c",
"chars": 25479,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n#inclu"
},
{
"path": "src/event/modules/ngx_eventport_module.c",
"chars": 16908,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n#inclu"
},
{
"path": "src/event/modules/ngx_iocp_module.c",
"chars": 9281,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n#inclu"
},
{
"path": "src/event/modules/ngx_iocp_module.h",
"chars": 330,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_IOCP_MODULE_H_INCLUDED_\n#define _NGX_IO"
},
{
"path": "src/event/modules/ngx_kqueue_module.c",
"chars": 18163,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n#inclu"
},
{
"path": "src/event/modules/ngx_poll_module.c",
"chars": 11031,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n#inclu"
},
{
"path": "src/event/modules/ngx_select_module.c",
"chars": 10886,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n#inclu"
},
{
"path": "src/event/modules/ngx_win32_poll_module.c",
"chars": 11652,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Maxim Dounin\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h"
},
{
"path": "src/event/modules/ngx_win32_select_module.c",
"chars": 10863,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n#inclu"
},
{
"path": "src/event/ngx_event.c",
"chars": 33779,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n#inclu"
},
{
"path": "src/event/ngx_event.h",
"chars": 12853,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_EVENT_H_INCLUDED_\n#define _NGX_EVENT_H_"
},
{
"path": "src/event/ngx_event_accept.c",
"chars": 12818,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n#inclu"
},
{
"path": "src/event/ngx_event_acceptex.c",
"chars": 5844,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n#inclu"
},
{
"path": "src/event/ngx_event_connect.c",
"chars": 10400,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n#inclu"
},
{
"path": "src/event/ngx_event_connect.h",
"chars": 2221,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_EVENT_CONNECT_H_INCLUDED_\n#define _NGX_"
},
{
"path": "src/event/ngx_event_connectex.c",
"chars": 5426,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n#inclu"
},
{
"path": "src/event/ngx_event_openssl.c",
"chars": 137899,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n#inclu"
},
{
"path": "src/event/ngx_event_openssl.h",
"chars": 11463,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_EVENT_OPENSSL_H_INCLUDED_\n#define _NGX_"
},
{
"path": "src/event/ngx_event_openssl_stapling.c",
"chars": 67760,
"preview": "\n/*\n * Copyright (C) Maxim Dounin\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n#incl"
},
{
"path": "src/event/ngx_event_pipe.c",
"chars": 28280,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n#inclu"
},
{
"path": "src/event/ngx_event_pipe.h",
"chars": 2906,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_EVENT_PIPE_H_INCLUDED_\n#define _NGX_EVE"
},
{
"path": "src/event/ngx_event_posted.c",
"chars": 1256,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n#inclu"
},
{
"path": "src/event/ngx_event_posted.h",
"chars": 1939,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_EVENT_POSTED_H_INCLUDED_\n#define _NGX_E"
},
{
"path": "src/event/ngx_event_timer.c",
"chars": 2665,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#include <ngx_config.h>\n#include <ngx_core.h>\n#inclu"
},
{
"path": "src/event/ngx_event_timer.h",
"chars": 2067,
"preview": "\n/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc.\n */\n\n\n#ifndef _NGX_EVENT_TIMER_H_INCLUDED_\n#define _NGX_EV"
}
]
// ... and 305 more files (download for full content)
About this extraction
This page contains the full source code of the VKCOM/nginx-quic GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 505 files (6.9 MB), approximately 1.8M tokens, and a symbol index with 3508 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.