Kentaro Hayashi
null+****@clear*****
Tue Nov 22 16:34:42 JST 2016
Kentaro Hayashi 2016-11-22 16:34:42 +0900 (Tue, 22 Nov 2016) New Revision: e620e3bbfcdf749d1a99cce39a80a7e0ea14c733 https://github.com/groonga/groonga/commit/e620e3bbfcdf749d1a99cce39a80a7e0ea14c733 Message: nginx: update to latest release % ./update_nginx.sh 1.11.6 Modified files: nginx_version Renamed files: vendor/nginx-1.11.6/auto/cc/acc (from vendor/nginx-1.11.5/auto/cc/acc) vendor/nginx-1.11.6/auto/cc/bcc (from vendor/nginx-1.11.5/auto/cc/bcc) vendor/nginx-1.11.6/auto/cc/ccc (from vendor/nginx-1.11.5/auto/cc/ccc) vendor/nginx-1.11.6/auto/cc/clang (from vendor/nginx-1.11.5/auto/cc/clang) vendor/nginx-1.11.6/auto/cc/conf (from vendor/nginx-1.11.5/auto/cc/conf) vendor/nginx-1.11.6/auto/cc/gcc (from vendor/nginx-1.11.5/auto/cc/gcc) vendor/nginx-1.11.6/auto/cc/icc (from vendor/nginx-1.11.5/auto/cc/icc) vendor/nginx-1.11.6/auto/cc/msvc (from vendor/nginx-1.11.5/auto/cc/msvc) vendor/nginx-1.11.6/auto/cc/name (from vendor/nginx-1.11.5/auto/cc/name) vendor/nginx-1.11.6/auto/cc/owc (from vendor/nginx-1.11.5/auto/cc/owc) vendor/nginx-1.11.6/auto/cc/sunc (from vendor/nginx-1.11.5/auto/cc/sunc) vendor/nginx-1.11.6/auto/configure (from vendor/nginx-1.11.5/auto/configure) vendor/nginx-1.11.6/auto/define (from vendor/nginx-1.11.5/auto/define) vendor/nginx-1.11.6/auto/endianness (from vendor/nginx-1.11.5/auto/endianness) vendor/nginx-1.11.6/auto/feature (from vendor/nginx-1.11.5/auto/feature) vendor/nginx-1.11.6/auto/have (from vendor/nginx-1.11.5/auto/have) vendor/nginx-1.11.6/auto/have_headers (from vendor/nginx-1.11.5/auto/have_headers) vendor/nginx-1.11.6/auto/headers (from vendor/nginx-1.11.5/auto/headers) vendor/nginx-1.11.6/auto/include (from vendor/nginx-1.11.5/auto/include) vendor/nginx-1.11.6/auto/init (from vendor/nginx-1.11.5/auto/init) vendor/nginx-1.11.6/auto/install (from vendor/nginx-1.11.5/auto/install) vendor/nginx-1.11.6/auto/lib/conf (from vendor/nginx-1.11.5/auto/lib/conf) vendor/nginx-1.11.6/auto/lib/geoip/conf (from vendor/nginx-1.11.5/auto/lib/geoip/conf) vendor/nginx-1.11.6/auto/lib/google-perftools/conf (from vendor/nginx-1.11.5/auto/lib/google-perftools/conf) vendor/nginx-1.11.6/auto/lib/libatomic/conf (from vendor/nginx-1.11.5/auto/lib/libatomic/conf) vendor/nginx-1.11.6/auto/lib/libatomic/make (from vendor/nginx-1.11.5/auto/lib/libatomic/make) vendor/nginx-1.11.6/auto/lib/libgd/conf (from vendor/nginx-1.11.5/auto/lib/libgd/conf) vendor/nginx-1.11.6/auto/lib/libxslt/conf (from vendor/nginx-1.11.5/auto/lib/libxslt/conf) vendor/nginx-1.11.6/auto/lib/make (from vendor/nginx-1.11.5/auto/lib/make) vendor/nginx-1.11.6/auto/lib/openssl/conf (from vendor/nginx-1.11.5/auto/lib/openssl/conf) vendor/nginx-1.11.6/auto/lib/openssl/make (from vendor/nginx-1.11.5/auto/lib/openssl/make) vendor/nginx-1.11.6/auto/lib/openssl/makefile.bcc (from vendor/nginx-1.11.5/auto/lib/openssl/makefile.bcc) vendor/nginx-1.11.6/auto/lib/openssl/makefile.msvc (from vendor/nginx-1.11.5/auto/lib/openssl/makefile.msvc) vendor/nginx-1.11.6/auto/lib/pcre/conf (from vendor/nginx-1.11.5/auto/lib/pcre/conf) vendor/nginx-1.11.6/auto/lib/pcre/make (from vendor/nginx-1.11.5/auto/lib/pcre/make) vendor/nginx-1.11.6/auto/lib/pcre/makefile.bcc (from vendor/nginx-1.11.5/auto/lib/pcre/makefile.bcc) vendor/nginx-1.11.6/auto/lib/pcre/makefile.msvc (from vendor/nginx-1.11.5/auto/lib/pcre/makefile.msvc) vendor/nginx-1.11.6/auto/lib/pcre/makefile.owc (from vendor/nginx-1.11.5/auto/lib/pcre/makefile.owc) vendor/nginx-1.11.6/auto/lib/perl/conf (from vendor/nginx-1.11.5/auto/lib/perl/conf) vendor/nginx-1.11.6/auto/lib/perl/make (from vendor/nginx-1.11.5/auto/lib/perl/make) vendor/nginx-1.11.6/auto/lib/zlib/conf (from vendor/nginx-1.11.5/auto/lib/zlib/conf) vendor/nginx-1.11.6/auto/lib/zlib/make (from vendor/nginx-1.11.5/auto/lib/zlib/make) vendor/nginx-1.11.6/auto/lib/zlib/makefile.bcc (from vendor/nginx-1.11.5/auto/lib/zlib/makefile.bcc) vendor/nginx-1.11.6/auto/lib/zlib/makefile.msvc (from vendor/nginx-1.11.5/auto/lib/zlib/makefile.msvc) vendor/nginx-1.11.6/auto/lib/zlib/makefile.owc (from vendor/nginx-1.11.5/auto/lib/zlib/makefile.owc) vendor/nginx-1.11.6/auto/make (from vendor/nginx-1.11.5/auto/make) vendor/nginx-1.11.6/auto/module (from vendor/nginx-1.11.5/auto/module) vendor/nginx-1.11.6/auto/modules (from vendor/nginx-1.11.5/auto/modules) vendor/nginx-1.11.6/auto/nohave (from vendor/nginx-1.11.5/auto/nohave) vendor/nginx-1.11.6/auto/options (from vendor/nginx-1.11.5/auto/options) vendor/nginx-1.11.6/auto/os/conf (from vendor/nginx-1.11.5/auto/os/conf) vendor/nginx-1.11.6/auto/os/darwin (from vendor/nginx-1.11.5/auto/os/darwin) vendor/nginx-1.11.6/auto/os/freebsd (from vendor/nginx-1.11.5/auto/os/freebsd) vendor/nginx-1.11.6/auto/os/linux (from vendor/nginx-1.11.5/auto/os/linux) vendor/nginx-1.11.6/auto/os/solaris (from vendor/nginx-1.11.5/auto/os/solaris) vendor/nginx-1.11.6/auto/os/win32 (from vendor/nginx-1.11.5/auto/os/win32) vendor/nginx-1.11.6/auto/sources (from vendor/nginx-1.11.5/auto/sources) vendor/nginx-1.11.6/auto/stubs (from vendor/nginx-1.11.5/auto/stubs) vendor/nginx-1.11.6/auto/summary (from vendor/nginx-1.11.5/auto/summary) vendor/nginx-1.11.6/auto/threads (from vendor/nginx-1.11.5/auto/threads) vendor/nginx-1.11.6/auto/types/sizeof (from vendor/nginx-1.11.5/auto/types/sizeof) vendor/nginx-1.11.6/auto/types/typedef (from vendor/nginx-1.11.5/auto/types/typedef) vendor/nginx-1.11.6/auto/types/uintptr_t (from vendor/nginx-1.11.5/auto/types/uintptr_t) vendor/nginx-1.11.6/auto/types/value (from vendor/nginx-1.11.5/auto/types/value) vendor/nginx-1.11.6/auto/unix (from vendor/nginx-1.11.5/auto/unix) vendor/nginx-1.11.6/conf/fastcgi.conf (from vendor/nginx-1.11.5/conf/fastcgi.conf) vendor/nginx-1.11.6/conf/fastcgi_params (from vendor/nginx-1.11.5/conf/fastcgi_params) vendor/nginx-1.11.6/conf/koi-utf (from vendor/nginx-1.11.5/conf/koi-utf) vendor/nginx-1.11.6/conf/koi-win (from vendor/nginx-1.11.5/conf/koi-win) vendor/nginx-1.11.6/conf/mime.types (from vendor/nginx-1.11.5/conf/mime.types) vendor/nginx-1.11.6/conf/nginx.conf (from vendor/nginx-1.11.5/conf/nginx.conf) vendor/nginx-1.11.6/conf/scgi_params (from vendor/nginx-1.11.5/conf/scgi_params) vendor/nginx-1.11.6/conf/uwsgi_params (from vendor/nginx-1.11.5/conf/uwsgi_params) vendor/nginx-1.11.6/conf/win-utf (from vendor/nginx-1.11.5/conf/win-utf) vendor/nginx-1.11.6/contrib/README (from vendor/nginx-1.11.5/contrib/README) vendor/nginx-1.11.6/contrib/geo2nginx.pl (from vendor/nginx-1.11.5/contrib/geo2nginx.pl) vendor/nginx-1.11.6/contrib/unicode2nginx/koi-utf (from vendor/nginx-1.11.5/contrib/unicode2nginx/koi-utf) vendor/nginx-1.11.6/contrib/unicode2nginx/unicode-to-nginx.pl (from vendor/nginx-1.11.5/contrib/unicode2nginx/unicode-to-nginx.pl) vendor/nginx-1.11.6/contrib/unicode2nginx/win-utf (from vendor/nginx-1.11.5/contrib/unicode2nginx/win-utf) vendor/nginx-1.11.6/contrib/vim/ftdetect/nginx.vim (from vendor/nginx-1.11.5/contrib/vim/ftdetect/nginx.vim) vendor/nginx-1.11.6/contrib/vim/indent/nginx.vim (from vendor/nginx-1.11.5/contrib/vim/indent/nginx.vim) vendor/nginx-1.11.6/contrib/vim/syntax/nginx.vim (from vendor/nginx-1.11.5/contrib/vim/syntax/nginx.vim) vendor/nginx-1.11.6/docs/GNUmakefile (from vendor/nginx-1.11.5/docs/GNUmakefile) vendor/nginx-1.11.6/docs/dtd/change_log_conf.dtd (from vendor/nginx-1.11.5/docs/dtd/change_log_conf.dtd) vendor/nginx-1.11.6/docs/dtd/changes.dtd (from vendor/nginx-1.11.5/docs/dtd/changes.dtd) vendor/nginx-1.11.6/docs/html/50x.html (from vendor/nginx-1.11.5/docs/html/50x.html) vendor/nginx-1.11.6/docs/html/index.html (from vendor/nginx-1.11.5/docs/html/index.html) vendor/nginx-1.11.6/docs/man/nginx.8 (from vendor/nginx-1.11.5/docs/man/nginx.8) vendor/nginx-1.11.6/docs/text/LICENSE (from vendor/nginx-1.11.5/docs/text/LICENSE) vendor/nginx-1.11.6/docs/text/README (from vendor/nginx-1.11.5/docs/text/README) vendor/nginx-1.11.6/docs/xml/change_log_conf.xml (from vendor/nginx-1.11.5/docs/xml/change_log_conf.xml) vendor/nginx-1.11.6/docs/xml/nginx/changes.xml (from vendor/nginx-1.11.5/docs/xml/nginx/changes.xml) vendor/nginx-1.11.6/docs/xsls/changes.xsls (from vendor/nginx-1.11.5/docs/xsls/changes.xsls) vendor/nginx-1.11.6/docs/xslt/changes.xslt (from vendor/nginx-1.11.5/docs/xslt/changes.xslt) vendor/nginx-1.11.6/misc/GNUmakefile (from vendor/nginx-1.11.5/misc/GNUmakefile) vendor/nginx-1.11.6/misc/README (from vendor/nginx-1.11.5/misc/README) vendor/nginx-1.11.6/src/core/nginx.c (from vendor/nginx-1.11.5/src/core/nginx.c) vendor/nginx-1.11.6/src/core/nginx.h (from vendor/nginx-1.11.5/src/core/nginx.h) vendor/nginx-1.11.6/src/core/ngx_array.c (from vendor/nginx-1.11.5/src/core/ngx_array.c) vendor/nginx-1.11.6/src/core/ngx_array.h (from vendor/nginx-1.11.5/src/core/ngx_array.h) vendor/nginx-1.11.6/src/core/ngx_buf.c (from vendor/nginx-1.11.5/src/core/ngx_buf.c) vendor/nginx-1.11.6/src/core/ngx_buf.h (from vendor/nginx-1.11.5/src/core/ngx_buf.h) vendor/nginx-1.11.6/src/core/ngx_conf_file.c (from vendor/nginx-1.11.5/src/core/ngx_conf_file.c) vendor/nginx-1.11.6/src/core/ngx_conf_file.h (from vendor/nginx-1.11.5/src/core/ngx_conf_file.h) vendor/nginx-1.11.6/src/core/ngx_config.h (from vendor/nginx-1.11.5/src/core/ngx_config.h) vendor/nginx-1.11.6/src/core/ngx_connection.c (from vendor/nginx-1.11.5/src/core/ngx_connection.c) vendor/nginx-1.11.6/src/core/ngx_connection.h (from vendor/nginx-1.11.5/src/core/ngx_connection.h) vendor/nginx-1.11.6/src/core/ngx_core.h (from vendor/nginx-1.11.5/src/core/ngx_core.h) vendor/nginx-1.11.6/src/core/ngx_cpuinfo.c (from vendor/nginx-1.11.5/src/core/ngx_cpuinfo.c) vendor/nginx-1.11.6/src/core/ngx_crc.h (from vendor/nginx-1.11.5/src/core/ngx_crc.h) vendor/nginx-1.11.6/src/core/ngx_crc32.c (from vendor/nginx-1.11.5/src/core/ngx_crc32.c) vendor/nginx-1.11.6/src/core/ngx_crc32.h (from vendor/nginx-1.11.5/src/core/ngx_crc32.h) vendor/nginx-1.11.6/src/core/ngx_crypt.c (from vendor/nginx-1.11.5/src/core/ngx_crypt.c) vendor/nginx-1.11.6/src/core/ngx_crypt.h (from vendor/nginx-1.11.5/src/core/ngx_crypt.h) vendor/nginx-1.11.6/src/core/ngx_cycle.c (from vendor/nginx-1.11.5/src/core/ngx_cycle.c) vendor/nginx-1.11.6/src/core/ngx_cycle.h (from vendor/nginx-1.11.5/src/core/ngx_cycle.h) vendor/nginx-1.11.6/src/core/ngx_file.c (from vendor/nginx-1.11.5/src/core/ngx_file.c) vendor/nginx-1.11.6/src/core/ngx_file.h (from vendor/nginx-1.11.5/src/core/ngx_file.h) vendor/nginx-1.11.6/src/core/ngx_hash.c (from vendor/nginx-1.11.5/src/core/ngx_hash.c) vendor/nginx-1.11.6/src/core/ngx_hash.h (from vendor/nginx-1.11.5/src/core/ngx_hash.h) vendor/nginx-1.11.6/src/core/ngx_inet.c (from vendor/nginx-1.11.5/src/core/ngx_inet.c) vendor/nginx-1.11.6/src/core/ngx_inet.h (from vendor/nginx-1.11.5/src/core/ngx_inet.h) vendor/nginx-1.11.6/src/core/ngx_list.c (from vendor/nginx-1.11.5/src/core/ngx_list.c) vendor/nginx-1.11.6/src/core/ngx_list.h (from vendor/nginx-1.11.5/src/core/ngx_list.h) vendor/nginx-1.11.6/src/core/ngx_log.c (from vendor/nginx-1.11.5/src/core/ngx_log.c) vendor/nginx-1.11.6/src/core/ngx_log.h (from vendor/nginx-1.11.5/src/core/ngx_log.h) vendor/nginx-1.11.6/src/core/ngx_md5.c (from vendor/nginx-1.11.5/src/core/ngx_md5.c) vendor/nginx-1.11.6/src/core/ngx_md5.h (from vendor/nginx-1.11.5/src/core/ngx_md5.h) vendor/nginx-1.11.6/src/core/ngx_module.c (from vendor/nginx-1.11.5/src/core/ngx_module.c) vendor/nginx-1.11.6/src/core/ngx_module.h (from vendor/nginx-1.11.5/src/core/ngx_module.h) vendor/nginx-1.11.6/src/core/ngx_murmurhash.c (from vendor/nginx-1.11.5/src/core/ngx_murmurhash.c) vendor/nginx-1.11.6/src/core/ngx_murmurhash.h (from vendor/nginx-1.11.5/src/core/ngx_murmurhash.h) vendor/nginx-1.11.6/src/core/ngx_open_file_cache.c (from vendor/nginx-1.11.5/src/core/ngx_open_file_cache.c) vendor/nginx-1.11.6/src/core/ngx_open_file_cache.h (from vendor/nginx-1.11.5/src/core/ngx_open_file_cache.h) vendor/nginx-1.11.6/src/core/ngx_output_chain.c (from vendor/nginx-1.11.5/src/core/ngx_output_chain.c) vendor/nginx-1.11.6/src/core/ngx_palloc.c (from vendor/nginx-1.11.5/src/core/ngx_palloc.c) vendor/nginx-1.11.6/src/core/ngx_palloc.h (from vendor/nginx-1.11.5/src/core/ngx_palloc.h) vendor/nginx-1.11.6/src/core/ngx_parse.c (from vendor/nginx-1.11.5/src/core/ngx_parse.c) vendor/nginx-1.11.6/src/core/ngx_parse.h (from vendor/nginx-1.11.5/src/core/ngx_parse.h) vendor/nginx-1.11.6/src/core/ngx_parse_time.c (from vendor/nginx-1.11.5/src/core/ngx_parse_time.c) vendor/nginx-1.11.6/src/core/ngx_parse_time.h (from vendor/nginx-1.11.5/src/core/ngx_parse_time.h) vendor/nginx-1.11.6/src/core/ngx_proxy_protocol.c (from vendor/nginx-1.11.5/src/core/ngx_proxy_protocol.c) vendor/nginx-1.11.6/src/core/ngx_proxy_protocol.h (from vendor/nginx-1.11.5/src/core/ngx_proxy_protocol.h) vendor/nginx-1.11.6/src/core/ngx_queue.c (from vendor/nginx-1.11.5/src/core/ngx_queue.c) vendor/nginx-1.11.6/src/core/ngx_queue.h (from vendor/nginx-1.11.5/src/core/ngx_queue.h) vendor/nginx-1.11.6/src/core/ngx_radix_tree.c (from vendor/nginx-1.11.5/src/core/ngx_radix_tree.c) vendor/nginx-1.11.6/src/core/ngx_radix_tree.h (from vendor/nginx-1.11.5/src/core/ngx_radix_tree.h) vendor/nginx-1.11.6/src/core/ngx_rbtree.c (from vendor/nginx-1.11.5/src/core/ngx_rbtree.c) vendor/nginx-1.11.6/src/core/ngx_rbtree.h (from vendor/nginx-1.11.5/src/core/ngx_rbtree.h) vendor/nginx-1.11.6/src/core/ngx_regex.c (from vendor/nginx-1.11.5/src/core/ngx_regex.c) vendor/nginx-1.11.6/src/core/ngx_regex.h (from vendor/nginx-1.11.5/src/core/ngx_regex.h) vendor/nginx-1.11.6/src/core/ngx_resolver.c (from vendor/nginx-1.11.5/src/core/ngx_resolver.c) vendor/nginx-1.11.6/src/core/ngx_resolver.h (from vendor/nginx-1.11.5/src/core/ngx_resolver.h) vendor/nginx-1.11.6/src/core/ngx_rwlock.c (from vendor/nginx-1.11.5/src/core/ngx_rwlock.c) vendor/nginx-1.11.6/src/core/ngx_rwlock.h (from vendor/nginx-1.11.5/src/core/ngx_rwlock.h) vendor/nginx-1.11.6/src/core/ngx_sha1.c (from vendor/nginx-1.11.5/src/core/ngx_sha1.c) vendor/nginx-1.11.6/src/core/ngx_sha1.h (from vendor/nginx-1.11.5/src/core/ngx_sha1.h) vendor/nginx-1.11.6/src/core/ngx_shmtx.c (from vendor/nginx-1.11.5/src/core/ngx_shmtx.c) vendor/nginx-1.11.6/src/core/ngx_shmtx.h (from vendor/nginx-1.11.5/src/core/ngx_shmtx.h) vendor/nginx-1.11.6/src/core/ngx_slab.c (from vendor/nginx-1.11.5/src/core/ngx_slab.c) vendor/nginx-1.11.6/src/core/ngx_slab.h (from vendor/nginx-1.11.5/src/core/ngx_slab.h) vendor/nginx-1.11.6/src/core/ngx_spinlock.c (from vendor/nginx-1.11.5/src/core/ngx_spinlock.c) vendor/nginx-1.11.6/src/core/ngx_string.c (from vendor/nginx-1.11.5/src/core/ngx_string.c) vendor/nginx-1.11.6/src/core/ngx_string.h (from vendor/nginx-1.11.5/src/core/ngx_string.h) vendor/nginx-1.11.6/src/core/ngx_syslog.c (from vendor/nginx-1.11.5/src/core/ngx_syslog.c) vendor/nginx-1.11.6/src/core/ngx_syslog.h (from vendor/nginx-1.11.5/src/core/ngx_syslog.h) vendor/nginx-1.11.6/src/core/ngx_thread_pool.c (from vendor/nginx-1.11.5/src/core/ngx_thread_pool.c) vendor/nginx-1.11.6/src/core/ngx_thread_pool.h (from vendor/nginx-1.11.5/src/core/ngx_thread_pool.h) vendor/nginx-1.11.6/src/core/ngx_times.c (from vendor/nginx-1.11.5/src/core/ngx_times.c) vendor/nginx-1.11.6/src/core/ngx_times.h (from vendor/nginx-1.11.5/src/core/ngx_times.h) vendor/nginx-1.11.6/src/event/modules/ngx_devpoll_module.c (from vendor/nginx-1.11.5/src/event/modules/ngx_devpoll_module.c) vendor/nginx-1.11.6/src/event/modules/ngx_epoll_module.c (from vendor/nginx-1.11.5/src/event/modules/ngx_epoll_module.c) vendor/nginx-1.11.6/src/event/modules/ngx_eventport_module.c (from vendor/nginx-1.11.5/src/event/modules/ngx_eventport_module.c) vendor/nginx-1.11.6/src/event/modules/ngx_iocp_module.c (from vendor/nginx-1.11.5/src/event/modules/ngx_iocp_module.c) vendor/nginx-1.11.6/src/event/modules/ngx_iocp_module.h (from vendor/nginx-1.11.5/src/event/modules/ngx_iocp_module.h) vendor/nginx-1.11.6/src/event/modules/ngx_kqueue_module.c (from vendor/nginx-1.11.5/src/event/modules/ngx_kqueue_module.c) vendor/nginx-1.11.6/src/event/modules/ngx_poll_module.c (from vendor/nginx-1.11.5/src/event/modules/ngx_poll_module.c) vendor/nginx-1.11.6/src/event/modules/ngx_select_module.c (from vendor/nginx-1.11.5/src/event/modules/ngx_select_module.c) vendor/nginx-1.11.6/src/event/modules/ngx_win32_select_module.c (from vendor/nginx-1.11.5/src/event/modules/ngx_win32_select_module.c) vendor/nginx-1.11.6/src/event/ngx_event.c (from vendor/nginx-1.11.5/src/event/ngx_event.c) vendor/nginx-1.11.6/src/event/ngx_event.h (from vendor/nginx-1.11.5/src/event/ngx_event.h) vendor/nginx-1.11.6/src/event/ngx_event_accept.c (from vendor/nginx-1.11.5/src/event/ngx_event_accept.c) vendor/nginx-1.11.6/src/event/ngx_event_acceptex.c (from vendor/nginx-1.11.5/src/event/ngx_event_acceptex.c) vendor/nginx-1.11.6/src/event/ngx_event_connect.c (from vendor/nginx-1.11.5/src/event/ngx_event_connect.c) vendor/nginx-1.11.6/src/event/ngx_event_connect.h (from vendor/nginx-1.11.5/src/event/ngx_event_connect.h) vendor/nginx-1.11.6/src/event/ngx_event_connectex.c (from vendor/nginx-1.11.5/src/event/ngx_event_connectex.c) vendor/nginx-1.11.6/src/event/ngx_event_openssl.c (from vendor/nginx-1.11.5/src/event/ngx_event_openssl.c) vendor/nginx-1.11.6/src/event/ngx_event_openssl.h (from vendor/nginx-1.11.5/src/event/ngx_event_openssl.h) vendor/nginx-1.11.6/src/event/ngx_event_openssl_stapling.c (from vendor/nginx-1.11.5/src/event/ngx_event_openssl_stapling.c) vendor/nginx-1.11.6/src/event/ngx_event_pipe.c (from vendor/nginx-1.11.5/src/event/ngx_event_pipe.c) vendor/nginx-1.11.6/src/event/ngx_event_pipe.h (from vendor/nginx-1.11.5/src/event/ngx_event_pipe.h) vendor/nginx-1.11.6/src/event/ngx_event_posted.c (from vendor/nginx-1.11.5/src/event/ngx_event_posted.c) vendor/nginx-1.11.6/src/event/ngx_event_posted.h (from vendor/nginx-1.11.5/src/event/ngx_event_posted.h) vendor/nginx-1.11.6/src/event/ngx_event_timer.c (from vendor/nginx-1.11.5/src/event/ngx_event_timer.c) vendor/nginx-1.11.6/src/event/ngx_event_timer.h (from vendor/nginx-1.11.5/src/event/ngx_event_timer.h) vendor/nginx-1.11.6/src/http/modules/ngx_http_access_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_access_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_addition_filter_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_addition_filter_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_auth_basic_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_auth_basic_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_auth_request_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_auth_request_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_autoindex_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_autoindex_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_browser_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_browser_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_charset_filter_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_charset_filter_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_chunked_filter_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_chunked_filter_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_dav_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_dav_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_degradation_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_degradation_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_empty_gif_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_empty_gif_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_fastcgi_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_fastcgi_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_flv_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_flv_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_geo_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_geo_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_geoip_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_geoip_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_gunzip_filter_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_gunzip_filter_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_gzip_filter_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_gzip_filter_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_gzip_static_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_gzip_static_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_headers_filter_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_headers_filter_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_image_filter_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_image_filter_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_index_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_index_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_limit_conn_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_limit_conn_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_limit_req_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_limit_req_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_log_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_log_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_map_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_map_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_memcached_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_memcached_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_mp4_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_mp4_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_not_modified_filter_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_not_modified_filter_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_proxy_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_proxy_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_random_index_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_random_index_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_range_filter_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_range_filter_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_realip_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_realip_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_referer_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_referer_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_rewrite_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_rewrite_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_scgi_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_scgi_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_secure_link_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_secure_link_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_slice_filter_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_slice_filter_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_split_clients_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_split_clients_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_ssi_filter_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_ssi_filter_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_ssi_filter_module.h (from vendor/nginx-1.11.5/src/http/modules/ngx_http_ssi_filter_module.h) vendor/nginx-1.11.6/src/http/modules/ngx_http_ssl_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_ssl_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_ssl_module.h (from vendor/nginx-1.11.5/src/http/modules/ngx_http_ssl_module.h) vendor/nginx-1.11.6/src/http/modules/ngx_http_static_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_static_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_stub_status_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_stub_status_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_sub_filter_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_sub_filter_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_upstream_hash_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_upstream_hash_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_upstream_ip_hash_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_upstream_ip_hash_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_upstream_keepalive_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_upstream_keepalive_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_upstream_least_conn_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_upstream_least_conn_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_upstream_zone_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_upstream_zone_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_userid_filter_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_userid_filter_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_uwsgi_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_uwsgi_module.c) vendor/nginx-1.11.6/src/http/modules/ngx_http_xslt_filter_module.c (from vendor/nginx-1.11.5/src/http/modules/ngx_http_xslt_filter_module.c) vendor/nginx-1.11.6/src/http/modules/perl/Makefile.PL (from vendor/nginx-1.11.5/src/http/modules/perl/Makefile.PL) vendor/nginx-1.11.6/src/http/modules/perl/nginx.pm (from vendor/nginx-1.11.5/src/http/modules/perl/nginx.pm) vendor/nginx-1.11.6/src/http/modules/perl/nginx.xs (from vendor/nginx-1.11.5/src/http/modules/perl/nginx.xs) vendor/nginx-1.11.6/src/http/modules/perl/ngx_http_perl_module.c (from vendor/nginx-1.11.5/src/http/modules/perl/ngx_http_perl_module.c) vendor/nginx-1.11.6/src/http/modules/perl/ngx_http_perl_module.h (from vendor/nginx-1.11.5/src/http/modules/perl/ngx_http_perl_module.h) vendor/nginx-1.11.6/src/http/modules/perl/typemap (from vendor/nginx-1.11.5/src/http/modules/perl/typemap) vendor/nginx-1.11.6/src/http/ngx_http.c (from vendor/nginx-1.11.5/src/http/ngx_http.c) vendor/nginx-1.11.6/src/http/ngx_http.h (from vendor/nginx-1.11.5/src/http/ngx_http.h) vendor/nginx-1.11.6/src/http/ngx_http_cache.h (from vendor/nginx-1.11.5/src/http/ngx_http_cache.h) vendor/nginx-1.11.6/src/http/ngx_http_config.h (from vendor/nginx-1.11.5/src/http/ngx_http_config.h) vendor/nginx-1.11.6/src/http/ngx_http_copy_filter_module.c (from vendor/nginx-1.11.5/src/http/ngx_http_copy_filter_module.c) vendor/nginx-1.11.6/src/http/ngx_http_core_module.c (from vendor/nginx-1.11.5/src/http/ngx_http_core_module.c) vendor/nginx-1.11.6/src/http/ngx_http_core_module.h (from vendor/nginx-1.11.5/src/http/ngx_http_core_module.h) vendor/nginx-1.11.6/src/http/ngx_http_file_cache.c (from vendor/nginx-1.11.5/src/http/ngx_http_file_cache.c) vendor/nginx-1.11.6/src/http/ngx_http_header_filter_module.c (from vendor/nginx-1.11.5/src/http/ngx_http_header_filter_module.c) vendor/nginx-1.11.6/src/http/ngx_http_parse.c (from vendor/nginx-1.11.5/src/http/ngx_http_parse.c) vendor/nginx-1.11.6/src/http/ngx_http_postpone_filter_module.c (from vendor/nginx-1.11.5/src/http/ngx_http_postpone_filter_module.c) vendor/nginx-1.11.6/src/http/ngx_http_request.c (from vendor/nginx-1.11.5/src/http/ngx_http_request.c) vendor/nginx-1.11.6/src/http/ngx_http_request.h (from vendor/nginx-1.11.5/src/http/ngx_http_request.h) vendor/nginx-1.11.6/src/http/ngx_http_request_body.c (from vendor/nginx-1.11.5/src/http/ngx_http_request_body.c) vendor/nginx-1.11.6/src/http/ngx_http_script.c (from vendor/nginx-1.11.5/src/http/ngx_http_script.c) vendor/nginx-1.11.6/src/http/ngx_http_script.h (from vendor/nginx-1.11.5/src/http/ngx_http_script.h) vendor/nginx-1.11.6/src/http/ngx_http_special_response.c (from vendor/nginx-1.11.5/src/http/ngx_http_special_response.c) vendor/nginx-1.11.6/src/http/ngx_http_upstream.c (from vendor/nginx-1.11.5/src/http/ngx_http_upstream.c) vendor/nginx-1.11.6/src/http/ngx_http_upstream.h (from vendor/nginx-1.11.5/src/http/ngx_http_upstream.h) vendor/nginx-1.11.6/src/http/ngx_http_upstream_round_robin.c (from vendor/nginx-1.11.5/src/http/ngx_http_upstream_round_robin.c) vendor/nginx-1.11.6/src/http/ngx_http_upstream_round_robin.h (from vendor/nginx-1.11.5/src/http/ngx_http_upstream_round_robin.h) vendor/nginx-1.11.6/src/http/ngx_http_variables.c (from vendor/nginx-1.11.5/src/http/ngx_http_variables.c) vendor/nginx-1.11.6/src/http/ngx_http_variables.h (from vendor/nginx-1.11.5/src/http/ngx_http_variables.h) vendor/nginx-1.11.6/src/http/ngx_http_write_filter_module.c (from vendor/nginx-1.11.5/src/http/ngx_http_write_filter_module.c) vendor/nginx-1.11.6/src/http/v2/ngx_http_v2.c (from vendor/nginx-1.11.5/src/http/v2/ngx_http_v2.c) vendor/nginx-1.11.6/src/http/v2/ngx_http_v2.h (from vendor/nginx-1.11.5/src/http/v2/ngx_http_v2.h) vendor/nginx-1.11.6/src/http/v2/ngx_http_v2_filter_module.c (from vendor/nginx-1.11.5/src/http/v2/ngx_http_v2_filter_module.c) vendor/nginx-1.11.6/src/http/v2/ngx_http_v2_huff_decode.c (from vendor/nginx-1.11.5/src/http/v2/ngx_http_v2_huff_decode.c) vendor/nginx-1.11.6/src/http/v2/ngx_http_v2_huff_encode.c (from vendor/nginx-1.11.5/src/http/v2/ngx_http_v2_huff_encode.c) vendor/nginx-1.11.6/src/http/v2/ngx_http_v2_module.c (from vendor/nginx-1.11.5/src/http/v2/ngx_http_v2_module.c) vendor/nginx-1.11.6/src/http/v2/ngx_http_v2_module.h (from vendor/nginx-1.11.5/src/http/v2/ngx_http_v2_module.h) vendor/nginx-1.11.6/src/http/v2/ngx_http_v2_table.c (from vendor/nginx-1.11.5/src/http/v2/ngx_http_v2_table.c) vendor/nginx-1.11.6/src/mail/ngx_mail.c (from vendor/nginx-1.11.5/src/mail/ngx_mail.c) vendor/nginx-1.11.6/src/mail/ngx_mail.h (from vendor/nginx-1.11.5/src/mail/ngx_mail.h) vendor/nginx-1.11.6/src/mail/ngx_mail_auth_http_module.c (from vendor/nginx-1.11.5/src/mail/ngx_mail_auth_http_module.c) vendor/nginx-1.11.6/src/mail/ngx_mail_core_module.c (from vendor/nginx-1.11.5/src/mail/ngx_mail_core_module.c) vendor/nginx-1.11.6/src/mail/ngx_mail_handler.c (from vendor/nginx-1.11.5/src/mail/ngx_mail_handler.c) vendor/nginx-1.11.6/src/mail/ngx_mail_imap_handler.c (from vendor/nginx-1.11.5/src/mail/ngx_mail_imap_handler.c) vendor/nginx-1.11.6/src/mail/ngx_mail_imap_module.c (from vendor/nginx-1.11.5/src/mail/ngx_mail_imap_module.c) vendor/nginx-1.11.6/src/mail/ngx_mail_imap_module.h (from vendor/nginx-1.11.5/src/mail/ngx_mail_imap_module.h) vendor/nginx-1.11.6/src/mail/ngx_mail_parse.c (from vendor/nginx-1.11.5/src/mail/ngx_mail_parse.c) vendor/nginx-1.11.6/src/mail/ngx_mail_pop3_handler.c (from vendor/nginx-1.11.5/src/mail/ngx_mail_pop3_handler.c) vendor/nginx-1.11.6/src/mail/ngx_mail_pop3_module.c (from vendor/nginx-1.11.5/src/mail/ngx_mail_pop3_module.c) vendor/nginx-1.11.6/src/mail/ngx_mail_pop3_module.h (from vendor/nginx-1.11.5/src/mail/ngx_mail_pop3_module.h) vendor/nginx-1.11.6/src/mail/ngx_mail_proxy_module.c (from vendor/nginx-1.11.5/src/mail/ngx_mail_proxy_module.c) vendor/nginx-1.11.6/src/mail/ngx_mail_smtp_handler.c (from vendor/nginx-1.11.5/src/mail/ngx_mail_smtp_handler.c) vendor/nginx-1.11.6/src/mail/ngx_mail_smtp_module.c (from vendor/nginx-1.11.5/src/mail/ngx_mail_smtp_module.c) vendor/nginx-1.11.6/src/mail/ngx_mail_smtp_module.h (from vendor/nginx-1.11.5/src/mail/ngx_mail_smtp_module.h) vendor/nginx-1.11.6/src/mail/ngx_mail_ssl_module.c (from vendor/nginx-1.11.5/src/mail/ngx_mail_ssl_module.c) vendor/nginx-1.11.6/src/mail/ngx_mail_ssl_module.h (from vendor/nginx-1.11.5/src/mail/ngx_mail_ssl_module.h) vendor/nginx-1.11.6/src/misc/ngx_cpp_test_module.cpp (from vendor/nginx-1.11.5/src/misc/ngx_cpp_test_module.cpp) vendor/nginx-1.11.6/src/misc/ngx_google_perftools_module.c (from vendor/nginx-1.11.5/src/misc/ngx_google_perftools_module.c) vendor/nginx-1.11.6/src/os/unix/ngx_alloc.c (from vendor/nginx-1.11.5/src/os/unix/ngx_alloc.c) vendor/nginx-1.11.6/src/os/unix/ngx_alloc.h (from vendor/nginx-1.11.5/src/os/unix/ngx_alloc.h) vendor/nginx-1.11.6/src/os/unix/ngx_atomic.h (from vendor/nginx-1.11.5/src/os/unix/ngx_atomic.h) vendor/nginx-1.11.6/src/os/unix/ngx_channel.c (from vendor/nginx-1.11.5/src/os/unix/ngx_channel.c) vendor/nginx-1.11.6/src/os/unix/ngx_channel.h (from vendor/nginx-1.11.5/src/os/unix/ngx_channel.h) vendor/nginx-1.11.6/src/os/unix/ngx_daemon.c (from vendor/nginx-1.11.5/src/os/unix/ngx_daemon.c) vendor/nginx-1.11.6/src/os/unix/ngx_darwin.h (from vendor/nginx-1.11.5/src/os/unix/ngx_darwin.h) vendor/nginx-1.11.6/src/os/unix/ngx_darwin_config.h (from vendor/nginx-1.11.5/src/os/unix/ngx_darwin_config.h) vendor/nginx-1.11.6/src/os/unix/ngx_darwin_init.c (from vendor/nginx-1.11.5/src/os/unix/ngx_darwin_init.c) vendor/nginx-1.11.6/src/os/unix/ngx_darwin_sendfile_chain.c (from vendor/nginx-1.11.5/src/os/unix/ngx_darwin_sendfile_chain.c) vendor/nginx-1.11.6/src/os/unix/ngx_dlopen.c (from vendor/nginx-1.11.5/src/os/unix/ngx_dlopen.c) vendor/nginx-1.11.6/src/os/unix/ngx_dlopen.h (from vendor/nginx-1.11.5/src/os/unix/ngx_dlopen.h) vendor/nginx-1.11.6/src/os/unix/ngx_errno.c (from vendor/nginx-1.11.5/src/os/unix/ngx_errno.c) vendor/nginx-1.11.6/src/os/unix/ngx_errno.h (from vendor/nginx-1.11.5/src/os/unix/ngx_errno.h) vendor/nginx-1.11.6/src/os/unix/ngx_file_aio_read.c (from vendor/nginx-1.11.5/src/os/unix/ngx_file_aio_read.c) vendor/nginx-1.11.6/src/os/unix/ngx_files.c (from vendor/nginx-1.11.5/src/os/unix/ngx_files.c) vendor/nginx-1.11.6/src/os/unix/ngx_files.h (from vendor/nginx-1.11.5/src/os/unix/ngx_files.h) vendor/nginx-1.11.6/src/os/unix/ngx_freebsd.h (from vendor/nginx-1.11.5/src/os/unix/ngx_freebsd.h) vendor/nginx-1.11.6/src/os/unix/ngx_freebsd_config.h (from vendor/nginx-1.11.5/src/os/unix/ngx_freebsd_config.h) vendor/nginx-1.11.6/src/os/unix/ngx_freebsd_init.c (from vendor/nginx-1.11.5/src/os/unix/ngx_freebsd_init.c) vendor/nginx-1.11.6/src/os/unix/ngx_freebsd_sendfile_chain.c (from vendor/nginx-1.11.5/src/os/unix/ngx_freebsd_sendfile_chain.c) vendor/nginx-1.11.6/src/os/unix/ngx_gcc_atomic_amd64.h (from vendor/nginx-1.11.5/src/os/unix/ngx_gcc_atomic_amd64.h) vendor/nginx-1.11.6/src/os/unix/ngx_gcc_atomic_ppc.h (from vendor/nginx-1.11.5/src/os/unix/ngx_gcc_atomic_ppc.h) vendor/nginx-1.11.6/src/os/unix/ngx_gcc_atomic_sparc64.h (from vendor/nginx-1.11.5/src/os/unix/ngx_gcc_atomic_sparc64.h) vendor/nginx-1.11.6/src/os/unix/ngx_gcc_atomic_x86.h (from vendor/nginx-1.11.5/src/os/unix/ngx_gcc_atomic_x86.h) vendor/nginx-1.11.6/src/os/unix/ngx_linux.h (from vendor/nginx-1.11.5/src/os/unix/ngx_linux.h) vendor/nginx-1.11.6/src/os/unix/ngx_linux_aio_read.c (from vendor/nginx-1.11.5/src/os/unix/ngx_linux_aio_read.c) vendor/nginx-1.11.6/src/os/unix/ngx_linux_config.h (from vendor/nginx-1.11.5/src/os/unix/ngx_linux_config.h) vendor/nginx-1.11.6/src/os/unix/ngx_linux_init.c (from vendor/nginx-1.11.5/src/os/unix/ngx_linux_init.c) vendor/nginx-1.11.6/src/os/unix/ngx_linux_sendfile_chain.c (from vendor/nginx-1.11.5/src/os/unix/ngx_linux_sendfile_chain.c) vendor/nginx-1.11.6/src/os/unix/ngx_os.h (from vendor/nginx-1.11.5/src/os/unix/ngx_os.h) vendor/nginx-1.11.6/src/os/unix/ngx_posix_config.h (from vendor/nginx-1.11.5/src/os/unix/ngx_posix_config.h) vendor/nginx-1.11.6/src/os/unix/ngx_posix_init.c (from vendor/nginx-1.11.5/src/os/unix/ngx_posix_init.c) vendor/nginx-1.11.6/src/os/unix/ngx_process.c (from vendor/nginx-1.11.5/src/os/unix/ngx_process.c) vendor/nginx-1.11.6/src/os/unix/ngx_process.h (from vendor/nginx-1.11.5/src/os/unix/ngx_process.h) vendor/nginx-1.11.6/src/os/unix/ngx_process_cycle.c (from vendor/nginx-1.11.5/src/os/unix/ngx_process_cycle.c) vendor/nginx-1.11.6/src/os/unix/ngx_process_cycle.h (from vendor/nginx-1.11.5/src/os/unix/ngx_process_cycle.h) vendor/nginx-1.11.6/src/os/unix/ngx_readv_chain.c (from vendor/nginx-1.11.5/src/os/unix/ngx_readv_chain.c) vendor/nginx-1.11.6/src/os/unix/ngx_recv.c (from vendor/nginx-1.11.5/src/os/unix/ngx_recv.c) vendor/nginx-1.11.6/src/os/unix/ngx_send.c (from vendor/nginx-1.11.5/src/os/unix/ngx_send.c) vendor/nginx-1.11.6/src/os/unix/ngx_setaffinity.c (from vendor/nginx-1.11.5/src/os/unix/ngx_setaffinity.c) vendor/nginx-1.11.6/src/os/unix/ngx_setaffinity.h (from vendor/nginx-1.11.5/src/os/unix/ngx_setaffinity.h) vendor/nginx-1.11.6/src/os/unix/ngx_setproctitle.c (from vendor/nginx-1.11.5/src/os/unix/ngx_setproctitle.c) vendor/nginx-1.11.6/src/os/unix/ngx_setproctitle.h (from vendor/nginx-1.11.5/src/os/unix/ngx_setproctitle.h) vendor/nginx-1.11.6/src/os/unix/ngx_shmem.c (from vendor/nginx-1.11.5/src/os/unix/ngx_shmem.c) vendor/nginx-1.11.6/src/os/unix/ngx_shmem.h (from vendor/nginx-1.11.5/src/os/unix/ngx_shmem.h) vendor/nginx-1.11.6/src/os/unix/ngx_socket.c (from vendor/nginx-1.11.5/src/os/unix/ngx_socket.c) vendor/nginx-1.11.6/src/os/unix/ngx_socket.h (from vendor/nginx-1.11.5/src/os/unix/ngx_socket.h) vendor/nginx-1.11.6/src/os/unix/ngx_solaris.h (from vendor/nginx-1.11.5/src/os/unix/ngx_solaris.h) vendor/nginx-1.11.6/src/os/unix/ngx_solaris_config.h (from vendor/nginx-1.11.5/src/os/unix/ngx_solaris_config.h) vendor/nginx-1.11.6/src/os/unix/ngx_solaris_init.c (from vendor/nginx-1.11.5/src/os/unix/ngx_solaris_init.c) vendor/nginx-1.11.6/src/os/unix/ngx_solaris_sendfilev_chain.c (from vendor/nginx-1.11.5/src/os/unix/ngx_solaris_sendfilev_chain.c) vendor/nginx-1.11.6/src/os/unix/ngx_sunpro_amd64.il (from vendor/nginx-1.11.5/src/os/unix/ngx_sunpro_amd64.il) vendor/nginx-1.11.6/src/os/unix/ngx_sunpro_atomic_sparc64.h (from vendor/nginx-1.11.5/src/os/unix/ngx_sunpro_atomic_sparc64.h) vendor/nginx-1.11.6/src/os/unix/ngx_sunpro_sparc64.il (from vendor/nginx-1.11.5/src/os/unix/ngx_sunpro_sparc64.il) vendor/nginx-1.11.6/src/os/unix/ngx_sunpro_x86.il (from vendor/nginx-1.11.5/src/os/unix/ngx_sunpro_x86.il) vendor/nginx-1.11.6/src/os/unix/ngx_thread.h (from vendor/nginx-1.11.5/src/os/unix/ngx_thread.h) vendor/nginx-1.11.6/src/os/unix/ngx_thread_cond.c (from vendor/nginx-1.11.5/src/os/unix/ngx_thread_cond.c) vendor/nginx-1.11.6/src/os/unix/ngx_thread_id.c (from vendor/nginx-1.11.5/src/os/unix/ngx_thread_id.c) vendor/nginx-1.11.6/src/os/unix/ngx_thread_mutex.c (from vendor/nginx-1.11.5/src/os/unix/ngx_thread_mutex.c) vendor/nginx-1.11.6/src/os/unix/ngx_time.c (from vendor/nginx-1.11.5/src/os/unix/ngx_time.c) vendor/nginx-1.11.6/src/os/unix/ngx_time.h (from vendor/nginx-1.11.5/src/os/unix/ngx_time.h) vendor/nginx-1.11.6/src/os/unix/ngx_udp_recv.c (from vendor/nginx-1.11.5/src/os/unix/ngx_udp_recv.c) vendor/nginx-1.11.6/src/os/unix/ngx_udp_send.c (from vendor/nginx-1.11.5/src/os/unix/ngx_udp_send.c) vendor/nginx-1.11.6/src/os/unix/ngx_udp_sendmsg_chain.c (from vendor/nginx-1.11.5/src/os/unix/ngx_udp_sendmsg_chain.c) vendor/nginx-1.11.6/src/os/unix/ngx_user.c (from vendor/nginx-1.11.5/src/os/unix/ngx_user.c) vendor/nginx-1.11.6/src/os/unix/ngx_user.h (from vendor/nginx-1.11.5/src/os/unix/ngx_user.h) vendor/nginx-1.11.6/src/os/unix/ngx_writev_chain.c (from vendor/nginx-1.11.5/src/os/unix/ngx_writev_chain.c) vendor/nginx-1.11.6/src/os/win32/nginx.ico (from vendor/nginx-1.11.5/src/os/win32/nginx.ico) vendor/nginx-1.11.6/src/os/win32/nginx.rc (from vendor/nginx-1.11.5/src/os/win32/nginx.rc) vendor/nginx-1.11.6/src/os/win32/nginx_icon16.xpm (from vendor/nginx-1.11.5/src/os/win32/nginx_icon16.xpm) vendor/nginx-1.11.6/src/os/win32/nginx_icon32.xpm (from vendor/nginx-1.11.5/src/os/win32/nginx_icon32.xpm) vendor/nginx-1.11.6/src/os/win32/nginx_icon48.xpm (from vendor/nginx-1.11.5/src/os/win32/nginx_icon48.xpm) vendor/nginx-1.11.6/src/os/win32/ngx_alloc.c (from vendor/nginx-1.11.5/src/os/win32/ngx_alloc.c) vendor/nginx-1.11.6/src/os/win32/ngx_alloc.h (from vendor/nginx-1.11.5/src/os/win32/ngx_alloc.h) vendor/nginx-1.11.6/src/os/win32/ngx_atomic.h (from vendor/nginx-1.11.5/src/os/win32/ngx_atomic.h) vendor/nginx-1.11.6/src/os/win32/ngx_dlopen.c (from vendor/nginx-1.11.5/src/os/win32/ngx_dlopen.c) vendor/nginx-1.11.6/src/os/win32/ngx_dlopen.h (from vendor/nginx-1.11.5/src/os/win32/ngx_dlopen.h) vendor/nginx-1.11.6/src/os/win32/ngx_errno.c (from vendor/nginx-1.11.5/src/os/win32/ngx_errno.c) vendor/nginx-1.11.6/src/os/win32/ngx_errno.h (from vendor/nginx-1.11.5/src/os/win32/ngx_errno.h) vendor/nginx-1.11.6/src/os/win32/ngx_event_log.c (from vendor/nginx-1.11.5/src/os/win32/ngx_event_log.c) vendor/nginx-1.11.6/src/os/win32/ngx_files.c (from vendor/nginx-1.11.5/src/os/win32/ngx_files.c) vendor/nginx-1.11.6/src/os/win32/ngx_files.h (from vendor/nginx-1.11.5/src/os/win32/ngx_files.h) vendor/nginx-1.11.6/src/os/win32/ngx_os.h (from vendor/nginx-1.11.5/src/os/win32/ngx_os.h) vendor/nginx-1.11.6/src/os/win32/ngx_process.c (from vendor/nginx-1.11.5/src/os/win32/ngx_process.c) vendor/nginx-1.11.6/src/os/win32/ngx_process.h (from vendor/nginx-1.11.5/src/os/win32/ngx_process.h) vendor/nginx-1.11.6/src/os/win32/ngx_process_cycle.c (from vendor/nginx-1.11.5/src/os/win32/ngx_process_cycle.c) vendor/nginx-1.11.6/src/os/win32/ngx_process_cycle.h (from vendor/nginx-1.11.5/src/os/win32/ngx_process_cycle.h) vendor/nginx-1.11.6/src/os/win32/ngx_service.c (from vendor/nginx-1.11.5/src/os/win32/ngx_service.c) vendor/nginx-1.11.6/src/os/win32/ngx_shmem.c (from vendor/nginx-1.11.5/src/os/win32/ngx_shmem.c) vendor/nginx-1.11.6/src/os/win32/ngx_shmem.h (from vendor/nginx-1.11.5/src/os/win32/ngx_shmem.h) vendor/nginx-1.11.6/src/os/win32/ngx_socket.c (from vendor/nginx-1.11.5/src/os/win32/ngx_socket.c) vendor/nginx-1.11.6/src/os/win32/ngx_socket.h (from vendor/nginx-1.11.5/src/os/win32/ngx_socket.h) vendor/nginx-1.11.6/src/os/win32/ngx_stat.c (from vendor/nginx-1.11.5/src/os/win32/ngx_stat.c) vendor/nginx-1.11.6/src/os/win32/ngx_thread.c (from vendor/nginx-1.11.5/src/os/win32/ngx_thread.c) vendor/nginx-1.11.6/src/os/win32/ngx_thread.h (from vendor/nginx-1.11.5/src/os/win32/ngx_thread.h) vendor/nginx-1.11.6/src/os/win32/ngx_time.c (from vendor/nginx-1.11.5/src/os/win32/ngx_time.c) vendor/nginx-1.11.6/src/os/win32/ngx_time.h (from vendor/nginx-1.11.5/src/os/win32/ngx_time.h) vendor/nginx-1.11.6/src/os/win32/ngx_udp_wsarecv.c (from vendor/nginx-1.11.5/src/os/win32/ngx_udp_wsarecv.c) vendor/nginx-1.11.6/src/os/win32/ngx_user.c (from vendor/nginx-1.11.5/src/os/win32/ngx_user.c) vendor/nginx-1.11.6/src/os/win32/ngx_user.h (from vendor/nginx-1.11.5/src/os/win32/ngx_user.h) vendor/nginx-1.11.6/src/os/win32/ngx_win32_config.h (from vendor/nginx-1.11.5/src/os/win32/ngx_win32_config.h) vendor/nginx-1.11.6/src/os/win32/ngx_win32_init.c (from vendor/nginx-1.11.5/src/os/win32/ngx_win32_init.c) vendor/nginx-1.11.6/src/os/win32/ngx_wsarecv.c (from vendor/nginx-1.11.5/src/os/win32/ngx_wsarecv.c) vendor/nginx-1.11.6/src/os/win32/ngx_wsarecv_chain.c (from vendor/nginx-1.11.5/src/os/win32/ngx_wsarecv_chain.c) vendor/nginx-1.11.6/src/os/win32/ngx_wsasend.c (from vendor/nginx-1.11.5/src/os/win32/ngx_wsasend.c) vendor/nginx-1.11.6/src/os/win32/ngx_wsasend_chain.c (from vendor/nginx-1.11.5/src/os/win32/ngx_wsasend_chain.c) vendor/nginx-1.11.6/src/stream/ngx_stream.c (from vendor/nginx-1.11.5/src/stream/ngx_stream.c) vendor/nginx-1.11.6/src/stream/ngx_stream.h (from vendor/nginx-1.11.5/src/stream/ngx_stream.h) vendor/nginx-1.11.6/src/stream/ngx_stream_access_module.c (from vendor/nginx-1.11.5/src/stream/ngx_stream_access_module.c) vendor/nginx-1.11.6/src/stream/ngx_stream_core_module.c (from vendor/nginx-1.11.5/src/stream/ngx_stream_core_module.c) vendor/nginx-1.11.6/src/stream/ngx_stream_geo_module.c (from vendor/nginx-1.11.5/src/stream/ngx_stream_geo_module.c) vendor/nginx-1.11.6/src/stream/ngx_stream_geoip_module.c (from vendor/nginx-1.11.5/src/stream/ngx_stream_geoip_module.c) vendor/nginx-1.11.6/src/stream/ngx_stream_handler.c (from vendor/nginx-1.11.5/src/stream/ngx_stream_handler.c) vendor/nginx-1.11.6/src/stream/ngx_stream_limit_conn_module.c (from vendor/nginx-1.11.5/src/stream/ngx_stream_limit_conn_module.c) vendor/nginx-1.11.6/src/stream/ngx_stream_log_module.c (from vendor/nginx-1.11.5/src/stream/ngx_stream_log_module.c) vendor/nginx-1.11.6/src/stream/ngx_stream_map_module.c (from vendor/nginx-1.11.5/src/stream/ngx_stream_map_module.c) vendor/nginx-1.11.6/src/stream/ngx_stream_proxy_module.c (from vendor/nginx-1.11.5/src/stream/ngx_stream_proxy_module.c) vendor/nginx-1.11.6/src/stream/ngx_stream_realip_module.c (from vendor/nginx-1.11.5/src/stream/ngx_stream_realip_module.c) vendor/nginx-1.11.6/src/stream/ngx_stream_return_module.c (from vendor/nginx-1.11.5/src/stream/ngx_stream_return_module.c) vendor/nginx-1.11.6/src/stream/ngx_stream_script.c (from vendor/nginx-1.11.5/src/stream/ngx_stream_script.c) vendor/nginx-1.11.6/src/stream/ngx_stream_script.h (from vendor/nginx-1.11.5/src/stream/ngx_stream_script.h) vendor/nginx-1.11.6/src/stream/ngx_stream_split_clients_module.c (from vendor/nginx-1.11.5/src/stream/ngx_stream_split_clients_module.c) vendor/nginx-1.11.6/src/stream/ngx_stream_ssl_module.c (from vendor/nginx-1.11.5/src/stream/ngx_stream_ssl_module.c) vendor/nginx-1.11.6/src/stream/ngx_stream_ssl_module.h (from vendor/nginx-1.11.5/src/stream/ngx_stream_ssl_module.h) vendor/nginx-1.11.6/src/stream/ngx_stream_ssl_preread_module.c (from vendor/nginx-1.11.5/src/stream/ngx_stream_ssl_preread_module.c) vendor/nginx-1.11.6/src/stream/ngx_stream_upstream.c (from vendor/nginx-1.11.5/src/stream/ngx_stream_upstream.c) vendor/nginx-1.11.6/src/stream/ngx_stream_upstream.h (from vendor/nginx-1.11.5/src/stream/ngx_stream_upstream.h) vendor/nginx-1.11.6/src/stream/ngx_stream_upstream_hash_module.c (from vendor/nginx-1.11.5/src/stream/ngx_stream_upstream_hash_module.c) vendor/nginx-1.11.6/src/stream/ngx_stream_upstream_least_conn_module.c (from vendor/nginx-1.11.5/src/stream/ngx_stream_upstream_least_conn_module.c) vendor/nginx-1.11.6/src/stream/ngx_stream_upstream_round_robin.c (from vendor/nginx-1.11.5/src/stream/ngx_stream_upstream_round_robin.c) vendor/nginx-1.11.6/src/stream/ngx_stream_upstream_round_robin.h (from vendor/nginx-1.11.5/src/stream/ngx_stream_upstream_round_robin.h) vendor/nginx-1.11.6/src/stream/ngx_stream_upstream_zone_module.c (from vendor/nginx-1.11.5/src/stream/ngx_stream_upstream_zone_module.c) vendor/nginx-1.11.6/src/stream/ngx_stream_variables.c (from vendor/nginx-1.11.5/src/stream/ngx_stream_variables.c) vendor/nginx-1.11.6/src/stream/ngx_stream_variables.h (from vendor/nginx-1.11.5/src/stream/ngx_stream_variables.h) vendor/nginx-1.11.6/src/stream/ngx_stream_write_filter_module.c (from vendor/nginx-1.11.5/src/stream/ngx_stream_write_filter_module.c) Modified: nginx_version (+1 -1) =================================================================== --- nginx_version 2016-11-22 16:30:41 +0900 (e6dbb7c) +++ nginx_version 2016-11-22 16:34:42 +0900 (6b37cb7) @@ -1 +1 @@ -1.11.5 +1.11.6 Renamed: vendor/nginx-1.11.6/auto/cc/acc (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/cc/bcc (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/cc/ccc (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/cc/clang (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/cc/conf (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/cc/gcc (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/cc/icc (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/cc/msvc (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/cc/name (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/cc/owc (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/cc/sunc (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/configure (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/define (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/endianness (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/feature (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/have (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/have_headers (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/headers (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/include (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/init (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/install (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/lib/conf (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/lib/geoip/conf (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/lib/google-perftools/conf (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/lib/libatomic/conf (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/lib/libatomic/make (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/lib/libgd/conf (+5 -0) 90% =================================================================== --- vendor/nginx-1.11.5/auto/lib/libgd/conf 2016-11-22 16:30:41 +0900 (6e4e91c) +++ vendor/nginx-1.11.6/auto/lib/libgd/conf 2016-11-22 16:34:42 +0900 (87761f1) @@ -74,6 +74,11 @@ if [ $ngx_found = yes ]; then 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);" + . auto/feature + else cat << END Renamed: vendor/nginx-1.11.6/auto/lib/libxslt/conf (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/lib/make (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/lib/openssl/conf (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/lib/openssl/make (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/lib/openssl/makefile.bcc (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/lib/openssl/makefile.msvc (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/lib/pcre/conf (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/lib/pcre/make (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/lib/pcre/makefile.bcc (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/lib/pcre/makefile.msvc (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/lib/pcre/makefile.owc (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/lib/perl/conf (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/lib/perl/make (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/lib/zlib/conf (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/lib/zlib/make (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/lib/zlib/makefile.bcc (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/lib/zlib/makefile.msvc (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/lib/zlib/makefile.owc (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/make (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/module (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/modules (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/nohave (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/options (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/os/conf (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/os/darwin (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/os/freebsd (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/os/linux (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/os/solaris (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/os/win32 (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/sources (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/stubs (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/summary (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/threads (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/types/sizeof (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/types/typedef (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/types/uintptr_t (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/types/value (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/auto/unix (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/conf/fastcgi.conf (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/conf/fastcgi_params (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/conf/koi-utf (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/conf/koi-win (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/conf/mime.types (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/conf/nginx.conf (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/conf/scgi_params (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/conf/uwsgi_params (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/conf/win-utf (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/contrib/README (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/contrib/geo2nginx.pl (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/contrib/unicode2nginx/koi-utf (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/contrib/unicode2nginx/unicode-to-nginx.pl (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/contrib/unicode2nginx/win-utf (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/contrib/vim/ftdetect/nginx.vim (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/contrib/vim/indent/nginx.vim (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/contrib/vim/syntax/nginx.vim (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/docs/GNUmakefile (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/docs/dtd/change_log_conf.dtd (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/docs/dtd/changes.dtd (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/docs/html/50x.html (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/docs/html/index.html (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/docs/man/nginx.8 (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/docs/text/LICENSE (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/docs/text/README (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/docs/xml/change_log_conf.xml (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/docs/xml/nginx/changes.xml (+131 -2) 99% =================================================================== --- vendor/nginx-1.11.5/docs/xml/nginx/changes.xml 2016-11-22 16:30:41 +0900 (97ed726) +++ vendor/nginx-1.11.6/docs/xml/nginx/changes.xml 2016-11-22 16:34:42 +0900 (1376338) @@ -5,6 +5,136 @@ <change_log title="nginx"> +<changes ver="1.11.6" date="15.11.2016"> + +<change type="change"> +<para lang="ru"> +формат переменных $ssl_client_s_dn и $ssl_client_i_dn +изменён на соответствующий RFC 2253 (RFC 4514); +значения в старом формате доступны через переменные +$ssl_client_s_dn_legacy и $ssl_client_i_dn_legacy. +</para> +<para lang="en"> +format of the $ssl_client_s_dn and $ssl_client_i_dn variables +has been changed to follow RFC 2253 (RFC 4514); +values in the old format are available in +the $ssl_client_s_dn_legacy and $ssl_client_i_dn_legacy variables. +</para> +</change> + +<change type="change"> +<para lang="ru"> +при сохранении временных файлов в каталоге кэша +они теперь располагаются не в отдельном подкаталоге для временных файлов, +а в том же подкаталоге, что и соответствующие файлы в кэше. +</para> +<para lang="en"> +when storing temporary files in a cache directory +they will be stored in the same subdirectories as corresponding cache files +instead of a separate subdirectory for temporary files. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +поддержка метода аутентификации EXTERNAL +в почтовом прокси-сервере.<br/> +Спасибо Robert Norris. +</para> +<para lang="en"> +EXTERNAL authentication mechanism support +in mail proxy.<br/> +Thanks to Robert Norris. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +поддержка WebP в модуле ngx_http_image_filter_module. +</para> +<para lang="en"> +WebP support in the ngx_http_image_filter_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива proxy_method поддерживает переменные.<br/> +Спасибо Дмитрию Лазуркину. +</para> +<para lang="en"> +variables support in the "proxy_method" directive.<br/> +Thanks to Dmitry Lazurkin. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива http2_max_requests в модуле ngx_http_v2_module. +</para> +<para lang="en"> +the "http2_max_requests" directive in the ngx_http_v2_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы proxy_cache_max_range_offset, fastcgi_cache_max_range_offset, +scgi_cache_max_range_offset и uwsgi_cache_max_range_offset. +</para> +<para lang="en"> +the "proxy_cache_max_range_offset", "fastcgi_cache_max_range_offset", +"scgi_cache_max_range_offset", and "uwsgi_cache_max_range_offset" directives. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +плавное завершение старых рабочих процессов могло занимать бесконечное время +при использовании HTTP/2. +</para> +<para lang="en"> +graceful shutdown of old worker processes might require infinite time +when using HTTP/2. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_mp4_module. +</para> +<para lang="en"> +in the ngx_http_mp4_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при проксировании WebSocket-соединений и включённом кэшировании +в логах могли появляться сообщения "ignore long locked inactive cache entry". +</para> +<para lang="en"> +"ignore long locked inactive cache entry" alerts might appear in logs +when proxying WebSocket connections with caching enabled. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если во время SSL handshake с бэкендом происходил таймаут, +nginx ничего не писал в лог +и возвращал ответ с кодом 502 вместо 504. +</para> +<para lang="en"> +nginx did not write anything to log +and returned a response with code 502 instead of 504 +when a timeout occurred during an SSL handshake to a backend. +</para> +</change> + +</changes> + + <changes ver="1.11.5" date="11.10.2016"> <change type="change"> @@ -790,7 +920,6 @@ and tries to avoid cache keys zone overflows. в логах могли появляться сообщения "task already active" и "second aio post". </para> <para lang="en"> - "task already active" and "second aio post" alerts might appear in logs when using the "sendfile" and "aio" directives with subrequests. </para> @@ -18140,7 +18269,7 @@ nginx did not omit the "#fragment" part in URI. <change type="feature"> <para lang="ru"> -POP3 прокси поддерживает AUTH LOIGN PLAIN и CRAM-MD5. +POP3 прокси поддерживает AUTH LOGIN PLAIN и CRAM-MD5. </para> <para lang="en"> the POP3 proxy supports the AUTH LOGIN PLAIN and CRAM-MD5. Renamed: vendor/nginx-1.11.6/docs/xsls/changes.xsls (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/docs/xslt/changes.xslt (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/misc/GNUmakefile (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/misc/README (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/nginx.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/nginx.h (+2 -2) 85% =================================================================== --- vendor/nginx-1.11.5/src/core/nginx.h 2016-11-22 16:30:41 +0900 (1446251) +++ vendor/nginx-1.11.6/src/core/nginx.h 2016-11-22 16:34:42 +0900 (a75ef04) @@ -9,8 +9,8 @@ #define _NGINX_H_INCLUDED_ -#define nginx_version 1011005 -#define NGINX_VERSION "1.11.5" +#define nginx_version 1011006 +#define NGINX_VERSION "1.11.6" #define NGINX_VER "nginx/" NGINX_VERSION #ifdef NGX_BUILD Renamed: vendor/nginx-1.11.6/src/core/ngx_array.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_array.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_buf.c (+9 -7) 95% =================================================================== --- vendor/nginx-1.11.5/src/core/ngx_buf.c 2016-11-22 16:30:41 +0900 (00b6644) +++ vendor/nginx-1.11.6/src/core/ngx_buf.c 2016-11-22 16:34:42 +0900 (d30a0a4) @@ -186,16 +186,18 @@ ngx_chain_update_chains(ngx_pool_t *p, ngx_chain_t **free, ngx_chain_t **busy, { ngx_chain_t *cl; - if (*busy == NULL) { - *busy = *out; + if (*out) { + if (*busy == NULL) { + *busy = *out; - } else { - for (cl = *busy; cl->next; cl = cl->next) { /* void */ } + } else { + for (cl = *busy; cl->next; cl = cl->next) { /* void */ } - cl->next = *out; - } + cl->next = *out; + } - *out = NULL; + *out = NULL; + } while (*busy) { cl = *busy; Renamed: vendor/nginx-1.11.6/src/core/ngx_buf.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_conf_file.c (+59 -24) 96% =================================================================== --- vendor/nginx-1.11.5/src/core/ngx_conf_file.c 2016-11-22 16:30:41 +0900 (ea1dceb) +++ vendor/nginx-1.11.6/src/core/ngx_conf_file.c 2016-11-22 16:34:42 +0900 (ce8c602) @@ -10,6 +10,7 @@ #define NGX_CONF_BUFFER 4096 +static ngx_int_t ngx_conf_add_dump(ngx_conf_t *cf, ngx_str_t *filename); static ngx_int_t ngx_conf_handler(ngx_conf_t *cf, ngx_int_t last); static ngx_int_t ngx_conf_read_token(ngx_conf_t *cf); static void ngx_conf_flush_files(ngx_cycle_t *cycle); @@ -97,17 +98,70 @@ ngx_conf_param(ngx_conf_t *cf) } +static ngx_int_t +ngx_conf_add_dump(ngx_conf_t *cf, ngx_str_t *filename) +{ + off_t size; + u_char *p; + uint32_t hash; + ngx_buf_t *buf; + ngx_str_node_t *sn; + ngx_conf_dump_t *cd; + + hash = ngx_crc32_long(filename->data, filename->len); + + sn = ngx_str_rbtree_lookup(&cf->cycle->config_dump_rbtree, filename, hash); + + if (sn) { + cf->conf_file->dump = NULL; + return NGX_OK; + } + + p = ngx_pstrdup(cf->cycle->pool, filename); + if (p == NULL) { + return NGX_ERROR; + } + + cd = ngx_array_push(&cf->cycle->config_dump); + if (cd == NULL) { + return NGX_ERROR; + } + + size = ngx_file_size(&cf->conf_file->file.info); + + buf = ngx_create_temp_buf(cf->cycle->pool, (size_t) size); + if (buf == NULL) { + return NGX_ERROR; + } + + cd->name.data = p; + cd->name.len = filename->len; + cd->buffer = buf; + + cf->conf_file->dump = buf; + + sn = ngx_palloc(cf->temp_pool, sizeof(ngx_str_node_t)); + if (sn == NULL) { + return NGX_ERROR; + } + + sn->node.key = hash; + sn->str = cd->name; + + ngx_rbtree_insert(&cf->cycle->config_dump_rbtree, &sn->node); + + return NGX_OK; +} + + char * ngx_conf_parse(ngx_conf_t *cf, ngx_str_t *filename) { char *rv; - u_char *p; - off_t size; ngx_fd_t fd; ngx_int_t rc; - ngx_buf_t buf, *tbuf; + ngx_buf_t buf; ngx_conf_file_t *prev, conf_file; - ngx_conf_dump_t *cd; enum { parse_file = 0, parse_block, @@ -167,29 +221,10 @@ ngx_conf_parse(ngx_conf_t *cf, ngx_str_t *filename) #endif ) { - p = ngx_pstrdup(cf->cycle->pool, filename); - if (p == NULL) { - goto failed; - } - - size = ngx_file_size(&cf->conf_file->file.info); - - tbuf = ngx_create_temp_buf(cf->cycle->pool, (size_t) size); - if (tbuf == NULL) { + if (ngx_conf_add_dump(cf, filename) != NGX_OK) { goto failed; } - cd = ngx_array_push(&cf->cycle->config_dump); - if (cd == NULL) { - goto failed; - } - - cd->name.len = filename->len; - cd->name.data = p; - cd->buffer = tbuf; - - cf->conf_file->dump = tbuf; - } else { cf->conf_file->dump = NULL; } Renamed: vendor/nginx-1.11.6/src/core/ngx_conf_file.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_config.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_connection.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_connection.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_core.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_cpuinfo.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_crc.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_crc32.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_crc32.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_crypt.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_crypt.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_cycle.c (+3 -0) 99% =================================================================== --- vendor/nginx-1.11.5/src/core/ngx_cycle.c 2016-11-22 16:30:41 +0900 (98599f3) +++ vendor/nginx-1.11.6/src/core/ngx_cycle.c 2016-11-22 16:34:42 +0900 (a57991c) @@ -132,6 +132,9 @@ ngx_init_cycle(ngx_cycle_t *old_cycle) return NULL; } + ngx_rbtree_init(&cycle->config_dump_rbtree, &cycle->config_dump_sentinel, + ngx_str_rbtree_insert_value); + if (old_cycle->open_files.part.nelts) { n = old_cycle->open_files.part.nelts; for (part = old_cycle->open_files.part.next; part; part = part->next) { Renamed: vendor/nginx-1.11.6/src/core/ngx_cycle.h (+4 -0) 97% =================================================================== --- vendor/nginx-1.11.5/src/core/ngx_cycle.h 2016-11-22 16:30:41 +0900 (c51b7ff) +++ vendor/nginx-1.11.6/src/core/ngx_cycle.h 2016-11-22 16:34:42 +0900 (5cdacf1) @@ -56,7 +56,11 @@ struct ngx_cycle_s { ngx_array_t listening; ngx_array_t paths; + ngx_array_t config_dump; + ngx_rbtree_t config_dump_rbtree; + ngx_rbtree_node_t config_dump_sentinel; + ngx_list_t open_files; ngx_list_t shared_memory; Renamed: vendor/nginx-1.11.6/src/core/ngx_file.c (+27 -5) 97% =================================================================== --- vendor/nginx-1.11.5/src/core/ngx_file.c 2016-11-22 16:30:41 +0900 (8359c0f) +++ vendor/nginx-1.11.6/src/core/ngx_file.c 2016-11-22 16:34:42 +0900 (b7dd4bc) @@ -141,12 +141,27 @@ ngx_int_t ngx_create_temp_file(ngx_file_t *file, ngx_path_t *path, ngx_pool_t *pool, ngx_uint_t persistent, ngx_uint_t clean, ngx_uint_t access) { + size_t levels; + u_char *p; uint32_t n; ngx_err_t err; + ngx_str_t name; + ngx_uint_t prefix; ngx_pool_cleanup_t *cln; ngx_pool_cleanup_file_t *clnf; - file->name.len = path->name.len + 1 + path->len + 10; + if (file->name.len) { + name = file->name; + levels = 0; + prefix = 1; + + } else { + name = path->name; + levels = path->len; + prefix = 0; + } + + file->name.len = name.len + 1 + levels + 10; file->name.data = ngx_pnalloc(pool, file->name.len + 1); if (file->name.data == NULL) { @@ -159,7 +174,13 @@ ngx_create_temp_file(ngx_file_t *file, ngx_path_t *path, ngx_pool_t *pool, } #endif - ngx_memcpy(file->name.data, path->name.data, path->name.len); + p = ngx_cpymem(file->name.data, name.data, name.len); + + if (prefix) { + *p = '.'; + } + + p += 1 + levels; n = (uint32_t) ngx_next_temp_number(0); @@ -169,10 +190,11 @@ ngx_create_temp_file(ngx_file_t *file, ngx_path_t *path, ngx_pool_t *pool, } for ( ;; ) { - (void) ngx_sprintf(file->name.data + path->name.len + 1 + path->len, - "%010uD%Z", n); + (void) ngx_sprintf(p, "%010uD%Z", n); - ngx_create_hashed_filename(path, file->name.data, file->name.len); + if (!prefix) { + ngx_create_hashed_filename(path, file->name.data, file->name.len); + } ngx_log_debug1(NGX_LOG_DEBUG_CORE, file->log, 0, "hashed path: %s", file->name.data); Renamed: vendor/nginx-1.11.6/src/core/ngx_file.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_hash.c (+0 -1) 99% =================================================================== --- vendor/nginx-1.11.5/src/core/ngx_hash.c 2016-11-22 16:30:41 +0900 (151e643) +++ vendor/nginx-1.11.6/src/core/ngx_hash.c 2016-11-22 16:34:42 +0900 (1944c7a) @@ -390,7 +390,6 @@ found: buckets[i] = (ngx_hash_elt_t *) elts; elts += test[i]; - } for (i = 0; i < size; i++) { Renamed: vendor/nginx-1.11.6/src/core/ngx_hash.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_inet.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_inet.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_list.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_list.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_log.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_log.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_md5.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_md5.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_module.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_murmurhash.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_murmurhash.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_open_file_cache.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_open_file_cache.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_output_chain.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_palloc.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_palloc.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_parse.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_parse.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_parse_time.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_parse_time.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_proxy_protocol.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_proxy_protocol.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_queue.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_queue.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_radix_tree.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_radix_tree.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_rbtree.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_rbtree.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_regex.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_regex.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_resolver.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_resolver.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_rwlock.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_rwlock.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_sha1.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_sha1.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_shmtx.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_shmtx.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_slab.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_slab.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_spinlock.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_string.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_string.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_syslog.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_syslog.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_thread_pool.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_thread_pool.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_times.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/core/ngx_times.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/event/modules/ngx_devpoll_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/event/modules/ngx_epoll_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/event/modules/ngx_eventport_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/event/modules/ngx_iocp_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/event/modules/ngx_iocp_module.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/event/modules/ngx_kqueue_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/event/modules/ngx_poll_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/event/modules/ngx_select_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/event/modules/ngx_win32_select_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/event/ngx_event.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/event/ngx_event.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/event/ngx_event_accept.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/event/ngx_event_acceptex.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/event/ngx_event_connect.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/event/ngx_event_connect.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/event/ngx_event_connectex.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/event/ngx_event_openssl.c (+108 -2) 98% =================================================================== --- vendor/nginx-1.11.5/src/event/ngx_event_openssl.c 2016-11-22 16:30:41 +0900 (68d02bf) +++ vendor/nginx-1.11.6/src/event/ngx_event_openssl.c 2016-11-22 16:34:42 +0900 (5c7734d) @@ -2137,7 +2137,9 @@ ngx_ssl_error(ngx_uint_t level, ngx_log_t *log, ngx_err_t err, char *fmt, ...) break; } - if (p >= last) { + /* ERR_error_string_n() requires at least one byte */ + + if (p >= last - 1) { goto next; } @@ -3436,6 +3438,109 @@ ngx_ssl_get_certificate(ngx_connection_t *c, ngx_pool_t *pool, ngx_str_t *s) ngx_int_t ngx_ssl_get_subject_dn(ngx_connection_t *c, ngx_pool_t *pool, ngx_str_t *s) { + BIO *bio; + X509 *cert; + X509_NAME *name; + + s->len = 0; + + cert = SSL_get_peer_certificate(c->ssl->connection); + if (cert == NULL) { + return NGX_OK; + } + + name = X509_get_subject_name(cert); + if (name == NULL) { + return NGX_ERROR; + } + + bio = BIO_new(BIO_s_mem()); + if (bio == NULL) { + X509_free(cert); + return NGX_ERROR; + } + + if (X509_NAME_print_ex(bio, name, 0, XN_FLAG_RFC2253) < 0) { + goto failed; + } + + s->len = BIO_pending(bio); + s->data = ngx_pnalloc(pool, s->len); + if (s->data == NULL) { + goto failed; + } + + BIO_read(bio, s->data, s->len); + + BIO_free(bio); + X509_free(cert); + + return NGX_OK; + +failed: + + BIO_free(bio); + X509_free(cert); + + return NGX_ERROR; +} + + +ngx_int_t +ngx_ssl_get_issuer_dn(ngx_connection_t *c, ngx_pool_t *pool, ngx_str_t *s) +{ + BIO *bio; + X509 *cert; + X509_NAME *name; + + s->len = 0; + + cert = SSL_get_peer_certificate(c->ssl->connection); + if (cert == NULL) { + return NGX_OK; + } + + name = X509_get_issuer_name(cert); + if (name == NULL) { + return NGX_ERROR; + } + + bio = BIO_new(BIO_s_mem()); + if (bio == NULL) { + X509_free(cert); + return NGX_ERROR; + } + + if (X509_NAME_print_ex(bio, name, 0, XN_FLAG_RFC2253) < 0) { + goto failed; + } + + s->len = BIO_pending(bio); + s->data = ngx_pnalloc(pool, s->len); + if (s->data == NULL) { + goto failed; + } + + BIO_read(bio, s->data, s->len); + + BIO_free(bio); + X509_free(cert); + + return NGX_OK; + +failed: + + BIO_free(bio); + X509_free(cert); + + return NGX_ERROR; +} + + +ngx_int_t +ngx_ssl_get_subject_dn_legacy(ngx_connection_t *c, ngx_pool_t *pool, + ngx_str_t *s) +{ char *p; size_t len; X509 *cert; @@ -3476,7 +3581,8 @@ ngx_ssl_get_subject_dn(ngx_connection_t *c, ngx_pool_t *pool, ngx_str_t *s) ngx_int_t -ngx_ssl_get_issuer_dn(ngx_connection_t *c, ngx_pool_t *pool, ngx_str_t *s) +ngx_ssl_get_issuer_dn_legacy(ngx_connection_t *c, ngx_pool_t *pool, + ngx_str_t *s) { char *p; size_t len; Renamed: vendor/nginx-1.11.6/src/event/ngx_event_openssl.h (+4 -0) 97% =================================================================== --- vendor/nginx-1.11.5/src/event/ngx_event_openssl.h 2016-11-22 16:30:41 +0900 (24b812f) +++ vendor/nginx-1.11.6/src/event/ngx_event_openssl.h 2016-11-22 16:34:42 +0900 (d233c02) @@ -205,6 +205,10 @@ ngx_int_t ngx_ssl_get_subject_dn(ngx_connection_t *c, ngx_pool_t *pool, ngx_str_t *s); ngx_int_t ngx_ssl_get_issuer_dn(ngx_connection_t *c, ngx_pool_t *pool, ngx_str_t *s); +ngx_int_t ngx_ssl_get_subject_dn_legacy(ngx_connection_t *c, ngx_pool_t *pool, + ngx_str_t *s); +ngx_int_t ngx_ssl_get_issuer_dn_legacy(ngx_connection_t *c, ngx_pool_t *pool, + ngx_str_t *s); ngx_int_t ngx_ssl_get_serial_number(ngx_connection_t *c, ngx_pool_t *pool, ngx_str_t *s); ngx_int_t ngx_ssl_get_fingerprint(ngx_connection_t *c, ngx_pool_t *pool, Renamed: vendor/nginx-1.11.6/src/event/ngx_event_openssl_stapling.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/event/ngx_event_pipe.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/event/ngx_event_pipe.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/event/ngx_event_posted.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/event/ngx_event_posted.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/event/ngx_event_timer.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/event/ngx_event_timer.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_access_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_addition_filter_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_auth_basic_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_auth_request_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_autoindex_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_browser_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_charset_filter_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_chunked_filter_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_dav_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_degradation_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_empty_gif_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_fastcgi_module.c (+29 -5) 99% =================================================================== --- vendor/nginx-1.11.5/src/http/modules/ngx_http_fastcgi_module.c 2016-11-22 16:30:41 +0900 (62502b0) +++ vendor/nginx-1.11.6/src/http/modules/ngx_http_fastcgi_module.c 2016-11-22 16:34:42 +0900 (c7c417b) @@ -420,6 +420,13 @@ static ngx_command_t ngx_http_fastcgi_commands[] = { offsetof(ngx_http_fastcgi_loc_conf_t, upstream.cache_min_uses), NULL }, + { ngx_string("fastcgi_cache_max_range_offset"), + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, + ngx_conf_set_off_slot, + NGX_HTTP_LOC_CONF_OFFSET, + offsetof(ngx_http_fastcgi_loc_conf_t, upstream.cache_max_range_offset), + NULL }, + { ngx_string("fastcgi_cache_use_stale"), NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_1MORE, ngx_conf_set_bitmask_slot, @@ -766,16 +773,14 @@ ngx_http_fastcgi_eval(ngx_http_request_t *r, ngx_http_fastcgi_loc_conf_t *flcf) return NGX_ERROR; } - if (url.addrs && url.addrs[0].sockaddr) { + if (url.addrs) { u->resolved->sockaddr = url.addrs[0].sockaddr; u->resolved->socklen = url.addrs[0].socklen; + u->resolved->name = url.addrs[0].name; u->resolved->naddrs = 1; - u->resolved->host = url.addrs[0].name; - - } else { - u->resolved->host = url.host; } + u->resolved->host = url.host; u->resolved->port = url.port; u->resolved->no_port = url.no_port; @@ -2756,6 +2761,7 @@ ngx_http_fastcgi_create_loc_conf(ngx_conf_t *cf) #if (NGX_HTTP_CACHE) conf->upstream.cache = NGX_CONF_UNSET; conf->upstream.cache_min_uses = NGX_CONF_UNSET_UINT; + conf->upstream.cache_max_range_offset = NGX_CONF_UNSET; conf->upstream.cache_bypass = NGX_CONF_UNSET_PTR; conf->upstream.no_cache = NGX_CONF_UNSET_PTR; conf->upstream.cache_valid = NGX_CONF_UNSET_PTR; @@ -3001,6 +3007,10 @@ ngx_http_fastcgi_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) ngx_conf_merge_uint_value(conf->upstream.cache_min_uses, prev->upstream.cache_min_uses, 1); + ngx_conf_merge_off_value(conf->upstream.cache_max_range_offset, + prev->upstream.cache_max_range_offset, + NGX_MAX_OFF_T_VALUE); + ngx_conf_merge_bitmask_value(conf->upstream.cache_use_stale, prev->upstream.cache_use_stale, (NGX_CONF_BITMASK_SET @@ -3127,6 +3137,20 @@ ngx_http_fastcgi_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) #endif + /* + * special handling to preserve conf->params in the "http" section + * to inherit it to all servers + */ + + if (prev->params.hash.buckets == NULL + && conf->params_source == prev->params_source) + { + prev->params = conf->params; +#if (NGX_HTTP_CACHE) + prev->params_cache = conf->params_cache; +#endif + } + return NGX_CONF_OK; } Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_flv_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_geo_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_geoip_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_gunzip_filter_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_gzip_filter_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_gzip_static_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_headers_filter_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_image_filter_module.c (+159 -5) 89% =================================================================== --- vendor/nginx-1.11.5/src/http/modules/ngx_http_image_filter_module.c 2016-11-22 16:30:41 +0900 (b608de1) +++ vendor/nginx-1.11.6/src/http/modules/ngx_http_image_filter_module.c 2016-11-22 16:34:42 +0900 (dbec5d8) @@ -31,6 +31,7 @@ #define NGX_HTTP_IMAGE_JPEG 1 #define NGX_HTTP_IMAGE_GIF 2 #define NGX_HTTP_IMAGE_PNG 3 +#define NGX_HTTP_IMAGE_WEBP 4 #define NGX_HTTP_IMAGE_BUFFERED 0x08 @@ -42,6 +43,7 @@ typedef struct { ngx_uint_t height; ngx_uint_t angle; ngx_uint_t jpeg_quality; + ngx_uint_t webp_quality; ngx_uint_t sharpen; ngx_flag_t transparency; @@ -51,6 +53,7 @@ typedef struct { ngx_http_complex_value_t *hcv; ngx_http_complex_value_t *acv; ngx_http_complex_value_t *jqcv; + ngx_http_complex_value_t *wqcv; ngx_http_complex_value_t *shcv; size_t buffer_size; @@ -109,6 +112,8 @@ static char *ngx_http_image_filter(ngx_conf_t *cf, ngx_command_t *cmd, void *conf); static char *ngx_http_image_filter_jpeg_quality(ngx_conf_t *cf, ngx_command_t *cmd, void *conf); +static char *ngx_http_image_filter_webp_quality(ngx_conf_t *cf, + ngx_command_t *cmd, void *conf); static char *ngx_http_image_filter_sharpen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf); static ngx_int_t ngx_http_image_filter_init(ngx_conf_t *cf); @@ -130,6 +135,13 @@ static ngx_command_t ngx_http_image_filter_commands[] = { 0, NULL }, + { ngx_string("image_filter_webp_quality"), + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, + ngx_http_image_filter_webp_quality, + NGX_HTTP_LOC_CONF_OFFSET, + 0, + NULL }, + { ngx_string("image_filter_sharpen"), NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, ngx_http_image_filter_sharpen, @@ -200,7 +212,8 @@ static ngx_http_output_body_filter_pt ngx_http_next_body_filter; static ngx_str_t ngx_http_image_types[] = { ngx_string("image/jpeg"), ngx_string("image/gif"), - ngx_string("image/png") + ngx_string("image/png"), + ngx_string("image/webp") }; @@ -441,6 +454,13 @@ ngx_http_image_test(ngx_http_request_t *r, ngx_chain_t *in) /* PNG */ return NGX_HTTP_IMAGE_PNG; + + } else if (p[0] == 'R' && p[1] == 'I' && p[2] == 'F' && p[3] == 'F' + && p[8] == 'W' && p[9] == 'E' && p[10] == 'B' && p[11] == 'P') + { + /* WebP */ + + return NGX_HTTP_IMAGE_WEBP; } return NGX_HTTP_IMAGE_NONE; @@ -731,6 +751,56 @@ ngx_http_image_size(ngx_http_request_t *r, ngx_http_image_filter_ctx_t *ctx) break; + case NGX_HTTP_IMAGE_WEBP: + + if (ctx->length < 30) { + return NGX_DECLINED; + } + + if (p[12] != 'V' || p[13] != 'P' || p[14] != '8') { + return NGX_DECLINED; + } + + switch (p[15]) { + + case ' ': + if (p[20] & 1) { + /* not a key frame */ + return NGX_DECLINED; + } + + if (p[23] != 0x9d || p[24] != 0x01 || p[25] != 0x2a) { + /* invalid start code */ + return NGX_DECLINED; + } + + width = (p[26] | p[27] << 8) & 0x3fff; + height = (p[28] | p[29] << 8) & 0x3fff; + + break; + + case 'L': + if (p[20] != 0x2f) { + /* invalid signature */ + return NGX_DECLINED; + } + + width = ((p[21] | p[22] << 8) & 0x3fff) + 1; + height = ((p[22] >> 6 | p[23] << 2 | p[24] << 10) & 0x3fff) + 1; + + break; + + case 'X': + width = (p[24] | p[25] << 8 | p[26] << 16) + 1; + height = (p[27] | p[28] << 8 | p[29] << 16) + 1; + break; + + default: + return NGX_DECLINED; + } + + break; + default: return NGX_DECLINED; @@ -1043,6 +1113,15 @@ ngx_http_image_source(ngx_http_request_t *r, ngx_http_image_filter_ctx_t *ctx) failed = "gdImageCreateFromPngPtr() failed"; break; + case NGX_HTTP_IMAGE_WEBP: +#if (NGX_HAVE_GD_WEBP) + img = gdImageCreateFromWebpPtr(ctx->length, ctx->image); + failed = "gdImageCreateFromWebpPtr() failed"; +#else + failed = "nginx was built without GD WebP support"; +#endif + break; + default: failed = "unknown image type"; break; @@ -1090,7 +1169,7 @@ ngx_http_image_out(ngx_http_request_t *r, ngx_uint_t type, gdImagePtr img, { char *failed; u_char *out; - ngx_int_t jq; + ngx_int_t q; ngx_http_image_filter_conf_t *conf; out = NULL; @@ -1100,12 +1179,12 @@ ngx_http_image_out(ngx_http_request_t *r, ngx_uint_t type, gdImagePtr img, case NGX_HTTP_IMAGE_JPEG: conf = ngx_http_get_module_loc_conf(r, ngx_http_image_filter_module); - jq = ngx_http_image_filter_get_value(r, conf->jqcv, conf->jpeg_quality); - if (jq <= 0) { + q = ngx_http_image_filter_get_value(r, conf->jqcv, conf->jpeg_quality); + if (q <= 0) { return NULL; } - out = gdImageJpegPtr(img, size, jq); + out = gdImageJpegPtr(img, size, q); failed = "gdImageJpegPtr() failed"; break; @@ -1119,6 +1198,22 @@ ngx_http_image_out(ngx_http_request_t *r, ngx_uint_t type, gdImagePtr img, failed = "gdImagePngPtr() failed"; break; + case NGX_HTTP_IMAGE_WEBP: +#if (NGX_HAVE_GD_WEBP) + conf = ngx_http_get_module_loc_conf(r, ngx_http_image_filter_module); + + q = ngx_http_image_filter_get_value(r, conf->wqcv, conf->webp_quality); + if (q <= 0) { + return NULL; + } + + out = gdImageWebpPtrEx(img, size, q); + failed = "gdImageWebpPtrEx() failed"; +#else + failed = "nginx was built without GD WebP support"; +#endif + break; + default: failed = "unknown image type"; break; @@ -1196,11 +1291,13 @@ ngx_http_image_filter_create_conf(ngx_conf_t *cf) * conf->hcv = NULL; * conf->acv = NULL; * conf->jqcv = NULL; + * conf->wqcv = NULL; * conf->shcv = NULL; */ conf->filter = NGX_CONF_UNSET_UINT; conf->jpeg_quality = NGX_CONF_UNSET_UINT; + conf->webp_quality = NGX_CONF_UNSET_UINT; conf->sharpen = NGX_CONF_UNSET_UINT; conf->transparency = NGX_CONF_UNSET; conf->interlace = NGX_CONF_UNSET; @@ -1242,6 +1339,16 @@ ngx_http_image_filter_merge_conf(ngx_conf_t *cf, void *parent, void *child) } } + if (conf->webp_quality == NGX_CONF_UNSET_UINT) { + + /* 80 is libwebp default quality */ + ngx_conf_merge_uint_value(conf->webp_quality, prev->webp_quality, 80); + + if (conf->wqcv == NULL) { + conf->wqcv = prev->wqcv; + } + } + if (conf->sharpen == NGX_CONF_UNSET_UINT) { ngx_conf_merge_uint_value(conf->sharpen, prev->sharpen, 0); @@ -1462,6 +1569,53 @@ ngx_http_image_filter_jpeg_quality(ngx_conf_t *cf, ngx_command_t *cmd, static char * +ngx_http_image_filter_webp_quality(ngx_conf_t *cf, ngx_command_t *cmd, + void *conf) +{ + ngx_http_image_filter_conf_t *imcf = conf; + + ngx_str_t *value; + ngx_int_t n; + ngx_http_complex_value_t cv; + ngx_http_compile_complex_value_t ccv; + + value = cf->args->elts; + + ngx_memzero(&ccv, sizeof(ngx_http_compile_complex_value_t)); + + ccv.cf = cf; + ccv.value = &value[1]; + ccv.complex_value = &cv; + + if (ngx_http_compile_complex_value(&ccv) != NGX_OK) { + return NGX_CONF_ERROR; + } + + if (cv.lengths == NULL) { + n = ngx_http_image_filter_value(&value[1]); + + if (n <= 0) { + ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, + "invalid value \"%V\"", &value[1]); + return NGX_CONF_ERROR; + } + + imcf->webp_quality = (ngx_uint_t) n; + + } else { + imcf->wqcv = ngx_palloc(cf->pool, sizeof(ngx_http_complex_value_t)); + if (imcf->wqcv == NULL) { + return NGX_CONF_ERROR; + } + + *imcf->wqcv = cv; + } + + return NGX_CONF_OK; +} + + +static char * ngx_http_image_filter_sharpen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) { Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_index_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_limit_conn_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_limit_req_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_log_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_map_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_memcached_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_mp4_module.c (+60 -14) 98% =================================================================== --- vendor/nginx-1.11.5/src/http/modules/ngx_http_mp4_module.c 2016-11-22 16:30:41 +0900 (2a68bae) +++ vendor/nginx-1.11.6/src/http/modules/ngx_http_mp4_module.c 2016-11-22 16:34:42 +0900 (8f2920f) @@ -216,6 +216,7 @@ typedef struct { static ngx_int_t ngx_http_mp4_handler(ngx_http_request_t *r); +static ngx_int_t ngx_http_mp4_atofp(u_char *line, size_t n, size_t point); static ngx_int_t ngx_http_mp4_process(ngx_http_mp4_file_t *mp4); static ngx_int_t ngx_http_mp4_read_atom(ngx_http_mp4_file_t *mp4, @@ -537,26 +538,15 @@ ngx_http_mp4_handler(ngx_http_request_t *r) /* * A Flash player may send start value with a lot of digits - * after dot so strtod() is used instead of atofp(). NaNs and - * infinities become negative numbers after (int) conversion. + * after dot so a custom function is used instead of ngx_atofp(). */ - ngx_set_errno(0); - start = (int) (strtod((char *) value.data, NULL) * 1000); - - if (ngx_errno != 0) { - start = -1; - } + start = ngx_http_mp4_atofp(value.data, value.len, 3); } if (ngx_http_arg(r, (u_char *) "end", 3, &value) == NGX_OK) { - ngx_set_errno(0); - end = (int) (strtod((char *) value.data, NULL) * 1000); - - if (ngx_errno != 0) { - end = -1; - } + end = ngx_http_mp4_atofp(value.data, value.len, 3); if (end > 0) { if (start < 0) { @@ -687,6 +677,62 @@ ngx_http_mp4_handler(ngx_http_request_t *r) static ngx_int_t +ngx_http_mp4_atofp(u_char *line, size_t n, size_t point) +{ + ngx_int_t value, cutoff, cutlim; + ngx_uint_t dot; + + /* same as ngx_atofp(), but allows additional digits */ + + if (n == 0) { + return NGX_ERROR; + } + + cutoff = NGX_MAX_INT_T_VALUE / 10; + cutlim = NGX_MAX_INT_T_VALUE % 10; + + dot = 0; + + for (value = 0; n--; line++) { + + if (*line == '.') { + if (dot) { + return NGX_ERROR; + } + + dot = 1; + continue; + } + + if (*line < '0' || *line > '9') { + return NGX_ERROR; + } + + if (point == 0) { + continue; + } + + if (value >= cutoff && (value > cutoff || *line - '0' > cutlim)) { + return NGX_ERROR; + } + + value = value * 10 + (*line - '0'); + point -= dot; + } + + while (point--) { + if (value > cutoff) { + return NGX_ERROR; + } + + value = value * 10; + } + + return value; +} + + +static ngx_int_t ngx_http_mp4_process(ngx_http_mp4_file_t *mp4) { off_t start_offset, end_offset, adjustment; Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_not_modified_filter_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_proxy_module.c (+49 -26) 98% =================================================================== --- vendor/nginx-1.11.5/src/http/modules/ngx_http_proxy_module.c 2016-11-22 16:30:41 +0900 (4f49a52) +++ vendor/nginx-1.11.6/src/http/modules/ngx_http_proxy_module.c 2016-11-22 16:34:42 +0900 (42b6afc) @@ -73,7 +73,7 @@ typedef struct { ngx_array_t *cookie_domains; ngx_array_t *cookie_paths; - ngx_str_t method; + ngx_http_complex_value_t *method; ngx_str_t location; ngx_str_t url; @@ -380,7 +380,7 @@ static ngx_command_t ngx_http_proxy_commands[] = { { ngx_string("proxy_method"), NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, - ngx_conf_set_str_slot, + ngx_http_set_complex_value_slot, NGX_HTTP_LOC_CONF_OFFSET, offsetof(ngx_http_proxy_loc_conf_t, method), NULL }, @@ -492,6 +492,13 @@ static ngx_command_t ngx_http_proxy_commands[] = { offsetof(ngx_http_proxy_loc_conf_t, upstream.cache_min_uses), NULL }, + { ngx_string("proxy_cache_max_range_offset"), + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, + ngx_conf_set_off_slot, + NGX_HTTP_LOC_CONF_OFFSET, + offsetof(ngx_http_proxy_loc_conf_t, upstream.cache_max_range_offset), + NULL }, + { ngx_string("proxy_cache_use_stale"), NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_1MORE, ngx_conf_set_bitmask_slot, @@ -1008,16 +1015,14 @@ ngx_http_proxy_eval(ngx_http_request_t *r, ngx_http_proxy_ctx_t *ctx, return NGX_ERROR; } - if (url.addrs && url.addrs[0].sockaddr) { + if (url.addrs) { u->resolved->sockaddr = url.addrs[0].sockaddr; u->resolved->socklen = url.addrs[0].socklen; + u->resolved->name = url.addrs[0].name; u->resolved->naddrs = 1; - u->resolved->host = url.addrs[0].name; - - } else { - u->resolved->host = url.host; } + u->resolved->host = url.host; u->resolved->port = (in_port_t) (url.no_port ? port : url.port); u->resolved->no_port = url.no_port; @@ -1159,8 +1164,10 @@ ngx_http_proxy_create_request(ngx_http_request_t *r) /* HEAD was changed to GET to cache response */ method = u->method; - } else if (plcf->method.len) { - method = plcf->method; + } else if (plcf->method) { + if (ngx_http_complex_value(r, plcf->method, &method) != NGX_OK) { + return NGX_ERROR; + } } else { method = r->method_name; @@ -2797,7 +2804,7 @@ ngx_http_proxy_create_loc_conf(ngx_conf_t *cf) * conf->upstream.store_values = NULL; * conf->upstream.ssl_name = NULL; * - * conf->method = { 0, NULL }; + * conf->method = NULL; * conf->headers_source = NULL; * conf->headers.lengths = NULL; * conf->headers.values = NULL; @@ -2847,6 +2854,7 @@ ngx_http_proxy_create_loc_conf(ngx_conf_t *cf) #if (NGX_HTTP_CACHE) conf->upstream.cache = NGX_CONF_UNSET; conf->upstream.cache_min_uses = NGX_CONF_UNSET_UINT; + conf->upstream.cache_max_range_offset = NGX_CONF_UNSET; conf->upstream.cache_bypass = NGX_CONF_UNSET_PTR; conf->upstream.no_cache = NGX_CONF_UNSET_PTR; conf->upstream.cache_valid = NGX_CONF_UNSET_PTR; @@ -3108,6 +3116,10 @@ ngx_http_proxy_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) ngx_conf_merge_uint_value(conf->upstream.cache_min_uses, prev->upstream.cache_min_uses, 1); + ngx_conf_merge_off_value(conf->upstream.cache_max_range_offset, + prev->upstream.cache_max_range_offset, + NGX_MAX_OFF_T_VALUE); + ngx_conf_merge_bitmask_value(conf->upstream.cache_use_stale, prev->upstream.cache_use_stale, (NGX_CONF_BITMASK_SET @@ -3158,7 +3170,9 @@ ngx_http_proxy_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) #endif - ngx_conf_merge_str_value(conf->method, prev->method, ""); + if (conf->method == NULL) { + conf->method = prev->method; + } ngx_conf_merge_value(conf->upstream.pass_request_headers, prev->upstream.pass_request_headers, 1); @@ -3357,6 +3371,20 @@ ngx_http_proxy_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) #endif + /* + * special handling to preserve conf->headers in the "http" section + * to inherit it to all servers + */ + + if (prev->headers.hash.buckets == NULL + && conf->headers_source == prev->headers_source) + { + prev->headers = conf->headers; +#if (NGX_HTTP_CACHE) + prev->headers_cache = conf->headers_cache; +#endif + } + return NGX_CONF_OK; } @@ -3392,14 +3420,6 @@ ngx_http_proxy_init_headers(ngx_conf_t *cf, ngx_http_proxy_loc_conf_t *conf, return NGX_ERROR; } - if (conf->headers_source == NULL) { - conf->headers_source = ngx_array_create(cf->pool, 4, - sizeof(ngx_keyval_t)); - if (conf->headers_source == NULL) { - return NGX_ERROR; - } - } - headers->lengths = ngx_array_create(cf->pool, 64, 1); if (headers->lengths == NULL) { return NGX_ERROR; @@ -3410,15 +3430,18 @@ ngx_http_proxy_init_headers(ngx_conf_t *cf, ngx_http_proxy_loc_conf_t *conf, return NGX_ERROR; } - src = conf->headers_source->elts; - for (i = 0; i < conf->headers_source->nelts; i++) { + if (conf->headers_source) { - s = ngx_array_push(&headers_merged); - if (s == NULL) { - return NGX_ERROR; - } + src = conf->headers_source->elts; + for (i = 0; i < conf->headers_source->nelts; i++) { - *s = src[i]; + s = ngx_array_push(&headers_merged); + if (s == NULL) { + return NGX_ERROR; + } + + *s = src[i]; + } } h = default_headers; Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_random_index_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_range_filter_module.c (+6 -6) 100% =================================================================== @@ -224,12 +224,6 @@ parse: ctx->offset = r->headers_out.content_offset; - if (ngx_array_init(&ctx->ranges, r->pool, 1, sizeof(ngx_http_range_t)) - != NGX_OK) - { - return NGX_ERROR; - } - ranges = r->single_range ? 1 : clcf->max_ranges; switch (ngx_http_range_parse(r, ctx, ranges)) { @@ -291,6 +285,12 @@ ngx_http_range_parse(ngx_http_request_t *r, ngx_http_range_filter_ctx_t *ctx, } } + if (ngx_array_init(&ctx->ranges, r->pool, 1, sizeof(ngx_http_range_t)) + != NGX_OK) + { + return NGX_ERROR; + } + p = r->headers_in.range->value.data + 6; size = 0; content_length = r->headers_out.content_length_n; Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_realip_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_referer_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_rewrite_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_scgi_module.c (+29 -5) 98% =================================================================== --- vendor/nginx-1.11.5/src/http/modules/ngx_http_scgi_module.c 2016-11-22 16:30:41 +0900 (36656ec) +++ vendor/nginx-1.11.6/src/http/modules/ngx_http_scgi_module.c 2016-11-22 16:34:42 +0900 (aa84a3d) @@ -270,6 +270,13 @@ static ngx_command_t ngx_http_scgi_commands[] = { offsetof(ngx_http_scgi_loc_conf_t, upstream.cache_min_uses), NULL }, + { ngx_string("scgi_cache_max_range_offset"), + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, + ngx_conf_set_off_slot, + NGX_HTTP_LOC_CONF_OFFSET, + offsetof(ngx_http_scgi_loc_conf_t, upstream.cache_max_range_offset), + NULL }, + { ngx_string("scgi_cache_use_stale"), NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_1MORE, ngx_conf_set_bitmask_slot, @@ -562,16 +569,14 @@ ngx_http_scgi_eval(ngx_http_request_t *r, ngx_http_scgi_loc_conf_t * scf) return NGX_ERROR; } - if (url.addrs && url.addrs[0].sockaddr) { + if (url.addrs) { u->resolved->sockaddr = url.addrs[0].sockaddr; u->resolved->socklen = url.addrs[0].socklen; + u->resolved->name = url.addrs[0].name; u->resolved->naddrs = 1; - u->resolved->host = url.addrs[0].name; - - } else { - u->resolved->host = url.host; } + u->resolved->host = url.host; u->resolved->port = url.port; u->resolved->no_port = url.no_port; @@ -1206,6 +1211,7 @@ ngx_http_scgi_create_loc_conf(ngx_conf_t *cf) #if (NGX_HTTP_CACHE) conf->upstream.cache = NGX_CONF_UNSET; conf->upstream.cache_min_uses = NGX_CONF_UNSET_UINT; + conf->upstream.cache_max_range_offset = NGX_CONF_UNSET; conf->upstream.cache_bypass = NGX_CONF_UNSET_PTR; conf->upstream.no_cache = NGX_CONF_UNSET_PTR; conf->upstream.cache_valid = NGX_CONF_UNSET_PTR; @@ -1446,6 +1452,10 @@ ngx_http_scgi_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) ngx_conf_merge_uint_value(conf->upstream.cache_min_uses, prev->upstream.cache_min_uses, 1); + ngx_conf_merge_off_value(conf->upstream.cache_max_range_offset, + prev->upstream.cache_max_range_offset, + NGX_MAX_OFF_T_VALUE); + ngx_conf_merge_bitmask_value(conf->upstream.cache_use_stale, prev->upstream.cache_use_stale, (NGX_CONF_BITMASK_SET @@ -1558,6 +1568,20 @@ ngx_http_scgi_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) #endif + /* + * special handling to preserve conf->params in the "http" section + * to inherit it to all servers + */ + + if (prev->params.hash.buckets == NULL + && conf->params_source == prev->params_source) + { + prev->params = conf->params; +#if (NGX_HTTP_CACHE) + prev->params_cache = conf->params_cache; +#endif + } + return NGX_CONF_OK; } Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_secure_link_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_slice_filter_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_split_clients_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_ssi_filter_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_ssi_filter_module.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_ssl_module.c (+6 -0) 98% =================================================================== --- vendor/nginx-1.11.5/src/http/modules/ngx_http_ssl_module.c 2016-11-22 16:30:41 +0900 (d685ae9) +++ vendor/nginx-1.11.6/src/http/modules/ngx_http_ssl_module.c 2016-11-22 16:34:42 +0900 (e75f5d8) @@ -298,6 +298,12 @@ static ngx_http_variable_t ngx_http_ssl_vars[] = { { ngx_string("ssl_client_i_dn"), NULL, ngx_http_ssl_variable, (uintptr_t) ngx_ssl_get_issuer_dn, NGX_HTTP_VAR_CHANGEABLE, 0 }, + { ngx_string("ssl_client_s_dn_legacy"), NULL, ngx_http_ssl_variable, + (uintptr_t) ngx_ssl_get_subject_dn_legacy, NGX_HTTP_VAR_CHANGEABLE, 0 }, + + { ngx_string("ssl_client_i_dn_legacy"), NULL, ngx_http_ssl_variable, + (uintptr_t) ngx_ssl_get_issuer_dn_legacy, NGX_HTTP_VAR_CHANGEABLE, 0 }, + { ngx_string("ssl_client_serial"), NULL, ngx_http_ssl_variable, (uintptr_t) ngx_ssl_get_serial_number, NGX_HTTP_VAR_CHANGEABLE, 0 }, Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_ssl_module.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_static_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_stub_status_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_sub_filter_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_upstream_hash_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_upstream_ip_hash_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_upstream_keepalive_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_upstream_least_conn_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_upstream_zone_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_userid_filter_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_uwsgi_module.c (+29 -5) 98% =================================================================== --- vendor/nginx-1.11.5/src/http/modules/ngx_http_uwsgi_module.c 2016-11-22 16:30:41 +0900 (7f916e8) +++ vendor/nginx-1.11.6/src/http/modules/ngx_http_uwsgi_module.c 2016-11-22 16:34:42 +0900 (b9c8dba) @@ -330,6 +330,13 @@ static ngx_command_t ngx_http_uwsgi_commands[] = { offsetof(ngx_http_uwsgi_loc_conf_t, upstream.cache_min_uses), NULL }, + { ngx_string("uwsgi_cache_max_range_offset"), + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, + ngx_conf_set_off_slot, + NGX_HTTP_LOC_CONF_OFFSET, + offsetof(ngx_http_uwsgi_loc_conf_t, upstream.cache_max_range_offset), + NULL }, + { ngx_string("uwsgi_cache_use_stale"), NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_1MORE, ngx_conf_set_bitmask_slot, @@ -764,16 +771,14 @@ ngx_http_uwsgi_eval(ngx_http_request_t *r, ngx_http_uwsgi_loc_conf_t * uwcf) return NGX_ERROR; } - if (url.addrs && url.addrs[0].sockaddr) { + if (url.addrs) { u->resolved->sockaddr = url.addrs[0].sockaddr; u->resolved->socklen = url.addrs[0].socklen; + u->resolved->name = url.addrs[0].name; u->resolved->naddrs = 1; - u->resolved->host = url.addrs[0].name; - - } else { - u->resolved->host = url.host; } + u->resolved->host = url.host; u->resolved->port = url.port; u->resolved->no_port = url.no_port; @@ -1412,6 +1417,7 @@ ngx_http_uwsgi_create_loc_conf(ngx_conf_t *cf) #if (NGX_HTTP_CACHE) conf->upstream.cache = NGX_CONF_UNSET; conf->upstream.cache_min_uses = NGX_CONF_UNSET_UINT; + conf->upstream.cache_max_range_offset = NGX_CONF_UNSET; conf->upstream.cache_bypass = NGX_CONF_UNSET_PTR; conf->upstream.no_cache = NGX_CONF_UNSET_PTR; conf->upstream.cache_valid = NGX_CONF_UNSET_PTR; @@ -1660,6 +1666,10 @@ ngx_http_uwsgi_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) ngx_conf_merge_uint_value(conf->upstream.cache_min_uses, prev->upstream.cache_min_uses, 1); + ngx_conf_merge_off_value(conf->upstream.cache_max_range_offset, + prev->upstream.cache_max_range_offset, + NGX_MAX_OFF_T_VALUE); + ngx_conf_merge_bitmask_value(conf->upstream.cache_use_stale, prev->upstream.cache_use_stale, (NGX_CONF_BITMASK_SET @@ -1820,6 +1830,20 @@ ngx_http_uwsgi_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) #endif + /* + * special handling to preserve conf->params in the "http" section + * to inherit it to all servers + */ + + if (prev->params.hash.buckets == NULL + && conf->params_source == prev->params_source) + { + prev->params = conf->params; +#if (NGX_HTTP_CACHE) + prev->params_cache = conf->params_cache; +#endif + } + return NGX_CONF_OK; } Renamed: vendor/nginx-1.11.6/src/http/modules/ngx_http_xslt_filter_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/perl/Makefile.PL (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/perl/nginx.pm (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/perl/nginx.xs (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/perl/ngx_http_perl_module.c (+1 -1) 99% =================================================================== --- vendor/nginx-1.11.5/src/http/modules/perl/ngx_http_perl_module.c 2016-11-22 16:30:41 +0900 (6a8894c) +++ vendor/nginx-1.11.6/src/http/modules/perl/ngx_http_perl_module.c 2016-11-22 16:34:42 +0900 (f9a9a84) @@ -410,7 +410,7 @@ ngx_http_perl_ssi(ngx_http_request_t *r, ngx_http_ssi_ctx_t *ssi_ctx, args = ¶ms[NGX_HTTP_PERL_SSI_ARG]; - if (args) { + if (args[0]) { for (i = 0; args[i]; i++) { /* void */ } Renamed: vendor/nginx-1.11.6/src/http/modules/perl/ngx_http_perl_module.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/modules/perl/typemap (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/ngx_http.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/ngx_http.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/ngx_http_cache.h (+3 -1) 98% =================================================================== --- vendor/nginx-1.11.5/src/http/ngx_http_cache.h 2016-11-22 16:30:41 +0900 (70342d0) +++ vendor/nginx-1.11.6/src/http/ngx_http_cache.h 2016-11-22 16:34:42 +0900 (4075f3d) @@ -151,7 +151,6 @@ struct ngx_http_file_cache_s { ngx_slab_pool_t *shpool; ngx_path_t *path; - ngx_path_t *temp_path; off_t max_size; size_t bsize; @@ -171,6 +170,9 @@ struct ngx_http_file_cache_s { ngx_msec_t manager_threshold; ngx_shm_zone_t *shm_zone; + + ngx_uint_t use_temp_path; + /* unsigned use_temp_path:1 */ }; Renamed: vendor/nginx-1.11.6/src/http/ngx_http_config.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/ngx_http_copy_filter_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/ngx_http_core_module.c (+0 -2) 99% =================================================================== --- vendor/nginx-1.11.5/src/http/ngx_http_core_module.c 2016-11-22 16:30:41 +0900 (9da5d109) +++ vendor/nginx-1.11.6/src/http/ngx_http_core_module.c 2016-11-22 16:34:42 +0900 (4e37cec) @@ -4827,8 +4827,6 @@ ngx_http_core_error_page(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) case NGX_HTTPS_CERT_ERROR: case NGX_HTTPS_NO_CERT: err->overwrite = NGX_HTTP_BAD_REQUEST; - default: - break; } } Renamed: vendor/nginx-1.11.6/src/http/ngx_http_core_module.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/ngx_http_file_cache.c (+36 -41) 98% =================================================================== --- vendor/nginx-1.11.5/src/http/ngx_http_file_cache.c 2016-11-22 16:30:41 +0900 (199a901) +++ vendor/nginx-1.11.6/src/http/ngx_http_file_cache.c 2016-11-22 16:34:42 +0900 (3c8ad7d) @@ -1920,17 +1920,18 @@ ngx_http_file_cache_manager(void *data) ngx_http_file_cache_t *cache = data; off_t size; - time_t next, wait; - ngx_msec_t elapsed; + time_t wait; + ngx_msec_t elapsed, next; ngx_uint_t count, watermark; cache->last = ngx_current_msec; cache->files = 0; - next = ngx_http_file_cache_expire(cache); + next = (ngx_msec_t) ngx_http_file_cache_expire(cache) * 1000; if (next == 0) { - return cache->manager_sleep; + next = cache->manager_sleep; + goto done; } for ( ;; ) { @@ -1947,21 +1948,23 @@ ngx_http_file_cache_manager(void *data) size, count, (ngx_int_t) watermark); if (size < cache->max_size && count < watermark) { - return (ngx_msec_t) next * 1000; + break; } wait = ngx_http_file_cache_forced_expire(cache); if (wait > 0) { - return (ngx_msec_t) wait * 1000; + next = (ngx_msec_t) wait * 1000; + break; } if (ngx_quit || ngx_terminate) { - return (ngx_msec_t) next * 1000; + break; } if (++cache->files >= cache->manager_files) { - return cache->manager_sleep; + next = cache->manager_sleep; + break; } ngx_time_update(); @@ -1969,9 +1972,20 @@ ngx_http_file_cache_manager(void *data) elapsed = ngx_abs((ngx_msec_int_t) (ngx_current_msec - cache->last)); if (elapsed >= cache->manager_threshold) { - return cache->manager_sleep; + next = cache->manager_sleep; + break; } } + +done: + + elapsed = ngx_abs((ngx_msec_int_t) (ngx_current_msec - cache->last)); + + ngx_log_debug3(NGX_LOG_DEBUG_HTTP, ngx_cycle->log, 0, + "http file cache manager: %ui e:%M n:%M", + cache->files, elapsed, next); + + return next; } @@ -2098,6 +2112,17 @@ ngx_http_file_cache_add_file(ngx_tree_ctx_t *ctx, ngx_str_t *name) return NGX_ERROR; } + /* + * Temporary files in cache have a suffix consisting of a dot + * followed by 10 digits. + */ + + if (name->len >= 2 * NGX_HTTP_CACHE_KEY_LEN + 1 + 10 + && name->data[name->len - 10 - 1] == '.') + { + return NGX_OK; + } + if (ctx->size < (off_t) sizeof(ngx_http_file_cache_header_t)) { ngx_log_error(NGX_LOG_CRIT, ctx->log, 0, "cache file \"%s\" is too small", name->data); @@ -2242,7 +2267,6 @@ ngx_http_file_cache_set_slot(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) off_t max_size; u_char *last, *p; time_t inactive; - size_t len; ssize_t size; ngx_str_t s, name, *value; ngx_int_t loader_files, manager_files; @@ -2515,37 +2539,6 @@ ngx_http_file_cache_set_slot(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) return NGX_CONF_ERROR; } - if (!use_temp_path) { - cache->temp_path = ngx_pcalloc(cf->pool, sizeof(ngx_path_t)); - if (cache->temp_path == NULL) { - return NGX_CONF_ERROR; - } - - len = cache->path->name.len + sizeof("/temp") - 1; - - p = ngx_pnalloc(cf->pool, len + 1); - if (p == NULL) { - return NGX_CONF_ERROR; - } - - cache->temp_path->name.len = len; - cache->temp_path->name.data = p; - - p = ngx_cpymem(p, cache->path->name.data, cache->path->name.len); - ngx_memcpy(p, "/temp", sizeof("/temp")); - - ngx_memcpy(&cache->temp_path->level, &cache->path->level, - NGX_MAX_PATH_LEVEL * sizeof(size_t)); - - cache->temp_path->len = cache->path->len; - cache->temp_path->conf_file = cf->conf_file->file.name.data; - cache->temp_path->line = cf->conf_file->line; - - if (ngx_add_path(cf, &cache->temp_path) != NGX_OK) { - return NGX_CONF_ERROR; - } - } - cache->shm_zone = ngx_shared_memory_add(cf, &name, size, cmd->post); if (cache->shm_zone == NULL) { return NGX_CONF_ERROR; @@ -2561,6 +2554,8 @@ ngx_http_file_cache_set_slot(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) cache->shm_zone->init = ngx_http_file_cache_init; cache->shm_zone->data = cache; + cache->use_temp_path = use_temp_path; + cache->inactive = inactive; cache->max_size = max_size; Renamed: vendor/nginx-1.11.6/src/http/ngx_http_header_filter_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/ngx_http_parse.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/ngx_http_postpone_filter_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/ngx_http_request.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/ngx_http_request.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/ngx_http_request_body.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/ngx_http_script.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/ngx_http_script.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/ngx_http_special_response.c (+0 -1) 99% =================================================================== --- vendor/nginx-1.11.5/src/http/ngx_http_special_response.c 2016-11-22 16:30:41 +0900 (7692f80) +++ vendor/nginx-1.11.6/src/http/ngx_http_special_response.c 2016-11-22 16:34:42 +0900 (d4c39ff) @@ -473,7 +473,6 @@ ngx_http_special_response_handler(ngx_http_request_t *r, ngx_int_t error) case NGX_HTTPS_NO_CERT: case NGX_HTTP_REQUEST_HEADER_TOO_LARGE: r->err_status = NGX_HTTP_BAD_REQUEST; - break; } } else { Renamed: vendor/nginx-1.11.6/src/http/ngx_http_upstream.c (+122 -34) 98% =================================================================== --- vendor/nginx-1.11.5/src/http/ngx_http_upstream.c 2016-11-22 16:30:41 +0900 (ceb798f) +++ vendor/nginx-1.11.6/src/http/ngx_http_upstream.c 2016-11-22 16:34:42 +0900 (ed25f43) @@ -17,6 +17,8 @@ static ngx_int_t ngx_http_upstream_cache_get(ngx_http_request_t *r, ngx_http_upstream_t *u, ngx_http_file_cache_t **cache); static ngx_int_t ngx_http_upstream_cache_send(ngx_http_request_t *r, ngx_http_upstream_t *u); +static ngx_int_t ngx_http_upstream_cache_check_range(ngx_http_request_t *r, + ngx_http_upstream_t *u); static ngx_int_t ngx_http_upstream_cache_status(ngx_http_request_t *r, ngx_http_variable_value_t *v, uintptr_t data); static ngx_int_t ngx_http_upstream_cache_last_modified(ngx_http_request_t *r, @@ -654,6 +656,23 @@ ngx_http_upstream_init_request(ngx_http_request_t *r) host = &u->resolved->host; + umcf = ngx_http_get_module_main_conf(r, ngx_http_upstream_module); + + uscfp = umcf->upstreams.elts; + + for (i = 0; i < umcf->upstreams.nelts; i++) { + + uscf = uscfp[i]; + + if (uscf->host.len == host->len + && ((uscf->port == 0 && u->resolved->no_port) + || uscf->port == u->resolved->port) + && ngx_strncasecmp(uscf->host.data, host->data, host->len) == 0) + { + goto found; + } + } + if (u->resolved->sockaddr) { if (u->resolved->port == 0 @@ -679,23 +698,6 @@ ngx_http_upstream_init_request(ngx_http_request_t *r) return; } - umcf = ngx_http_get_module_main_conf(r, ngx_http_upstream_module); - - uscfp = umcf->upstreams.elts; - - for (i = 0; i < umcf->upstreams.nelts; i++) { - - uscf = uscfp[i]; - - if (uscf->host.len == host->len - && ((uscf->port == 0 && u->resolved->no_port) - || uscf->port == u->resolved->port) - && ngx_strncasecmp(uscf->host.data, host->data, host->len) == 0) - { - goto found; - } - } - if (u->resolved->port == 0) { ngx_log_error(NGX_LOG_ERR, r->connection->log, 0, "no port in upstream \"%V\"", host); @@ -922,6 +924,10 @@ ngx_http_upstream_cache(ngx_http_request_t *r, ngx_http_upstream_t *u) return rc; } + if (ngx_http_upstream_cache_check_range(r, u) == NGX_DECLINED) { + u->cacheable = 0; + } + r->cached = 0; return NGX_DECLINED; @@ -1023,6 +1029,55 @@ ngx_http_upstream_cache_send(ngx_http_request_t *r, ngx_http_upstream_t *u) return rc; } + +static ngx_int_t +ngx_http_upstream_cache_check_range(ngx_http_request_t *r, + ngx_http_upstream_t *u) +{ + off_t offset; + u_char *p, *start; + ngx_table_elt_t *h; + + h = r->headers_in.range; + + if (h == NULL + || !u->cacheable + || u->conf->cache_max_range_offset == NGX_MAX_OFF_T_VALUE) + { + return NGX_OK; + } + + if (u->conf->cache_max_range_offset == 0) { + return NGX_DECLINED; + } + + if (h->value.len < 7 + || ngx_strncasecmp(h->value.data, (u_char *) "bytes=", 6) != 0) + { + return NGX_OK; + } + + p = h->value.data + 6; + + while (*p == ' ') { p++; } + + if (*p == '-') { + return NGX_DECLINED; + } + + start = p; + + while (*p >= '0' && *p <= '9') { p++; } + + offset = ngx_atoof(start, p - start); + + if (offset >= u->conf->cache_max_range_offset) { + return NGX_DECLINED; + } + + return NGX_OK; +} + #endif @@ -1611,6 +1666,13 @@ ngx_http_upstream_ssl_handshake(ngx_connection_t *c) return; } + if (c->write->timedout) { + c = r->connection; + ngx_http_upstream_next(r, u, NGX_HTTP_UPSTREAM_FT_TIMEOUT); + ngx_http_run_posted_requests(c); + return; + } + failed: c = r->connection; @@ -1696,7 +1758,10 @@ ngx_http_upstream_ssl_name(ngx_http_request_t *r, ngx_http_upstream_t *u, ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, "upstream SSL server name: \"%s\"", name.data); - if (SSL_set_tlsext_host_name(c->ssl->connection, name.data) == 0) { + if (SSL_set_tlsext_host_name(c->ssl->connection, + (char *) name.data) + == 0) + { ngx_ssl_error(NGX_LOG_ERR, r->connection->log, 0, "SSL_set_tlsext_host_name(\"%s\") failed", name.data); return NGX_ERROR; @@ -2702,6 +2767,15 @@ ngx_http_upstream_send_response(ngx_http_request_t *r, ngx_http_upstream_t *u) u->header_sent = 1; if (u->upgrade) { + +#if (NGX_HTTP_CACHE) + + if (r->cache) { + ngx_http_file_cache_free(r->cache, u->pipe->temp_file); + } + +#endif + ngx_http_upstream_upgrade(r, u); return; } @@ -2732,6 +2806,14 @@ ngx_http_upstream_send_response(ngx_http_request_t *r, ngx_http_upstream_t *u) if (!u->buffering) { +#if (NGX_HTTP_CACHE) + + if (r->cache) { + ngx_http_file_cache_free(r->cache, u->pipe->temp_file); + } + +#endif + if (u->input_filter == NULL) { u->input_filter_init = ngx_http_upstream_non_buffered_filter_init; u->input_filter = ngx_http_upstream_non_buffered_filter; @@ -2922,8 +3004,9 @@ ngx_http_upstream_send_response(ngx_http_request_t *r, ngx_http_upstream_t *u) p->temp_file->persistent = 1; #if (NGX_HTTP_CACHE) - if (r->cache && r->cache->file_cache->temp_path) { - p->temp_file->path = r->cache->file_cache->temp_path; + if (r->cache && !r->cache->file_cache->use_temp_path) { + p->temp_file->path = r->cache->file_cache->path; + p->temp_file->file.name = r->cache->file.name; } #endif @@ -5757,14 +5840,9 @@ ngx_http_upstream_add(ngx_conf_t *cf, ngx_url_t *u, ngx_uint_t flags) continue; } - if (uscfp[i]->default_port && u->default_port - && uscfp[i]->default_port != u->default_port) - { - continue; - } - if (flags & NGX_HTTP_UPSTREAM_CREATE) { uscfp[i]->flags = flags; + uscfp[i]->port = 0; } return uscfp[i]; @@ -5780,7 +5858,6 @@ ngx_http_upstream_add(ngx_conf_t *cf, ngx_url_t *u, ngx_uint_t flags) uscf->file_name = cf->conf_file->file.name.data; uscf->line = cf->conf_file->line; uscf->port = u->port; - uscf->default_port = u->default_port; uscf->no_port = u->no_port; if (u->naddrs == 1 && (u->port || u->family == AF_UNIX)) { @@ -6021,12 +6098,7 @@ ngx_http_upstream_hide_headers_hash(ngx_conf_t *cf, conf->hide_headers_hash = prev->hide_headers_hash; - if (conf->hide_headers_hash.buckets -#if (NGX_HTTP_CACHE) - && ((conf->cache == 0) == (prev->cache == 0)) -#endif - ) - { + if (conf->hide_headers_hash.buckets) { return NGX_OK; } @@ -6111,7 +6183,23 @@ ngx_http_upstream_hide_headers_hash(ngx_conf_t *cf, hash->pool = cf->pool; hash->temp_pool = NULL; - return ngx_hash_init(hash, hide_headers.elts, hide_headers.nelts); + if (ngx_hash_init(hash, hide_headers.elts, hide_headers.nelts) != NGX_OK) { + return NGX_ERROR; + } + + /* + * special handling to preserve conf->hide_headers_hash + * in the "http" section to inherit it to all servers + */ + + if (prev->hide_headers_hash.buckets == NULL + && conf->hide_headers == prev->hide_headers + && conf->pass_headers == prev->pass_headers) + { + prev->hide_headers_hash = conf->hide_headers_hash; + } + + return NGX_OK; } Renamed: vendor/nginx-1.11.6/src/http/ngx_http_upstream.h (+3 -1) 99% =================================================================== --- vendor/nginx-1.11.5/src/http/ngx_http_upstream.h 2016-11-22 16:30:41 +0900 (3d521f2) +++ vendor/nginx-1.11.6/src/http/ngx_http_upstream.h 2016-11-22 16:34:42 +0900 (7390f2e) @@ -128,7 +128,6 @@ struct ngx_http_upstream_srv_conf_s { u_char *file_name; ngx_uint_t line; in_port_t port; - in_port_t default_port; ngx_uint_t no_port; /* unsigned no_port:1 */ #if (NGX_HTTP_UPSTREAM_ZONE) @@ -199,6 +198,8 @@ typedef struct { ngx_uint_t cache_use_stale; ngx_uint_t cache_methods; + off_t cache_max_range_offset; + ngx_flag_t cache_lock; ngx_msec_t cache_lock_timeout; ngx_msec_t cache_lock_age; @@ -300,6 +301,7 @@ typedef struct { struct sockaddr *sockaddr; socklen_t socklen; + ngx_str_t name; ngx_resolver_ctx_t *ctx; } ngx_http_upstream_resolved_t; Renamed: vendor/nginx-1.11.6/src/http/ngx_http_upstream_round_robin.c (+1 -1) 99% =================================================================== --- vendor/nginx-1.11.5/src/http/ngx_http_upstream_round_robin.c 2016-11-22 16:30:41 +0900 (0137bf6) +++ vendor/nginx-1.11.6/src/http/ngx_http_upstream_round_robin.c 2016-11-22 16:34:42 +0900 (f6051ae) @@ -337,7 +337,7 @@ ngx_http_upstream_create_round_robin_peer(ngx_http_request_t *r, if (ur->sockaddr) { peer[0].sockaddr = ur->sockaddr; peer[0].socklen = ur->socklen; - peer[0].name = ur->host; + peer[0].name = ur->name.data ? ur->name : ur->host; peer[0].weight = 1; peer[0].effective_weight = 1; peer[0].current_weight = 0; Renamed: vendor/nginx-1.11.6/src/http/ngx_http_upstream_round_robin.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/ngx_http_variables.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/ngx_http_variables.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/ngx_http_write_filter_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/v2/ngx_http_v2.c (+56 -12) 98% =================================================================== --- vendor/nginx-1.11.5/src/http/v2/ngx_http_v2.c 2016-11-22 16:30:41 +0900 (235092b) +++ vendor/nginx-1.11.6/src/http/v2/ngx_http_v2.c 2016-11-22 16:34:42 +0900 (8301630) @@ -136,6 +136,8 @@ static ngx_int_t ngx_http_v2_send_window_update(ngx_http_v2_connection_t *h2c, ngx_uint_t sid, size_t window); static ngx_int_t ngx_http_v2_send_rst_stream(ngx_http_v2_connection_t *h2c, ngx_uint_t sid, ngx_uint_t status); +static ngx_int_t ngx_http_v2_send_goaway(ngx_http_v2_connection_t *h2c, + ngx_uint_t status); static ngx_http_v2_out_frame_t *ngx_http_v2_get_frame( ngx_http_v2_connection_t *h2c, size_t length, ngx_uint_t type, @@ -293,6 +295,8 @@ ngx_http_v2_init(ngx_event_t *rev) rev->handler = ngx_http_v2_read_handler; c->write->handler = ngx_http_v2_write_handler; + c->idle = 1; + ngx_http_v2_read_handler(rev); } @@ -320,6 +324,30 @@ ngx_http_v2_read_handler(ngx_event_t *rev) h2c->blocked = 1; + if (c->close) { + c->close = 0; + + if (!h2c->goaway) { + h2c->goaway = 1; + + if (ngx_http_v2_send_goaway(h2c, NGX_HTTP_V2_NO_ERROR) + == NGX_ERROR) + { + ngx_http_v2_finalize_connection(h2c, 0); + return; + } + + if (ngx_http_v2_send_output_queue(h2c) == NGX_ERROR) { + ngx_http_v2_finalize_connection(h2c, 0); + return; + } + } + + h2c->blocked = 0; + + return; + } + h2mcf = ngx_http_get_module_main_conf(h2c->http_connection->conf_ctx, ngx_http_v2_module); @@ -633,6 +661,11 @@ ngx_http_v2_handle_connection(ngx_http_v2_connection_t *h2c) /* rc == NGX_OK */ } + if (h2c->goaway) { + ngx_http_close_connection(c); + return; + } + h2scf = ngx_http_get_module_srv_conf(h2c->http_connection->conf_ctx, ngx_http_v2_module); if (h2c->state.incomplete) { @@ -640,11 +673,6 @@ ngx_http_v2_handle_connection(ngx_http_v2_connection_t *h2c) return; } - if (ngx_terminate || ngx_exiting) { - ngx_http_v2_finalize_connection(h2c, NGX_HTTP_V2_NO_ERROR); - return; - } - ngx_destroy_pool(h2c->pool); h2c->pool = NULL; @@ -658,7 +686,6 @@ ngx_http_v2_handle_connection(ngx_http_v2_connection_t *h2c) #endif c->destroyed = 1; - c->idle = 1; ngx_reusable_connection(c, 1); c->write->handler = ngx_http_empty_handler; @@ -1027,6 +1054,12 @@ ngx_http_v2_state_headers(ngx_http_v2_connection_t *h2c, u_char *pos, return ngx_http_v2_connection_error(h2c, NGX_HTTP_V2_SIZE_ERROR); } + if (h2c->goaway) { + ngx_log_debug0(NGX_LOG_DEBUG_HTTP, h2c->connection->log, 0, + "skipping http2 HEADERS frame"); + return ngx_http_v2_state_skip(h2c, pos, end); + } + if ((size_t) (end - pos) < size) { return ngx_http_v2_state_save(h2c, pos, end, ngx_http_v2_state_headers); @@ -1149,6 +1182,15 @@ ngx_http_v2_state_headers(ngx_http_v2_connection_t *h2c, u_char *pos, ngx_http_v2_set_dependency(h2c, node, depend, excl); } + if (h2c->connection->requests >= h2scf->max_requests) { + h2c->goaway = 1; + + if (ngx_http_v2_send_goaway(h2c, NGX_HTTP_V2_NO_ERROR) == NGX_ERROR) { + return ngx_http_v2_connection_error(h2c, + NGX_HTTP_V2_INTERNAL_ERROR); + } + } + return ngx_http_v2_state_header_block(h2c, pos, end); rst_stream: @@ -2550,7 +2592,7 @@ ngx_http_v2_send_rst_stream(ngx_http_v2_connection_t *h2c, ngx_uint_t sid, ngx_http_v2_out_frame_t *frame; ngx_log_debug2(NGX_LOG_DEBUG_HTTP, h2c->connection->log, 0, - "http2 send RST_STREAM frame sid:%ui, status:%uz", + "http2 send RST_STREAM frame sid:%ui, status:%ui", sid, status); frame = ngx_http_v2_get_frame(h2c, NGX_HTTP_V2_RST_STREAM_SIZE, @@ -2576,8 +2618,9 @@ ngx_http_v2_send_goaway(ngx_http_v2_connection_t *h2c, ngx_uint_t status) ngx_buf_t *buf; ngx_http_v2_out_frame_t *frame; - ngx_log_debug1(NGX_LOG_DEBUG_HTTP, h2c->connection->log, 0, - "http2 send GOAWAY frame, status:%uz", status); + ngx_log_debug2(NGX_LOG_DEBUG_HTTP, h2c->connection->log, 0, + "http2 send GOAWAY frame: last sid %ui, error %ui", + h2c->last_sid, status); frame = ngx_http_v2_get_frame(h2c, NGX_HTTP_V2_GOAWAY_SIZE, NGX_HTTP_V2_GOAWAY_FRAME, @@ -4162,7 +4205,6 @@ ngx_http_v2_idle_handler(ngx_event_t *rev) #endif c->destroyed = 0; - c->idle = 0; ngx_reusable_connection(c, 0); h2scf = ngx_http_get_module_srv_conf(h2c->http_connection->conf_ctx, @@ -4197,8 +4239,10 @@ ngx_http_v2_finalize_connection(ngx_http_v2_connection_t *h2c, h2c->blocked = 1; - if (!c->error && ngx_http_v2_send_goaway(h2c, status) != NGX_ERROR) { - (void) ngx_http_v2_send_output_queue(h2c); + if (!c->error && !h2c->goaway) { + if (ngx_http_v2_send_goaway(h2c, status) != NGX_ERROR) { + (void) ngx_http_v2_send_output_queue(h2c); + } } c->error = 1; Renamed: vendor/nginx-1.11.6/src/http/v2/ngx_http_v2.h (+1 -0) 99% =================================================================== --- vendor/nginx-1.11.5/src/http/v2/ngx_http_v2.h 2016-11-22 16:30:41 +0900 (d712d38) +++ vendor/nginx-1.11.6/src/http/v2/ngx_http_v2.h 2016-11-22 16:34:42 +0900 (63bbdad) @@ -146,6 +146,7 @@ struct ngx_http_v2_connection_s { unsigned closed_nodes:8; unsigned settings_ack:1; unsigned blocked:1; + unsigned goaway:1; }; Renamed: vendor/nginx-1.11.6/src/http/v2/ngx_http_v2_filter_module.c (+4 -0) 99% =================================================================== --- vendor/nginx-1.11.5/src/http/v2/ngx_http_v2_filter_module.c 2016-11-22 16:30:41 +0900 (4ab7791) +++ vendor/nginx-1.11.6/src/http/v2/ngx_http_v2_filter_module.c 2016-11-22 16:34:42 +0900 (878020e) @@ -1079,6 +1079,10 @@ static ngx_inline ngx_int_t ngx_http_v2_flow_control(ngx_http_v2_connection_t *h2c, ngx_http_v2_stream_t *stream) { + ngx_log_debug3(NGX_LOG_DEBUG_HTTP, h2c->connection->log, 0, + "http2:%ui available windows: conn:%uz stream:%z", + stream->node->id, h2c->send_window, stream->send_window); + if (stream->send_window <= 0) { stream->exhausted = 1; return NGX_DECLINED; Renamed: vendor/nginx-1.11.6/src/http/v2/ngx_http_v2_huff_decode.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/v2/ngx_http_v2_huff_encode.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/http/v2/ngx_http_v2_module.c (+9 -0) 97% =================================================================== --- vendor/nginx-1.11.5/src/http/v2/ngx_http_v2_module.c 2016-11-22 16:30:41 +0900 (b7d99e0) +++ vendor/nginx-1.11.6/src/http/v2/ngx_http_v2_module.c 2016-11-22 16:34:42 +0900 (032abcb) @@ -73,6 +73,13 @@ static ngx_command_t ngx_http_v2_commands[] = { offsetof(ngx_http_v2_srv_conf_t, concurrent_streams), NULL }, + { ngx_string("http2_max_requests"), + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_CONF_TAKE1, + ngx_conf_set_num_slot, + NGX_HTTP_SRV_CONF_OFFSET, + offsetof(ngx_http_v2_srv_conf_t, max_requests), + NULL }, + { ngx_string("http2_max_field_size"), NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_CONF_TAKE1, ngx_conf_set_size_slot, @@ -322,6 +329,7 @@ ngx_http_v2_create_srv_conf(ngx_conf_t *cf) h2scf->pool_size = NGX_CONF_UNSET_SIZE; h2scf->concurrent_streams = NGX_CONF_UNSET_UINT; + h2scf->max_requests = NGX_CONF_UNSET_UINT; h2scf->max_field_size = NGX_CONF_UNSET_SIZE; h2scf->max_header_size = NGX_CONF_UNSET_SIZE; @@ -347,6 +355,7 @@ ngx_http_v2_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child) ngx_conf_merge_uint_value(conf->concurrent_streams, prev->concurrent_streams, 128); + ngx_conf_merge_uint_value(conf->max_requests, prev->max_requests, 1000); ngx_conf_merge_size_value(conf->max_field_size, prev->max_field_size, 4096); Renamed: vendor/nginx-1.11.6/src/http/v2/ngx_http_v2_module.h (+1 -0) 95% =================================================================== --- vendor/nginx-1.11.5/src/http/v2/ngx_http_v2_module.h 2016-11-22 16:30:41 +0900 (91f97c2) +++ vendor/nginx-1.11.6/src/http/v2/ngx_http_v2_module.h 2016-11-22 16:34:42 +0900 (540f826) @@ -23,6 +23,7 @@ typedef struct { typedef struct { size_t pool_size; ngx_uint_t concurrent_streams; + ngx_uint_t max_requests; size_t max_field_size; size_t max_header_size; size_t preread_size; Renamed: vendor/nginx-1.11.6/src/http/v2/ngx_http_v2_table.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/mail/ngx_mail.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/mail/ngx_mail.h (+10 -3) 96% =================================================================== --- vendor/nginx-1.11.5/src/mail/ngx_mail.h 2016-11-22 16:30:41 +0900 (c30af35) +++ vendor/nginx-1.11.6/src/mail/ngx_mail.h 2016-11-22 16:34:42 +0900 (6002508) @@ -132,7 +132,8 @@ typedef enum { ngx_pop3_auth_login_username, ngx_pop3_auth_login_password, ngx_pop3_auth_plain, - ngx_pop3_auth_cram_md5 + ngx_pop3_auth_cram_md5, + ngx_pop3_auth_external } ngx_pop3_state_e; @@ -142,6 +143,7 @@ typedef enum { ngx_imap_auth_login_password, ngx_imap_auth_plain, ngx_imap_auth_cram_md5, + ngx_imap_auth_external, ngx_imap_login, ngx_imap_user, ngx_imap_passwd @@ -154,6 +156,7 @@ typedef enum { ngx_smtp_auth_login_password, ngx_smtp_auth_plain, ngx_smtp_auth_cram_md5, + ngx_smtp_auth_external, ngx_smtp_helo, ngx_smtp_helo_xclient, ngx_smtp_helo_from, @@ -285,14 +288,16 @@ typedef struct { #define NGX_MAIL_AUTH_LOGIN_USERNAME 2 #define NGX_MAIL_AUTH_APOP 3 #define NGX_MAIL_AUTH_CRAM_MD5 4 -#define NGX_MAIL_AUTH_NONE 5 +#define NGX_MAIL_AUTH_EXTERNAL 5 +#define NGX_MAIL_AUTH_NONE 6 #define NGX_MAIL_AUTH_PLAIN_ENABLED 0x0002 #define NGX_MAIL_AUTH_LOGIN_ENABLED 0x0004 #define NGX_MAIL_AUTH_APOP_ENABLED 0x0008 #define NGX_MAIL_AUTH_CRAM_MD5_ENABLED 0x0010 -#define NGX_MAIL_AUTH_NONE_ENABLED 0x0020 +#define NGX_MAIL_AUTH_EXTERNAL_ENABLED 0x0020 +#define NGX_MAIL_AUTH_NONE_ENABLED 0x0040 #define NGX_MAIL_PARSE_INVALID_COMMAND 20 @@ -377,6 +382,8 @@ ngx_int_t ngx_mail_auth_login_password(ngx_mail_session_t *s, ngx_int_t ngx_mail_auth_cram_md5_salt(ngx_mail_session_t *s, ngx_connection_t *c, char *prefix, size_t len); ngx_int_t ngx_mail_auth_cram_md5(ngx_mail_session_t *s, ngx_connection_t *c); +ngx_int_t ngx_mail_auth_external(ngx_mail_session_t *s, ngx_connection_t *c, + ngx_uint_t n); ngx_int_t ngx_mail_auth_parse(ngx_mail_session_t *s, ngx_connection_t *c); void ngx_mail_send(ngx_event_t *wev); Renamed: vendor/nginx-1.11.6/src/mail/ngx_mail_auth_http_module.c (+1 -0) 99% =================================================================== --- vendor/nginx-1.11.5/src/mail/ngx_mail_auth_http_module.c 2016-11-22 16:30:41 +0900 (a94434a) +++ vendor/nginx-1.11.6/src/mail/ngx_mail_auth_http_module.c 2016-11-22 16:34:42 +0900 (6b57358) @@ -151,6 +151,7 @@ static ngx_str_t ngx_mail_auth_http_method[] = { ngx_string("plain"), ngx_string("apop"), ngx_string("cram-md5"), + ngx_string("external"), ngx_string("none") }; Renamed: vendor/nginx-1.11.6/src/mail/ngx_mail_core_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/mail/ngx_mail_handler.c (+34 -0) 95% =================================================================== --- vendor/nginx-1.11.5/src/mail/ngx_mail_handler.c 2016-11-22 16:30:41 +0900 (901bb8f) +++ vendor/nginx-1.11.6/src/mail/ngx_mail_handler.c 2016-11-22 16:34:42 +0900 (9d4ef56) @@ -612,6 +612,40 @@ ngx_mail_auth_cram_md5(ngx_mail_session_t *s, ngx_connection_t *c) } +ngx_int_t +ngx_mail_auth_external(ngx_mail_session_t *s, ngx_connection_t *c, + ngx_uint_t n) +{ + ngx_str_t *arg, external; + + arg = s->args.elts; + + ngx_log_debug1(NGX_LOG_DEBUG_MAIL, c->log, 0, + "mail auth external: \"%V\"", &arg[n]); + + external.data = ngx_pnalloc(c->pool, ngx_base64_decoded_length(arg[n].len)); + if (external.data == NULL) { + return NGX_ERROR; + } + + if (ngx_decode_base64(&external, &arg[n]) != NGX_OK) { + ngx_log_error(NGX_LOG_INFO, c->log, 0, + "client sent invalid base64 encoding in AUTH EXTERNAL command"); + return NGX_MAIL_PARSE_INVALID_COMMAND; + } + + s->login.len = external.len; + s->login.data = external.data; + + ngx_log_debug1(NGX_LOG_DEBUG_MAIL, c->log, 0, + "mail auth external: \"%V\"", &s->login); + + s->auth_method = NGX_MAIL_AUTH_EXTERNAL; + + return NGX_DONE; +} + + void ngx_mail_send(ngx_event_t *wev) { Renamed: vendor/nginx-1.11.6/src/mail/ngx_mail_imap_handler.c (+11 -0) 97% =================================================================== --- vendor/nginx-1.11.5/src/mail/ngx_mail_imap_handler.c 2016-11-22 16:30:41 +0900 (57e2fb7) +++ vendor/nginx-1.11.6/src/mail/ngx_mail_imap_handler.c 2016-11-22 16:34:42 +0900 (1c54457) @@ -222,6 +222,10 @@ ngx_mail_imap_auth_state(ngx_event_t *rev) case ngx_imap_auth_cram_md5: rc = ngx_mail_auth_cram_md5(s, c); break; + + case ngx_imap_auth_external: + rc = ngx_mail_auth_external(s, c, 0); + break; } } else if (rc == NGX_IMAP_NEXT) { @@ -399,6 +403,13 @@ ngx_mail_imap_authenticate(ngx_mail_session_t *s, ngx_connection_t *c) } return NGX_ERROR; + + case NGX_MAIL_AUTH_EXTERNAL: + + ngx_str_set(&s->out, imap_username); + s->mail_state = ngx_imap_auth_external; + + return NGX_OK; } return rc; Renamed: vendor/nginx-1.11.6/src/mail/ngx_mail_imap_module.c (+4 -2) 97% =================================================================== --- vendor/nginx-1.11.5/src/mail/ngx_mail_imap_module.c 2016-11-22 16:30:41 +0900 (d281070) +++ vendor/nginx-1.11.6/src/mail/ngx_mail_imap_module.c 2016-11-22 16:34:42 +0900 (1f187fd) @@ -29,6 +29,7 @@ static ngx_conf_bitmask_t ngx_mail_imap_auth_methods[] = { { ngx_string("plain"), NGX_MAIL_AUTH_PLAIN_ENABLED }, { ngx_string("login"), NGX_MAIL_AUTH_LOGIN_ENABLED }, { ngx_string("cram-md5"), NGX_MAIL_AUTH_CRAM_MD5_ENABLED }, + { ngx_string("external"), NGX_MAIL_AUTH_EXTERNAL_ENABLED }, { ngx_null_string, 0 } }; @@ -38,6 +39,7 @@ static ngx_str_t ngx_mail_imap_auth_methods_names[] = { ngx_string("AUTH=LOGIN"), ngx_null_string, /* APOP */ ngx_string("AUTH=CRAM-MD5"), + ngx_string("AUTH=EXTERNAL"), ngx_null_string /* NONE */ }; @@ -179,7 +181,7 @@ ngx_mail_imap_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child) } for (m = NGX_MAIL_AUTH_PLAIN_ENABLED, i = 0; - m <= NGX_MAIL_AUTH_CRAM_MD5_ENABLED; + m <= NGX_MAIL_AUTH_EXTERNAL_ENABLED; m <<= 1, i++) { if (m & conf->auth_methods) { @@ -205,7 +207,7 @@ ngx_mail_imap_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child) auth = p; for (m = NGX_MAIL_AUTH_PLAIN_ENABLED, i = 0; - m <= NGX_MAIL_AUTH_CRAM_MD5_ENABLED; + m <= NGX_MAIL_AUTH_EXTERNAL_ENABLED; m <<= 1, i++) { if (m & conf->auth_methods) { Renamed: vendor/nginx-1.11.6/src/mail/ngx_mail_imap_module.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/mail/ngx_mail_parse.c (+18 -4) 98% =================================================================== --- vendor/nginx-1.11.5/src/mail/ngx_mail_parse.c 2016-11-22 16:30:41 +0900 (b158f5a) +++ vendor/nginx-1.11.6/src/mail/ngx_mail_parse.c 2016-11-22 16:34:42 +0900 (2c2cdff) @@ -905,13 +905,27 @@ ngx_mail_auth_parse(ngx_mail_session_t *s, ngx_connection_t *c) if (arg[0].len == 8) { - if (s->args.nelts != 1) { - return NGX_MAIL_PARSE_INVALID_COMMAND; - } - if (ngx_strncasecmp(arg[0].data, (u_char *) "CRAM-MD5", 8) == 0) { + + if (s->args.nelts != 1) { + return NGX_MAIL_PARSE_INVALID_COMMAND; + } + return NGX_MAIL_AUTH_CRAM_MD5; } + + if (ngx_strncasecmp(arg[0].data, (u_char *) "EXTERNAL", 8) == 0) { + + if (s->args.nelts == 1) { + return NGX_MAIL_AUTH_EXTERNAL; + } + + if (s->args.nelts == 2) { + return ngx_mail_auth_external(s, c, 1); + } + } + + return NGX_MAIL_PARSE_INVALID_COMMAND; } return NGX_MAIL_PARSE_INVALID_COMMAND; Renamed: vendor/nginx-1.11.6/src/mail/ngx_mail_pop3_handler.c (+11 -0) 97% =================================================================== --- vendor/nginx-1.11.5/src/mail/ngx_mail_pop3_handler.c 2016-11-22 16:30:41 +0900 (51bc257) +++ vendor/nginx-1.11.6/src/mail/ngx_mail_pop3_handler.c 2016-11-22 16:34:42 +0900 (a2d5658) @@ -240,6 +240,10 @@ ngx_mail_pop3_auth_state(ngx_event_t *rev) case ngx_pop3_auth_cram_md5: rc = ngx_mail_auth_cram_md5(s, c); break; + + case ngx_pop3_auth_external: + rc = ngx_mail_auth_external(s, c, 0); + break; } } @@ -494,6 +498,13 @@ ngx_mail_pop3_auth(ngx_mail_session_t *s, ngx_connection_t *c) } return NGX_ERROR; + + case NGX_MAIL_AUTH_EXTERNAL: + + ngx_str_set(&s->out, pop3_username); + s->mail_state = ngx_pop3_auth_external; + + return NGX_OK; } return rc; Renamed: vendor/nginx-1.11.6/src/mail/ngx_mail_pop3_module.c (+68 -28) 73% =================================================================== --- vendor/nginx-1.11.5/src/mail/ngx_mail_pop3_module.c 2016-11-22 16:30:41 +0900 (73f8531) +++ vendor/nginx-1.11.6/src/mail/ngx_mail_pop3_module.c 2016-11-22 16:34:42 +0900 (bd60e0a) @@ -29,23 +29,19 @@ static ngx_conf_bitmask_t ngx_mail_pop3_auth_methods[] = { { ngx_string("plain"), NGX_MAIL_AUTH_PLAIN_ENABLED }, { ngx_string("apop"), NGX_MAIL_AUTH_APOP_ENABLED }, { ngx_string("cram-md5"), NGX_MAIL_AUTH_CRAM_MD5_ENABLED }, + { ngx_string("external"), NGX_MAIL_AUTH_EXTERNAL_ENABLED }, { ngx_null_string, 0 } }; -static ngx_str_t ngx_mail_pop3_auth_plain_capability = - ngx_string("+OK methods supported:" CRLF - "LOGIN" CRLF - "PLAIN" CRLF - "." CRLF); - - -static ngx_str_t ngx_mail_pop3_auth_cram_md5_capability = - ngx_string("+OK methods supported:" CRLF - "LOGIN" CRLF - "PLAIN" CRLF - "CRAM-MD5" CRLF - "." CRLF); +static ngx_str_t ngx_mail_pop3_auth_methods_names[] = { + ngx_string("PLAIN"), + ngx_string("LOGIN"), + ngx_null_string, /* APOP */ + ngx_string("CRAM-MD5"), + ngx_string("EXTERNAL"), + ngx_null_string /* NONE */ +}; static ngx_mail_protocol_t ngx_mail_pop3_protocol = { @@ -140,13 +136,17 @@ ngx_mail_pop3_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child) u_char *p; size_t size, stls_only_size; ngx_str_t *c, *d; - ngx_uint_t i; + ngx_uint_t i, m; ngx_conf_merge_bitmask_value(conf->auth_methods, prev->auth_methods, (NGX_CONF_BITMASK_SET |NGX_MAIL_AUTH_PLAIN_ENABLED)); + if (conf->auth_methods & NGX_MAIL_AUTH_PLAIN_ENABLED) { + conf->auth_methods |= NGX_MAIL_AUTH_LOGIN_ENABLED; + } + if (conf->capabilities.nelts == 0) { conf->capabilities = prev->capabilities; } @@ -179,11 +179,15 @@ ngx_mail_pop3_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child) stls_only_size += c[i].len + sizeof(CRLF) - 1; } - if (conf->auth_methods & NGX_MAIL_AUTH_CRAM_MD5_ENABLED) { - size += sizeof("SASL LOGIN PLAIN CRAM-MD5" CRLF) - 1; + size += sizeof("SASL") - 1 + sizeof(CRLF) - 1; - } else { - size += sizeof("SASL LOGIN PLAIN" CRLF) - 1; + for (m = NGX_MAIL_AUTH_PLAIN_ENABLED, i = 0; + m <= NGX_MAIL_AUTH_EXTERNAL_ENABLED; + m <<= 1, i++) + { + if (m & conf->auth_methods) { + size += 1 + ngx_mail_pop3_auth_methods_names[i].len; + } } p = ngx_pnalloc(cf->pool, size); @@ -202,15 +206,21 @@ ngx_mail_pop3_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child) *p++ = CR; *p++ = LF; } - if (conf->auth_methods & NGX_MAIL_AUTH_CRAM_MD5_ENABLED) { - p = ngx_cpymem(p, "SASL LOGIN PLAIN CRAM-MD5" CRLF, - sizeof("SASL LOGIN PLAIN CRAM-MD5" CRLF) - 1); + p = ngx_cpymem(p, "SASL", sizeof("SASL") - 1); - } else { - p = ngx_cpymem(p, "SASL LOGIN PLAIN" CRLF, - sizeof("SASL LOGIN PLAIN" CRLF) - 1); + for (m = NGX_MAIL_AUTH_PLAIN_ENABLED, i = 0; + m <= NGX_MAIL_AUTH_EXTERNAL_ENABLED; + m <<= 1, i++) + { + if (m & conf->auth_methods) { + *p++ = ' '; + p = ngx_cpymem(p, ngx_mail_pop3_auth_methods_names[i].data, + ngx_mail_pop3_auth_methods_names[i].len); + } } + *p++ = CR; *p++ = LF; + *p++ = '.'; *p++ = CR; *p = LF; @@ -231,13 +241,43 @@ ngx_mail_pop3_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child) *p++ = '.'; *p++ = CR; *p = LF; - if (conf->auth_methods & NGX_MAIL_AUTH_CRAM_MD5_ENABLED) { - conf->auth_capability = ngx_mail_pop3_auth_cram_md5_capability; + size = sizeof("+OK methods supported:" CRLF) - 1 + + sizeof("." CRLF) - 1; + + for (m = NGX_MAIL_AUTH_PLAIN_ENABLED, i = 0; + m <= NGX_MAIL_AUTH_EXTERNAL_ENABLED; + m <<= 1, i++) + { + if (m & conf->auth_methods) { + size += ngx_mail_pop3_auth_methods_names[i].len + + sizeof(CRLF) - 1; + } + } + + p = ngx_pnalloc(cf->pool, size); + if (p == NULL) { + return NGX_CONF_ERROR; + } - } else { - conf->auth_capability = ngx_mail_pop3_auth_plain_capability; + conf->auth_capability.data = p; + conf->auth_capability.len = size; + + p = ngx_cpymem(p, "+OK methods supported:" CRLF, + sizeof("+OK methods supported:" CRLF) - 1); + + for (m = NGX_MAIL_AUTH_PLAIN_ENABLED, i = 0; + m <= NGX_MAIL_AUTH_EXTERNAL_ENABLED; + m <<= 1, i++) + { + if (m & conf->auth_methods) { + p = ngx_cpymem(p, ngx_mail_pop3_auth_methods_names[i].data, + ngx_mail_pop3_auth_methods_names[i].len); + *p++ = CR; *p++ = LF; + } } + *p++ = '.'; *p++ = CR; *p = LF; + p = ngx_pnalloc(cf->pool, stls_only_size); if (p == NULL) { Renamed: vendor/nginx-1.11.6/src/mail/ngx_mail_pop3_module.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/mail/ngx_mail_proxy_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/mail/ngx_mail_smtp_handler.c (+11 -0) 98% =================================================================== --- vendor/nginx-1.11.5/src/mail/ngx_mail_smtp_handler.c 2016-11-22 16:30:41 +0900 (81cc75f) +++ vendor/nginx-1.11.6/src/mail/ngx_mail_smtp_handler.c 2016-11-22 16:34:42 +0900 (47756c3) @@ -485,6 +485,10 @@ ngx_mail_smtp_auth_state(ngx_event_t *rev) case ngx_smtp_auth_cram_md5: rc = ngx_mail_auth_cram_md5(s, c); break; + + case ngx_smtp_auth_external: + rc = ngx_mail_auth_external(s, c, 0); + break; } } @@ -652,6 +656,13 @@ ngx_mail_smtp_auth(ngx_mail_session_t *s, ngx_connection_t *c) } return NGX_ERROR; + + case NGX_MAIL_AUTH_EXTERNAL: + + ngx_str_set(&s->out, smtp_username); + s->mail_state = ngx_smtp_auth_external; + + return NGX_OK; } return rc; Renamed: vendor/nginx-1.11.6/src/mail/ngx_mail_smtp_module.c (+4 -2) 97% =================================================================== --- vendor/nginx-1.11.5/src/mail/ngx_mail_smtp_module.c 2016-11-22 16:30:41 +0900 (d5bb51c) +++ vendor/nginx-1.11.6/src/mail/ngx_mail_smtp_module.c 2016-11-22 16:34:42 +0900 (f03bd90) @@ -21,6 +21,7 @@ static ngx_conf_bitmask_t ngx_mail_smtp_auth_methods[] = { { ngx_string("plain"), NGX_MAIL_AUTH_PLAIN_ENABLED }, { ngx_string("login"), NGX_MAIL_AUTH_LOGIN_ENABLED }, { ngx_string("cram-md5"), NGX_MAIL_AUTH_CRAM_MD5_ENABLED }, + { ngx_string("external"), NGX_MAIL_AUTH_EXTERNAL_ENABLED }, { ngx_string("none"), NGX_MAIL_AUTH_NONE_ENABLED }, { ngx_null_string, 0 } }; @@ -31,6 +32,7 @@ static ngx_str_t ngx_mail_smtp_auth_methods_names[] = { ngx_string("LOGIN"), ngx_null_string, /* APOP */ ngx_string("CRAM-MD5"), + ngx_string("EXTERNAL"), ngx_null_string /* NONE */ }; @@ -207,7 +209,7 @@ ngx_mail_smtp_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child) auth_enabled = 0; for (m = NGX_MAIL_AUTH_PLAIN_ENABLED, i = 0; - m <= NGX_MAIL_AUTH_CRAM_MD5_ENABLED; + m <= NGX_MAIL_AUTH_EXTERNAL_ENABLED; m <<= 1, i++) { if (m & conf->auth_methods) { @@ -250,7 +252,7 @@ ngx_mail_smtp_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child) *p++ = 'A'; *p++ = 'U'; *p++ = 'T'; *p++ = 'H'; for (m = NGX_MAIL_AUTH_PLAIN_ENABLED, i = 0; - m <= NGX_MAIL_AUTH_CRAM_MD5_ENABLED; + m <= NGX_MAIL_AUTH_EXTERNAL_ENABLED; m <<= 1, i++) { if (m & conf->auth_methods) { Renamed: vendor/nginx-1.11.6/src/mail/ngx_mail_smtp_module.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/mail/ngx_mail_ssl_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/mail/ngx_mail_ssl_module.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/misc/ngx_cpp_test_module.cpp (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/misc/ngx_google_perftools_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_alloc.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_alloc.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_atomic.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_channel.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_channel.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_daemon.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_darwin.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_darwin_config.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_darwin_init.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_darwin_sendfile_chain.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_dlopen.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_dlopen.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_errno.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_errno.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_file_aio_read.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_files.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_files.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_freebsd.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_freebsd_config.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_freebsd_init.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_freebsd_sendfile_chain.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_gcc_atomic_amd64.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_gcc_atomic_ppc.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_gcc_atomic_sparc64.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_gcc_atomic_x86.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_linux.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_linux_aio_read.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_linux_config.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_linux_init.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_linux_sendfile_chain.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_os.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_posix_config.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_posix_init.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_process.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_process.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_process_cycle.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_process_cycle.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_readv_chain.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_recv.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_send.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_setaffinity.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_setaffinity.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_setproctitle.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_setproctitle.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_shmem.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_shmem.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_socket.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_socket.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_solaris.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_solaris_config.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_solaris_init.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_solaris_sendfilev_chain.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_sunpro_amd64.il (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_sunpro_atomic_sparc64.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_sunpro_sparc64.il (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_sunpro_x86.il (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_thread.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_thread_cond.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_thread_id.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_thread_mutex.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_time.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_time.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_udp_recv.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_udp_send.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_udp_sendmsg_chain.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_user.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_user.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/unix/ngx_writev_chain.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/nginx.ico (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/nginx.rc (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/nginx_icon16.xpm (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/nginx_icon32.xpm (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/nginx_icon48.xpm (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_alloc.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_alloc.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_atomic.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_dlopen.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_dlopen.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_errno.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_errno.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_event_log.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_files.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_files.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_os.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_process.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_process.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_process_cycle.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_process_cycle.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_service.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_shmem.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_shmem.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_socket.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_socket.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_stat.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_thread.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_thread.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_time.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_time.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_udp_wsarecv.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_user.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_user.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_win32_config.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_win32_init.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_wsarecv.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_wsarecv_chain.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_wsasend.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/os/win32/ngx_wsasend_chain.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/stream/ngx_stream.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/stream/ngx_stream.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/stream/ngx_stream_access_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/stream/ngx_stream_core_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/stream/ngx_stream_geo_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/stream/ngx_stream_geoip_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/stream/ngx_stream_handler.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/stream/ngx_stream_limit_conn_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/stream/ngx_stream_log_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/stream/ngx_stream_map_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/stream/ngx_stream_proxy_module.c (+22 -23) 99% =================================================================== --- vendor/nginx-1.11.5/src/stream/ngx_stream_proxy_module.c 2016-11-22 16:30:41 +0900 (4231f97) +++ vendor/nginx-1.11.6/src/stream/ngx_stream_proxy_module.c 2016-11-22 16:34:42 +0900 (c03b515) @@ -433,6 +433,23 @@ ngx_stream_proxy_handler(ngx_stream_session_t *s) host = &u->resolved->host; + umcf = ngx_stream_get_module_main_conf(s, ngx_stream_upstream_module); + + uscfp = umcf->upstreams.elts; + + for (i = 0; i < umcf->upstreams.nelts; i++) { + + uscf = uscfp[i]; + + if (uscf->host.len == host->len + && ((uscf->port == 0 && u->resolved->no_port) + || uscf->port == u->resolved->port) + && ngx_strncasecmp(uscf->host.data, host->data, host->len) == 0) + { + goto found; + } + } + if (u->resolved->sockaddr) { if (u->resolved->port == 0 @@ -456,23 +473,6 @@ ngx_stream_proxy_handler(ngx_stream_session_t *s) return; } - umcf = ngx_stream_get_module_main_conf(s, ngx_stream_upstream_module); - - uscfp = umcf->upstreams.elts; - - for (i = 0; i < umcf->upstreams.nelts; i++) { - - uscf = uscfp[i]; - - if (uscf->host.len == host->len - && ((uscf->port == 0 && u->resolved->no_port) - || uscf->port == u->resolved->port) - && ngx_strncasecmp(uscf->host.data, host->data, host->len) == 0) - { - goto found; - } - } - if (u->resolved->port == 0) { ngx_log_error(NGX_LOG_ERR, c->log, 0, "no port in upstream \"%V\"", host); @@ -578,16 +578,14 @@ ngx_stream_proxy_eval(ngx_stream_session_t *s, return NGX_ERROR; } - if (url.addrs && url.addrs[0].sockaddr) { + if (url.addrs) { u->resolved->sockaddr = url.addrs[0].sockaddr; u->resolved->socklen = url.addrs[0].socklen; + u->resolved->name = url.addrs[0].name; u->resolved->naddrs = 1; - u->resolved->host = url.addrs[0].name; - - } else { - u->resolved->host = url.host; } + u->resolved->host = url.host; u->resolved->port = url.port; u->resolved->no_port = url.no_port; @@ -1183,7 +1181,8 @@ ngx_stream_proxy_ssl_name(ngx_stream_session_t *s) ngx_log_debug1(NGX_LOG_DEBUG_STREAM, s->connection->log, 0, "upstream SSL server name: \"%s\"", name.data); - if (SSL_set_tlsext_host_name(u->peer.connection->ssl->connection, name.data) + if (SSL_set_tlsext_host_name(u->peer.connection->ssl->connection, + (char *) name.data) == 0) { ngx_ssl_error(NGX_LOG_ERR, s->connection->log, 0, Renamed: vendor/nginx-1.11.6/src/stream/ngx_stream_realip_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/stream/ngx_stream_return_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/stream/ngx_stream_script.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/stream/ngx_stream_script.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/stream/ngx_stream_split_clients_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/stream/ngx_stream_ssl_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/stream/ngx_stream_ssl_module.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/stream/ngx_stream_ssl_preread_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/stream/ngx_stream_upstream.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/stream/ngx_stream_upstream.h (+1 -0) 99% =================================================================== --- vendor/nginx-1.11.5/src/stream/ngx_stream_upstream.h 2016-11-22 16:30:41 +0900 (764a340) +++ vendor/nginx-1.11.6/src/stream/ngx_stream_upstream.h 2016-11-22 16:34:42 +0900 (ec75768) @@ -105,6 +105,7 @@ typedef struct { struct sockaddr *sockaddr; socklen_t socklen; + ngx_str_t name; ngx_resolver_ctx_t *ctx; } ngx_stream_upstream_resolved_t; Renamed: vendor/nginx-1.11.6/src/stream/ngx_stream_upstream_hash_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/stream/ngx_stream_upstream_least_conn_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/stream/ngx_stream_upstream_round_robin.c (+1 -1) 99% =================================================================== --- vendor/nginx-1.11.5/src/stream/ngx_stream_upstream_round_robin.c 2016-11-22 16:30:41 +0900 (3a62501) +++ vendor/nginx-1.11.6/src/stream/ngx_stream_upstream_round_robin.c 2016-11-22 16:34:42 +0900 (db620ef) @@ -344,7 +344,7 @@ ngx_stream_upstream_create_round_robin_peer(ngx_stream_session_t *s, if (ur->sockaddr) { peer[0].sockaddr = ur->sockaddr; peer[0].socklen = ur->socklen; - peer[0].name = ur->host; + peer[0].name = ur->name; peer[0].weight = 1; peer[0].effective_weight = 1; peer[0].current_weight = 0; Renamed: vendor/nginx-1.11.6/src/stream/ngx_stream_upstream_round_robin.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/stream/ngx_stream_upstream_zone_module.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/stream/ngx_stream_variables.c (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/stream/ngx_stream_variables.h (+0 -0) 100% =================================================================== Renamed: vendor/nginx-1.11.6/src/stream/ngx_stream_write_filter_module.c (+0 -0) 100% ===================================================================