[Groonga-commit] groonga/groonga at 96e0e7c [master] Revert "nginx: update nginx"

Back to archive index
Kentaro Hayashi null+****@clear*****
Wed Mar 27 13:17:47 JST 2019


Kentaro Hayashi	2019-03-27 13:17:47 +0900 (Wed, 27 Mar 2019)

  Revision: 96e0e7c01c1b4bf046aee4edd75ea9732596118b
  https://github.com/groonga/groonga/commit/96e0e7c01c1b4bf046aee4edd75ea9732596118b

  Message:
    Revert "nginx: update nginx"
    
    This reverts commit bf4ac6b49647ab0281454337de9ee25cdc8504dd.
    
    We need to wait until ngx_mruby supports 1.15.10.
    See https://github.com/matsumotory/ngx_mruby/pull/419

  Removed files:
    vendor/nginx-1.15.10/src/event/modules/ngx_win32_poll_module.c
  Modified files:
    nginx_version
  Renamed files:
    vendor/nginx-1.15.8/auto/cc/acc
      (from vendor/nginx-1.15.10/auto/cc/acc)
    vendor/nginx-1.15.8/auto/cc/bcc
      (from vendor/nginx-1.15.10/auto/cc/bcc)
    vendor/nginx-1.15.8/auto/cc/ccc
      (from vendor/nginx-1.15.10/auto/cc/ccc)
    vendor/nginx-1.15.8/auto/cc/clang
      (from vendor/nginx-1.15.10/auto/cc/clang)
    vendor/nginx-1.15.8/auto/cc/conf
      (from vendor/nginx-1.15.10/auto/cc/conf)
    vendor/nginx-1.15.8/auto/cc/gcc
      (from vendor/nginx-1.15.10/auto/cc/gcc)
    vendor/nginx-1.15.8/auto/cc/icc
      (from vendor/nginx-1.15.10/auto/cc/icc)
    vendor/nginx-1.15.8/auto/cc/msvc
      (from vendor/nginx-1.15.10/auto/cc/msvc)
    vendor/nginx-1.15.8/auto/cc/name
      (from vendor/nginx-1.15.10/auto/cc/name)
    vendor/nginx-1.15.8/auto/cc/owc
      (from vendor/nginx-1.15.10/auto/cc/owc)
    vendor/nginx-1.15.8/auto/cc/sunc
      (from vendor/nginx-1.15.10/auto/cc/sunc)
    vendor/nginx-1.15.8/auto/configure
      (from vendor/nginx-1.15.10/auto/configure)
    vendor/nginx-1.15.8/auto/define
      (from vendor/nginx-1.15.10/auto/define)
    vendor/nginx-1.15.8/auto/endianness
      (from vendor/nginx-1.15.10/auto/endianness)
    vendor/nginx-1.15.8/auto/feature
      (from vendor/nginx-1.15.10/auto/feature)
    vendor/nginx-1.15.8/auto/have
      (from vendor/nginx-1.15.10/auto/have)
    vendor/nginx-1.15.8/auto/have_headers
      (from vendor/nginx-1.15.10/auto/have_headers)
    vendor/nginx-1.15.8/auto/headers
      (from vendor/nginx-1.15.10/auto/headers)
    vendor/nginx-1.15.8/auto/include
      (from vendor/nginx-1.15.10/auto/include)
    vendor/nginx-1.15.8/auto/init
      (from vendor/nginx-1.15.10/auto/init)
    vendor/nginx-1.15.8/auto/install
      (from vendor/nginx-1.15.10/auto/install)
    vendor/nginx-1.15.8/auto/lib/conf
      (from vendor/nginx-1.15.10/auto/lib/conf)
    vendor/nginx-1.15.8/auto/lib/geoip/conf
      (from vendor/nginx-1.15.10/auto/lib/geoip/conf)
    vendor/nginx-1.15.8/auto/lib/google-perftools/conf
      (from vendor/nginx-1.15.10/auto/lib/google-perftools/conf)
    vendor/nginx-1.15.8/auto/lib/libatomic/conf
      (from vendor/nginx-1.15.10/auto/lib/libatomic/conf)
    vendor/nginx-1.15.8/auto/lib/libatomic/make
      (from vendor/nginx-1.15.10/auto/lib/libatomic/make)
    vendor/nginx-1.15.8/auto/lib/libgd/conf
      (from vendor/nginx-1.15.10/auto/lib/libgd/conf)
    vendor/nginx-1.15.8/auto/lib/libxslt/conf
      (from vendor/nginx-1.15.10/auto/lib/libxslt/conf)
    vendor/nginx-1.15.8/auto/lib/make
      (from vendor/nginx-1.15.10/auto/lib/make)
    vendor/nginx-1.15.8/auto/lib/openssl/conf
      (from vendor/nginx-1.15.10/auto/lib/openssl/conf)
    vendor/nginx-1.15.8/auto/lib/openssl/make
      (from vendor/nginx-1.15.10/auto/lib/openssl/make)
    vendor/nginx-1.15.8/auto/lib/openssl/makefile.bcc
      (from vendor/nginx-1.15.10/auto/lib/openssl/makefile.bcc)
    vendor/nginx-1.15.8/auto/lib/openssl/makefile.msvc
      (from vendor/nginx-1.15.10/auto/lib/openssl/makefile.msvc)
    vendor/nginx-1.15.8/auto/lib/pcre/conf
      (from vendor/nginx-1.15.10/auto/lib/pcre/conf)
    vendor/nginx-1.15.8/auto/lib/pcre/make
      (from vendor/nginx-1.15.10/auto/lib/pcre/make)
    vendor/nginx-1.15.8/auto/lib/pcre/makefile.bcc
      (from vendor/nginx-1.15.10/auto/lib/pcre/makefile.bcc)
    vendor/nginx-1.15.8/auto/lib/pcre/makefile.msvc
      (from vendor/nginx-1.15.10/auto/lib/pcre/makefile.msvc)
    vendor/nginx-1.15.8/auto/lib/pcre/makefile.owc
      (from vendor/nginx-1.15.10/auto/lib/pcre/makefile.owc)
    vendor/nginx-1.15.8/auto/lib/perl/conf
      (from vendor/nginx-1.15.10/auto/lib/perl/conf)
    vendor/nginx-1.15.8/auto/lib/perl/make
      (from vendor/nginx-1.15.10/auto/lib/perl/make)
    vendor/nginx-1.15.8/auto/lib/zlib/conf
      (from vendor/nginx-1.15.10/auto/lib/zlib/conf)
    vendor/nginx-1.15.8/auto/lib/zlib/make
      (from vendor/nginx-1.15.10/auto/lib/zlib/make)
    vendor/nginx-1.15.8/auto/lib/zlib/makefile.bcc
      (from vendor/nginx-1.15.10/auto/lib/zlib/makefile.bcc)
    vendor/nginx-1.15.8/auto/lib/zlib/makefile.msvc
      (from vendor/nginx-1.15.10/auto/lib/zlib/makefile.msvc)
    vendor/nginx-1.15.8/auto/lib/zlib/makefile.owc
      (from vendor/nginx-1.15.10/auto/lib/zlib/makefile.owc)
    vendor/nginx-1.15.8/auto/make
      (from vendor/nginx-1.15.10/auto/make)
    vendor/nginx-1.15.8/auto/module
      (from vendor/nginx-1.15.10/auto/module)
    vendor/nginx-1.15.8/auto/modules
      (from vendor/nginx-1.15.10/auto/modules)
    vendor/nginx-1.15.8/auto/nohave
      (from vendor/nginx-1.15.10/auto/nohave)
    vendor/nginx-1.15.8/auto/options
      (from vendor/nginx-1.15.10/auto/options)
    vendor/nginx-1.15.8/auto/os/conf
      (from vendor/nginx-1.15.10/auto/os/conf)
    vendor/nginx-1.15.8/auto/os/darwin
      (from vendor/nginx-1.15.10/auto/os/darwin)
    vendor/nginx-1.15.8/auto/os/freebsd
      (from vendor/nginx-1.15.10/auto/os/freebsd)
    vendor/nginx-1.15.8/auto/os/linux
      (from vendor/nginx-1.15.10/auto/os/linux)
    vendor/nginx-1.15.8/auto/os/solaris
      (from vendor/nginx-1.15.10/auto/os/solaris)
    vendor/nginx-1.15.8/auto/os/win32
      (from vendor/nginx-1.15.10/auto/os/win32)
    vendor/nginx-1.15.8/auto/sources
      (from vendor/nginx-1.15.10/auto/sources)
    vendor/nginx-1.15.8/auto/stubs
      (from vendor/nginx-1.15.10/auto/stubs)
    vendor/nginx-1.15.8/auto/summary
      (from vendor/nginx-1.15.10/auto/summary)
    vendor/nginx-1.15.8/auto/threads
      (from vendor/nginx-1.15.10/auto/threads)
    vendor/nginx-1.15.8/auto/types/sizeof
      (from vendor/nginx-1.15.10/auto/types/sizeof)
    vendor/nginx-1.15.8/auto/types/typedef
      (from vendor/nginx-1.15.10/auto/types/typedef)
    vendor/nginx-1.15.8/auto/types/uintptr_t
      (from vendor/nginx-1.15.10/auto/types/uintptr_t)
    vendor/nginx-1.15.8/auto/types/value
      (from vendor/nginx-1.15.10/auto/types/value)
    vendor/nginx-1.15.8/auto/unix
      (from vendor/nginx-1.15.10/auto/unix)
    vendor/nginx-1.15.8/conf/fastcgi.conf
      (from vendor/nginx-1.15.10/conf/fastcgi.conf)
    vendor/nginx-1.15.8/conf/fastcgi_params
      (from vendor/nginx-1.15.10/conf/fastcgi_params)
    vendor/nginx-1.15.8/conf/koi-utf
      (from vendor/nginx-1.15.10/conf/koi-utf)
    vendor/nginx-1.15.8/conf/koi-win
      (from vendor/nginx-1.15.10/conf/koi-win)
    vendor/nginx-1.15.8/conf/mime.types
      (from vendor/nginx-1.15.10/conf/mime.types)
    vendor/nginx-1.15.8/conf/nginx.conf
      (from vendor/nginx-1.15.10/conf/nginx.conf)
    vendor/nginx-1.15.8/conf/scgi_params
      (from vendor/nginx-1.15.10/conf/scgi_params)
    vendor/nginx-1.15.8/conf/uwsgi_params
      (from vendor/nginx-1.15.10/conf/uwsgi_params)
    vendor/nginx-1.15.8/conf/win-utf
      (from vendor/nginx-1.15.10/conf/win-utf)
    vendor/nginx-1.15.8/contrib/README
      (from vendor/nginx-1.15.10/contrib/README)
    vendor/nginx-1.15.8/contrib/geo2nginx.pl
      (from vendor/nginx-1.15.10/contrib/geo2nginx.pl)
    vendor/nginx-1.15.8/contrib/unicode2nginx/koi-utf
      (from vendor/nginx-1.15.10/contrib/unicode2nginx/koi-utf)
    vendor/nginx-1.15.8/contrib/unicode2nginx/unicode-to-nginx.pl
      (from vendor/nginx-1.15.10/contrib/unicode2nginx/unicode-to-nginx.pl)
    vendor/nginx-1.15.8/contrib/unicode2nginx/win-utf
      (from vendor/nginx-1.15.10/contrib/unicode2nginx/win-utf)
    vendor/nginx-1.15.8/contrib/vim/ftdetect/nginx.vim
      (from vendor/nginx-1.15.10/contrib/vim/ftdetect/nginx.vim)
    vendor/nginx-1.15.8/contrib/vim/ftplugin/nginx.vim
      (from vendor/nginx-1.15.10/contrib/vim/ftplugin/nginx.vim)
    vendor/nginx-1.15.8/contrib/vim/indent/nginx.vim
      (from vendor/nginx-1.15.10/contrib/vim/indent/nginx.vim)
    vendor/nginx-1.15.8/contrib/vim/syntax/nginx.vim
      (from vendor/nginx-1.15.10/contrib/vim/syntax/nginx.vim)
    vendor/nginx-1.15.8/docs/GNUmakefile
      (from vendor/nginx-1.15.10/docs/GNUmakefile)
    vendor/nginx-1.15.8/docs/dtd/change_log_conf.dtd
      (from vendor/nginx-1.15.10/docs/dtd/change_log_conf.dtd)
    vendor/nginx-1.15.8/docs/dtd/changes.dtd
      (from vendor/nginx-1.15.10/docs/dtd/changes.dtd)
    vendor/nginx-1.15.8/docs/html/50x.html
      (from vendor/nginx-1.15.10/docs/html/50x.html)
    vendor/nginx-1.15.8/docs/html/index.html
      (from vendor/nginx-1.15.10/docs/html/index.html)
    vendor/nginx-1.15.8/docs/man/nginx.8
      (from vendor/nginx-1.15.10/docs/man/nginx.8)
    vendor/nginx-1.15.8/docs/text/LICENSE
      (from vendor/nginx-1.15.10/docs/text/LICENSE)
    vendor/nginx-1.15.8/docs/text/README
      (from vendor/nginx-1.15.10/docs/text/README)
    vendor/nginx-1.15.8/docs/xml/change_log_conf.xml
      (from vendor/nginx-1.15.10/docs/xml/change_log_conf.xml)
    vendor/nginx-1.15.8/docs/xml/nginx/changes.xml
      (from vendor/nginx-1.15.10/docs/xml/nginx/changes.xml)
    vendor/nginx-1.15.8/docs/xsls/changes.xsls
      (from vendor/nginx-1.15.10/docs/xsls/changes.xsls)
    vendor/nginx-1.15.8/docs/xslt/changes.xslt
      (from vendor/nginx-1.15.10/docs/xslt/changes.xslt)
    vendor/nginx-1.15.8/misc/GNUmakefile
      (from vendor/nginx-1.15.10/misc/GNUmakefile)
    vendor/nginx-1.15.8/misc/README
      (from vendor/nginx-1.15.10/misc/README)
    vendor/nginx-1.15.8/src/core/nginx.c
      (from vendor/nginx-1.15.10/src/core/nginx.c)
    vendor/nginx-1.15.8/src/core/nginx.h
      (from vendor/nginx-1.15.10/src/core/nginx.h)
    vendor/nginx-1.15.8/src/core/ngx_array.c
      (from vendor/nginx-1.15.10/src/core/ngx_array.c)
    vendor/nginx-1.15.8/src/core/ngx_array.h
      (from vendor/nginx-1.15.10/src/core/ngx_array.h)
    vendor/nginx-1.15.8/src/core/ngx_buf.c
      (from vendor/nginx-1.15.10/src/core/ngx_buf.c)
    vendor/nginx-1.15.8/src/core/ngx_buf.h
      (from vendor/nginx-1.15.10/src/core/ngx_buf.h)
    vendor/nginx-1.15.8/src/core/ngx_conf_file.c
      (from vendor/nginx-1.15.10/src/core/ngx_conf_file.c)
    vendor/nginx-1.15.8/src/core/ngx_conf_file.h
      (from vendor/nginx-1.15.10/src/core/ngx_conf_file.h)
    vendor/nginx-1.15.8/src/core/ngx_config.h
      (from vendor/nginx-1.15.10/src/core/ngx_config.h)
    vendor/nginx-1.15.8/src/core/ngx_connection.c
      (from vendor/nginx-1.15.10/src/core/ngx_connection.c)
    vendor/nginx-1.15.8/src/core/ngx_connection.h
      (from vendor/nginx-1.15.10/src/core/ngx_connection.h)
    vendor/nginx-1.15.8/src/core/ngx_core.h
      (from vendor/nginx-1.15.10/src/core/ngx_core.h)
    vendor/nginx-1.15.8/src/core/ngx_cpuinfo.c
      (from vendor/nginx-1.15.10/src/core/ngx_cpuinfo.c)
    vendor/nginx-1.15.8/src/core/ngx_crc.h
      (from vendor/nginx-1.15.10/src/core/ngx_crc.h)
    vendor/nginx-1.15.8/src/core/ngx_crc32.c
      (from vendor/nginx-1.15.10/src/core/ngx_crc32.c)
    vendor/nginx-1.15.8/src/core/ngx_crc32.h
      (from vendor/nginx-1.15.10/src/core/ngx_crc32.h)
    vendor/nginx-1.15.8/src/core/ngx_crypt.c
      (from vendor/nginx-1.15.10/src/core/ngx_crypt.c)
    vendor/nginx-1.15.8/src/core/ngx_crypt.h
      (from vendor/nginx-1.15.10/src/core/ngx_crypt.h)
    vendor/nginx-1.15.8/src/core/ngx_cycle.c
      (from vendor/nginx-1.15.10/src/core/ngx_cycle.c)
    vendor/nginx-1.15.8/src/core/ngx_cycle.h
      (from vendor/nginx-1.15.10/src/core/ngx_cycle.h)
    vendor/nginx-1.15.8/src/core/ngx_file.c
      (from vendor/nginx-1.15.10/src/core/ngx_file.c)
    vendor/nginx-1.15.8/src/core/ngx_file.h
      (from vendor/nginx-1.15.10/src/core/ngx_file.h)
    vendor/nginx-1.15.8/src/core/ngx_hash.c
      (from vendor/nginx-1.15.10/src/core/ngx_hash.c)
    vendor/nginx-1.15.8/src/core/ngx_hash.h
      (from vendor/nginx-1.15.10/src/core/ngx_hash.h)
    vendor/nginx-1.15.8/src/core/ngx_inet.c
      (from vendor/nginx-1.15.10/src/core/ngx_inet.c)
    vendor/nginx-1.15.8/src/core/ngx_inet.h
      (from vendor/nginx-1.15.10/src/core/ngx_inet.h)
    vendor/nginx-1.15.8/src/core/ngx_list.c
      (from vendor/nginx-1.15.10/src/core/ngx_list.c)
    vendor/nginx-1.15.8/src/core/ngx_list.h
      (from vendor/nginx-1.15.10/src/core/ngx_list.h)
    vendor/nginx-1.15.8/src/core/ngx_log.c
      (from vendor/nginx-1.15.10/src/core/ngx_log.c)
    vendor/nginx-1.15.8/src/core/ngx_log.h
      (from vendor/nginx-1.15.10/src/core/ngx_log.h)
    vendor/nginx-1.15.8/src/core/ngx_md5.c
      (from vendor/nginx-1.15.10/src/core/ngx_md5.c)
    vendor/nginx-1.15.8/src/core/ngx_md5.h
      (from vendor/nginx-1.15.10/src/core/ngx_md5.h)
    vendor/nginx-1.15.8/src/core/ngx_module.c
      (from vendor/nginx-1.15.10/src/core/ngx_module.c)
    vendor/nginx-1.15.8/src/core/ngx_module.h
      (from vendor/nginx-1.15.10/src/core/ngx_module.h)
    vendor/nginx-1.15.8/src/core/ngx_murmurhash.c
      (from vendor/nginx-1.15.10/src/core/ngx_murmurhash.c)
    vendor/nginx-1.15.8/src/core/ngx_murmurhash.h
      (from vendor/nginx-1.15.10/src/core/ngx_murmurhash.h)
    vendor/nginx-1.15.8/src/core/ngx_open_file_cache.c
      (from vendor/nginx-1.15.10/src/core/ngx_open_file_cache.c)
    vendor/nginx-1.15.8/src/core/ngx_open_file_cache.h
      (from vendor/nginx-1.15.10/src/core/ngx_open_file_cache.h)
    vendor/nginx-1.15.8/src/core/ngx_output_chain.c
      (from vendor/nginx-1.15.10/src/core/ngx_output_chain.c)
    vendor/nginx-1.15.8/src/core/ngx_palloc.c
      (from vendor/nginx-1.15.10/src/core/ngx_palloc.c)
    vendor/nginx-1.15.8/src/core/ngx_palloc.h
      (from vendor/nginx-1.15.10/src/core/ngx_palloc.h)
    vendor/nginx-1.15.8/src/core/ngx_parse.c
      (from vendor/nginx-1.15.10/src/core/ngx_parse.c)
    vendor/nginx-1.15.8/src/core/ngx_parse.h
      (from vendor/nginx-1.15.10/src/core/ngx_parse.h)
    vendor/nginx-1.15.8/src/core/ngx_parse_time.c
      (from vendor/nginx-1.15.10/src/core/ngx_parse_time.c)
    vendor/nginx-1.15.8/src/core/ngx_parse_time.h
      (from vendor/nginx-1.15.10/src/core/ngx_parse_time.h)
    vendor/nginx-1.15.8/src/core/ngx_proxy_protocol.c
      (from vendor/nginx-1.15.10/src/core/ngx_proxy_protocol.c)
    vendor/nginx-1.15.8/src/core/ngx_proxy_protocol.h
      (from vendor/nginx-1.15.10/src/core/ngx_proxy_protocol.h)
    vendor/nginx-1.15.8/src/core/ngx_queue.c
      (from vendor/nginx-1.15.10/src/core/ngx_queue.c)
    vendor/nginx-1.15.8/src/core/ngx_queue.h
      (from vendor/nginx-1.15.10/src/core/ngx_queue.h)
    vendor/nginx-1.15.8/src/core/ngx_radix_tree.c
      (from vendor/nginx-1.15.10/src/core/ngx_radix_tree.c)
    vendor/nginx-1.15.8/src/core/ngx_radix_tree.h
      (from vendor/nginx-1.15.10/src/core/ngx_radix_tree.h)
    vendor/nginx-1.15.8/src/core/ngx_rbtree.c
      (from vendor/nginx-1.15.10/src/core/ngx_rbtree.c)
    vendor/nginx-1.15.8/src/core/ngx_rbtree.h
      (from vendor/nginx-1.15.10/src/core/ngx_rbtree.h)
    vendor/nginx-1.15.8/src/core/ngx_regex.c
      (from vendor/nginx-1.15.10/src/core/ngx_regex.c)
    vendor/nginx-1.15.8/src/core/ngx_regex.h
      (from vendor/nginx-1.15.10/src/core/ngx_regex.h)
    vendor/nginx-1.15.8/src/core/ngx_resolver.c
      (from vendor/nginx-1.15.10/src/core/ngx_resolver.c)
    vendor/nginx-1.15.8/src/core/ngx_resolver.h
      (from vendor/nginx-1.15.10/src/core/ngx_resolver.h)
    vendor/nginx-1.15.8/src/core/ngx_rwlock.c
      (from vendor/nginx-1.15.10/src/core/ngx_rwlock.c)
    vendor/nginx-1.15.8/src/core/ngx_rwlock.h
      (from vendor/nginx-1.15.10/src/core/ngx_rwlock.h)
    vendor/nginx-1.15.8/src/core/ngx_sha1.c
      (from vendor/nginx-1.15.10/src/core/ngx_sha1.c)
    vendor/nginx-1.15.8/src/core/ngx_sha1.h
      (from vendor/nginx-1.15.10/src/core/ngx_sha1.h)
    vendor/nginx-1.15.8/src/core/ngx_shmtx.c
      (from vendor/nginx-1.15.10/src/core/ngx_shmtx.c)
    vendor/nginx-1.15.8/src/core/ngx_shmtx.h
      (from vendor/nginx-1.15.10/src/core/ngx_shmtx.h)
    vendor/nginx-1.15.8/src/core/ngx_slab.c
      (from vendor/nginx-1.15.10/src/core/ngx_slab.c)
    vendor/nginx-1.15.8/src/core/ngx_slab.h
      (from vendor/nginx-1.15.10/src/core/ngx_slab.h)
    vendor/nginx-1.15.8/src/core/ngx_spinlock.c
      (from vendor/nginx-1.15.10/src/core/ngx_spinlock.c)
    vendor/nginx-1.15.8/src/core/ngx_string.c
      (from vendor/nginx-1.15.10/src/core/ngx_string.c)
    vendor/nginx-1.15.8/src/core/ngx_string.h
      (from vendor/nginx-1.15.10/src/core/ngx_string.h)
    vendor/nginx-1.15.8/src/core/ngx_syslog.c
      (from vendor/nginx-1.15.10/src/core/ngx_syslog.c)
    vendor/nginx-1.15.8/src/core/ngx_syslog.h
      (from vendor/nginx-1.15.10/src/core/ngx_syslog.h)
    vendor/nginx-1.15.8/src/core/ngx_thread_pool.c
      (from vendor/nginx-1.15.10/src/core/ngx_thread_pool.c)
    vendor/nginx-1.15.8/src/core/ngx_thread_pool.h
      (from vendor/nginx-1.15.10/src/core/ngx_thread_pool.h)
    vendor/nginx-1.15.8/src/core/ngx_times.c
      (from vendor/nginx-1.15.10/src/core/ngx_times.c)
    vendor/nginx-1.15.8/src/core/ngx_times.h
      (from vendor/nginx-1.15.10/src/core/ngx_times.h)
    vendor/nginx-1.15.8/src/event/modules/ngx_devpoll_module.c
      (from vendor/nginx-1.15.10/src/event/modules/ngx_devpoll_module.c)
    vendor/nginx-1.15.8/src/event/modules/ngx_epoll_module.c
      (from vendor/nginx-1.15.10/src/event/modules/ngx_epoll_module.c)
    vendor/nginx-1.15.8/src/event/modules/ngx_eventport_module.c
      (from vendor/nginx-1.15.10/src/event/modules/ngx_eventport_module.c)
    vendor/nginx-1.15.8/src/event/modules/ngx_iocp_module.c
      (from vendor/nginx-1.15.10/src/event/modules/ngx_iocp_module.c)
    vendor/nginx-1.15.8/src/event/modules/ngx_iocp_module.h
      (from vendor/nginx-1.15.10/src/event/modules/ngx_iocp_module.h)
    vendor/nginx-1.15.8/src/event/modules/ngx_kqueue_module.c
      (from vendor/nginx-1.15.10/src/event/modules/ngx_kqueue_module.c)
    vendor/nginx-1.15.8/src/event/modules/ngx_poll_module.c
      (from vendor/nginx-1.15.10/src/event/modules/ngx_poll_module.c)
    vendor/nginx-1.15.8/src/event/modules/ngx_select_module.c
      (from vendor/nginx-1.15.10/src/event/modules/ngx_select_module.c)
    vendor/nginx-1.15.8/src/event/modules/ngx_win32_select_module.c
      (from vendor/nginx-1.15.10/src/event/modules/ngx_win32_select_module.c)
    vendor/nginx-1.15.8/src/event/ngx_event.c
      (from vendor/nginx-1.15.10/src/event/ngx_event.c)
    vendor/nginx-1.15.8/src/event/ngx_event.h
      (from vendor/nginx-1.15.10/src/event/ngx_event.h)
    vendor/nginx-1.15.8/src/event/ngx_event_accept.c
      (from vendor/nginx-1.15.10/src/event/ngx_event_accept.c)
    vendor/nginx-1.15.8/src/event/ngx_event_acceptex.c
      (from vendor/nginx-1.15.10/src/event/ngx_event_acceptex.c)
    vendor/nginx-1.15.8/src/event/ngx_event_connect.c
      (from vendor/nginx-1.15.10/src/event/ngx_event_connect.c)
    vendor/nginx-1.15.8/src/event/ngx_event_connect.h
      (from vendor/nginx-1.15.10/src/event/ngx_event_connect.h)
    vendor/nginx-1.15.8/src/event/ngx_event_connectex.c
      (from vendor/nginx-1.15.10/src/event/ngx_event_connectex.c)
    vendor/nginx-1.15.8/src/event/ngx_event_openssl.c
      (from vendor/nginx-1.15.10/src/event/ngx_event_openssl.c)
    vendor/nginx-1.15.8/src/event/ngx_event_openssl.h
      (from vendor/nginx-1.15.10/src/event/ngx_event_openssl.h)
    vendor/nginx-1.15.8/src/event/ngx_event_openssl_stapling.c
      (from vendor/nginx-1.15.10/src/event/ngx_event_openssl_stapling.c)
    vendor/nginx-1.15.8/src/event/ngx_event_pipe.c
      (from vendor/nginx-1.15.10/src/event/ngx_event_pipe.c)
    vendor/nginx-1.15.8/src/event/ngx_event_pipe.h
      (from vendor/nginx-1.15.10/src/event/ngx_event_pipe.h)
    vendor/nginx-1.15.8/src/event/ngx_event_posted.c
      (from vendor/nginx-1.15.10/src/event/ngx_event_posted.c)
    vendor/nginx-1.15.8/src/event/ngx_event_posted.h
      (from vendor/nginx-1.15.10/src/event/ngx_event_posted.h)
    vendor/nginx-1.15.8/src/event/ngx_event_timer.c
      (from vendor/nginx-1.15.10/src/event/ngx_event_timer.c)
    vendor/nginx-1.15.8/src/event/ngx_event_timer.h
      (from vendor/nginx-1.15.10/src/event/ngx_event_timer.h)
    vendor/nginx-1.15.8/src/event/ngx_event_udp.c
      (from vendor/nginx-1.15.10/src/event/ngx_event_udp.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_access_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_access_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_addition_filter_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_addition_filter_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_auth_basic_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_auth_basic_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_auth_request_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_auth_request_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_autoindex_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_autoindex_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_browser_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_browser_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_charset_filter_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_charset_filter_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_chunked_filter_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_chunked_filter_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_dav_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_dav_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_degradation_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_degradation_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_empty_gif_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_empty_gif_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_fastcgi_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_fastcgi_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_flv_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_flv_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_geo_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_geo_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_geoip_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_geoip_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_grpc_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_grpc_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_gunzip_filter_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_gunzip_filter_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_gzip_filter_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_gzip_filter_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_gzip_static_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_gzip_static_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_headers_filter_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_headers_filter_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_image_filter_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_image_filter_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_index_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_index_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_limit_conn_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_limit_conn_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_limit_req_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_limit_req_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_log_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_log_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_map_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_map_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_memcached_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_memcached_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_mirror_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_mirror_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_mp4_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_mp4_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_not_modified_filter_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_not_modified_filter_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_proxy_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_proxy_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_random_index_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_random_index_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_range_filter_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_range_filter_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_realip_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_realip_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_referer_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_referer_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_rewrite_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_rewrite_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_scgi_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_scgi_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_secure_link_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_secure_link_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_slice_filter_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_slice_filter_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_split_clients_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_split_clients_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_ssi_filter_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_ssi_filter_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_ssi_filter_module.h
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_ssi_filter_module.h)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_ssl_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_ssl_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_ssl_module.h
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_ssl_module.h)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_static_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_static_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_stub_status_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_stub_status_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_sub_filter_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_sub_filter_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_try_files_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_try_files_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_upstream_hash_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_upstream_hash_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_upstream_ip_hash_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_upstream_ip_hash_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_upstream_keepalive_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_upstream_keepalive_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_upstream_least_conn_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_upstream_least_conn_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_upstream_random_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_upstream_random_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_upstream_zone_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_upstream_zone_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_userid_filter_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_userid_filter_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_uwsgi_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_uwsgi_module.c)
    vendor/nginx-1.15.8/src/http/modules/ngx_http_xslt_filter_module.c
      (from vendor/nginx-1.15.10/src/http/modules/ngx_http_xslt_filter_module.c)
    vendor/nginx-1.15.8/src/http/modules/perl/Makefile.PL
      (from vendor/nginx-1.15.10/src/http/modules/perl/Makefile.PL)
    vendor/nginx-1.15.8/src/http/modules/perl/nginx.pm
      (from vendor/nginx-1.15.10/src/http/modules/perl/nginx.pm)
    vendor/nginx-1.15.8/src/http/modules/perl/nginx.xs
      (from vendor/nginx-1.15.10/src/http/modules/perl/nginx.xs)
    vendor/nginx-1.15.8/src/http/modules/perl/ngx_http_perl_module.c
      (from vendor/nginx-1.15.10/src/http/modules/perl/ngx_http_perl_module.c)
    vendor/nginx-1.15.8/src/http/modules/perl/ngx_http_perl_module.h
      (from vendor/nginx-1.15.10/src/http/modules/perl/ngx_http_perl_module.h)
    vendor/nginx-1.15.8/src/http/modules/perl/typemap
      (from vendor/nginx-1.15.10/src/http/modules/perl/typemap)
    vendor/nginx-1.15.8/src/http/ngx_http.c
      (from vendor/nginx-1.15.10/src/http/ngx_http.c)
    vendor/nginx-1.15.8/src/http/ngx_http.h
      (from vendor/nginx-1.15.10/src/http/ngx_http.h)
    vendor/nginx-1.15.8/src/http/ngx_http_cache.h
      (from vendor/nginx-1.15.10/src/http/ngx_http_cache.h)
    vendor/nginx-1.15.8/src/http/ngx_http_config.h
      (from vendor/nginx-1.15.10/src/http/ngx_http_config.h)
    vendor/nginx-1.15.8/src/http/ngx_http_copy_filter_module.c
      (from vendor/nginx-1.15.10/src/http/ngx_http_copy_filter_module.c)
    vendor/nginx-1.15.8/src/http/ngx_http_core_module.c
      (from vendor/nginx-1.15.10/src/http/ngx_http_core_module.c)
    vendor/nginx-1.15.8/src/http/ngx_http_core_module.h
      (from vendor/nginx-1.15.10/src/http/ngx_http_core_module.h)
    vendor/nginx-1.15.8/src/http/ngx_http_file_cache.c
      (from vendor/nginx-1.15.10/src/http/ngx_http_file_cache.c)
    vendor/nginx-1.15.8/src/http/ngx_http_header_filter_module.c
      (from vendor/nginx-1.15.10/src/http/ngx_http_header_filter_module.c)
    vendor/nginx-1.15.8/src/http/ngx_http_parse.c
      (from vendor/nginx-1.15.10/src/http/ngx_http_parse.c)
    vendor/nginx-1.15.8/src/http/ngx_http_postpone_filter_module.c
      (from vendor/nginx-1.15.10/src/http/ngx_http_postpone_filter_module.c)
    vendor/nginx-1.15.8/src/http/ngx_http_request.c
      (from vendor/nginx-1.15.10/src/http/ngx_http_request.c)
    vendor/nginx-1.15.8/src/http/ngx_http_request.h
      (from vendor/nginx-1.15.10/src/http/ngx_http_request.h)
    vendor/nginx-1.15.8/src/http/ngx_http_request_body.c
      (from vendor/nginx-1.15.10/src/http/ngx_http_request_body.c)
    vendor/nginx-1.15.8/src/http/ngx_http_script.c
      (from vendor/nginx-1.15.10/src/http/ngx_http_script.c)
    vendor/nginx-1.15.8/src/http/ngx_http_script.h
      (from vendor/nginx-1.15.10/src/http/ngx_http_script.h)
    vendor/nginx-1.15.8/src/http/ngx_http_special_response.c
      (from vendor/nginx-1.15.10/src/http/ngx_http_special_response.c)
    vendor/nginx-1.15.8/src/http/ngx_http_upstream.c
      (from vendor/nginx-1.15.10/src/http/ngx_http_upstream.c)
    vendor/nginx-1.15.8/src/http/ngx_http_upstream.h
      (from vendor/nginx-1.15.10/src/http/ngx_http_upstream.h)
    vendor/nginx-1.15.8/src/http/ngx_http_upstream_round_robin.c
      (from vendor/nginx-1.15.10/src/http/ngx_http_upstream_round_robin.c)
    vendor/nginx-1.15.8/src/http/ngx_http_upstream_round_robin.h
      (from vendor/nginx-1.15.10/src/http/ngx_http_upstream_round_robin.h)
    vendor/nginx-1.15.8/src/http/ngx_http_variables.c
      (from vendor/nginx-1.15.10/src/http/ngx_http_variables.c)
    vendor/nginx-1.15.8/src/http/ngx_http_variables.h
      (from vendor/nginx-1.15.10/src/http/ngx_http_variables.h)
    vendor/nginx-1.15.8/src/http/ngx_http_write_filter_module.c
      (from vendor/nginx-1.15.10/src/http/ngx_http_write_filter_module.c)
    vendor/nginx-1.15.8/src/http/v2/ngx_http_v2.c
      (from vendor/nginx-1.15.10/src/http/v2/ngx_http_v2.c)
    vendor/nginx-1.15.8/src/http/v2/ngx_http_v2.h
      (from vendor/nginx-1.15.10/src/http/v2/ngx_http_v2.h)
    vendor/nginx-1.15.8/src/http/v2/ngx_http_v2_encode.c
      (from vendor/nginx-1.15.10/src/http/v2/ngx_http_v2_encode.c)
    vendor/nginx-1.15.8/src/http/v2/ngx_http_v2_filter_module.c
      (from vendor/nginx-1.15.10/src/http/v2/ngx_http_v2_filter_module.c)
    vendor/nginx-1.15.8/src/http/v2/ngx_http_v2_huff_decode.c
      (from vendor/nginx-1.15.10/src/http/v2/ngx_http_v2_huff_decode.c)
    vendor/nginx-1.15.8/src/http/v2/ngx_http_v2_huff_encode.c
      (from vendor/nginx-1.15.10/src/http/v2/ngx_http_v2_huff_encode.c)
    vendor/nginx-1.15.8/src/http/v2/ngx_http_v2_module.c
      (from vendor/nginx-1.15.10/src/http/v2/ngx_http_v2_module.c)
    vendor/nginx-1.15.8/src/http/v2/ngx_http_v2_module.h
      (from vendor/nginx-1.15.10/src/http/v2/ngx_http_v2_module.h)
    vendor/nginx-1.15.8/src/http/v2/ngx_http_v2_table.c
      (from vendor/nginx-1.15.10/src/http/v2/ngx_http_v2_table.c)
    vendor/nginx-1.15.8/src/mail/ngx_mail.c
      (from vendor/nginx-1.15.10/src/mail/ngx_mail.c)
    vendor/nginx-1.15.8/src/mail/ngx_mail.h
      (from vendor/nginx-1.15.10/src/mail/ngx_mail.h)
    vendor/nginx-1.15.8/src/mail/ngx_mail_auth_http_module.c
      (from vendor/nginx-1.15.10/src/mail/ngx_mail_auth_http_module.c)
    vendor/nginx-1.15.8/src/mail/ngx_mail_core_module.c
      (from vendor/nginx-1.15.10/src/mail/ngx_mail_core_module.c)
    vendor/nginx-1.15.8/src/mail/ngx_mail_handler.c
      (from vendor/nginx-1.15.10/src/mail/ngx_mail_handler.c)
    vendor/nginx-1.15.8/src/mail/ngx_mail_imap_handler.c
      (from vendor/nginx-1.15.10/src/mail/ngx_mail_imap_handler.c)
    vendor/nginx-1.15.8/src/mail/ngx_mail_imap_module.c
      (from vendor/nginx-1.15.10/src/mail/ngx_mail_imap_module.c)
    vendor/nginx-1.15.8/src/mail/ngx_mail_imap_module.h
      (from vendor/nginx-1.15.10/src/mail/ngx_mail_imap_module.h)
    vendor/nginx-1.15.8/src/mail/ngx_mail_parse.c
      (from vendor/nginx-1.15.10/src/mail/ngx_mail_parse.c)
    vendor/nginx-1.15.8/src/mail/ngx_mail_pop3_handler.c
      (from vendor/nginx-1.15.10/src/mail/ngx_mail_pop3_handler.c)
    vendor/nginx-1.15.8/src/mail/ngx_mail_pop3_module.c
      (from vendor/nginx-1.15.10/src/mail/ngx_mail_pop3_module.c)
    vendor/nginx-1.15.8/src/mail/ngx_mail_pop3_module.h
      (from vendor/nginx-1.15.10/src/mail/ngx_mail_pop3_module.h)
    vendor/nginx-1.15.8/src/mail/ngx_mail_proxy_module.c
      (from vendor/nginx-1.15.10/src/mail/ngx_mail_proxy_module.c)
    vendor/nginx-1.15.8/src/mail/ngx_mail_smtp_handler.c
      (from vendor/nginx-1.15.10/src/mail/ngx_mail_smtp_handler.c)
    vendor/nginx-1.15.8/src/mail/ngx_mail_smtp_module.c
      (from vendor/nginx-1.15.10/src/mail/ngx_mail_smtp_module.c)
    vendor/nginx-1.15.8/src/mail/ngx_mail_smtp_module.h
      (from vendor/nginx-1.15.10/src/mail/ngx_mail_smtp_module.h)
    vendor/nginx-1.15.8/src/mail/ngx_mail_ssl_module.c
      (from vendor/nginx-1.15.10/src/mail/ngx_mail_ssl_module.c)
    vendor/nginx-1.15.8/src/mail/ngx_mail_ssl_module.h
      (from vendor/nginx-1.15.10/src/mail/ngx_mail_ssl_module.h)
    vendor/nginx-1.15.8/src/misc/ngx_cpp_test_module.cpp
      (from vendor/nginx-1.15.10/src/misc/ngx_cpp_test_module.cpp)
    vendor/nginx-1.15.8/src/misc/ngx_google_perftools_module.c
      (from vendor/nginx-1.15.10/src/misc/ngx_google_perftools_module.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_alloc.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_alloc.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_alloc.h
      (from vendor/nginx-1.15.10/src/os/unix/ngx_alloc.h)
    vendor/nginx-1.15.8/src/os/unix/ngx_atomic.h
      (from vendor/nginx-1.15.10/src/os/unix/ngx_atomic.h)
    vendor/nginx-1.15.8/src/os/unix/ngx_channel.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_channel.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_channel.h
      (from vendor/nginx-1.15.10/src/os/unix/ngx_channel.h)
    vendor/nginx-1.15.8/src/os/unix/ngx_daemon.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_daemon.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_darwin.h
      (from vendor/nginx-1.15.10/src/os/unix/ngx_darwin.h)
    vendor/nginx-1.15.8/src/os/unix/ngx_darwin_config.h
      (from vendor/nginx-1.15.10/src/os/unix/ngx_darwin_config.h)
    vendor/nginx-1.15.8/src/os/unix/ngx_darwin_init.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_darwin_init.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_darwin_sendfile_chain.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_darwin_sendfile_chain.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_dlopen.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_dlopen.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_dlopen.h
      (from vendor/nginx-1.15.10/src/os/unix/ngx_dlopen.h)
    vendor/nginx-1.15.8/src/os/unix/ngx_errno.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_errno.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_errno.h
      (from vendor/nginx-1.15.10/src/os/unix/ngx_errno.h)
    vendor/nginx-1.15.8/src/os/unix/ngx_file_aio_read.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_file_aio_read.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_files.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_files.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_files.h
      (from vendor/nginx-1.15.10/src/os/unix/ngx_files.h)
    vendor/nginx-1.15.8/src/os/unix/ngx_freebsd.h
      (from vendor/nginx-1.15.10/src/os/unix/ngx_freebsd.h)
    vendor/nginx-1.15.8/src/os/unix/ngx_freebsd_config.h
      (from vendor/nginx-1.15.10/src/os/unix/ngx_freebsd_config.h)
    vendor/nginx-1.15.8/src/os/unix/ngx_freebsd_init.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_freebsd_init.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_freebsd_sendfile_chain.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_freebsd_sendfile_chain.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_gcc_atomic_amd64.h
      (from vendor/nginx-1.15.10/src/os/unix/ngx_gcc_atomic_amd64.h)
    vendor/nginx-1.15.8/src/os/unix/ngx_gcc_atomic_ppc.h
      (from vendor/nginx-1.15.10/src/os/unix/ngx_gcc_atomic_ppc.h)
    vendor/nginx-1.15.8/src/os/unix/ngx_gcc_atomic_sparc64.h
      (from vendor/nginx-1.15.10/src/os/unix/ngx_gcc_atomic_sparc64.h)
    vendor/nginx-1.15.8/src/os/unix/ngx_gcc_atomic_x86.h
      (from vendor/nginx-1.15.10/src/os/unix/ngx_gcc_atomic_x86.h)
    vendor/nginx-1.15.8/src/os/unix/ngx_linux.h
      (from vendor/nginx-1.15.10/src/os/unix/ngx_linux.h)
    vendor/nginx-1.15.8/src/os/unix/ngx_linux_aio_read.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_linux_aio_read.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_linux_config.h
      (from vendor/nginx-1.15.10/src/os/unix/ngx_linux_config.h)
    vendor/nginx-1.15.8/src/os/unix/ngx_linux_init.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_linux_init.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_linux_sendfile_chain.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_linux_sendfile_chain.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_os.h
      (from vendor/nginx-1.15.10/src/os/unix/ngx_os.h)
    vendor/nginx-1.15.8/src/os/unix/ngx_posix_config.h
      (from vendor/nginx-1.15.10/src/os/unix/ngx_posix_config.h)
    vendor/nginx-1.15.8/src/os/unix/ngx_posix_init.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_posix_init.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_process.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_process.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_process.h
      (from vendor/nginx-1.15.10/src/os/unix/ngx_process.h)
    vendor/nginx-1.15.8/src/os/unix/ngx_process_cycle.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_process_cycle.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_process_cycle.h
      (from vendor/nginx-1.15.10/src/os/unix/ngx_process_cycle.h)
    vendor/nginx-1.15.8/src/os/unix/ngx_readv_chain.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_readv_chain.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_recv.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_recv.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_send.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_send.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_setaffinity.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_setaffinity.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_setaffinity.h
      (from vendor/nginx-1.15.10/src/os/unix/ngx_setaffinity.h)
    vendor/nginx-1.15.8/src/os/unix/ngx_setproctitle.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_setproctitle.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_setproctitle.h
      (from vendor/nginx-1.15.10/src/os/unix/ngx_setproctitle.h)
    vendor/nginx-1.15.8/src/os/unix/ngx_shmem.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_shmem.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_shmem.h
      (from vendor/nginx-1.15.10/src/os/unix/ngx_shmem.h)
    vendor/nginx-1.15.8/src/os/unix/ngx_socket.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_socket.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_socket.h
      (from vendor/nginx-1.15.10/src/os/unix/ngx_socket.h)
    vendor/nginx-1.15.8/src/os/unix/ngx_solaris.h
      (from vendor/nginx-1.15.10/src/os/unix/ngx_solaris.h)
    vendor/nginx-1.15.8/src/os/unix/ngx_solaris_config.h
      (from vendor/nginx-1.15.10/src/os/unix/ngx_solaris_config.h)
    vendor/nginx-1.15.8/src/os/unix/ngx_solaris_init.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_solaris_init.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_solaris_sendfilev_chain.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_solaris_sendfilev_chain.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_sunpro_amd64.il
      (from vendor/nginx-1.15.10/src/os/unix/ngx_sunpro_amd64.il)
    vendor/nginx-1.15.8/src/os/unix/ngx_sunpro_atomic_sparc64.h
      (from vendor/nginx-1.15.10/src/os/unix/ngx_sunpro_atomic_sparc64.h)
    vendor/nginx-1.15.8/src/os/unix/ngx_sunpro_sparc64.il
      (from vendor/nginx-1.15.10/src/os/unix/ngx_sunpro_sparc64.il)
    vendor/nginx-1.15.8/src/os/unix/ngx_sunpro_x86.il
      (from vendor/nginx-1.15.10/src/os/unix/ngx_sunpro_x86.il)
    vendor/nginx-1.15.8/src/os/unix/ngx_thread.h
      (from vendor/nginx-1.15.10/src/os/unix/ngx_thread.h)
    vendor/nginx-1.15.8/src/os/unix/ngx_thread_cond.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_thread_cond.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_thread_id.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_thread_id.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_thread_mutex.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_thread_mutex.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_time.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_time.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_time.h
      (from vendor/nginx-1.15.10/src/os/unix/ngx_time.h)
    vendor/nginx-1.15.8/src/os/unix/ngx_udp_recv.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_udp_recv.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_udp_send.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_udp_send.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_udp_sendmsg_chain.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_udp_sendmsg_chain.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_user.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_user.c)
    vendor/nginx-1.15.8/src/os/unix/ngx_user.h
      (from vendor/nginx-1.15.10/src/os/unix/ngx_user.h)
    vendor/nginx-1.15.8/src/os/unix/ngx_writev_chain.c
      (from vendor/nginx-1.15.10/src/os/unix/ngx_writev_chain.c)
    vendor/nginx-1.15.8/src/os/win32/nginx.ico
      (from vendor/nginx-1.15.10/src/os/win32/nginx.ico)
    vendor/nginx-1.15.8/src/os/win32/nginx.rc
      (from vendor/nginx-1.15.10/src/os/win32/nginx.rc)
    vendor/nginx-1.15.8/src/os/win32/nginx_icon16.xpm
      (from vendor/nginx-1.15.10/src/os/win32/nginx_icon16.xpm)
    vendor/nginx-1.15.8/src/os/win32/nginx_icon32.xpm
      (from vendor/nginx-1.15.10/src/os/win32/nginx_icon32.xpm)
    vendor/nginx-1.15.8/src/os/win32/nginx_icon48.xpm
      (from vendor/nginx-1.15.10/src/os/win32/nginx_icon48.xpm)
    vendor/nginx-1.15.8/src/os/win32/ngx_alloc.c
      (from vendor/nginx-1.15.10/src/os/win32/ngx_alloc.c)
    vendor/nginx-1.15.8/src/os/win32/ngx_alloc.h
      (from vendor/nginx-1.15.10/src/os/win32/ngx_alloc.h)
    vendor/nginx-1.15.8/src/os/win32/ngx_atomic.h
      (from vendor/nginx-1.15.10/src/os/win32/ngx_atomic.h)
    vendor/nginx-1.15.8/src/os/win32/ngx_dlopen.c
      (from vendor/nginx-1.15.10/src/os/win32/ngx_dlopen.c)
    vendor/nginx-1.15.8/src/os/win32/ngx_dlopen.h
      (from vendor/nginx-1.15.10/src/os/win32/ngx_dlopen.h)
    vendor/nginx-1.15.8/src/os/win32/ngx_errno.c
      (from vendor/nginx-1.15.10/src/os/win32/ngx_errno.c)
    vendor/nginx-1.15.8/src/os/win32/ngx_errno.h
      (from vendor/nginx-1.15.10/src/os/win32/ngx_errno.h)
    vendor/nginx-1.15.8/src/os/win32/ngx_event_log.c
      (from vendor/nginx-1.15.10/src/os/win32/ngx_event_log.c)
    vendor/nginx-1.15.8/src/os/win32/ngx_files.c
      (from vendor/nginx-1.15.10/src/os/win32/ngx_files.c)
    vendor/nginx-1.15.8/src/os/win32/ngx_files.h
      (from vendor/nginx-1.15.10/src/os/win32/ngx_files.h)
    vendor/nginx-1.15.8/src/os/win32/ngx_os.h
      (from vendor/nginx-1.15.10/src/os/win32/ngx_os.h)
    vendor/nginx-1.15.8/src/os/win32/ngx_process.c
      (from vendor/nginx-1.15.10/src/os/win32/ngx_process.c)
    vendor/nginx-1.15.8/src/os/win32/ngx_process.h
      (from vendor/nginx-1.15.10/src/os/win32/ngx_process.h)
    vendor/nginx-1.15.8/src/os/win32/ngx_process_cycle.c
      (from vendor/nginx-1.15.10/src/os/win32/ngx_process_cycle.c)
    vendor/nginx-1.15.8/src/os/win32/ngx_process_cycle.h
      (from vendor/nginx-1.15.10/src/os/win32/ngx_process_cycle.h)
    vendor/nginx-1.15.8/src/os/win32/ngx_service.c
      (from vendor/nginx-1.15.10/src/os/win32/ngx_service.c)
    vendor/nginx-1.15.8/src/os/win32/ngx_shmem.c
      (from vendor/nginx-1.15.10/src/os/win32/ngx_shmem.c)
    vendor/nginx-1.15.8/src/os/win32/ngx_shmem.h
      (from vendor/nginx-1.15.10/src/os/win32/ngx_shmem.h)
    vendor/nginx-1.15.8/src/os/win32/ngx_socket.c
      (from vendor/nginx-1.15.10/src/os/win32/ngx_socket.c)
    vendor/nginx-1.15.8/src/os/win32/ngx_socket.h
      (from vendor/nginx-1.15.10/src/os/win32/ngx_socket.h)
    vendor/nginx-1.15.8/src/os/win32/ngx_stat.c
      (from vendor/nginx-1.15.10/src/os/win32/ngx_stat.c)
    vendor/nginx-1.15.8/src/os/win32/ngx_thread.c
      (from vendor/nginx-1.15.10/src/os/win32/ngx_thread.c)
    vendor/nginx-1.15.8/src/os/win32/ngx_thread.h
      (from vendor/nginx-1.15.10/src/os/win32/ngx_thread.h)
    vendor/nginx-1.15.8/src/os/win32/ngx_time.c
      (from vendor/nginx-1.15.10/src/os/win32/ngx_time.c)
    vendor/nginx-1.15.8/src/os/win32/ngx_time.h
      (from vendor/nginx-1.15.10/src/os/win32/ngx_time.h)
    vendor/nginx-1.15.8/src/os/win32/ngx_udp_wsarecv.c
      (from vendor/nginx-1.15.10/src/os/win32/ngx_udp_wsarecv.c)
    vendor/nginx-1.15.8/src/os/win32/ngx_user.c
      (from vendor/nginx-1.15.10/src/os/win32/ngx_user.c)
    vendor/nginx-1.15.8/src/os/win32/ngx_user.h
      (from vendor/nginx-1.15.10/src/os/win32/ngx_user.h)
    vendor/nginx-1.15.8/src/os/win32/ngx_win32_config.h
      (from vendor/nginx-1.15.10/src/os/win32/ngx_win32_config.h)
    vendor/nginx-1.15.8/src/os/win32/ngx_win32_init.c
      (from vendor/nginx-1.15.10/src/os/win32/ngx_win32_init.c)
    vendor/nginx-1.15.8/src/os/win32/ngx_wsarecv.c
      (from vendor/nginx-1.15.10/src/os/win32/ngx_wsarecv.c)
    vendor/nginx-1.15.8/src/os/win32/ngx_wsarecv_chain.c
      (from vendor/nginx-1.15.10/src/os/win32/ngx_wsarecv_chain.c)
    vendor/nginx-1.15.8/src/os/win32/ngx_wsasend.c
      (from vendor/nginx-1.15.10/src/os/win32/ngx_wsasend.c)
    vendor/nginx-1.15.8/src/os/win32/ngx_wsasend_chain.c
      (from vendor/nginx-1.15.10/src/os/win32/ngx_wsasend_chain.c)
    vendor/nginx-1.15.8/src/stream/ngx_stream.c
      (from vendor/nginx-1.15.10/src/stream/ngx_stream.c)
    vendor/nginx-1.15.8/src/stream/ngx_stream.h
      (from vendor/nginx-1.15.10/src/stream/ngx_stream.h)
    vendor/nginx-1.15.8/src/stream/ngx_stream_access_module.c
      (from vendor/nginx-1.15.10/src/stream/ngx_stream_access_module.c)
    vendor/nginx-1.15.8/src/stream/ngx_stream_core_module.c
      (from vendor/nginx-1.15.10/src/stream/ngx_stream_core_module.c)
    vendor/nginx-1.15.8/src/stream/ngx_stream_geo_module.c
      (from vendor/nginx-1.15.10/src/stream/ngx_stream_geo_module.c)
    vendor/nginx-1.15.8/src/stream/ngx_stream_geoip_module.c
      (from vendor/nginx-1.15.10/src/stream/ngx_stream_geoip_module.c)
    vendor/nginx-1.15.8/src/stream/ngx_stream_handler.c
      (from vendor/nginx-1.15.10/src/stream/ngx_stream_handler.c)
    vendor/nginx-1.15.8/src/stream/ngx_stream_limit_conn_module.c
      (from vendor/nginx-1.15.10/src/stream/ngx_stream_limit_conn_module.c)
    vendor/nginx-1.15.8/src/stream/ngx_stream_log_module.c
      (from vendor/nginx-1.15.10/src/stream/ngx_stream_log_module.c)
    vendor/nginx-1.15.8/src/stream/ngx_stream_map_module.c
      (from vendor/nginx-1.15.10/src/stream/ngx_stream_map_module.c)
    vendor/nginx-1.15.8/src/stream/ngx_stream_proxy_module.c
      (from vendor/nginx-1.15.10/src/stream/ngx_stream_proxy_module.c)
    vendor/nginx-1.15.8/src/stream/ngx_stream_realip_module.c
      (from vendor/nginx-1.15.10/src/stream/ngx_stream_realip_module.c)
    vendor/nginx-1.15.8/src/stream/ngx_stream_return_module.c
      (from vendor/nginx-1.15.10/src/stream/ngx_stream_return_module.c)
    vendor/nginx-1.15.8/src/stream/ngx_stream_script.c
      (from vendor/nginx-1.15.10/src/stream/ngx_stream_script.c)
    vendor/nginx-1.15.8/src/stream/ngx_stream_script.h
      (from vendor/nginx-1.15.10/src/stream/ngx_stream_script.h)
    vendor/nginx-1.15.8/src/stream/ngx_stream_split_clients_module.c
      (from vendor/nginx-1.15.10/src/stream/ngx_stream_split_clients_module.c)
    vendor/nginx-1.15.8/src/stream/ngx_stream_ssl_module.c
      (from vendor/nginx-1.15.10/src/stream/ngx_stream_ssl_module.c)
    vendor/nginx-1.15.8/src/stream/ngx_stream_ssl_module.h
      (from vendor/nginx-1.15.10/src/stream/ngx_stream_ssl_module.h)
    vendor/nginx-1.15.8/src/stream/ngx_stream_ssl_preread_module.c
      (from vendor/nginx-1.15.10/src/stream/ngx_stream_ssl_preread_module.c)
    vendor/nginx-1.15.8/src/stream/ngx_stream_upstream.c
      (from vendor/nginx-1.15.10/src/stream/ngx_stream_upstream.c)
    vendor/nginx-1.15.8/src/stream/ngx_stream_upstream.h
      (from vendor/nginx-1.15.10/src/stream/ngx_stream_upstream.h)
    vendor/nginx-1.15.8/src/stream/ngx_stream_upstream_hash_module.c
      (from vendor/nginx-1.15.10/src/stream/ngx_stream_upstream_hash_module.c)
    vendor/nginx-1.15.8/src/stream/ngx_stream_upstream_least_conn_module.c
      (from vendor/nginx-1.15.10/src/stream/ngx_stream_upstream_least_conn_module.c)
    vendor/nginx-1.15.8/src/stream/ngx_stream_upstream_random_module.c
      (from vendor/nginx-1.15.10/src/stream/ngx_stream_upstream_random_module.c)
    vendor/nginx-1.15.8/src/stream/ngx_stream_upstream_round_robin.c
      (from vendor/nginx-1.15.10/src/stream/ngx_stream_upstream_round_robin.c)
    vendor/nginx-1.15.8/src/stream/ngx_stream_upstream_round_robin.h
      (from vendor/nginx-1.15.10/src/stream/ngx_stream_upstream_round_robin.h)
    vendor/nginx-1.15.8/src/stream/ngx_stream_upstream_zone_module.c
      (from vendor/nginx-1.15.10/src/stream/ngx_stream_upstream_zone_module.c)
    vendor/nginx-1.15.8/src/stream/ngx_stream_variables.c
      (from vendor/nginx-1.15.10/src/stream/ngx_stream_variables.c)
    vendor/nginx-1.15.8/src/stream/ngx_stream_variables.h
      (from vendor/nginx-1.15.10/src/stream/ngx_stream_variables.h)
    vendor/nginx-1.15.8/src/stream/ngx_stream_write_filter_module.c
      (from vendor/nginx-1.15.10/src/stream/ngx_stream_write_filter_module.c)

  Modified: nginx_version (+1 -1)
===================================================================
--- nginx_version    2019-03-27 12:50:20 +0900 (fcf38d94d)
+++ nginx_version    2019-03-27 13:17:47 +0900 (98e863cdf)
@@ -1 +1 @@
-1.15.10
+1.15.8

  Deleted: vendor/nginx-1.15.10/src/event/modules/ngx_win32_poll_module.c (+0 -435) 100644
===================================================================
--- vendor/nginx-1.15.10/src/event/modules/ngx_win32_poll_module.c    2019-03-27 12:50:20 +0900 (9fe867f79)
+++ /dev/null
@@ -1,435 +0,0 @@
-
-/*
- * Copyright (C) Igor Sysoev
- * Copyright (C) Maxim Dounin
- * Copyright (C) Nginx, Inc.
- */
-
-
-#include <ngx_config.h>
-#include <ngx_core.h>
-#include <ngx_event.h>
-
-
-static ngx_int_t ngx_poll_init(ngx_cycle_t *cycle, ngx_msec_t timer);
-static void ngx_poll_done(ngx_cycle_t *cycle);
-static ngx_int_t ngx_poll_add_event(ngx_event_t *ev, ngx_int_t event,
-    ngx_uint_t flags);
-static ngx_int_t ngx_poll_del_event(ngx_event_t *ev, ngx_int_t event,
-    ngx_uint_t flags);
-static ngx_int_t ngx_poll_process_events(ngx_cycle_t *cycle, ngx_msec_t timer,
-    ngx_uint_t flags);
-static char *ngx_poll_init_conf(ngx_cycle_t *cycle, void *conf);
-
-
-static struct pollfd      *event_list;
-static ngx_connection_t  **event_index;
-static ngx_uint_t          nevents;
-
-
-static ngx_str_t           poll_name = ngx_string("poll");
-
-static ngx_event_module_t  ngx_poll_module_ctx = {
-    &poll_name,
-    NULL,                                  /* create configuration */
-    ngx_poll_init_conf,                    /* init configuration */
-
-    {
-        ngx_poll_add_event,                /* add an event */
-        ngx_poll_del_event,                /* delete an event */
-        ngx_poll_add_event,                /* enable an event */
-        ngx_poll_del_event,                /* disable an event */
-        NULL,                              /* add an connection */
-        NULL,                              /* delete an connection */
-        NULL,                              /* trigger a notify */
-        ngx_poll_process_events,           /* process the events */
-        ngx_poll_init,                     /* init the events */
-        ngx_poll_done                      /* done the events */
-    }
-
-};
-
-ngx_module_t  ngx_poll_module = {
-    NGX_MODULE_V1,
-    &ngx_poll_module_ctx,                  /* module context */
-    NULL,                                  /* module directives */
-    NGX_EVENT_MODULE,                      /* module type */
-    NULL,                                  /* init master */
-    NULL,                                  /* init module */
-    NULL,                                  /* init process */
-    NULL,                                  /* init thread */
-    NULL,                                  /* exit thread */
-    NULL,                                  /* exit process */
-    NULL,                                  /* exit master */
-    NGX_MODULE_V1_PADDING
-};
-
-
-
-static ngx_int_t
-ngx_poll_init(ngx_cycle_t *cycle, ngx_msec_t timer)
-{
-    struct pollfd      *list;
-    ngx_connection_t  **index;
-
-    if (event_list == NULL) {
-        nevents = 0;
-    }
-
-    if (ngx_process >= NGX_PROCESS_WORKER
-        || cycle->old_cycle == NULL
-        || cycle->old_cycle->connection_n < cycle->connection_n)
-    {
-        list = ngx_alloc(sizeof(struct pollfd) * cycle->connection_n,
-                         cycle->log);
-        if (list == NULL) {
-            return NGX_ERROR;
-        }
-
-        if (event_list) {
-            ngx_memcpy(list, event_list, sizeof(struct pollfd) * nevents);
-            ngx_free(event_list);
-        }
-
-        event_list = list;
-
-        index = ngx_alloc(sizeof(ngx_connection_t *) * cycle->connection_n,
-                          cycle->log);
-        if (index == NULL) {
-            return NGX_ERROR;
-        }
-
-        if (event_index) {
-            ngx_memcpy(index, event_index,
-                       sizeof(ngx_connection_t *) * nevents);
-            ngx_free(event_index);
-        }
-
-        event_index = index;
-    }
-
-    ngx_io = ngx_os_io;
-
-    ngx_event_actions = ngx_poll_module_ctx.actions;
-
-    ngx_event_flags = NGX_USE_LEVEL_EVENT;
-
-    return NGX_OK;
-}
-
-
-static void
-ngx_poll_done(ngx_cycle_t *cycle)
-{
-    ngx_free(event_list);
-    ngx_free(event_index);
-
-    event_list = NULL;
-    event_index = NULL;
-}
-
-
-static ngx_int_t
-ngx_poll_add_event(ngx_event_t *ev, ngx_int_t event, ngx_uint_t flags)
-{
-    ngx_event_t       *e;
-    ngx_connection_t  *c;
-
-    c = ev->data;
-
-    ev->active = 1;
-
-    if (ev->index != NGX_INVALID_INDEX) {
-        ngx_log_error(NGX_LOG_ALERT, ev->log, 0,
-                      "poll event fd:%d ev:%i is already set", c->fd, event);
-        return NGX_OK;
-    }
-
-    if (event == NGX_READ_EVENT) {
-        e = c->write;
-#if (NGX_READ_EVENT != POLLIN)
-        event = POLLIN;
-#endif
-
-    } else {
-        e = c->read;
-#if (NGX_WRITE_EVENT != POLLOUT)
-        event = POLLOUT;
-#endif
-    }
-
-    ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0,
-                   "poll add event: fd:%d ev:%i", c->fd, event);
-
-    if (e == NULL || e->index == NGX_INVALID_INDEX) {
-
-        event_list[nevents].fd = c->fd;
-        event_list[nevents].events = (short) event;
-        event_list[nevents].revents = 0;
-
-        event_index[nevents] = c;
-
-        ev->index = nevents;
-        nevents++;
-
-    } else {
-        ngx_log_debug1(NGX_LOG_DEBUG_EVENT, ev->log, 0,
-                       "poll add index: %i", e->index);
-
-        event_list[e->index].events |= (short) event;
-        ev->index = e->index;
-    }
-
-    return NGX_OK;
-}
-
-
-static ngx_int_t
-ngx_poll_del_event(ngx_event_t *ev, ngx_int_t event, ngx_uint_t flags)
-{
-    ngx_event_t       *e;
-    ngx_connection_t  *c;
-
-    c = ev->data;
-
-    ev->active = 0;
-
-    if (ev->index == NGX_INVALID_INDEX) {
-        ngx_log_error(NGX_LOG_ALERT, ev->log, 0,
-                      "poll event fd:%d ev:%i is already deleted",
-                      c->fd, event);
-        return NGX_OK;
-    }
-
-    if (event == NGX_READ_EVENT) {
-        e = c->write;
-#if (NGX_READ_EVENT != POLLIN)
-        event = POLLIN;
-#endif
-
-    } else {
-        e = c->read;
-#if (NGX_WRITE_EVENT != POLLOUT)
-        event = POLLOUT;
-#endif
-    }
-
-    ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0,
-                   "poll del event: fd:%d ev:%i", c->fd, event);
-
-    if (e == NULL || e->index == NGX_INVALID_INDEX) {
-        nevents--;
-
-        if (ev->index < nevents) {
-
-            ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0,
-                           "index: copy event %ui to %i", nevents, ev->index);
-
-            event_list[ev->index] = event_list[nevents];
-            event_index[ev->index] = event_index[nevents];
-
-            c = event_index[ev->index];
-
-            if (c->fd == (ngx_socket_t) -1) {
-                ngx_log_error(NGX_LOG_ALERT, ev->log, 0,
-                              "unexpected last event");
-
-            } else {
-                if (c->read->index == nevents) {
-                    c->read->index = ev->index;
-                }
-
-                if (c->write->index == nevents) {
-                    c->write->index = ev->index;
-                }
-            }
-        }
-
-    } else {
-        ngx_log_debug1(NGX_LOG_DEBUG_EVENT, ev->log, 0,
-                       "poll del index: %i", e->index);
-
-        event_list[e->index].events &= (short) ~event;
-    }
-
-    ev->index = NGX_INVALID_INDEX;
-
-    return NGX_OK;
-}
-
-
-static ngx_int_t
-ngx_poll_process_events(ngx_cycle_t *cycle, ngx_msec_t timer, ngx_uint_t flags)
-{
-    int                 ready, revents;
-    ngx_err_t           err;
-    ngx_uint_t          i, found;
-    ngx_event_t        *ev;
-    ngx_queue_t        *queue;
-    ngx_connection_t   *c;
-
-    /* NGX_TIMER_INFINITE == INFTIM */
-
-#if (NGX_DEBUG0)
-    if (cycle->log->log_level & NGX_LOG_DEBUG_ALL) {
-        for (i = 0; i < nevents; i++) {
-            ngx_log_debug3(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
-                           "poll: %ui: fd:%d ev:%04Xd",
-                           i, event_list[i].fd, event_list[i].events);
-        }
-    }
-#endif
-
-    ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0, "poll timer: %M", timer);
-
-    ready = WSAPoll(event_list, (u_int) nevents, (int) timer);
-
-    err = (ready == -1) ? ngx_errno : 0;
-
-    if (flags & NGX_UPDATE_TIME || ngx_event_timer_alarm) {
-        ngx_time_update();
-    }
-
-    ngx_log_debug2(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
-                   "poll ready %d of %ui", ready, nevents);
-
-    if (err) {
-        ngx_log_error(NGX_LOG_ALERT, cycle->log, err, "WSAPoll() failed");
-        return NGX_ERROR;
-    }
-
-    if (ready == 0) {
-        if (timer != NGX_TIMER_INFINITE) {
-            return NGX_OK;
-        }
-
-        ngx_log_error(NGX_LOG_ALERT, cycle->log, 0,
-                      "WSAPoll() returned no events without timeout");
-        return NGX_ERROR;
-    }
-
-    for (i = 0; i < nevents && ready; i++) {
-
-        revents = event_list[i].revents;
-
-#if 1
-        ngx_log_debug4(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
-                       "poll: %ui: fd:%d ev:%04Xd rev:%04Xd",
-                       i, event_list[i].fd, event_list[i].events, revents);
-#else
-        if (revents) {
-            ngx_log_debug4(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
-                           "poll: %ui: fd:%d ev:%04Xd rev:%04Xd",
-                           i, event_list[i].fd, event_list[i].events, revents);
-        }
-#endif
-
-        if (revents & POLLNVAL) {
-            ngx_log_error(NGX_LOG_ALERT, cycle->log, 0,
-                          "poll() error fd:%d ev:%04Xd rev:%04Xd",
-                          event_list[i].fd, event_list[i].events, revents);
-        }
-
-        if (revents & ~(POLLIN|POLLOUT|POLLERR|POLLHUP|POLLNVAL)) {
-            ngx_log_error(NGX_LOG_ALERT, cycle->log, 0,
-                          "strange poll() events fd:%d ev:%04Xd rev:%04Xd",
-                          event_list[i].fd, event_list[i].events, revents);
-        }
-
-        if (event_list[i].fd == (ngx_socket_t) -1) {
-            /*
-             * the disabled event, a workaround for our possible bug,
-             * see the comment below
-             */
-            continue;
-        }
-
-        c = event_index[i];
-
-        if (c->fd == (ngx_socket_t) -1) {
-            ngx_log_error(NGX_LOG_ALERT, cycle->log, 0, "unexpected event");
-
-            /*
-             * it is certainly our fault and it should be investigated,
-             * in the meantime we disable this event to avoid a CPU spinning
-             */
-
-            if (i == nevents - 1) {
-                nevents--;
-            } else {
-                event_list[i].fd = (ngx_socket_t) -1;
-            }
-
-            continue;
-        }
-
-        if (revents & (POLLERR|POLLHUP|POLLNVAL)) {
-
-            /*
-             * if the error events were returned, add POLLIN and POLLOUT
-             * to handle the events at least in one active handler
-             */
-
-            revents |= POLLIN|POLLOUT;
-        }
-
-        found = 0;
-
-        if ((revents & POLLIN) && c->read->active) {
-            found = 1;
-
-            ev = c->read;
-            ev->ready = 1;
-
-            queue = ev->accept ? &ngx_posted_accept_events
-                               : &ngx_posted_events;
-
-            ngx_post_event(ev, queue);
-        }
-
-        if ((revents & POLLOUT) && c->write->active) {
-            found = 1;
-
-            ev = c->write;
-            ev->ready = 1;
-
-            ngx_post_event(ev, &ngx_posted_events);
-        }
-
-        if (found) {
-            ready--;
-            continue;
-        }
-    }
-
-    if (ready != 0) {
-        ngx_log_error(NGX_LOG_ALERT, cycle->log, 0, "poll ready != events");
-    }
-
-    return NGX_OK;
-}
-
-
-static char *
-ngx_poll_init_conf(ngx_cycle_t *cycle, void *conf)
-{
-    ngx_event_conf_t  *ecf;
-
-    ecf = ngx_event_get_conf(cycle->conf_ctx, ngx_event_core_module);
-
-    if (ecf->use != ngx_poll_module.ctx_index) {
-        return NGX_CONF_OK;
-    }
-
-#if (NGX_LOAD_WSAPOLL)
-
-    if (!ngx_have_wsapoll) {
-        ngx_log_error(NGX_LOG_EMERG, cycle->log, 0,
-                      "poll is not available on this platform");
-        return NGX_CONF_ERROR;
-    }
-
-#endif
-
-    return NGX_CONF_OK;
-}

  Renamed: vendor/nginx-1.15.8/auto/cc/acc (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/cc/bcc (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/cc/ccc (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/cc/clang (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/cc/conf (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/cc/gcc (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/cc/icc (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/cc/msvc (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/cc/name (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/cc/owc (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/cc/sunc (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/configure (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/define (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/endianness (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/feature (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/have (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/have_headers (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/headers (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/include (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/init (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/install (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/lib/conf (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/lib/geoip/conf (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/lib/google-perftools/conf (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/lib/libatomic/conf (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/lib/libatomic/make (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/lib/libgd/conf (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/lib/libxslt/conf (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/lib/make (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/lib/openssl/conf (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/lib/openssl/make (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/lib/openssl/makefile.bcc (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/lib/openssl/makefile.msvc (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/lib/pcre/conf (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/lib/pcre/make (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/lib/pcre/makefile.bcc (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/lib/pcre/makefile.msvc (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/lib/pcre/makefile.owc (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/lib/perl/conf (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/lib/perl/make (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/lib/zlib/conf (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/lib/zlib/make (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/lib/zlib/makefile.bcc (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/lib/zlib/makefile.msvc (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/lib/zlib/makefile.owc (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/make (+1 -1) 99%
===================================================================
--- vendor/nginx-1.15.10/auto/make    2019-03-27 12:50:20 +0900 (34c40cdd5)
+++ vendor/nginx-1.15.8/auto/make    2019-03-27 13:17:47 +0900 (7ddd1007b)
@@ -229,7 +229,7 @@ build:	binary modules manpage
 binary:	$NGX_OBJS${ngx_dirsep}nginx$ngx_binext
 
 $NGX_OBJS${ngx_dirsep}nginx$ngx_binext:	$ngx_deps$ngx_spacer
-	\$(LINK) $ngx_long_start$ngx_binout$NGX_OBJS${ngx_dirsep}nginx$ngx_binext$ngx_long_cont$ngx_objs$ngx_libs$ngx_link$ngx_main_link
+	\$(LINK) $ngx_long_start$ngx_binout$NGX_OBJS${ngx_dirsep}nginx$ngx_long_cont$ngx_objs$ngx_libs$ngx_link$ngx_main_link
 	$ngx_rcc
 $ngx_long_end
 

  Renamed: vendor/nginx-1.15.8/auto/module (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/modules (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/nohave (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/options (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/os/conf (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/os/darwin (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/os/freebsd (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/os/linux (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/os/solaris (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/os/win32 (+6 -2) 84%
===================================================================
--- vendor/nginx-1.15.10/auto/os/win32    2019-03-27 12:50:20 +0900 (b821ae6d8)
+++ vendor/nginx-1.15.8/auto/os/win32    2019-03-27 13:17:47 +0900 (7a8277496)
@@ -11,7 +11,6 @@ CORE_SRCS="$WIN32_SRCS $IOCP_SRCS"
 OS_CONFIG="$WIN32_CONFIG"
 NGX_ICONS="$NGX_WIN32_ICONS"
 SELECT_SRCS=$WIN32_SELECT_SRCS
-POLL_SRCS=$WIN32_POLL_SRCS
 
 ngx_pic_opt=
 ngx_binext=".exe"
@@ -32,7 +31,12 @@ case "$NGX_CC_NAME" in
 esac
 
 EVENT_MODULES="$EVENT_MODULES $IOCP_MODULE"
-#EVENT_FOUND=YES
+EVENT_FOUND=YES
+
+if [ $EVENT_SELECT = NO ]; then
+    CORE_SRCS="$CORE_SRCS $SELECT_SRCS"
+    EVENT_MODULES="$EVENT_MODULES $SELECT_MODULE"
+fi
 
 have=NGX_HAVE_INET6 . auto/have
 

  Renamed: vendor/nginx-1.15.8/auto/sources (+0 -1) 99%
===================================================================
--- vendor/nginx-1.15.10/auto/sources    2019-03-27 12:50:20 +0900 (3dad11132)
+++ vendor/nginx-1.15.8/auto/sources    2019-03-27 13:17:47 +0900 (9b425063e)
@@ -106,7 +106,6 @@ WIN32_SELECT_SRCS=src/event/modules/ngx_win32_select_module.c
 
 POLL_MODULE=ngx_poll_module
 POLL_SRCS=src/event/modules/ngx_poll_module.c
-WIN32_POLL_SRCS=src/event/modules/ngx_win32_poll_module.c
 
 KQUEUE_MODULE=ngx_kqueue_module
 KQUEUE_SRCS=src/event/modules/ngx_kqueue_module.c

  Renamed: vendor/nginx-1.15.8/auto/stubs (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/summary (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/threads (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/types/sizeof (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/types/typedef (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/types/uintptr_t (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/types/value (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/auto/unix (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/conf/fastcgi.conf (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/conf/fastcgi_params (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/conf/koi-utf (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/conf/koi-win (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/conf/mime.types (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/conf/nginx.conf (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/conf/scgi_params (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/conf/uwsgi_params (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/conf/win-utf (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/contrib/README (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/contrib/geo2nginx.pl (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/contrib/unicode2nginx/koi-utf (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/contrib/unicode2nginx/unicode-to-nginx.pl (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/contrib/unicode2nginx/win-utf (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/contrib/vim/ftdetect/nginx.vim (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/contrib/vim/ftplugin/nginx.vim (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/contrib/vim/indent/nginx.vim (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/contrib/vim/syntax/nginx.vim (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/docs/GNUmakefile (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/docs/dtd/change_log_conf.dtd (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/docs/dtd/changes.dtd (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/docs/html/50x.html (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/docs/html/index.html (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/docs/man/nginx.8 (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/docs/text/LICENSE (+2 -2) 94%
===================================================================
--- vendor/nginx-1.15.10/docs/text/LICENSE    2019-03-27 12:50:20 +0900 (c63e0ba4e)
+++ vendor/nginx-1.15.8/docs/text/LICENSE    2019-03-27 13:17:47 +0900 (9401174e1)
@@ -1,6 +1,6 @@
 /* 
- * Copyright (C) 2002-2019 Igor Sysoev
- * Copyright (C) 2011-2019 Nginx, Inc.
+ * Copyright (C) 2002-2018 Igor Sysoev
+ * Copyright (C) 2011-2018 Nginx, Inc.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without

  Renamed: vendor/nginx-1.15.8/docs/text/README (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/docs/xml/change_log_conf.xml (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/docs/xml/nginx/changes.xml (+0 -113) 99%
===================================================================
--- vendor/nginx-1.15.10/docs/xml/nginx/changes.xml    2019-03-27 12:50:20 +0900 (de93e329b)
+++ vendor/nginx-1.15.8/docs/xml/nginx/changes.xml    2019-03-27 13:17:47 +0900 (4c471d83f)
@@ -5,119 +5,6 @@
 <change_log title="nginx">
 
 
-<changes ver="1.15.10" date="2019-03-26">
-
-<change type="change">
-<para lang="ru">
-теперь при использовании имени хоста в директиве listen
-nginx создаёт listen-сокеты для всех адресов,
-соответствующих этому имени
-(ранее использовался только первый адрес).
-</para>
-<para lang="en">
-when using a hostname in the "listen" directive
-nginx now creates listening sockets
-for all addresses the hostname resolves to
-(previously, only the first address was used).
-</para>
-</change>
-
-<change type="feature">
-<para lang="ru">
-диапазоны портов в директиве listen.
-</para>
-<para lang="en">
-port ranges in the "listen" directive.
-</para>
-</change>
-
-<change type="feature">
-<para lang="ru">
-возможность загрузки SSL-сертификатов и секретных ключей из переменных.
-</para>
-<para lang="en">
-loading of SSL certificates and secret keys from variables.
-</para>
-</change>
-
-<change type="workaround">
-<para lang="ru">
-переменная $ssl_server_name могла быть пустой
-при использовании OpenSSL 1.1.1.
-</para>
-<para lang="en">
-the $ssl_server_name variable might be empty
-when using OpenSSL 1.1.1.
-</para>
-</change>
-
-<change type="bugfix">
-<para lang="ru">
-nginx/Windows не собирался с Visual Studio 2015 и новее;
-ошибка появилась в 1.15.9.
-</para>
-<para lang="en">
-nginx/Windows could not be built with Visual Studio 2015 or newer;
-the bug had appeared in 1.15.9.
-</para>
-</change>
-
-</changes>
-
-
-<changes ver="1.15.9" date="2019-02-26">
-
-<change type="feature">
-<para lang="ru">
-директивы ssl_certificate и ssl_certificate_key
-поддерживают переменные.
-</para>
-<para lang="en">
-variables support
-in the "ssl_certificate" and "ssl_certificate_key" directives.
-</para>
-</change>
-
-<change type="feature">
-<para lang="ru">
-метод poll теперь доступен на Windows
-при использовании Windows Vista и новее.
-</para>
-<para lang="en">
-the "poll" method is now available on Windows
-when using Windows Vista or newer.
-</para>
-</change>
-
-<change type="bugfix">
-<para lang="ru">
-если при использовании метода select на Windows
-происходила ошибка при установлении соединения с бэкендом,
-nginx ожидал истечения таймаута на установление соединения.
-</para>
-<para lang="en">
-if the "select" method was used on Windows
-and an error occurred while establishing a backend connection,
-nginx waited for the connection establishment timeout to expire.
-</para>
-</change>
-
-<change type="bugfix">
-<para lang="ru">
-директивы proxy_upload_rate и proxy_download_rate
-в модуле stream
-работали некорректно при проксировании UDP-пакетов.
-</para>
-<para lang="en">
-the "proxy_upload_rate" and "proxy_download_rate" directives
-in the stream module
-worked incorrectly when proxying UDP datagrams.
-</para>
-</change>
-
-</changes>
-
-
 <changes ver="1.15.8" date="2018-12-25">
 
 <change type="feature">

  Renamed: vendor/nginx-1.15.8/docs/xsls/changes.xsls (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/docs/xslt/changes.xslt (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/misc/GNUmakefile (+2 -1) 98%
===================================================================
--- vendor/nginx-1.15.10/misc/GNUmakefile    2019-03-27 12:50:20 +0900 (bf91174eb)
+++ vendor/nginx-1.15.8/misc/GNUmakefile    2019-03-27 13:17:47 +0900 (d68ceca00)
@@ -6,7 +6,7 @@ TEMP =		tmp
 
 CC =		cl
 OBJS =		objs.msvc8
-OPENSSL =	openssl-1.1.1b
+OPENSSL =	openssl-1.0.2q
 ZLIB =		zlib-1.2.11
 PCRE =		pcre-8.42
 
@@ -65,6 +65,7 @@ win32:
 		--with-cc-opt=-DFD_SETSIZE=1024				\
 		--with-pcre=$(OBJS)/lib/$(PCRE)				\
 		--with-zlib=$(OBJS)/lib/$(ZLIB)				\
+		--with-select_module					\
 		--with-http_v2_module					\
 		--with-http_realip_module				\
 		--with-http_addition_module				\

  Renamed: vendor/nginx-1.15.8/misc/README (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/nginx.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/nginx.h (+2 -2) 84%
===================================================================
--- vendor/nginx-1.15.10/src/core/nginx.h    2019-03-27 12:50:20 +0900 (ad1a3b2b0)
+++ vendor/nginx-1.15.8/src/core/nginx.h    2019-03-27 13:17:47 +0900 (5e2c5a88f)
@@ -9,8 +9,8 @@
 #define _NGINX_H_INCLUDED_
 
 
-#define nginx_version      1015010
-#define NGINX_VERSION      "1.15.10"
+#define nginx_version      1015008
+#define NGINX_VERSION      "1.15.8"
 #define NGINX_VER          "nginx/" NGINX_VERSION
 
 #ifdef NGX_BUILD

  Renamed: vendor/nginx-1.15.8/src/core/ngx_array.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_array.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_buf.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_buf.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_conf_file.c (+1 -1) 99%
===================================================================
--- vendor/nginx-1.15.10/src/core/ngx_conf_file.c    2019-03-27 12:50:20 +0900 (6d1629e9b)
+++ vendor/nginx-1.15.8/src/core/ngx_conf_file.c    2019-03-27 13:17:47 +0900 (e92cd33c9)
@@ -310,7 +310,7 @@ ngx_conf_parse(ngx_conf_t *cf, ngx_str_t *filename)
                 goto failed;
             }
 
-            ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, "%s", rv);
+            ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, rv);
 
             goto failed;
         }

  Renamed: vendor/nginx-1.15.8/src/core/ngx_conf_file.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_config.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_connection.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_connection.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_core.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_cpuinfo.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_crc.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_crc32.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_crc32.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_crypt.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_crypt.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_cycle.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_cycle.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_file.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_file.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_hash.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_hash.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_inet.c (+220 -218) 82%
===================================================================
--- vendor/nginx-1.15.10/src/core/ngx_inet.c    2019-03-27 12:50:20 +0900 (4228504ad)
+++ vendor/nginx-1.15.8/src/core/ngx_inet.c    2019-03-27 13:17:47 +0900 (db48b93c1)
@@ -12,8 +12,6 @@
 static ngx_int_t ngx_parse_unix_domain_url(ngx_pool_t *pool, ngx_url_t *u);
 static ngx_int_t ngx_parse_inet_url(ngx_pool_t *pool, ngx_url_t *u);
 static ngx_int_t ngx_parse_inet6_url(ngx_pool_t *pool, ngx_url_t *u);
-static ngx_int_t ngx_inet_add_addr(ngx_pool_t *pool, ngx_url_t *u,
-    struct sockaddr *sockaddr, socklen_t socklen, ngx_uint_t total);
 
 
 in_addr_t
@@ -782,10 +780,13 @@ ngx_parse_unix_domain_url(ngx_pool_t *pool, ngx_url_t *u)
 static ngx_int_t
 ngx_parse_inet_url(ngx_pool_t *pool, ngx_url_t *u)
 {
-    u_char              *host, *port, *last, *uri, *args, *dash;
-    size_t               len;
-    ngx_int_t            n;
-    struct sockaddr_in  *sin;
+    u_char               *p, *host, *port, *last, *uri, *args;
+    size_t                len;
+    ngx_int_t             n;
+    struct sockaddr_in   *sin;
+#if (NGX_HAVE_INET6)
+    struct sockaddr_in6  *sin6;
+#endif
 
     u->socklen = sizeof(struct sockaddr_in);
     sin = (struct sockaddr_in *) &u->sockaddr;
@@ -830,25 +831,6 @@ ngx_parse_inet_url(ngx_pool_t *pool, ngx_url_t *u)
 
         len = last - port;
 
-        if (u->listen) {
-            dash = ngx_strlchr(port, last, '-');
-
-            if (dash) {
-                dash++;
-
-                n = ngx_atoi(dash, last - dash);
-
-                if (n < 1 || n > 65535) {
-                    u->err = "invalid port";
-                    return NGX_ERROR;
-                }
-
-                u->last_port = (in_port_t) n;
-
-                len = dash - port - 1;
-            }
-        }
-
         n = ngx_atoi(port, len);
 
         if (n < 1 || n > 65535) {
@@ -856,15 +838,10 @@ ngx_parse_inet_url(ngx_pool_t *pool, ngx_url_t *u)
             return NGX_ERROR;
         }
 
-        if (u->last_port && n > u->last_port) {
-            u->err = "invalid port range";
-            return NGX_ERROR;
-        }
-
         u->port = (in_port_t) n;
         sin->sin_port = htons((in_port_t) n);
 
-        u->port_text.len = last - port;
+        u->port_text.len = len;
         u->port_text.data = port;
 
         last = port - 1;
@@ -876,69 +853,31 @@ ngx_parse_inet_url(ngx_pool_t *pool, ngx_url_t *u)
 
                 /* test value as port only */
 
-                len = last - host;
-
-                dash = ngx_strlchr(host, last, '-');
-
-                if (dash) {
-                    dash++;
-
-                    n = ngx_atoi(dash, last - dash);
-
-                    if (n == NGX_ERROR) {
-                        goto no_port;
-                    }
-
-                    if (n < 1 || n > 65535) {
-                        u->err = "invalid port";
-
-                    } else {
-                        u->last_port = (in_port_t) n;
-                    }
-
-                    len = dash - host - 1;
-                }
-
-                n = ngx_atoi(host, len);
+                n = ngx_atoi(host, last - host);
 
                 if (n != NGX_ERROR) {
 
-                    if (u->err) {
-                        return NGX_ERROR;
-                    }
-
                     if (n < 1 || n > 65535) {
                         u->err = "invalid port";
                         return NGX_ERROR;
                     }
 
-                    if (u->last_port && n > u->last_port) {
-                        u->err = "invalid port range";
-                        return NGX_ERROR;
-                    }
-
                     u->port = (in_port_t) n;
                     sin->sin_port = htons((in_port_t) n);
-                    sin->sin_addr.s_addr = INADDR_ANY;
 
                     u->port_text.len = last - host;
                     u->port_text.data = host;
 
                     u->wildcard = 1;
 
-                    return ngx_inet_add_addr(pool, u, &u->sockaddr.sockaddr,
-                                             u->socklen, 1);
+                    return NGX_OK;
                 }
             }
         }
 
-no_port:
-
-        u->err = NULL;
         u->no_port = 1;
         u->port = u->default_port;
         sin->sin_port = htons(u->default_port);
-        u->last_port = 0;
     }
 
     len = last - host;
@@ -954,7 +893,7 @@ no_port:
     if (u->listen && len == 1 && *host == '*') {
         sin->sin_addr.s_addr = INADDR_ANY;
         u->wildcard = 1;
-        return ngx_inet_add_addr(pool, u, &u->sockaddr.sockaddr, u->socklen, 1);
+        return NGX_OK;
     }
 
     sin->sin_addr.s_addr = ngx_inet_addr(host, len);
@@ -965,7 +904,33 @@ no_port:
             u->wildcard = 1;
         }
 
-        return ngx_inet_add_addr(pool, u, &u->sockaddr.sockaddr, u->socklen, 1);
+        u->naddrs = 1;
+
+        u->addrs = ngx_pcalloc(pool, sizeof(ngx_addr_t));
+        if (u->addrs == NULL) {
+            return NGX_ERROR;
+        }
+
+        sin = ngx_pcalloc(pool, sizeof(struct sockaddr_in));
+        if (sin == NULL) {
+            return NGX_ERROR;
+        }
+
+        ngx_memcpy(sin, &u->sockaddr, sizeof(struct sockaddr_in));
+
+        u->addrs[0].sockaddr = (struct sockaddr *) sin;
+        u->addrs[0].socklen = sizeof(struct sockaddr_in);
+
+        p = ngx_pnalloc(pool, u->host.len + sizeof(":65535") - 1);
+        if (p == NULL) {
+            return NGX_ERROR;
+        }
+
+        u->addrs[0].name.len = ngx_sprintf(p, "%V:%d",
+                                           &u->host, u->port) - p;
+        u->addrs[0].name.data = p;
+
+        return NGX_OK;
     }
 
     if (u->no_resolve) {
@@ -979,7 +944,29 @@ no_port:
     u->family = u->addrs[0].sockaddr->sa_family;
     u->socklen = u->addrs[0].socklen;
     ngx_memcpy(&u->sockaddr, u->addrs[0].sockaddr, u->addrs[0].socklen);
-    u->wildcard = ngx_inet_wildcard(&u->sockaddr.sockaddr);
+
+    switch (u->family) {
+
+#if (NGX_HAVE_INET6)
+    case AF_INET6:
+        sin6 = (struct sockaddr_in6 *) &u->sockaddr;
+
+        if (IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr)) {
+            u->wildcard = 1;
+        }
+
+        break;
+#endif
+
+    default: /* AF_INET */
+        sin = (struct sockaddr_in *) &u->sockaddr;
+
+        if (sin->sin_addr.s_addr == INADDR_ANY) {
+            u->wildcard = 1;
+        }
+
+        break;
+    }
 
     return NGX_OK;
 }
@@ -989,7 +976,7 @@ static ngx_int_t
 ngx_parse_inet6_url(ngx_pool_t *pool, ngx_url_t *u)
 {
 #if (NGX_HAVE_INET6)
-    u_char               *p, *host, *port, *last, *uri, *dash;
+    u_char               *p, *host, *port, *last, *uri;
     size_t                len;
     ngx_int_t             n;
     struct sockaddr_in6  *sin6;
@@ -1035,25 +1022,6 @@ ngx_parse_inet6_url(ngx_pool_t *pool, ngx_url_t *u)
 
         len = last - port;
 
-        if (u->listen) {
-            dash = ngx_strlchr(port, last, '-');
-
-            if (dash) {
-                dash++;
-
-                n = ngx_atoi(dash, last - dash);
-
-                if (n < 1 || n > 65535) {
-                    u->err = "invalid port";
-                    return NGX_ERROR;
-                }
-
-                u->last_port = (in_port_t) n;
-
-                len = dash - port - 1;
-            }
-        }
-
         n = ngx_atoi(port, len);
 
         if (n < 1 || n > 65535) {
@@ -1061,15 +1029,10 @@ ngx_parse_inet6_url(ngx_pool_t *pool, ngx_url_t *u)
             return NGX_ERROR;
         }
 
-        if (u->last_port && n > u->last_port) {
-            u->err = "invalid port range";
-            return NGX_ERROR;
-        }
-
         u->port = (in_port_t) n;
         sin6->sin6_port = htons((in_port_t) n);
 
-        u->port_text.len = last - port;
+        u->port_text.len = len;
         u->port_text.data = port;
 
     } else {
@@ -1098,8 +1061,33 @@ ngx_parse_inet6_url(ngx_pool_t *pool, ngx_url_t *u)
     }
 
     u->family = AF_INET6;
+    u->naddrs = 1;
+
+    u->addrs = ngx_pcalloc(pool, sizeof(ngx_addr_t));
+    if (u->addrs == NULL) {
+        return NGX_ERROR;
+    }
+
+    sin6 = ngx_pcalloc(pool, sizeof(struct sockaddr_in6));
+    if (sin6 == NULL) {
+        return NGX_ERROR;
+    }
+
+    ngx_memcpy(sin6, &u->sockaddr, sizeof(struct sockaddr_in6));
+
+    u->addrs[0].sockaddr = (struct sockaddr *) sin6;
+    u->addrs[0].socklen = sizeof(struct sockaddr_in6);
+
+    p = ngx_pnalloc(pool, u->host.len + sizeof(":65535") - 1);
+    if (p == NULL) {
+        return NGX_ERROR;
+    }
 
-    return ngx_inet_add_addr(pool, u, &u->sockaddr.sockaddr, u->socklen, 1);
+    u->addrs[0].name.len = ngx_sprintf(p, "%V:%d",
+                                       &u->host, u->port) - p;
+    u->addrs[0].name.data = p;
+
+    return NGX_OK;
 
 #else
 
@@ -1116,9 +1104,15 @@ ngx_parse_inet6_url(ngx_pool_t *pool, ngx_url_t *u)
 ngx_int_t
 ngx_inet_resolve_host(ngx_pool_t *pool, ngx_url_t *u)
 {
-    u_char           *host;
-    ngx_uint_t        n;
-    struct addrinfo   hints, *res, *rp;
+    u_char               *p, *host;
+    size_t                len;
+    in_port_t             port;
+    ngx_uint_t            i;
+    struct addrinfo       hints, *res, *rp;
+    struct sockaddr_in   *sin;
+    struct sockaddr_in6  *sin6;
+
+    port = htons(u->port);
 
     host = ngx_alloc(u->host.len + 1, pool->log);
     if (host == NULL) {
@@ -1142,7 +1136,7 @@ ngx_inet_resolve_host(ngx_pool_t *pool, ngx_url_t *u)
 
     ngx_free(host);
 
-    for (n = 0, rp = res; rp != NULL; rp = rp->ai_next) {
+    for (i = 0, rp = res; rp != NULL; rp = rp->ai_next) {
 
         switch (rp->ai_family) {
 
@@ -1154,33 +1148,92 @@ ngx_inet_resolve_host(ngx_pool_t *pool, ngx_url_t *u)
             continue;
         }
 
-        n++;
+        i++;
     }
 
-    if (n == 0) {
+    if (i == 0) {
         u->err = "host not found";
         goto failed;
     }
 
     /* MP: ngx_shared_palloc() */
 
+    u->addrs = ngx_pcalloc(pool, i * sizeof(ngx_addr_t));
+    if (u->addrs == NULL) {
+        goto failed;
+    }
+
+    u->naddrs = i;
+
+    i = 0;
+
+    /* AF_INET addresses first */
+
     for (rp = res; rp != NULL; rp = rp->ai_next) {
 
-        switch (rp->ai_family) {
+        if (rp->ai_family != AF_INET) {
+            continue;
+        }
 
-        case AF_INET:
-        case AF_INET6:
-            break;
+        sin = ngx_pcalloc(pool, rp->ai_addrlen);
+        if (sin == NULL) {
+            goto failed;
+        }
 
-        default:
+        ngx_memcpy(sin, rp->ai_addr, rp->ai_addrlen);
+
+        sin->sin_port = port;
+
+        u->addrs[i].sockaddr = (struct sockaddr *) sin;
+        u->addrs[i].socklen = rp->ai_addrlen;
+
+        len = NGX_INET_ADDRSTRLEN + sizeof(":65535") - 1;
+
+        p = ngx_pnalloc(pool, len);
+        if (p == NULL) {
+            goto failed;
+        }
+
+        len = ngx_sock_ntop((struct sockaddr *) sin, rp->ai_addrlen, p, len, 1);
+
+        u->addrs[i].name.len = len;
+        u->addrs[i].name.data = p;
+
+        i++;
+    }
+
+    for (rp = res; rp != NULL; rp = rp->ai_next) {
+
+        if (rp->ai_family != AF_INET6) {
             continue;
         }
 
-        if (ngx_inet_add_addr(pool, u, rp->ai_addr, rp->ai_addrlen, n)
-            != NGX_OK)
-        {
+        sin6 = ngx_pcalloc(pool, rp->ai_addrlen);
+        if (sin6 == NULL) {
+            goto failed;
+        }
+
+        ngx_memcpy(sin6, rp->ai_addr, rp->ai_addrlen);
+
+        sin6->sin6_port = port;
+
+        u->addrs[i].sockaddr = (struct sockaddr *) sin6;
+        u->addrs[i].socklen = rp->ai_addrlen;
+
+        len = NGX_INET6_ADDRSTRLEN + sizeof("[]:65535") - 1;
+
+        p = ngx_pnalloc(pool, len);
+        if (p == NULL) {
             goto failed;
         }
+
+        len = ngx_sock_ntop((struct sockaddr *) sin6, rp->ai_addrlen, p,
+                            len, 1);
+
+        u->addrs[i].name.len = len;
+        u->addrs[i].name.data = p;
+
+        i++;
     }
 
     freeaddrinfo(res);
@@ -1197,19 +1250,21 @@ failed:
 ngx_int_t
 ngx_inet_resolve_host(ngx_pool_t *pool, ngx_url_t *u)
 {
-    u_char              *host;
-    ngx_uint_t           i, n;
+    u_char              *p, *host;
+    size_t               len;
+    in_port_t            port;
+    in_addr_t            in_addr;
+    ngx_uint_t           i;
     struct hostent      *h;
-    struct sockaddr_in   sin;
+    struct sockaddr_in  *sin;
 
     /* AF_INET only */
 
-    ngx_memzero(&sin, sizeof(struct sockaddr_in));
+    port = htons(u->port);
 
-    sin.sin_family = AF_INET;
-    sin.sin_addr.s_addr = ngx_inet_addr(u->host.data, u->host.len);
+    in_addr = ngx_inet_addr(u->host.data, u->host.len);
 
-    if (sin.sin_addr.s_addr == INADDR_NONE) {
+    if (in_addr == INADDR_NONE) {
         host = ngx_alloc(u->host.len + 1, pool->log);
         if (host == NULL) {
             return NGX_ERROR;
@@ -1226,99 +1281,83 @@ ngx_inet_resolve_host(ngx_pool_t *pool, ngx_url_t *u)
             return NGX_ERROR;
         }
 
-        for (n = 0; h->h_addr_list[n] != NULL; n++) { /* void */ }
+        for (i = 0; h->h_addr_list[i] != NULL; i++) { /* void */ }
 
         /* MP: ngx_shared_palloc() */
 
-        for (i = 0; i < n; i++) {
-            sin.sin_addr.s_addr = *(in_addr_t *) (h->h_addr_list[i]);
+        u->addrs = ngx_pcalloc(pool, i * sizeof(ngx_addr_t));
+        if (u->addrs == NULL) {
+            return NGX_ERROR;
+        }
+
+        u->naddrs = i;
 
-            if (ngx_inet_add_addr(pool, u, (struct sockaddr *) &sin,
-                                  sizeof(struct sockaddr_in), n)
-                != NGX_OK)
-            {
+        for (i = 0; i < u->naddrs; i++) {
+
+            sin = ngx_pcalloc(pool, sizeof(struct sockaddr_in));
+            if (sin == NULL) {
                 return NGX_ERROR;
             }
-        }
 
-    } else {
+            sin->sin_family = AF_INET;
+            sin->sin_port = port;
+            sin->sin_addr.s_addr = *(in_addr_t *) (h->h_addr_list[i]);
 
-        /* MP: ngx_shared_palloc() */
+            u->addrs[i].sockaddr = (struct sockaddr *) sin;
+            u->addrs[i].socklen = sizeof(struct sockaddr_in);
 
-        if (ngx_inet_add_addr(pool, u, (struct sockaddr *) &sin,
-                              sizeof(struct sockaddr_in), 1)
-            != NGX_OK)
-        {
-            return NGX_ERROR;
-        }
-    }
+            len = NGX_INET_ADDRSTRLEN + sizeof(":65535") - 1;
 
-    return NGX_OK;
-}
+            p = ngx_pnalloc(pool, len);
+            if (p == NULL) {
+                return NGX_ERROR;
+            }
 
-#endif /* NGX_HAVE_GETADDRINFO && NGX_HAVE_INET6 */
+            len = ngx_sock_ntop((struct sockaddr *) sin,
+                                sizeof(struct sockaddr_in), p, len, 1);
 
+            u->addrs[i].name.len = len;
+            u->addrs[i].name.data = p;
+        }
 
-static ngx_int_t
-ngx_inet_add_addr(ngx_pool_t *pool, ngx_url_t *u, struct sockaddr *sockaddr,
-    socklen_t socklen, ngx_uint_t total)
-{
-    u_char           *p;
-    size_t            len;
-    ngx_uint_t        i, nports;
-    ngx_addr_t       *addr;
-    struct sockaddr  *sa;
+    } else {
 
-    nports = u->last_port ? u->last_port - u->port + 1 : 1;
+        /* MP: ngx_shared_palloc() */
 
-    if (u->addrs == NULL) {
-        u->addrs = ngx_palloc(pool, total * nports * sizeof(ngx_addr_t));
+        u->addrs = ngx_pcalloc(pool, sizeof(ngx_addr_t));
         if (u->addrs == NULL) {
             return NGX_ERROR;
         }
-    }
 
-    for (i = 0; i < nports; i++) {
-        sa = ngx_pcalloc(pool, socklen);
-        if (sa == NULL) {
+        sin = ngx_pcalloc(pool, sizeof(struct sockaddr_in));
+        if (sin == NULL) {
             return NGX_ERROR;
         }
 
-        ngx_memcpy(sa, sockaddr, socklen);
+        u->naddrs = 1;
 
-        ngx_inet_set_port(sa, u->port + i);
+        sin->sin_family = AF_INET;
+        sin->sin_port = port;
+        sin->sin_addr.s_addr = in_addr;
 
-        switch (sa->sa_family) {
-
-#if (NGX_HAVE_INET6)
-        case AF_INET6:
-            len = NGX_INET6_ADDRSTRLEN + sizeof("[]:65536") - 1;
-            break;
-#endif
+        u->addrs[0].sockaddr = (struct sockaddr *) sin;
+        u->addrs[0].socklen = sizeof(struct sockaddr_in);
 
-        default: /* AF_INET */
-            len = NGX_INET_ADDRSTRLEN + sizeof(":65535") - 1;
-        }
-
-        p = ngx_pnalloc(pool, len);
+        p = ngx_pnalloc(pool, u->host.len + sizeof(":65535") - 1);
         if (p == NULL) {
             return NGX_ERROR;
         }
 
-        len = ngx_sock_ntop(sa, socklen, p, len, 1);
-
-        addr = &u->addrs[u->naddrs++];
-
-        addr->sockaddr = sa;
-        addr->socklen = socklen;
-
-        addr->name.len = len;
-        addr->name.data = p;
+        u->addrs[0].name.len = ngx_sprintf(p, "%V:%d",
+                                           &u->host, ntohs(port)) - p;
+        u->addrs[0].name.data = p;
     }
 
     return NGX_OK;
 }
 
+#endif /* NGX_HAVE_GETADDRINFO && NGX_HAVE_INET6 */
+
 
 ngx_int_t
 ngx_cmp_sockaddr(struct sockaddr *sa1, socklen_t slen1,
@@ -1456,40 +1495,3 @@ ngx_inet_set_port(struct sockaddr *sa, in_port_t port)
         break;
     }
 }
-
-
-ngx_uint_t
-ngx_inet_wildcard(struct sockaddr *sa)
-{
-    struct sockaddr_in   *sin;
-#if (NGX_HAVE_INET6)
-    struct sockaddr_in6  *sin6;
-#endif
-
-    switch (sa->sa_family) {
-
-    case AF_INET:
-        sin = (struct sockaddr_in *) sa;
-
-        if (sin->sin_addr.s_addr == INADDR_ANY) {
-            return 1;
-        }
-
-        break;
-
-#if (NGX_HAVE_INET6)
-
-    case AF_INET6:
-        sin6 = (struct sockaddr_in6 *) sa;
-
-        if (IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr)) {
-            return 1;
-        }
-
-        break;
-
-#endif
-    }
-
-    return 0;
-}

  Renamed: vendor/nginx-1.15.8/src/core/ngx_inet.h (+0 -2) 97%
===================================================================
--- vendor/nginx-1.15.10/src/core/ngx_inet.h    2019-03-27 12:50:20 +0900 (19050fc75)
+++ vendor/nginx-1.15.8/src/core/ngx_inet.h    2019-03-27 13:17:47 +0900 (a3b392ee7)
@@ -86,7 +86,6 @@ typedef struct {
 
     in_port_t                 port;
     in_port_t                 default_port;
-    in_port_t                 last_port;
     int                       family;
 
     unsigned                  listen:1;
@@ -126,7 +125,6 @@ ngx_int_t ngx_cmp_sockaddr(struct sockaddr *sa1, socklen_t slen1,
     struct sockaddr *sa2, socklen_t slen2, ngx_uint_t cmp_port);
 in_port_t ngx_inet_get_port(struct sockaddr *sa);
 void ngx_inet_set_port(struct sockaddr *sa, in_port_t port);
-ngx_uint_t ngx_inet_wildcard(struct sockaddr *sa);
 
 
 #endif /* _NGX_INET_H_INCLUDED_ */

  Renamed: vendor/nginx-1.15.8/src/core/ngx_list.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_list.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_log.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_log.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_md5.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_md5.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_module.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_murmurhash.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_murmurhash.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_open_file_cache.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_open_file_cache.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_output_chain.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_palloc.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_palloc.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_parse.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_parse.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_parse_time.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_parse_time.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_proxy_protocol.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_proxy_protocol.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_queue.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_queue.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_radix_tree.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_radix_tree.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_rbtree.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_rbtree.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_regex.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_regex.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_resolver.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_resolver.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_rwlock.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_rwlock.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_sha1.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_sha1.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_shmtx.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_shmtx.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_slab.c (+2 -1) 99%
===================================================================
--- vendor/nginx-1.15.10/src/core/ngx_slab.c    2019-03-27 12:50:20 +0900 (b8577ce75)
+++ vendor/nginx-1.15.8/src/core/ngx_slab.c    2019-03-27 13:17:47 +0900 (402387053)
@@ -635,9 +635,10 @@ ngx_slab_free_locked(ngx_slab_pool_t *pool, void *p)
             goto fail;
         }
 
+        n = ((u_char *) p - pool->start) >> ngx_pagesize_shift;
         size = slab & ~NGX_SLAB_PAGE_START;
 
-        ngx_slab_free_pages(pool, page, size);
+        ngx_slab_free_pages(pool, &pool->pages[n], size);
 
         ngx_slab_junk(p, size << ngx_pagesize_shift);
 

  Renamed: vendor/nginx-1.15.8/src/core/ngx_slab.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_spinlock.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_string.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_string.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_syslog.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_syslog.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_thread_pool.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_thread_pool.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_times.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/core/ngx_times.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/event/modules/ngx_devpoll_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/event/modules/ngx_epoll_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/event/modules/ngx_eventport_module.c (+2 -0) 99%
===================================================================
--- vendor/nginx-1.15.10/src/event/modules/ngx_eventport_module.c    2019-03-27 12:50:20 +0900 (11ad0934e)
+++ vendor/nginx-1.15.8/src/event/modules/ngx_eventport_module.c    2019-03-27 13:17:47 +0900 (01cfc97ea)
@@ -250,7 +250,9 @@ ngx_eventport_init(ngx_cycle_t *cycle, ngx_msec_t timer)
 
         ngx_memzero(&sev, sizeof(struct sigevent));
         sev.sigev_notify = SIGEV_PORT;
+#if !(NGX_TEST_BUILD_EVENTPORT)
         sev.sigev_value.sival_ptr = &pn;
+#endif
 
         if (timer_create(CLOCK_REALTIME, &sev, &event_timer) == -1) {
             ngx_log_error(NGX_LOG_EMERG, cycle->log, ngx_errno,

  Renamed: vendor/nginx-1.15.8/src/event/modules/ngx_iocp_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/event/modules/ngx_iocp_module.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/event/modules/ngx_kqueue_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/event/modules/ngx_poll_module.c (+1 -1) 99%
===================================================================
--- vendor/nginx-1.15.10/src/event/modules/ngx_poll_module.c    2019-03-27 12:50:20 +0900 (b46ab538a)
+++ vendor/nginx-1.15.8/src/event/modules/ngx_poll_module.c    2019-03-27 13:17:47 +0900 (4e03dabf2)
@@ -84,7 +84,7 @@ ngx_poll_init(ngx_cycle_t *cycle, ngx_msec_t timer)
         }
 
         if (event_list) {
-            ngx_memcpy(list, event_list, sizeof(struct pollfd) * nevents);
+            ngx_memcpy(list, event_list, sizeof(ngx_event_t *) * nevents);
             ngx_free(event_list);
         }
 

  Renamed: vendor/nginx-1.15.8/src/event/modules/ngx_select_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/event/modules/ngx_win32_select_module.c (+4 -13) 95%
===================================================================
--- vendor/nginx-1.15.10/src/event/modules/ngx_win32_select_module.c    2019-03-27 12:50:20 +0900 (8093a600b)
+++ vendor/nginx-1.15.8/src/event/modules/ngx_win32_select_module.c    2019-03-27 13:17:47 +0900 (a98a83f28)
@@ -26,7 +26,6 @@ static fd_set         master_read_fd_set;
 static fd_set         master_write_fd_set;
 static fd_set         work_read_fd_set;
 static fd_set         work_write_fd_set;
-static fd_set         work_except_fd_set;
 
 static ngx_uint_t     max_read;
 static ngx_uint_t     max_write;
@@ -252,11 +251,9 @@ ngx_select_process_events(ngx_cycle_t *cycle, ngx_msec_t timer,
 
     work_read_fd_set = master_read_fd_set;
     work_write_fd_set = master_write_fd_set;
-    work_except_fd_set = master_write_fd_set;
 
     if (max_read || max_write) {
-        ready = select(0, &work_read_fd_set, &work_write_fd_set,
-                       &work_except_fd_set, tp);
+        ready = select(0, &work_read_fd_set, &work_write_fd_set, NULL, tp);
 
     } else {
 
@@ -309,20 +306,14 @@ ngx_select_process_events(ngx_cycle_t *cycle, ngx_msec_t timer,
 
         if (ev->write) {
             if (FD_ISSET(c->fd, &work_write_fd_set)) {
-                found++;
+                found = 1;
                 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
                                "select write %d", c->fd);
             }
 
-            if (FD_ISSET(c->fd, &work_except_fd_set)) {
-                found++;
-                ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
-                               "select except %d", c->fd);
-            }
-
         } else {
             if (FD_ISSET(c->fd, &work_read_fd_set)) {
-                found++;
+                found = 1;
                 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
                                "select read %d", c->fd);
             }
@@ -336,7 +327,7 @@ ngx_select_process_events(ngx_cycle_t *cycle, ngx_msec_t timer,
 
             ngx_post_event(ev, queue);
 
-            nready += found;
+            nready++;
         }
     }
 

  Renamed: vendor/nginx-1.15.8/src/event/ngx_event.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/event/ngx_event.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/event/ngx_event_accept.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/event/ngx_event_acceptex.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/event/ngx_event_connect.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/event/ngx_event_connect.h (+0 -1) 97%
===================================================================
--- vendor/nginx-1.15.10/src/event/ngx_event_connect.h    2019-03-27 12:50:20 +0900 (d3b23782e)
+++ vendor/nginx-1.15.8/src/event/ngx_event_connect.h    2019-03-27 13:17:47 +0900 (7253ebb04)
@@ -63,7 +63,6 @@ struct ngx_peer_connection_s {
     unsigned                         cached:1;
     unsigned                         transparent:1;
     unsigned                         so_keepalive:1;
-    unsigned                         down:1;
 
                                      /* ngx_connection_log_error_e */
     unsigned                         log_error:2;

  Renamed: vendor/nginx-1.15.8/src/event/ngx_event_connectex.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/event/ngx_event_openssl.c (+136 -442) 90%
===================================================================
--- vendor/nginx-1.15.10/src/event/ngx_event_openssl.c    2019-03-27 12:50:20 +0900 (bee264c9f)
+++ vendor/nginx-1.15.8/src/event/ngx_event_openssl.c    2019-03-27 13:17:47 +0900 (37a4b72b6)
@@ -18,10 +18,6 @@ typedef struct {
 } ngx_openssl_conf_t;
 
 
-static X509 *ngx_ssl_load_certificate(ngx_pool_t *pool, char **err,
-    ngx_str_t *cert, STACK_OF(X509) **chain);
-static EVP_PKEY *ngx_ssl_load_certificate_key(ngx_pool_t *pool, char **err,
-    ngx_str_t *key, ngx_array_t *passwords);
 static int ngx_ssl_password_callback(char *buf, int size, int rwflag,
     void *userdata);
 static int ngx_ssl_verify_callback(int ok, X509_STORE_CTX *x509_store);
@@ -54,7 +50,7 @@ static void ngx_ssl_connection_error(ngx_connection_t *c, int sslerr,
 static void ngx_ssl_clear_error(ngx_log_t *log);
 
 static ngx_int_t ngx_ssl_session_id_context(ngx_ssl_t *ssl,
-    ngx_str_t *sess_ctx, ngx_array_t *certificates);
+    ngx_str_t *sess_ctx);
 static int ngx_ssl_new_session(ngx_ssl_conn_t *ssl_conn,
     ngx_ssl_session_t *sess);
 static ngx_ssl_session_t *ngx_ssl_get_cached_session(ngx_ssl_conn_t *ssl_conn,
@@ -72,7 +68,6 @@ static void ngx_ssl_session_rbtree_insert_value(ngx_rbtree_node_t *temp,
 static int ngx_ssl_session_ticket_key_callback(ngx_ssl_conn_t *ssl_conn,
     unsigned char *name, unsigned char *iv, EVP_CIPHER_CTX *ectx,
     HMAC_CTX *hctx, int enc);
-static void ngx_ssl_session_ticket_keys_cleanup(void *data);
 #endif
 
 #ifndef X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT
@@ -368,10 +363,6 @@ ngx_ssl_create(ngx_ssl_t *ssl, ngx_uint_t protocols, void *data)
     SSL_CTX_set_options(ssl->ctx, SSL_OP_NO_ANTI_REPLAY);
 #endif
 
-#ifdef SSL_OP_NO_CLIENT_RENEGOTIATION
-    SSL_CTX_set_options(ssl->ctx, SSL_OP_NO_CLIENT_RENEGOTIATION);
-#endif
-
 #ifdef SSL_MODE_RELEASE_BUFFERS
     SSL_CTX_set_mode(ssl->ctx, SSL_MODE_RELEASE_BUFFERS);
 #endif
@@ -415,19 +406,34 @@ ngx_int_t
 ngx_ssl_certificate(ngx_conf_t *cf, ngx_ssl_t *ssl, ngx_str_t *cert,
     ngx_str_t *key, ngx_array_t *passwords)
 {
-    char            *err;
-    X509            *x509;
-    EVP_PKEY        *pkey;
-    STACK_OF(X509)  *chain;
+    BIO         *bio;
+    X509        *x509;
+    u_long       n;
+    ngx_str_t   *pwd;
+    ngx_uint_t   tries;
 
-    x509 = ngx_ssl_load_certificate(cf->pool, &err, cert, &chain);
-    if (x509 == NULL) {
-        if (err != NULL) {
-            ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0,
-                          "cannot load certificate \"%s\": %s",
-                          cert->data, err);
-        }
+    if (ngx_conf_full_name(cf->cycle, cert, 1) != NGX_OK) {
+        return NGX_ERROR;
+    }
+
+    /*
+     * we can't use SSL_CTX_use_certificate_chain_file() as it doesn't
+     * allow to access certificate later from SSL_CTX, so we reimplement
+     * it here
+     */
+
+    bio = BIO_new_file((char *) cert->data, "r");
+    if (bio == NULL) {
+        ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0,
+                      "BIO_new_file(\"%s\") failed", cert->data);
+        return NGX_ERROR;
+    }
 
+    x509 = PEM_read_bio_X509_AUX(bio, NULL, NULL, NULL);
+    if (x509 == NULL) {
+        ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0,
+                      "PEM_read_bio_X509_AUX(\"%s\") failed", cert->data);
+        BIO_free(bio);
         return NGX_ERROR;
     }
 
@@ -435,7 +441,7 @@ ngx_ssl_certificate(ngx_conf_t *cf, ngx_ssl_t *ssl, ngx_str_t *cert,
         ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0,
                       "SSL_CTX_use_certificate(\"%s\") failed", cert->data);
         X509_free(x509);
-        sk_X509_pop_free(chain, X509_free);
+        BIO_free(bio);
         return NGX_ERROR;
     }
 
@@ -444,7 +450,7 @@ ngx_ssl_certificate(ngx_conf_t *cf, ngx_ssl_t *ssl, ngx_str_t *cert,
     {
         ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0, "X509_set_ex_data() failed");
         X509_free(x509);
-        sk_X509_pop_free(chain, X509_free);
+        BIO_free(bio);
         return NGX_ERROR;
     }
 
@@ -454,211 +460,26 @@ ngx_ssl_certificate(ngx_conf_t *cf, ngx_ssl_t *ssl, ngx_str_t *cert,
     {
         ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0, "X509_set_ex_data() failed");
         X509_free(x509);
-        sk_X509_pop_free(chain, X509_free);
-        return NGX_ERROR;
-    }
-
-    if (SSL_CTX_set_ex_data(ssl->ctx, ngx_ssl_certificate_index, x509) == 0) {
-        ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0,
-                      "SSL_CTX_set_ex_data() failed");
-        X509_free(x509);
-        sk_X509_pop_free(chain, X509_free);
-        return NGX_ERROR;
-    }
-
-    /*
-     * Note that x509 is not freed here, but will be instead freed in
-     * ngx_ssl_cleanup_ctx().  This is because we need to preserve all
-     * certificates to be able to iterate all of them through exdata
-     * (ngx_ssl_certificate_index, ngx_ssl_next_certificate_index),
-     * while OpenSSL can free a certificate if it is replaced with another
-     * certificate of the same type.
-     */
-
-#ifdef SSL_CTX_set0_chain
-
-    if (SSL_CTX_set0_chain(ssl->ctx, chain) == 0) {
-        ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0,
-                      "SSL_CTX_set0_chain(\"%s\") failed", cert->data);
-        sk_X509_pop_free(chain, X509_free);
+        BIO_free(bio);
         return NGX_ERROR;
     }
 
-#else
+    if (SSL_CTX_set_ex_data(ssl->ctx, ngx_ssl_certificate_index, x509)
+        == 0)
     {
-    int  n;
-
-    /* SSL_CTX_set0_chain() is only available in OpenSSL 1.0.2+ */
-
-    n = sk_X509_num(chain);
-
-    while (n--) {
-        x509 = sk_X509_shift(chain);
-
-        if (SSL_CTX_add_extra_chain_cert(ssl->ctx, x509) == 0) {
-            ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0,
-                          "SSL_CTX_add_extra_chain_cert(\"%s\") failed",
-                          cert->data);
-            sk_X509_pop_free(chain, X509_free);
-            return NGX_ERROR;
-        }
-    }
-
-    sk_X509_free(chain);
-    }
-#endif
-
-    pkey = ngx_ssl_load_certificate_key(cf->pool, &err, key, passwords);
-    if (pkey == NULL) {
-        if (err != NULL) {
-            ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0,
-                          "cannot load certificate key \"%s\": %s",
-                          key->data, err);
-        }
-
-        return NGX_ERROR;
-    }
-
-    if (SSL_CTX_use_PrivateKey(ssl->ctx, pkey) == 0) {
         ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0,
-                      "SSL_CTX_use_PrivateKey(\"%s\") failed", key->data);
-        EVP_PKEY_free(pkey);
-        return NGX_ERROR;
-    }
-
-    EVP_PKEY_free(pkey);
-
-    return NGX_OK;
-}
-
-
-ngx_int_t
-ngx_ssl_connection_certificate(ngx_connection_t *c, ngx_pool_t *pool,
-    ngx_str_t *cert, ngx_str_t *key, ngx_array_t *passwords)
-{
-    char            *err;
-    X509            *x509;
-    EVP_PKEY        *pkey;
-    STACK_OF(X509)  *chain;
-
-    x509 = ngx_ssl_load_certificate(pool, &err, cert, &chain);
-    if (x509 == NULL) {
-        if (err != NULL) {
-            ngx_ssl_error(NGX_LOG_ERR, c->log, 0,
-                          "cannot load certificate \"%s\": %s",
-                          cert->data, err);
-        }
-
-        return NGX_ERROR;
-    }
-
-    if (SSL_use_certificate(c->ssl->connection, x509) == 0) {
-        ngx_ssl_error(NGX_LOG_ERR, c->log, 0,
-                      "SSL_use_certificate(\"%s\") failed", cert->data);
+                      "SSL_CTX_set_ex_data() failed");
         X509_free(x509);
-        sk_X509_pop_free(chain, X509_free);
-        return NGX_ERROR;
-    }
-
-    X509_free(x509);
-
-#ifdef SSL_set0_chain
-
-    /*
-     * SSL_set0_chain() is only available in OpenSSL 1.0.2+,
-     * but this function is only called via certificate callback,
-     * which is only available in OpenSSL 1.0.2+ as well
-     */
-
-    if (SSL_set0_chain(c->ssl->connection, chain) == 0) {
-        ngx_ssl_error(NGX_LOG_ERR, c->log, 0,
-                      "SSL_set0_chain(\"%s\") failed", cert->data);
-        sk_X509_pop_free(chain, X509_free);
-        return NGX_ERROR;
-    }
-
-#endif
-
-    pkey = ngx_ssl_load_certificate_key(pool, &err, key, passwords);
-    if (pkey == NULL) {
-        if (err != NULL) {
-            ngx_ssl_error(NGX_LOG_ERR, c->log, 0,
-                          "cannot load certificate key \"%s\": %s",
-                          key->data, err);
-        }
-
-        return NGX_ERROR;
-    }
-
-    if (SSL_use_PrivateKey(c->ssl->connection, pkey) == 0) {
-        ngx_ssl_error(NGX_LOG_ERR, c->log, 0,
-                      "SSL_use_PrivateKey(\"%s\") failed", key->data);
-        EVP_PKEY_free(pkey);
-        return NGX_ERROR;
-    }
-
-    EVP_PKEY_free(pkey);
-
-    return NGX_OK;
-}
-
-
-static X509 *
-ngx_ssl_load_certificate(ngx_pool_t *pool, char **err, ngx_str_t *cert,
-    STACK_OF(X509) **chain)
-{
-    BIO     *bio;
-    X509    *x509, *temp;
-    u_long   n;
-
-    if (ngx_strncmp(cert->data, "data:", sizeof("data:") - 1) == 0) {
-
-        bio = BIO_new_mem_buf(cert->data + sizeof("data:") - 1,
-                              cert->len - (sizeof("data:") - 1));
-        if (bio == NULL) {
-            *err = "BIO_new_mem_buf() failed";
-            return NULL;
-        }
-
-    } else {
-
-        if (ngx_get_full_name(pool, (ngx_str_t *) &ngx_cycle->conf_prefix, cert)
-            != NGX_OK)
-        {
-            *err = NULL;
-            return NULL;
-        }
-
-        bio = BIO_new_file((char *) cert->data, "r");
-        if (bio == NULL) {
-            *err = "BIO_new_file() failed";
-            return NULL;
-        }
-    }
-
-    /* certificate itself */
-
-    x509 = PEM_read_bio_X509_AUX(bio, NULL, NULL, NULL);
-    if (x509 == NULL) {
-        *err = "PEM_read_bio_X509_AUX() failed";
         BIO_free(bio);
-        return NULL;
+        return NGX_ERROR;
     }
 
-    /* rest of the chain */
-
-    *chain = sk_X509_new_null();
-    if (*chain == NULL) {
-        *err = "sk_X509_new_null() failed";
-        BIO_free(bio);
-        X509_free(x509);
-        return NULL;
-    }
+    /* read rest of the chain */
 
     for ( ;; ) {
 
-        temp = PEM_read_bio_X509(bio, NULL, NULL, NULL);
-        if (temp == NULL) {
+        x509 = PEM_read_bio_X509(bio, NULL, NULL, NULL);
+        if (x509 == NULL) {
             n = ERR_peek_last_error();
 
             if (ERR_GET_LIB(n) == ERR_LIB_PEM
@@ -671,51 +492,58 @@ ngx_ssl_load_certificate(ngx_pool_t *pool, char **err, ngx_str_t *cert,
 
             /* some real error */
 
-            *err = "PEM_read_bio_X509() failed";
+            ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0,
+                          "PEM_read_bio_X509(\"%s\") failed", cert->data);
             BIO_free(bio);
-            X509_free(x509);
-            sk_X509_pop_free(*chain, X509_free);
-            return NULL;
+            return NGX_ERROR;
         }
 
-        if (sk_X509_push(*chain, temp) == 0) {
-            *err = "sk_X509_push() failed";
+#ifdef SSL_CTRL_CHAIN_CERT
+
+        /*
+         * SSL_CTX_add0_chain_cert() is needed to add chain to
+         * a particular certificate when multiple certificates are used;
+         * only available in OpenSSL 1.0.2+
+         */
+
+        if (SSL_CTX_add0_chain_cert(ssl->ctx, x509) == 0) {
+            ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0,
+                          "SSL_CTX_add0_chain_cert(\"%s\") failed",
+                          cert->data);
+            X509_free(x509);
             BIO_free(bio);
+            return NGX_ERROR;
+        }
+
+#else
+        if (SSL_CTX_add_extra_chain_cert(ssl->ctx, x509) == 0) {
+            ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0,
+                          "SSL_CTX_add_extra_chain_cert(\"%s\") failed",
+                          cert->data);
             X509_free(x509);
-            sk_X509_pop_free(*chain, X509_free);
-            return NULL;
+            BIO_free(bio);
+            return NGX_ERROR;
         }
+#endif
     }
 
     BIO_free(bio);
 
-    return x509;
-}
-
-
-static EVP_PKEY *
-ngx_ssl_load_certificate_key(ngx_pool_t *pool, char **err,
-    ngx_str_t *key, ngx_array_t *passwords)
-{
-    BIO              *bio;
-    EVP_PKEY         *pkey;
-    ngx_str_t        *pwd;
-    ngx_uint_t        tries;
-    pem_password_cb  *cb;
-
     if (ngx_strncmp(key->data, "engine:", sizeof("engine:") - 1) == 0) {
 
 #ifndef OPENSSL_NO_ENGINE
 
-        u_char  *p, *last;
-        ENGINE  *engine;
+        u_char      *p, *last;
+        ENGINE      *engine;
+        EVP_PKEY    *pkey;
 
         p = key->data + sizeof("engine:") - 1;
         last = (u_char *) ngx_strchr(p, ':');
 
         if (last == NULL) {
-            *err = "invalid syntax";
-            return NULL;
+            ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+                               "invalid syntax in \"%V\"", key);
+            return NGX_ERROR;
         }
 
         *last = '\0';
@@ -723,8 +551,9 @@ ngx_ssl_load_certificate_key(ngx_pool_t *pool, char **err,
         engine = ENGINE_by_id((char *) p);
 
         if (engine == NULL) {
-            *err = "ENGINE_by_id() failed";
-            return NULL;
+            ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0,
+                          "ENGINE_by_id(\"%s\") failed", p);
+            return NGX_ERROR;
         }
 
         *last++ = ':';
@@ -732,81 +561,76 @@ ngx_ssl_load_certificate_key(ngx_pool_t *pool, char **err,
         pkey = ENGINE_load_private_key(engine, (char *) last, 0, 0);
 
         if (pkey == NULL) {
-            *err = "ENGINE_load_private_key() failed";
+            ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0,
+                          "ENGINE_load_private_key(\"%s\") failed", last);
             ENGINE_free(engine);
-            return NULL;
+            return NGX_ERROR;
         }
 
         ENGINE_free(engine);
 
-        return pkey;
+        if (SSL_CTX_use_PrivateKey(ssl->ctx, pkey) == 0) {
+            ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0,
+                          "SSL_CTX_use_PrivateKey(\"%s\") failed", last);
+            EVP_PKEY_free(pkey);
+            return NGX_ERROR;
+        }
+
+        EVP_PKEY_free(pkey);
+
+        return NGX_OK;
 
 #else
 
-        *err = "loading \"engine:...\" certificate keys is not supported";
-        return NULL;
+        ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+                           "loading \"engine:...\" certificate keys "
+                           "is not supported");
+        return NGX_ERROR;
 
 #endif
     }
 
-    if (ngx_strncmp(key->data, "data:", sizeof("data:") - 1) == 0) {
-
-        bio = BIO_new_mem_buf(key->data + sizeof("data:") - 1,
-                              key->len - (sizeof("data:") - 1));
-        if (bio == NULL) {
-            *err = "BIO_new_mem_buf() failed";
-            return NULL;
-        }
-
-    } else {
-
-        if (ngx_get_full_name(pool, (ngx_str_t *) &ngx_cycle->conf_prefix, key)
-            != NGX_OK)
-        {
-            *err = NULL;
-            return NULL;
-        }
-
-        bio = BIO_new_file((char *) key->data, "r");
-        if (bio == NULL) {
-            *err = "BIO_new_file() failed";
-            return NULL;
-        }
+    if (ngx_conf_full_name(cf->cycle, key, 1) != NGX_OK) {
+        return NGX_ERROR;
     }
 
     if (passwords) {
         tries = passwords->nelts;
         pwd = passwords->elts;
-        cb = ngx_ssl_password_callback;
+
+        SSL_CTX_set_default_passwd_cb(ssl->ctx, ngx_ssl_password_callback);
+        SSL_CTX_set_default_passwd_cb_userdata(ssl->ctx, pwd);
 
     } else {
         tries = 1;
+#if (NGX_SUPPRESS_WARN)
         pwd = NULL;
-        cb = NULL;
+#endif
     }
 
     for ( ;; ) {
 
-        pkey = PEM_read_bio_PrivateKey(bio, NULL, cb, pwd);
-        if (pkey != NULL) {
+        if (SSL_CTX_use_PrivateKey_file(ssl->ctx, (char *) key->data,
+                                        SSL_FILETYPE_PEM)
+            != 0)
+        {
             break;
         }
 
-        if (tries-- > 1) {
+        if (--tries) {
             ERR_clear_error();
-            (void) BIO_reset(bio);
-            pwd++;
+            SSL_CTX_set_default_passwd_cb_userdata(ssl->ctx, ++pwd);
             continue;
         }
 
-        *err = "PEM_read_bio_PrivateKey() failed";
-        BIO_free(bio);
-        return NULL;
+        ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0,
+                      "SSL_CTX_use_PrivateKey_file(\"%s\") failed", key->data);
+        return NGX_ERROR;
     }
 
-    BIO_free(bio);
+    SSL_CTX_set_default_passwd_cb(ssl->ctx, NULL);
 
-    return pkey;
+    return NGX_OK;
 }
 
 
@@ -821,10 +645,6 @@ ngx_ssl_password_callback(char *buf, int size, int rwflag, void *userdata)
         return 0;
     }
 
-    if (pwd == NULL) {
-        return 0;
-    }
-
     if (pwd->len > (size_t) size) {
         ngx_log_error(NGX_LOG_ERR, ngx_cycle->log, 0,
                       "password is truncated to %d bytes", size);
@@ -1126,13 +946,10 @@ ngx_ssl_read_password_file(ngx_conf_t *cf, ngx_str_t *file)
         return NULL;
     }
 
+    cln = ngx_pool_cleanup_add(cf->temp_pool, 0);
     passwords = ngx_array_create(cf->temp_pool, 4, sizeof(ngx_str_t));
-    if (passwords == NULL) {
-        return NULL;
-    }
 
-    cln = ngx_pool_cleanup_add(cf->temp_pool, 0);
-    if (cln == NULL) {
+    if (cln == NULL || passwords == NULL) {
         return NULL;
     }
 
@@ -1240,69 +1057,6 @@ cleanup:
 }
 
 
-ngx_array_t *
-ngx_ssl_preserve_passwords(ngx_conf_t *cf, ngx_array_t *passwords)
-{
-    ngx_str_t           *opwd, *pwd;
-    ngx_uint_t           i;
-    ngx_array_t         *pwds;
-    ngx_pool_cleanup_t  *cln;
-    static ngx_array_t   empty_passwords;
-
-    if (passwords == NULL) {
-
-        /*
-         * If there are no passwords, an empty array is used
-         * to make sure OpenSSL's default password callback
-         * won't block on reading from stdin.
-         */
-
-        return &empty_passwords;
-    }
-
-    /*
-     * Passwords are normally allocated from the temporary pool
-     * and cleared after parsing configuration.  To be used at
-     * runtime they have to be copied to the configuration pool.
-     */
-
-    pwds = ngx_array_create(cf->pool, passwords->nelts, sizeof(ngx_str_t));
-    if (pwds == NULL) {
-        return NULL;
-    }
-
-    cln = ngx_pool_cleanup_add(cf->pool, 0);
-    if (cln == NULL) {
-        return NULL;
-    }
-
-    cln->handler = ngx_ssl_passwords_cleanup;
-    cln->data = pwds;
-
-    opwd = passwords->elts;
-
-    for (i = 0; i < passwords->nelts; i++) {
-
-        pwd = ngx_array_push(pwds);
-        if (pwd == NULL) {
-            return NULL;
-        }
-
-        pwd->len = opwd[i].len;
-        pwd->data = ngx_pnalloc(cf->pool, pwd->len);
-
-        if (pwd->data == NULL) {
-            pwds->nelts--;
-            return NULL;
-        }
-
-        ngx_memcpy(pwd->data, opwd[i].data, opwd[i].len);
-    }
-
-    return pwds;
-}
-
-
 static void
 ngx_ssl_passwords_cleanup(void *data)
 {
@@ -2876,15 +2630,9 @@ ngx_ssl_connection_error(ngx_connection_t *c, int sslerr, ngx_err_t err,
             || n == SSL_R_NO_COMPRESSION_SPECIFIED                   /*  187 */
             || n == SSL_R_NO_SHARED_CIPHER                           /*  193 */
             || n == SSL_R_RECORD_LENGTH_MISMATCH                     /*  213 */
-#ifdef SSL_R_CLIENTHELLO_TLSEXT
-            || n == SSL_R_CLIENTHELLO_TLSEXT                         /*  226 */
-#endif
 #ifdef SSL_R_PARSE_TLSEXT
             || n == SSL_R_PARSE_TLSEXT                               /*  227 */
 #endif
-#ifdef SSL_R_CALLBACK_FAILED
-            || n == SSL_R_CALLBACK_FAILED                            /*  234 */
-#endif
             || n == SSL_R_UNEXPECTED_MESSAGE                         /*  244 */
             || n == SSL_R_UNEXPECTED_RECORD                          /*  245 */
             || n == SSL_R_UNKNOWN_ALERT_TYPE                         /*  246 */
@@ -2912,9 +2660,6 @@ ngx_ssl_connection_error(ngx_connection_t *c, int sslerr, ngx_err_t err,
 #ifdef SSL_R_INAPPROPRIATE_FALLBACK
             || n == SSL_R_INAPPROPRIATE_FALLBACK                     /*  373 */
 #endif
-#ifdef SSL_R_CERT_CB_ERROR
-            || n == SSL_R_CERT_CB_ERROR                              /*  377 */
-#endif
 #ifdef SSL_R_VERSION_TOO_LOW
             || n == SSL_R_VERSION_TOO_LOW                            /*  396 */
 #endif
@@ -2994,60 +2739,53 @@ ngx_ssl_error(ngx_uint_t level, ngx_log_t *log, ngx_err_t err, char *fmt, ...)
     p = ngx_vslprintf(errstr, last - 1, fmt, args);
     va_end(args);
 
-    if (ERR_peek_error()) {
-        p = ngx_cpystrn(p, (u_char *) " (SSL:", last - p);
-
-        for ( ;; ) {
-
-            n = ERR_peek_error_line_data(NULL, NULL, &data, &flags);
-
-            if (n == 0) {
-                break;
-            }
+    p = ngx_cpystrn(p, (u_char *) " (SSL:", last - p);
 
-            /* ERR_error_string_n() requires at least one byte */
+    for ( ;; ) {
 
-            if (p >= last - 1) {
-                goto next;
-            }
+        n = ERR_peek_error_line_data(NULL, NULL, &data, &flags);
 
-            *p++ = ' ';
+        if (n == 0) {
+            break;
+        }
 
-            ERR_error_string_n(n, (char *) p, last - p);
+        /* ERR_error_string_n() requires at least one byte */
 
-            while (p < last && *p) {
-                p++;
-            }
+        if (p >= last - 1) {
+            goto next;
+        }
 
-            if (p < last && *data && (flags & ERR_TXT_STRING)) {
-                *p++ = ':';
-                p = ngx_cpystrn(p, (u_char *) data, last - p);
-            }
+        *p++ = ' ';
 
-        next:
+        ERR_error_string_n(n, (char *) p, last - p);
 
-            (void) ERR_get_error();
+        while (p < last && *p) {
+            p++;
         }
 
-        if (p < last) {
-            *p++ = ')';
+        if (p < last && *data && (flags & ERR_TXT_STRING)) {
+            *p++ = ':';
+            p = ngx_cpystrn(p, (u_char *) data, last - p);
         }
+
+    next:
+
+        (void) ERR_get_error();
     }
 
-    ngx_log_error(level, log, err, "%*s", p - errstr, errstr);
+    ngx_log_error(level, log, err, "%*s)", p - errstr, errstr);
 }
 
 
 ngx_int_t
 ngx_ssl_session_cache(ngx_ssl_t *ssl, ngx_str_t *sess_ctx,
-    ngx_array_t *certificates, ssize_t builtin_session_cache,
-    ngx_shm_zone_t *shm_zone, time_t timeout)
+    ssize_t builtin_session_cache, ngx_shm_zone_t *shm_zone, time_t timeout)
 {
     long  cache_mode;
 
     SSL_CTX_set_timeout(ssl->ctx, (long) timeout);
 
-    if (ngx_ssl_session_id_context(ssl, sess_ctx, certificates) != NGX_OK) {
+    if (ngx_ssl_session_id_context(ssl, sess_ctx) != NGX_OK) {
         return NGX_ERROR;
     }
 
@@ -3113,14 +2851,11 @@ ngx_ssl_session_cache(ngx_ssl_t *ssl, ngx_str_t *sess_ctx,
 
 
 static ngx_int_t
-ngx_ssl_session_id_context(ngx_ssl_t *ssl, ngx_str_t *sess_ctx,
-    ngx_array_t *certificates)
+ngx_ssl_session_id_context(ngx_ssl_t *ssl, ngx_str_t *sess_ctx)
 {
     int                   n, i;
     X509                 *cert;
     X509_NAME            *name;
-    ngx_str_t            *certs;
-    ngx_uint_t            k;
     EVP_MD_CTX           *md;
     unsigned int          len;
     STACK_OF(X509_NAME)  *list;
@@ -3165,24 +2900,6 @@ ngx_ssl_session_id_context(ngx_ssl_t *ssl, ngx_str_t *sess_ctx,
         }
     }
 
-    if (SSL_CTX_get_ex_data(ssl->ctx, ngx_ssl_certificate_index) == NULL) {
-
-        /*
-         * If certificates are loaded dynamically, we use certificate
-         * names as specified in the configuration (with variables).
-         */
-
-        certs = certificates->elts;
-        for (k = 0; k < certificates->nelts; k++) {
-
-            if (EVP_DigestUpdate(md, certs[k].data, certs[k].len) == 0) {
-                ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0,
-                              "EVP_DigestUpdate() failed");
-                goto failed;
-            }
-        }
-    }
-
     list = SSL_CTX_get_client_CA_list(ssl->ctx);
 
     if (list != NULL) {
@@ -3207,7 +2924,7 @@ ngx_ssl_session_id_context(ngx_ssl_t *ssl, ngx_str_t *sess_ctx,
 
     if (EVP_DigestFinal_ex(md, buf, &len) == 0) {
         ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0,
-                      "EVP_DigestFinal_ex() failed");
+                      "EVP_DigestUpdate() failed");
         goto failed;
     }
 
@@ -3738,7 +3455,6 @@ ngx_ssl_session_ticket_keys(ngx_conf_t *cf, ngx_ssl_t *ssl, ngx_array_t *paths)
     ngx_uint_t                     i;
     ngx_array_t                   *keys;
     ngx_file_info_t                fi;
-    ngx_pool_cleanup_t            *cln;
     ngx_ssl_session_ticket_key_t  *key;
 
     if (paths == NULL) {
@@ -3751,14 +3467,6 @@ ngx_ssl_session_ticket_keys(ngx_conf_t *cf, ngx_ssl_t *ssl, ngx_array_t *paths)
         return NGX_ERROR;
     }
 
-    cln = ngx_pool_cleanup_add(cf->pool, 0);
-    if (cln == NULL) {
-        return NGX_ERROR;
-    }
-
-    cln->handler = ngx_ssl_session_ticket_keys_cleanup;
-    cln->data = keys;
-
     path = paths->elts;
     for (i = 0; i < paths->nelts; i++) {
 
@@ -3830,8 +3538,6 @@ ngx_ssl_session_ticket_keys(ngx_conf_t *cf, ngx_ssl_t *ssl, ngx_array_t *paths)
             ngx_log_error(NGX_LOG_ALERT, cf->log, ngx_errno,
                           ngx_close_file_n " \"%V\" failed", &file.name);
         }
-
-        ngx_explicit_memzero(&buf, 80);
     }
 
     if (SSL_CTX_set_ex_data(ssl->ctx, ngx_ssl_session_ticket_keys_index, keys)
@@ -3862,8 +3568,6 @@ failed:
                       ngx_close_file_n " \"%V\" failed", &file.name);
     }
 
-    ngx_explicit_memzero(&buf, 80);
-
     return NGX_ERROR;
 }
 
@@ -3992,16 +3696,6 @@ ngx_ssl_session_ticket_key_callback(ngx_ssl_conn_t *ssl_conn,
     }
 }
 
-
-static void
-ngx_ssl_session_ticket_keys_cleanup(void *data)
-{
-    ngx_array_t  *keys = data;
-
-    ngx_explicit_memzero(keys->elts,
-                         keys->nelts * sizeof(ngx_ssl_session_ticket_key_t));
-}
-
 #else
 
 ngx_int_t

  Renamed: vendor/nginx-1.15.8/src/event/ngx_event_openssl.h (+1 -8) 96%
===================================================================
--- vendor/nginx-1.15.10/src/event/ngx_event_openssl.h    2019-03-27 12:50:20 +0900 (61da0c5db)
+++ vendor/nginx-1.15.8/src/event/ngx_event_openssl.h    2019-03-27 13:17:47 +0900 (9ec001d09)
@@ -161,14 +161,10 @@ typedef struct {
 
 ngx_int_t ngx_ssl_init(ngx_log_t *log);
 ngx_int_t ngx_ssl_create(ngx_ssl_t *ssl, ngx_uint_t protocols, void *data);
-
 ngx_int_t ngx_ssl_certificates(ngx_conf_t *cf, ngx_ssl_t *ssl,
     ngx_array_t *certs, ngx_array_t *keys, ngx_array_t *passwords);
 ngx_int_t ngx_ssl_certificate(ngx_conf_t *cf, ngx_ssl_t *ssl,
     ngx_str_t *cert, ngx_str_t *key, ngx_array_t *passwords);
-ngx_int_t ngx_ssl_connection_certificate(ngx_connection_t *c, ngx_pool_t *pool,
-    ngx_str_t *cert, ngx_str_t *key, ngx_array_t *passwords);
-
 ngx_int_t ngx_ssl_ciphers(ngx_conf_t *cf, ngx_ssl_t *ssl, ngx_str_t *ciphers,
     ngx_uint_t prefer_server_ciphers);
 ngx_int_t ngx_ssl_client_certificate(ngx_conf_t *cf, ngx_ssl_t *ssl,
@@ -183,8 +179,6 @@ ngx_int_t ngx_ssl_stapling_resolver(ngx_conf_t *cf, ngx_ssl_t *ssl,
 RSA *ngx_ssl_rsa512_key_callback(ngx_ssl_conn_t *ssl_conn, int is_export,
     int key_length);
 ngx_array_t *ngx_ssl_read_password_file(ngx_conf_t *cf, ngx_str_t *file);
-ngx_array_t *ngx_ssl_preserve_passwords(ngx_conf_t *cf,
-    ngx_array_t *passwords);
 ngx_int_t ngx_ssl_dhparam(ngx_conf_t *cf, ngx_ssl_t *ssl, ngx_str_t *file);
 ngx_int_t ngx_ssl_ecdh_curve(ngx_conf_t *cf, ngx_ssl_t *ssl, ngx_str_t *name);
 ngx_int_t ngx_ssl_early_data(ngx_conf_t *cf, ngx_ssl_t *ssl,
@@ -192,8 +186,7 @@ ngx_int_t ngx_ssl_early_data(ngx_conf_t *cf, ngx_ssl_t *ssl,
 ngx_int_t ngx_ssl_client_session_cache(ngx_conf_t *cf, ngx_ssl_t *ssl,
     ngx_uint_t enable);
 ngx_int_t ngx_ssl_session_cache(ngx_ssl_t *ssl, ngx_str_t *sess_ctx,
-    ngx_array_t *certificates, ssize_t builtin_session_cache,
-    ngx_shm_zone_t *shm_zone, time_t timeout);
+    ssize_t builtin_session_cache, ngx_shm_zone_t *shm_zone, time_t timeout);
 ngx_int_t ngx_ssl_session_ticket_keys(ngx_conf_t *cf, ngx_ssl_t *ssl,
     ngx_array_t *paths);
 ngx_int_t ngx_ssl_session_cache_init(ngx_shm_zone_t *shm_zone, void *data);

  Renamed: vendor/nginx-1.15.8/src/event/ngx_event_openssl_stapling.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/event/ngx_event_pipe.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/event/ngx_event_pipe.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/event/ngx_event_posted.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/event/ngx_event_posted.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/event/ngx_event_timer.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/event/ngx_event_timer.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/event/ngx_event_udp.c (+0 -6) 99%
===================================================================
--- vendor/nginx-1.15.10/src/event/ngx_event_udp.c    2019-03-27 12:50:20 +0900 (557283050)
+++ vendor/nginx-1.15.8/src/event/ngx_event_udp.c    2019-03-27 13:17:47 +0900 (65eb22fd2)
@@ -256,9 +256,7 @@ ngx_event_recvmsg(ngx_event_t *ev)
             rev = c->read;
 
             c->udp->buffer = &buf;
-
             rev->ready = 1;
-            rev->active = 0;
 
             rev->handler(rev);
 
@@ -267,7 +265,6 @@ ngx_event_recvmsg(ngx_event_t *ev)
             }
 
             rev->ready = 0;
-            rev->active = 1;
 
             goto next;
         }
@@ -346,7 +343,6 @@ ngx_event_recvmsg(ngx_event_t *ev)
         rev = c->read;
         wev = c->write;
 
-        rev->active = 1;
         wev->ready = 1;
 
         rev->log = log;
@@ -457,9 +453,7 @@ ngx_udp_shared_recv(ngx_connection_t *c, u_char *buf, size_t size)
     ngx_memcpy(buf, b->pos, n);
 
     c->udp->buffer = NULL;
-
     c->read->ready = 0;
-    c->read->active = 1;
 
     return n;
 }

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_access_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_addition_filter_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_auth_basic_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_auth_request_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_autoindex_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_browser_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_charset_filter_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_chunked_filter_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_dav_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_degradation_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_empty_gif_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_fastcgi_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_flv_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_geo_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_geoip_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_grpc_module.c (+0 -1) 99%
===================================================================
--- vendor/nginx-1.15.10/src/http/modules/ngx_http_grpc_module.c    2019-03-27 12:50:20 +0900 (f59ecbda7)
+++ vendor/nginx-1.15.8/src/http/modules/ngx_http_grpc_module.c    2019-03-27 13:17:47 +0900 (18478b978)
@@ -4650,7 +4650,6 @@ ngx_http_grpc_set_ssl(ngx_conf_t *cf, ngx_http_grpc_loc_conf_t *glcf)
 
     cln = ngx_pool_cleanup_add(cf->pool, 0);
     if (cln == NULL) {
-        ngx_ssl_cleanup_ctx(glcf->upstream.ssl);
         return NGX_ERROR;
     }
 

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_gunzip_filter_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_gzip_filter_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_gzip_static_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_headers_filter_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_image_filter_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_index_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_limit_conn_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_limit_req_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_log_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_map_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_memcached_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_mirror_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_mp4_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_not_modified_filter_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_proxy_module.c (+0 -1) 99%
===================================================================
--- vendor/nginx-1.15.10/src/http/modules/ngx_http_proxy_module.c    2019-03-27 12:50:20 +0900 (3aafb9996)
+++ vendor/nginx-1.15.8/src/http/modules/ngx_http_proxy_module.c    2019-03-27 13:17:47 +0900 (d6a892217)
@@ -4270,7 +4270,6 @@ ngx_http_proxy_set_ssl(ngx_conf_t *cf, ngx_http_proxy_loc_conf_t *plcf)
 
     cln = ngx_pool_cleanup_add(cf->pool, 0);
     if (cln == NULL) {
-        ngx_ssl_cleanup_ctx(plcf->upstream.ssl);
         return NGX_ERROR;
     }
 

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_random_index_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_range_filter_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_realip_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_referer_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_rewrite_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_scgi_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_secure_link_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_slice_filter_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_split_clients_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_ssi_filter_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_ssi_filter_module.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_ssl_module.c (+9 -123) 90%
===================================================================
--- vendor/nginx-1.15.10/src/http/modules/ngx_http_ssl_module.c    2019-03-27 12:50:20 +0900 (b3f8f4795)
+++ vendor/nginx-1.15.8/src/http/modules/ngx_http_ssl_module.c    2019-03-27 13:17:47 +0900 (9e243ea05)
@@ -41,9 +41,6 @@ static void *ngx_http_ssl_create_srv_conf(ngx_conf_t *cf);
 static char *ngx_http_ssl_merge_srv_conf(ngx_conf_t *cf,
     void *parent, void *child);
 
-static ngx_int_t ngx_http_ssl_compile_certificates(ngx_conf_t *cf,
-    ngx_http_ssl_srv_conf_t *conf);
-
 static char *ngx_http_ssl_enable(ngx_conf_t *cf, ngx_command_t *cmd,
     void *conf);
 static char *ngx_http_ssl_password_file(ngx_conf_t *cf, ngx_command_t *cmd,
@@ -553,7 +550,6 @@ ngx_http_ssl_create_srv_conf(ngx_conf_t *cf)
      * set by ngx_pcalloc():
      *
      *     sscf->protocols = 0;
-     *     sscf->certificate_values = NULL;
      *     sscf->dhparam = { 0, NULL };
      *     sscf->ecdh_curve = { 0, NULL };
      *     sscf->client_certificate = { 0, NULL };
@@ -700,15 +696,6 @@ ngx_http_ssl_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child)
         return NGX_CONF_ERROR;
     }
 
-    cln = ngx_pool_cleanup_add(cf->pool, 0);
-    if (cln == NULL) {
-        ngx_ssl_cleanup_ctx(&conf->ssl);
-        return NGX_CONF_ERROR;
-    }
-
-    cln->handler = ngx_ssl_cleanup_ctx;
-    cln->data = &conf->ssl;
-
 #ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME
 
     if (SSL_CTX_set_tlsext_servername_callback(conf->ssl.ctx,
@@ -732,36 +719,19 @@ ngx_http_ssl_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child)
                                           ngx_http_ssl_npn_advertised, NULL);
 #endif
 
-    if (ngx_http_ssl_compile_certificates(cf, conf) != NGX_OK) {
+    cln = ngx_pool_cleanup_add(cf->pool, 0);
+    if (cln == NULL) {
         return NGX_CONF_ERROR;
     }
 
-    if (conf->certificate_values) {
-
-#ifdef SSL_R_CERT_CB_ERROR
-
-        /* install callback to lookup certificates */
-
-        SSL_CTX_set_cert_cb(conf->ssl.ctx, ngx_http_ssl_certificate, conf);
+    cln->handler = ngx_ssl_cleanup_ctx;
+    cln->data = &conf->ssl;
 
-#else
-        ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
-                      "variables in "
-                      "\"ssl_certificate\" and \"ssl_certificate_key\" "
-                      "directives are not supported on this platform");
+    if (ngx_ssl_certificates(cf, &conf->ssl, conf->certificates,
+                             conf->certificate_keys, conf->passwords)
+        != NGX_OK)
+    {
         return NGX_CONF_ERROR;
-#endif
-
-    } else {
-
-        /* configure certificates */
-
-        if (ngx_ssl_certificates(cf, &conf->ssl, conf->certificates,
-                                 conf->certificate_keys, conf->passwords)
-            != NGX_OK)
-        {
-            return NGX_CONF_ERROR;
-        }
     }
 
     if (ngx_ssl_ciphers(cf, &conf->ssl, &conf->ciphers,
@@ -818,7 +788,7 @@ ngx_http_ssl_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child)
     }
 
     if (ngx_ssl_session_cache(&conf->ssl, &ngx_http_ssl_sess_id_ctx,
-                              conf->certificates, conf->builtin_session_cache,
+                              conf->builtin_session_cache,
                               conf->shm_zone, conf->session_timeout)
         != NGX_OK)
     {
@@ -861,90 +831,6 @@ ngx_http_ssl_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child)
 }
 
 
-static ngx_int_t
-ngx_http_ssl_compile_certificates(ngx_conf_t *cf,
-    ngx_http_ssl_srv_conf_t *conf)
-{
-    ngx_str_t                         *cert, *key;
-    ngx_uint_t                         i, nelts;
-    ngx_http_complex_value_t          *cv;
-    ngx_http_compile_complex_value_t   ccv;
-
-    cert = conf->certificates->elts;
-    key = conf->certificate_keys->elts;
-    nelts = conf->certificates->nelts;
-
-    for (i = 0; i < nelts; i++) {
-
-        if (ngx_http_script_variables_count(&cert[i])) {
-            goto found;
-        }
-
-        if (ngx_http_script_variables_count(&key[i])) {
-            goto found;
-        }
-    }
-
-    return NGX_OK;
-
-found:
-
-    conf->certificate_values = ngx_array_create(cf->pool, nelts,
-                                             sizeof(ngx_http_complex_value_t));
-    if (conf->certificate_values == NULL) {
-        return NGX_ERROR;
-    }
-
-    conf->certificate_key_values = ngx_array_create(cf->pool, nelts,
-                                             sizeof(ngx_http_complex_value_t));
-    if (conf->certificate_key_values == NULL) {
-        return NGX_ERROR;
-    }
-
-    for (i = 0; i < nelts; i++) {
-
-        cv = ngx_array_push(conf->certificate_values);
-        if (cv == NULL) {
-            return NGX_ERROR;
-        }
-
-        ngx_memzero(&ccv, sizeof(ngx_http_compile_complex_value_t));
-
-        ccv.cf = cf;
-        ccv.value = &cert[i];
-        ccv.complex_value = cv;
-        ccv.zero = 1;
-
-        if (ngx_http_compile_complex_value(&ccv) != NGX_OK) {
-            return NGX_ERROR;
-        }
-
-        cv = ngx_array_push(conf->certificate_key_values);
-        if (cv == NULL) {
-            return NGX_ERROR;
-        }
-
-        ngx_memzero(&ccv, sizeof(ngx_http_compile_complex_value_t));
-
-        ccv.cf = cf;
-        ccv.value = &key[i];
-        ccv.complex_value = cv;
-        ccv.zero = 1;
-
-        if (ngx_http_compile_complex_value(&ccv) != NGX_OK) {
-            return NGX_ERROR;
-        }
-    }
-
-    conf->passwords = ngx_ssl_preserve_passwords(cf, conf->passwords);
-    if (conf->passwords == NULL) {
-        return NGX_ERROR;
-    }
-
-    return NGX_OK;
-}
-
-
 static char *
 ngx_http_ssl_enable(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
 {

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_ssl_module.h (+0 -3) 93%
===================================================================
--- vendor/nginx-1.15.10/src/http/modules/ngx_http_ssl_module.h    2019-03-27 12:50:20 +0900 (26fdccfe4)
+++ vendor/nginx-1.15.8/src/http/modules/ngx_http_ssl_module.h    2019-03-27 13:17:47 +0900 (fb3219b63)
@@ -36,9 +36,6 @@ typedef struct {
     ngx_array_t                    *certificates;
     ngx_array_t                    *certificate_keys;
 
-    ngx_array_t                    *certificate_values;
-    ngx_array_t                    *certificate_key_values;
-
     ngx_str_t                       dhparam;
     ngx_str_t                       ecdh_curve;
     ngx_str_t                       client_certificate;

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_static_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_stub_status_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_sub_filter_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_try_files_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_upstream_hash_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_upstream_ip_hash_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_upstream_keepalive_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_upstream_least_conn_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_upstream_random_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_upstream_zone_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_userid_filter_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_uwsgi_module.c (+0 -1) 99%
===================================================================
--- vendor/nginx-1.15.10/src/http/modules/ngx_http_uwsgi_module.c    2019-03-27 12:50:20 +0900 (56dc236ef)
+++ vendor/nginx-1.15.8/src/http/modules/ngx_http_uwsgi_module.c    2019-03-27 13:17:47 +0900 (8b091101f)
@@ -2359,7 +2359,6 @@ ngx_http_uwsgi_set_ssl(ngx_conf_t *cf, ngx_http_uwsgi_loc_conf_t *uwcf)
 
     cln = ngx_pool_cleanup_add(cf->pool, 0);
     if (cln == NULL) {
-        ngx_ssl_cleanup_ctx(uwcf->upstream.ssl);
         return NGX_ERROR;
     }
 

  Renamed: vendor/nginx-1.15.8/src/http/modules/ngx_http_xslt_filter_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/perl/Makefile.PL (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/perl/nginx.pm (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/perl/nginx.xs (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/perl/ngx_http_perl_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/perl/ngx_http_perl_module.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/modules/perl/typemap (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/ngx_http.c (+16 -18) 98%
===================================================================
--- vendor/nginx-1.15.10/src/http/ngx_http.c    2019-03-27 12:50:20 +0900 (79ef9c644)
+++ vendor/nginx-1.15.8/src/http/ngx_http.c    2019-03-27 13:17:47 +0900 (5e2022690)
@@ -1157,7 +1157,7 @@ ngx_http_add_listen(ngx_conf_t *cf, ngx_http_core_srv_conf_t *cscf,
         }
     }
 
-    sa = lsopt->sockaddr;
+    sa = &lsopt->sockaddr.sockaddr;
     p = ngx_inet_get_port(sa);
 
     port = cmcf->ports->elts;
@@ -1209,8 +1209,8 @@ ngx_http_add_addresses(ngx_conf_t *cf, ngx_http_core_srv_conf_t *cscf,
 
     for (i = 0; i < port->addrs.nelts; i++) {
 
-        if (ngx_cmp_sockaddr(lsopt->sockaddr, lsopt->socklen,
-                             addr[i].opt.sockaddr,
+        if (ngx_cmp_sockaddr(&lsopt->sockaddr.sockaddr, lsopt->socklen,
+                             &addr[i].opt.sockaddr.sockaddr,
                              addr[i].opt.socklen, 0)
             != NGX_OK)
         {
@@ -1239,8 +1239,7 @@ ngx_http_add_addresses(ngx_conf_t *cf, ngx_http_core_srv_conf_t *cscf,
 
             if (addr[i].opt.set) {
                 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
-                                   "duplicate listen options for %V",
-                                   &addr[i].opt.addr_text);
+                        "duplicate listen options for %s", addr[i].opt.addr);
                 return NGX_ERROR;
             }
 
@@ -1253,8 +1252,7 @@ ngx_http_add_addresses(ngx_conf_t *cf, ngx_http_core_srv_conf_t *cscf,
 
             if (default_server) {
                 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
-                                   "a duplicate default server for %V",
-                                   &addr[i].opt.addr_text);
+                        "a duplicate default server for %s", addr[i].opt.addr);
                 return NGX_ERROR;
             }
 
@@ -1307,8 +1305,8 @@ ngx_http_add_address(ngx_conf_t *cf, ngx_http_core_srv_conf_t *cscf,
     if (lsopt->http2 && lsopt->ssl) {
         ngx_conf_log_error(NGX_LOG_WARN, cf, 0,
                            "nginx was built with OpenSSL that lacks ALPN "
-                           "and NPN support, HTTP/2 is not enabled for %V",
-                           &lsopt->addr_text);
+                           "and NPN support, HTTP/2 is not enabled for %s",
+                           lsopt->addr);
     }
 
 #endif
@@ -1356,8 +1354,7 @@ ngx_http_add_server(ngx_conf_t *cf, ngx_http_core_srv_conf_t *cscf,
         for (i = 0; i < addr->servers.nelts; i++) {
             if (server[i] == cscf) {
                 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
-                                   "a duplicate listen %V",
-                                   &addr->opt.addr_text);
+                                   "a duplicate listen %s", addr->opt.addr);
                 return NGX_ERROR;
             }
         }
@@ -1474,15 +1471,15 @@ ngx_http_server_names(ngx_conf_t *cf, ngx_http_core_main_conf_t *cmcf,
 
             if (rc == NGX_DECLINED) {
                 ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
-                              "invalid server name or wildcard \"%V\" on %V",
-                              &name[n].name, &addr->opt.addr_text);
+                              "invalid server name or wildcard \"%V\" on %s",
+                              &name[n].name, addr->opt.addr);
                 return NGX_ERROR;
             }
 
             if (rc == NGX_BUSY) {
                 ngx_log_error(NGX_LOG_WARN, cf->log, 0,
-                              "conflicting server name \"%V\" on %V, ignored",
-                              &name[n].name, &addr->opt.addr_text);
+                              "conflicting server name \"%V\" on %s, ignored",
+                              &name[n].name, addr->opt.addr);
             }
         }
     }
@@ -1703,7 +1700,8 @@ ngx_http_add_listening(ngx_conf_t *cf, ngx_http_conf_addr_t *addr)
     ngx_http_core_loc_conf_t  *clcf;
     ngx_http_core_srv_conf_t  *cscf;
 
-    ls = ngx_create_listening(cf, addr->opt.sockaddr, addr->opt.socklen);
+    ls = ngx_create_listening(cf, &addr->opt.sockaddr.sockaddr,
+                              addr->opt.socklen);
     if (ls == NULL) {
         return NULL;
     }
@@ -1793,7 +1791,7 @@ ngx_http_add_addrs(ngx_conf_t *cf, ngx_http_port_t *hport,
 
     for (i = 0; i < hport->naddrs; i++) {
 
-        sin = (struct sockaddr_in *) addr[i].opt.sockaddr;
+        sin = &addr[i].opt.sockaddr.sockaddr_in;
         addrs[i].addr = sin->sin_addr.s_addr;
         addrs[i].conf.default_server = addr[i].default_server;
 #if (NGX_HTTP_SSL)
@@ -1858,7 +1856,7 @@ ngx_http_add_addrs6(ngx_conf_t *cf, ngx_http_port_t *hport,
 
     for (i = 0; i < hport->naddrs; i++) {
 
-        sin6 = (struct sockaddr_in6 *) addr[i].opt.sockaddr;
+        sin6 = &addr[i].opt.sockaddr.sockaddr_in6;
         addrs6[i].addr6 = sin6->sin6_addr;
         addrs6[i].conf.default_server = addr[i].default_server;
 #if (NGX_HTTP_SSL)

  Renamed: vendor/nginx-1.15.8/src/http/ngx_http.h (+0 -4) 97%
===================================================================
--- vendor/nginx-1.15.10/src/http/ngx_http.h    2019-03-27 12:50:20 +0900 (8b43857ee)
+++ vendor/nginx-1.15.8/src/http/ngx_http.h    2019-03-27 13:17:47 +0900 (afab4f645)
@@ -88,10 +88,6 @@ void ngx_http_close_connection(ngx_connection_t *c);
 #if (NGX_HTTP_SSL && defined SSL_CTRL_SET_TLSEXT_HOSTNAME)
 int ngx_http_ssl_servername(ngx_ssl_conn_t *ssl_conn, int *ad, void *arg);
 #endif
-#if (NGX_HTTP_SSL && defined SSL_R_CERT_CB_ERROR)
-int ngx_http_ssl_certificate(ngx_ssl_conn_t *ssl_conn, void *arg);
-#endif
-
 
 ngx_int_t ngx_http_parse_request_line(ngx_http_request_t *r, ngx_buf_t *b);
 ngx_int_t ngx_http_parse_uri(ngx_http_request_t *r);

  Renamed: vendor/nginx-1.15.8/src/http/ngx_http_cache.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/ngx_http_config.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/ngx_http_copy_filter_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/ngx_http_core_module.c (+35 -40) 98%
===================================================================
--- vendor/nginx-1.15.10/src/http/ngx_http_core_module.c    2019-03-27 12:50:20 +0900 (cb49ef74a)
+++ vendor/nginx-1.15.8/src/http/ngx_http_core_module.c    2019-03-27 13:17:47 +0900 (5e7152f0f)
@@ -2715,8 +2715,6 @@ ngx_http_core_server(ngx_conf_t *cf, ngx_command_t *cmd, void *dummy)
 {
     char                        *rv;
     void                        *mconf;
-    size_t                       len;
-    u_char                      *p;
     ngx_uint_t                   i;
     ngx_conf_t                   pcf;
     ngx_http_module_t           *module;
@@ -2804,14 +2802,7 @@ ngx_http_core_server(ngx_conf_t *cf, ngx_command_t *cmd, void *dummy)
     if (rv == NGX_CONF_OK && !cscf->listen) {
         ngx_memzero(&lsopt, sizeof(ngx_http_listen_opt_t));
 
-        p = ngx_pcalloc(cf->pool, sizeof(struct sockaddr_in));
-        if (p == NULL) {
-            return NGX_CONF_ERROR;
-        }
-
-        lsopt.sockaddr = (struct sockaddr *) p;
-
-        sin = (struct sockaddr_in *) p;
+        sin = &lsopt.sockaddr.sockaddr_in;
 
         sin->sin_family = AF_INET;
 #if (NGX_WIN32)
@@ -2834,16 +2825,8 @@ ngx_http_core_server(ngx_conf_t *cf, ngx_command_t *cmd, void *dummy)
 #endif
         lsopt.wildcard = 1;
 
-        len = NGX_INET_ADDRSTRLEN + sizeof(":65535") - 1;
-
-        p = ngx_pnalloc(cf->pool, len);
-        if (p == NULL) {
-            return NGX_CONF_ERROR;
-        }
-
-        lsopt.addr_text.data = p;
-        lsopt.addr_text.len = ngx_sock_ntop(lsopt.sockaddr, lsopt.socklen, p,
-                                            len, 1);
+        (void) ngx_sock_ntop(&lsopt.sockaddr.sockaddr, lsopt.socklen,
+                             lsopt.addr, NGX_SOCKADDR_STRLEN, 1);
 
         if (ngx_http_add_listen(cf, cscf, &lsopt) != NGX_OK) {
             return NGX_CONF_ERROR;
@@ -3796,6 +3779,9 @@ ngx_http_core_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
 
     ngx_memzero(&lsopt, sizeof(ngx_http_listen_opt_t));
 
+    ngx_memcpy(&lsopt.sockaddr.sockaddr, &u.sockaddr, u.socklen);
+
+    lsopt.socklen = u.socklen;
     lsopt.backlog = NGX_LISTEN_BACKLOG;
     lsopt.rcvbuf = -1;
     lsopt.sndbuf = -1;
@@ -3805,10 +3791,14 @@ ngx_http_core_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
 #if (NGX_HAVE_TCP_FASTOPEN)
     lsopt.fastopen = -1;
 #endif
+    lsopt.wildcard = u.wildcard;
 #if (NGX_HAVE_INET6)
     lsopt.ipv6only = 1;
 #endif
 
+    (void) ngx_sock_ntop(&lsopt.sockaddr.sockaddr, lsopt.socklen, lsopt.addr,
+                         NGX_SOCKADDR_STRLEN, 1);
+
     for (n = 2; n < cf->args->nelts; n++) {
 
         if (ngx_strcmp(value[n].data, "default_server") == 0
@@ -3933,22 +3923,34 @@ ngx_http_core_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
 
         if (ngx_strncmp(value[n].data, "ipv6only=o", 10) == 0) {
 #if (NGX_HAVE_INET6 && defined IPV6_V6ONLY)
-            if (ngx_strcmp(&value[n].data[10], "n") == 0) {
-                lsopt.ipv6only = 1;
+            struct sockaddr  *sa;
+
+            sa = &lsopt.sockaddr.sockaddr;
+
+            if (sa->sa_family == AF_INET6) {
+
+                if (ngx_strcmp(&value[n].data[10], "n") == 0) {
+                    lsopt.ipv6only = 1;
 
-            } else if (ngx_strcmp(&value[n].data[10], "ff") == 0) {
-                lsopt.ipv6only = 0;
+                } else if (ngx_strcmp(&value[n].data[10], "ff") == 0) {
+                    lsopt.ipv6only = 0;
+
+                } else {
+                    ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+                                       "invalid ipv6only flags \"%s\"",
+                                       &value[n].data[9]);
+                    return NGX_CONF_ERROR;
+                }
+
+                lsopt.set = 1;
+                lsopt.bind = 1;
 
             } else {
                 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
-                                   "invalid ipv6only flags \"%s\"",
-                                   &value[n].data[9]);
-                return NGX_CONF_ERROR;
+                                   "ipv6only is not supported "
+                                   "on addr \"%s\", ignored", lsopt.addr);
             }
 
-            lsopt.set = 1;
-            lsopt.bind = 1;
-
             continue;
 #else
             ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
@@ -4104,18 +4106,11 @@ ngx_http_core_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
         return NGX_CONF_ERROR;
     }
 
-    for (n = 0; n < u.naddrs; n++) {
-        lsopt.sockaddr = u.addrs[n].sockaddr;
-        lsopt.socklen = u.addrs[n].socklen;
-        lsopt.addr_text = u.addrs[n].name;
-        lsopt.wildcard = ngx_inet_wildcard(lsopt.sockaddr);
-
-        if (ngx_http_add_listen(cf, cscf, &lsopt) != NGX_OK) {
-            return NGX_CONF_ERROR;
-        }
+    if (ngx_http_add_listen(cf, cscf, &lsopt) == NGX_OK) {
+        return NGX_CONF_OK;
     }
 
-    return NGX_CONF_OK;
+    return NGX_CONF_ERROR;
 }
 
 

  Renamed: vendor/nginx-1.15.8/src/http/ngx_http_core_module.h (+3 -2) 99%
===================================================================
--- vendor/nginx-1.15.10/src/http/ngx_http_core_module.h    2019-03-27 12:50:20 +0900 (85f6d66dc)
+++ vendor/nginx-1.15.8/src/http/ngx_http_core_module.h    2019-03-27 13:17:47 +0900 (4c6da7c0f)
@@ -65,9 +65,8 @@ typedef struct ngx_http_core_loc_conf_s  ngx_http_core_loc_conf_t;
 
 
 typedef struct {
-    struct sockaddr           *sockaddr;
+    ngx_sockaddr_t             sockaddr;
     socklen_t                  socklen;
-    ngx_str_t                  addr_text;
 
     unsigned                   set:1;
     unsigned                   default_server:1;
@@ -101,6 +100,8 @@ typedef struct {
 #if (NGX_HAVE_DEFERRED_ACCEPT && defined SO_ACCEPTFILTER)
     char                      *accept_filter;
 #endif
+
+    u_char                     addr[NGX_SOCKADDR_STRLEN + 1];
 } ngx_http_listen_opt_t;
 
 

  Renamed: vendor/nginx-1.15.8/src/http/ngx_http_file_cache.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/ngx_http_header_filter_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/ngx_http_parse.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/ngx_http_postpone_filter_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/ngx_http_request.c (+34 -137) 97%
===================================================================
--- vendor/nginx-1.15.10/src/http/ngx_http_request.c    2019-03-27 12:50:20 +0900 (80c19656f)
+++ vendor/nginx-1.15.8/src/http/ngx_http_request.c    2019-03-27 13:17:47 +0900 (7dd28b8c2)
@@ -11,7 +11,6 @@
 
 
 static void ngx_http_wait_request_handler(ngx_event_t *ev);
-static ngx_http_request_t *ngx_http_alloc_request(ngx_connection_t *c);
 static void ngx_http_process_request_line(ngx_event_t *rev);
 static void ngx_http_process_request_headers(ngx_event_t *rev);
 static ssize_t ngx_http_read_request_header(ngx_http_request_t *r);
@@ -504,45 +503,17 @@ ngx_http_wait_request_handler(ngx_event_t *rev)
 ngx_http_request_t *
 ngx_http_create_request(ngx_connection_t *c)
 {
-    ngx_http_request_t        *r;
-    ngx_http_log_ctx_t        *ctx;
-    ngx_http_core_loc_conf_t  *clcf;
-
-    r = ngx_http_alloc_request(c);
-    if (r == NULL) {
-        return NULL;
-    }
-
-    c->requests++;
-
-    clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module);
-
-    ngx_set_connection_log(c, clcf->error_log);
-
-    ctx = c->log->data;
-    ctx->request = r;
-    ctx->current_request = r;
-
-#if (NGX_STAT_STUB)
-    (void) ngx_atomic_fetch_add(ngx_stat_reading, 1);
-    r->stat_reading = 1;
-    (void) ngx_atomic_fetch_add(ngx_stat_requests, 1);
-#endif
-
-    return r;
-}
-
-
-static ngx_http_request_t *
-ngx_http_alloc_request(ngx_connection_t *c)
-{
     ngx_pool_t                 *pool;
     ngx_time_t                 *tp;
     ngx_http_request_t         *r;
+    ngx_http_log_ctx_t         *ctx;
     ngx_http_connection_t      *hc;
     ngx_http_core_srv_conf_t   *cscf;
+    ngx_http_core_loc_conf_t   *clcf;
     ngx_http_core_main_conf_t  *cmcf;
 
+    c->requests++;
+
     hc = c->data;
 
     cscf = ngx_http_get_module_srv_conf(hc->conf_ctx, ngx_http_core_module);
@@ -570,6 +541,10 @@ ngx_http_alloc_request(ngx_connection_t *c)
 
     r->read_event_handler = ngx_http_block_reading;
 
+    clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module);
+
+    ngx_set_connection_log(r->connection, clcf->error_log);
+
     r->header_in = hc->busy ? hc->busy->buf : c->buffer;
 
     if (ngx_list_init(&r->headers_out.headers, r->pool, 20,
@@ -629,8 +604,17 @@ ngx_http_alloc_request(ngx_connection_t *c)
 
     r->http_state = NGX_HTTP_READING_REQUEST_STATE;
 
+    ctx = c->log->data;
+    ctx->request = r;
+    ctx->current_request = r;
     r->log_handler = ngx_http_log_error_handler;
 
+#if (NGX_STAT_STUB)
+    (void) ngx_atomic_fetch_add(ngx_stat_reading, 1);
+    r->stat_reading = 1;
+    (void) ngx_atomic_fetch_add(ngx_stat_requests, 1);
+#endif
+
     return r;
 }
 
@@ -849,13 +833,11 @@ ngx_http_ssl_handshake_handler(ngx_connection_t *c)
     ngx_http_close_connection(c);
 }
 
-
 #ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME
 
 int
 ngx_http_ssl_servername(ngx_ssl_conn_t *ssl_conn, int *ad, void *arg)
 {
-    ngx_int_t                  rc;
     ngx_str_t                  host;
     const char                *servername;
     ngx_connection_t          *c;
@@ -864,17 +846,16 @@ ngx_http_ssl_servername(ngx_ssl_conn_t *ssl_conn, int *ad, void *arg)
     ngx_http_core_loc_conf_t  *clcf;
     ngx_http_core_srv_conf_t  *cscf;
 
-    c = ngx_ssl_get_connection(ssl_conn);
+    servername = SSL_get_servername(ssl_conn, TLSEXT_NAMETYPE_host_name);
 
-    if (c->ssl->handshaked) {
-        *ad = SSL_AD_NO_RENEGOTIATION;
-        return SSL_TLSEXT_ERR_ALERT_FATAL;
+    if (servername == NULL) {
+        return SSL_TLSEXT_ERR_NOACK;
     }
 
-    servername = SSL_get_servername(ssl_conn, TLSEXT_NAMETYPE_host_name);
+    c = ngx_ssl_get_connection(ssl_conn);
 
-    if (servername == NULL) {
-        return SSL_TLSEXT_ERR_OK;
+    if (c->ssl->handshaked) {
+        return SSL_TLSEXT_ERR_NOACK;
     }
 
     ngx_log_debug1(NGX_LOG_DEBUG_HTTP, c->log, 0,
@@ -883,40 +864,27 @@ ngx_http_ssl_servername(ngx_ssl_conn_t *ssl_conn, int *ad, void *arg)
     host.len = ngx_strlen(servername);
 
     if (host.len == 0) {
-        return SSL_TLSEXT_ERR_OK;
+        return SSL_TLSEXT_ERR_NOACK;
     }
 
     host.data = (u_char *) servername;
 
-    rc = ngx_http_validate_host(&host, c->pool, 1);
-
-    if (rc == NGX_ERROR) {
-        *ad = SSL_AD_INTERNAL_ERROR;
-        return SSL_TLSEXT_ERR_ALERT_FATAL;
-    }
-
-    if (rc == NGX_DECLINED) {
-        return SSL_TLSEXT_ERR_OK;
+    if (ngx_http_validate_host(&host, c->pool, 1) != NGX_OK) {
+        return SSL_TLSEXT_ERR_NOACK;
     }
 
     hc = c->data;
 
-    rc = ngx_http_find_virtual_server(c, hc->addr_conf->virtual_names, &host,
-                                      NULL, &cscf);
-
-    if (rc == NGX_ERROR) {
-        *ad = SSL_AD_INTERNAL_ERROR;
-        return SSL_TLSEXT_ERR_ALERT_FATAL;
-    }
-
-    if (rc == NGX_DECLINED) {
-        return SSL_TLSEXT_ERR_OK;
+    if (ngx_http_find_virtual_server(c, hc->addr_conf->virtual_names, &host,
+                                     NULL, &cscf)
+        != NGX_OK)
+    {
+        return SSL_TLSEXT_ERR_NOACK;
     }
 
     hc->ssl_servername = ngx_palloc(c->pool, sizeof(ngx_str_t));
     if (hc->ssl_servername == NULL) {
-        *ad = SSL_AD_INTERNAL_ERROR;
-        return SSL_TLSEXT_ERR_ALERT_FATAL;
+        return SSL_TLSEXT_ERR_NOACK;
     }
 
     *hc->ssl_servername = host;
@@ -962,75 +930,6 @@ ngx_http_ssl_servername(ngx_ssl_conn_t *ssl_conn, int *ad, void *arg)
 
 #endif
 
-
-#ifdef SSL_R_CERT_CB_ERROR
-
-int
-ngx_http_ssl_certificate(ngx_ssl_conn_t *ssl_conn, void *arg)
-{
-    ngx_str_t                  cert, key;
-    ngx_uint_t                 i, nelts;
-    ngx_connection_t          *c;
-    ngx_http_request_t        *r;
-    ngx_http_ssl_srv_conf_t   *sscf;
-    ngx_http_complex_value_t  *certs, *keys;
-
-    c = ngx_ssl_get_connection(ssl_conn);
-
-    if (c->ssl->handshaked) {
-        return 0;
-    }
-
-    r = ngx_http_alloc_request(c);
-    if (r == NULL) {
-        return 0;
-    }
-
-    r->logged = 1;
-
-    sscf = arg;
-
-    nelts = sscf->certificate_values->nelts;
-    certs = sscf->certificate_values->elts;
-    keys = sscf->certificate_key_values->elts;
-
-    for (i = 0; i < nelts; i++) {
-
-        if (ngx_http_complex_value(r, &certs[i], &cert) != NGX_OK) {
-            goto failed;
-        }
-
-        ngx_log_debug1(NGX_LOG_DEBUG_HTTP, c->log, 0,
-                       "ssl cert: \"%s\"", cert.data);
-
-        if (ngx_http_complex_value(r, &keys[i], &key) != NGX_OK) {
-            goto failed;
-        }
-
-        ngx_log_debug1(NGX_LOG_DEBUG_HTTP, c->log, 0,
-                       "ssl key: \"%s\"", key.data);
-
-        if (ngx_ssl_connection_certificate(c, r->pool, &cert, &key,
-                                           sscf->passwords)
-            != NGX_OK)
-        {
-            goto failed;
-        }
-    }
-
-    ngx_http_free_request(r, 0);
-    c->destroyed = 0;
-    return 1;
-
-failed:
-
-    ngx_http_free_request(r, 0);
-    c->destroyed = 0;
-    return 0;
-}
-
-#endif
-
 #endif
 
 
@@ -3614,11 +3513,9 @@ ngx_http_free_request(ngx_http_request_t *r, ngx_int_t rc)
         r->headers_out.status = rc;
     }
 
-    if (!r->logged) {
-        log->action = "logging request";
+    log->action = "logging request";
 
-        ngx_http_log_request(r);
-    }
+    ngx_http_log_request(r);
 
     log->action = "closing request";
 

  Renamed: vendor/nginx-1.15.8/src/http/ngx_http_request.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/ngx_http_request_body.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/ngx_http_script.c (+0 -28) 98%
===================================================================
--- vendor/nginx-1.15.10/src/http/ngx_http_script.c    2019-03-27 12:50:20 +0900 (415388904)
+++ vendor/nginx-1.15.8/src/http/ngx_http_script.c    2019-03-27 13:17:47 +0900 (1a8773561)
@@ -271,34 +271,6 @@ ngx_http_test_predicates(ngx_http_request_t *r, ngx_array_t *predicates)
 }
 
 
-ngx_int_t
-ngx_http_test_required_predicates(ngx_http_request_t *r,
-    ngx_array_t *predicates)
-{
-    ngx_str_t                  val;
-    ngx_uint_t                 i;
-    ngx_http_complex_value_t  *cv;
-
-    if (predicates == NULL) {
-        return NGX_OK;
-    }
-
-    cv = predicates->elts;
-
-    for (i = 0; i < predicates->nelts; i++) {
-        if (ngx_http_complex_value(r, &cv[i], &val) != NGX_OK) {
-            return NGX_ERROR;
-        }
-
-        if (val.len == 0 || (val.len == 1 && val.data[0] == '0')) {
-            return NGX_DECLINED;
-        }
-    }
-
-    return NGX_OK;
-}
-
-
 char *
 ngx_http_set_predicate_slot(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
 {

  Renamed: vendor/nginx-1.15.8/src/http/ngx_http_script.h (+0 -2) 98%
===================================================================
--- vendor/nginx-1.15.10/src/http/ngx_http_script.h    2019-03-27 12:50:20 +0900 (25bb6d73f)
+++ vendor/nginx-1.15.8/src/http/ngx_http_script.h    2019-03-27 13:17:47 +0900 (a5116d747)
@@ -214,8 +214,6 @@ char *ngx_http_set_complex_value_slot(ngx_conf_t *cf, ngx_command_t *cmd,
 
 ngx_int_t ngx_http_test_predicates(ngx_http_request_t *r,
     ngx_array_t *predicates);
-ngx_int_t ngx_http_test_required_predicates(ngx_http_request_t *r,
-    ngx_array_t *predicates);
 char *ngx_http_set_predicate_slot(ngx_conf_t *cf, ngx_command_t *cmd,
     void *conf);
 

  Renamed: vendor/nginx-1.15.8/src/http/ngx_http_special_response.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/ngx_http_upstream.c (+1 -1) 99%
===================================================================
--- vendor/nginx-1.15.10/src/http/ngx_http_upstream.c    2019-03-27 12:50:20 +0900 (a7391d09a)
+++ vendor/nginx-1.15.8/src/http/ngx_http_upstream.c    2019-03-27 13:17:47 +0900 (907105571)
@@ -850,7 +850,7 @@ ngx_http_upstream_cache(ngx_http_request_t *r, ngx_http_upstream_t *u)
 
         ngx_http_file_cache_create_key(r);
 
-        if (r->cache->header_start + 256 > u->conf->buffer_size) {
+        if (r->cache->header_start + 256 >= u->conf->buffer_size) {
             ngx_log_error(NGX_LOG_ERR, r->connection->log, 0,
                           "%V_buffer_size %uz is not enough for cache key, "
                           "it should be increased to at least %uz",

  Renamed: vendor/nginx-1.15.8/src/http/ngx_http_upstream.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/ngx_http_upstream_round_robin.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/ngx_http_upstream_round_robin.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/ngx_http_variables.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/ngx_http_variables.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/ngx_http_write_filter_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/v2/ngx_http_v2.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/v2/ngx_http_v2.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/v2/ngx_http_v2_encode.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/v2/ngx_http_v2_filter_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/v2/ngx_http_v2_huff_decode.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/v2/ngx_http_v2_huff_encode.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/v2/ngx_http_v2_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/v2/ngx_http_v2_module.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/http/v2/ngx_http_v2_table.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/mail/ngx_mail.c (+36 -6) 91%
===================================================================
--- vendor/nginx-1.15.10/src/mail/ngx_mail.c    2019-03-27 12:50:20 +0900 (f17c2ccc3)
+++ vendor/nginx-1.15.8/src/mail/ngx_mail.c    2019-03-27 13:17:47 +0900 (5fd5fa00c)
@@ -231,7 +231,7 @@ ngx_mail_add_ports(ngx_conf_t *cf, ngx_array_t *ports,
     ngx_mail_conf_port_t  *port;
     ngx_mail_conf_addr_t  *addr;
 
-    sa = listen->sockaddr;
+    sa = &listen->sockaddr.sockaddr;
     p = ngx_inet_get_port(sa);
 
     port = ports->elts;
@@ -316,7 +316,7 @@ ngx_mail_optimize_servers(ngx_conf_t *cf, ngx_array_t *ports)
                 continue;
             }
 
-            ls = ngx_create_listening(cf, addr[i].opt.sockaddr,
+            ls = ngx_create_listening(cf, &addr[i].opt.sockaddr.sockaddr,
                                       addr[i].opt.socklen);
             if (ls == NULL) {
                 return NGX_CONF_ERROR;
@@ -384,9 +384,12 @@ static ngx_int_t
 ngx_mail_add_addrs(ngx_conf_t *cf, ngx_mail_port_t *mport,
     ngx_mail_conf_addr_t *addr)
 {
+    u_char              *p;
+    size_t               len;
     ngx_uint_t           i;
     ngx_mail_in_addr_t  *addrs;
     struct sockaddr_in  *sin;
+    u_char               buf[NGX_SOCKADDR_STRLEN];
 
     mport->addrs = ngx_pcalloc(cf->pool,
                                mport->naddrs * sizeof(ngx_mail_in_addr_t));
@@ -398,14 +401,26 @@ ngx_mail_add_addrs(ngx_conf_t *cf, ngx_mail_port_t *mport,
 
     for (i = 0; i < mport->naddrs; i++) {
 
-        sin = (struct sockaddr_in *) addr[i].opt.sockaddr;
+        sin = &addr[i].opt.sockaddr.sockaddr_in;
         addrs[i].addr = sin->sin_addr.s_addr;
 
         addrs[i].conf.ctx = addr[i].opt.ctx;
 #if (NGX_MAIL_SSL)
         addrs[i].conf.ssl = addr[i].opt.ssl;
 #endif
-        addrs[i].conf.addr_text = addr[i].opt.addr_text;
+
+        len = ngx_sock_ntop(&addr[i].opt.sockaddr.sockaddr, addr[i].opt.socklen,
+                            buf, NGX_SOCKADDR_STRLEN, 1);
+
+        p = ngx_pnalloc(cf->pool, len);
+        if (p == NULL) {
+            return NGX_ERROR;
+        }
+
+        ngx_memcpy(p, buf, len);
+
+        addrs[i].conf.addr_text.len = len;
+        addrs[i].conf.addr_text.data = p;
     }
 
     return NGX_OK;
@@ -418,9 +433,12 @@ static ngx_int_t
 ngx_mail_add_addrs6(ngx_conf_t *cf, ngx_mail_port_t *mport,
     ngx_mail_conf_addr_t *addr)
 {
+    u_char               *p;
+    size_t                len;
     ngx_uint_t            i;
     ngx_mail_in6_addr_t  *addrs6;
     struct sockaddr_in6  *sin6;
+    u_char                buf[NGX_SOCKADDR_STRLEN];
 
     mport->addrs = ngx_pcalloc(cf->pool,
                                mport->naddrs * sizeof(ngx_mail_in6_addr_t));
@@ -432,14 +450,26 @@ ngx_mail_add_addrs6(ngx_conf_t *cf, ngx_mail_port_t *mport,
 
     for (i = 0; i < mport->naddrs; i++) {
 
-        sin6 = (struct sockaddr_in6 *) addr[i].opt.sockaddr;
+        sin6 = &addr[i].opt.sockaddr.sockaddr_in6;
         addrs6[i].addr6 = sin6->sin6_addr;
 
         addrs6[i].conf.ctx = addr[i].opt.ctx;
 #if (NGX_MAIL_SSL)
         addrs6[i].conf.ssl = addr[i].opt.ssl;
 #endif
-        addrs6[i].conf.addr_text = addr[i].opt.addr_text;
+
+        len = ngx_sock_ntop(&addr[i].opt.sockaddr.sockaddr, addr[i].opt.socklen,
+                            buf, NGX_SOCKADDR_STRLEN, 1);
+
+        p = ngx_pnalloc(cf->pool, len);
+        if (p == NULL) {
+            return NGX_ERROR;
+        }
+
+        ngx_memcpy(p, buf, len);
+
+        addrs6[i].conf.addr_text.len = len;
+        addrs6[i].conf.addr_text.data = p;
     }
 
     return NGX_OK;

  Renamed: vendor/nginx-1.15.8/src/mail/ngx_mail.h (+1 -2) 99%
===================================================================
--- vendor/nginx-1.15.10/src/mail/ngx_mail.h    2019-03-27 12:50:20 +0900 (d904f25f1)
+++ vendor/nginx-1.15.8/src/mail/ngx_mail.h    2019-03-27 13:17:47 +0900 (6ecfefc98)
@@ -27,9 +27,8 @@ typedef struct {
 
 
 typedef struct {
-    struct sockaddr        *sockaddr;
+    ngx_sockaddr_t          sockaddr;
     socklen_t               socklen;
-    ngx_str_t               addr_text;
 
     /* server ctx */
     ngx_mail_conf_ctx_t    *ctx;

  Renamed: vendor/nginx-1.15.8/src/mail/ngx_mail_auth_http_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/mail/ngx_mail_core_module.c (+46 -37) 91%
===================================================================
--- vendor/nginx-1.15.10/src/mail/ngx_mail_core_module.c    2019-03-27 12:50:20 +0900 (e16d70238)
+++ vendor/nginx-1.15.8/src/mail/ngx_mail_core_module.c    2019-03-27 13:17:47 +0900 (dd4e9802b)
@@ -297,8 +297,8 @@ ngx_mail_core_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
 
     ngx_str_t                  *value, size;
     ngx_url_t                   u;
-    ngx_uint_t                  i, n, m;
-    ngx_mail_listen_t          *ls, *als;
+    ngx_uint_t                  i, m;
+    ngx_mail_listen_t          *ls;
     ngx_mail_module_t          *module;
     ngx_mail_core_main_conf_t  *cmcf;
 
@@ -323,16 +323,36 @@ ngx_mail_core_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
 
     cmcf = ngx_mail_conf_get_module_main_conf(cf, ngx_mail_core_module);
 
-    ls = ngx_array_push_n(&cmcf->listen, u.naddrs);
+    ls = cmcf->listen.elts;
+
+    for (i = 0; i < cmcf->listen.nelts; i++) {
+
+        if (ngx_cmp_sockaddr(&ls[i].sockaddr.sockaddr, ls[i].socklen,
+                             (struct sockaddr *) &u.sockaddr, u.socklen, 1)
+            != NGX_OK)
+        {
+            continue;
+        }
+
+        ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+                           "duplicate \"%V\" address and port pair", &u.url);
+        return NGX_CONF_ERROR;
+    }
+
+    ls = ngx_array_push(&cmcf->listen);
     if (ls == NULL) {
         return NGX_CONF_ERROR;
     }
 
     ngx_memzero(ls, sizeof(ngx_mail_listen_t));
 
+    ngx_memcpy(&ls->sockaddr.sockaddr, &u.sockaddr, u.socklen);
+
+    ls->socklen = u.socklen;
     ls->backlog = NGX_LISTEN_BACKLOG;
     ls->rcvbuf = -1;
     ls->sndbuf = -1;
+    ls->wildcard = u.wildcard;
     ls->ctx = cf->ctx;
 
 #if (NGX_HAVE_INET6)
@@ -414,20 +434,35 @@ ngx_mail_core_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
 
         if (ngx_strncmp(value[i].data, "ipv6only=o", 10) == 0) {
 #if (NGX_HAVE_INET6 && defined IPV6_V6ONLY)
-            if (ngx_strcmp(&value[i].data[10], "n") == 0) {
-                ls->ipv6only = 1;
+            size_t  len;
+            u_char  buf[NGX_SOCKADDR_STRLEN];
+
+            if (ls->sockaddr.sockaddr.sa_family == AF_INET6) {
+
+                if (ngx_strcmp(&value[i].data[10], "n") == 0) {
+                    ls->ipv6only = 1;
+
+                } else if (ngx_strcmp(&value[i].data[10], "ff") == 0) {
+                    ls->ipv6only = 0;
+
+                } else {
+                    ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+                                       "invalid ipv6only flags \"%s\"",
+                                       &value[i].data[9]);
+                    return NGX_CONF_ERROR;
+                }
 
-            } else if (ngx_strcmp(&value[i].data[10], "ff") == 0) {
-                ls->ipv6only = 0;
+                ls->bind = 1;
 
             } else {
+                len = ngx_sock_ntop(&ls->sockaddr.sockaddr, ls->socklen, buf,
+                                    NGX_SOCKADDR_STRLEN, 1);
+
                 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
-                                   "invalid ipv6only flags \"%s\"",
-                                   &value[i].data[9]);
-                return NGX_CONF_ERROR;
+                                   "ipv6only is not supported "
+                                   "on addr \"%*s\", ignored", len, buf);
             }
 
-            ls->bind = 1;
             continue;
 #else
             ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
@@ -553,32 +588,6 @@ ngx_mail_core_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
         return NGX_CONF_ERROR;
     }
 
-    als = cmcf->listen.elts;
-
-    for (n = 0; n < u.naddrs; n++) {
-        ls[n] = ls[0];
-
-        ls[n].sockaddr = u.addrs[n].sockaddr;
-        ls[n].socklen = u.addrs[n].socklen;
-        ls[n].addr_text = u.addrs[n].name;
-        ls[n].wildcard = ngx_inet_wildcard(ls[n].sockaddr);
-
-        for (i = 0; i < cmcf->listen.nelts - u.naddrs + n; i++) {
-
-            if (ngx_cmp_sockaddr(als[i].sockaddr, als[i].socklen,
-                                 ls[n].sockaddr, ls[n].socklen, 1)
-                != NGX_OK)
-            {
-                continue;
-            }
-
-            ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
-                               "duplicate \"%V\" address and port pair",
-                               &ls[n].addr_text);
-            return NGX_CONF_ERROR;
-        }
-    }
-
     return NGX_CONF_OK;
 }
 

  Renamed: vendor/nginx-1.15.8/src/mail/ngx_mail_handler.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/mail/ngx_mail_imap_handler.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/mail/ngx_mail_imap_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/mail/ngx_mail_imap_module.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/mail/ngx_mail_parse.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/mail/ngx_mail_pop3_handler.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/mail/ngx_mail_pop3_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/mail/ngx_mail_pop3_module.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/mail/ngx_mail_proxy_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/mail/ngx_mail_smtp_handler.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/mail/ngx_mail_smtp_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/mail/ngx_mail_smtp_module.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/mail/ngx_mail_ssl_module.c (+1 -2) 99%
===================================================================
--- vendor/nginx-1.15.10/src/mail/ngx_mail_ssl_module.c    2019-03-27 12:50:20 +0900 (5544f7522)
+++ vendor/nginx-1.15.8/src/mail/ngx_mail_ssl_module.c    2019-03-27 13:17:47 +0900 (45095979e)
@@ -370,7 +370,6 @@ ngx_mail_ssl_merge_conf(ngx_conf_t *cf, void *parent, void *child)
 
     cln = ngx_pool_cleanup_add(cf->pool, 0);
     if (cln == NULL) {
-        ngx_ssl_cleanup_ctx(&conf->ssl);
         return NGX_CONF_ERROR;
     }
 
@@ -436,7 +435,7 @@ ngx_mail_ssl_merge_conf(ngx_conf_t *cf, void *parent, void *child)
     }
 
     if (ngx_ssl_session_cache(&conf->ssl, &ngx_mail_ssl_sess_id_ctx,
-                              conf->certificates, conf->builtin_session_cache,
+                              conf->builtin_session_cache,
                               conf->shm_zone, conf->session_timeout)
         != NGX_OK)
     {

  Renamed: vendor/nginx-1.15.8/src/mail/ngx_mail_ssl_module.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/misc/ngx_cpp_test_module.cpp (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/misc/ngx_google_perftools_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_alloc.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_alloc.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_atomic.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_channel.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_channel.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_daemon.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_darwin.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_darwin_config.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_darwin_init.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_darwin_sendfile_chain.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_dlopen.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_dlopen.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_errno.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_errno.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_file_aio_read.c (+1 -1) 98%
===================================================================
--- vendor/nginx-1.15.10/src/os/unix/ngx_file_aio_read.c    2019-03-27 12:50:20 +0900 (bb60ee824)
+++ vendor/nginx-1.15.8/src/os/unix/ngx_file_aio_read.c    2019-03-27 13:17:47 +0900 (aedc3c90c)
@@ -110,7 +110,7 @@ ngx_file_aio_read(ngx_file_t *file, u_char *buf, size_t size, off_t offset,
 #if (NGX_HAVE_KQUEUE)
     aio->aiocb.aio_sigevent.sigev_notify_kqueue = ngx_kqueue;
     aio->aiocb.aio_sigevent.sigev_notify = SIGEV_KEVENT;
-    aio->aiocb.aio_sigevent.sigev_value.sival_ptr = ev;
+    aio->aiocb.aio_sigevent.sigev_value.sigval_ptr = ev;
 #endif
     ev->handler = ngx_file_aio_event_handler;
 

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_files.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_files.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_freebsd.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_freebsd_config.h (+0 -6) 95%
===================================================================
--- vendor/nginx-1.15.10/src/os/unix/ngx_freebsd_config.h    2019-03-27 12:50:20 +0900 (c641108b7)
+++ vendor/nginx-1.15.8/src/os/unix/ngx_freebsd_config.h    2019-03-27 13:17:47 +0900 (b7da48cb1)
@@ -89,14 +89,8 @@
 
 
 #if (NGX_HAVE_FILE_AIO)
-
 #include <aio.h>
 typedef struct aiocb  ngx_aiocb_t;
-
-#if (__FreeBSD_version < 700005 && !defined __DragonFly__)
-#define sival_ptr     sigval_ptr
-#endif
-
 #endif
 
 

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_freebsd_init.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_freebsd_sendfile_chain.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_gcc_atomic_amd64.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_gcc_atomic_ppc.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_gcc_atomic_sparc64.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_gcc_atomic_x86.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_linux.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_linux_aio_read.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_linux_config.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_linux_init.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_linux_sendfile_chain.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_os.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_posix_config.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_posix_init.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_process.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_process.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_process_cycle.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_process_cycle.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_readv_chain.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_recv.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_send.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_setaffinity.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_setaffinity.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_setproctitle.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_setproctitle.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_shmem.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_shmem.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_socket.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_socket.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_solaris.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_solaris_config.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_solaris_init.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_solaris_sendfilev_chain.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_sunpro_amd64.il (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_sunpro_atomic_sparc64.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_sunpro_sparc64.il (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_sunpro_x86.il (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_thread.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_thread_cond.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_thread_id.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_thread_mutex.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_time.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_time.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_udp_recv.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_udp_send.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_udp_sendmsg_chain.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_user.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_user.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/unix/ngx_writev_chain.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/nginx.ico (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/nginx.rc (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/nginx_icon16.xpm (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/nginx_icon32.xpm (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/nginx_icon48.xpm (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_alloc.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_alloc.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_atomic.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_dlopen.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_dlopen.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_errno.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_errno.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_event_log.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_files.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_files.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_os.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_process.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_process.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_process_cycle.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_process_cycle.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_service.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_shmem.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_shmem.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_socket.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_socket.h (+0 -43) 85%
===================================================================
--- vendor/nginx-1.15.10/src/os/win32/ngx_socket.h    2019-03-27 12:50:20 +0900 (f8a453d56)
+++ vendor/nginx-1.15.8/src/os/win32/ngx_socket.h    2019-03-27 13:17:47 +0900 (a9e26c295)
@@ -200,49 +200,6 @@ extern LPFN_CONNECTEX             ngx_connectex;
 extern LPFN_DISCONNECTEX          ngx_disconnectex;
 
 
-#if (NGX_HAVE_POLL && !defined POLLIN)
-
-/*
- * WSAPoll() is only available if _WIN32_WINNT >= 0x0600.
- * If it is not available during compilation, we try to
- * load it dynamically at runtime.
- */
-
-#define NGX_LOAD_WSAPOLL 1
-
-#define POLLRDNORM  0x0100
-#define POLLRDBAND  0x0200
-#define POLLIN      (POLLRDNORM | POLLRDBAND)
-#define POLLPRI     0x0400
-
-#define POLLWRNORM  0x0010
-#define POLLOUT     (POLLWRNORM)
-#define POLLWRBAND  0x0020
-
-#define POLLERR     0x0001
-#define POLLHUP     0x0002
-#define POLLNVAL    0x0004
-
-typedef struct pollfd {
-
-    SOCKET  fd;
-    SHORT   events;
-    SHORT   revents;
-
-} WSAPOLLFD, *PWSAPOLLFD, FAR *LPWSAPOLLFD;
-
-typedef int (WSAAPI *ngx_wsapoll_pt)(
-    LPWSAPOLLFD fdArray,
-    ULONG fds,
-    INT timeout
-    );
-
-extern ngx_wsapoll_pt             WSAPoll;
-extern ngx_uint_t                 ngx_have_wsapoll;
-
-#endif
-
-
 int ngx_tcp_push(ngx_socket_t s);
 #define ngx_tcp_push_n            "tcp_push()"
 

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_stat.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_thread.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_thread.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_time.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_time.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_udp_wsarecv.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_user.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_user.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_win32_config.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_win32_init.c (+0 -32) 92%
===================================================================
--- vendor/nginx-1.15.10/src/os/win32/ngx_win32_init.c    2019-03-27 12:50:20 +0900 (70bee8ef4)
+++ vendor/nginx-1.15.8/src/os/win32/ngx_win32_init.c    2019-03-27 13:17:47 +0900 (ec9b51efa)
@@ -58,12 +58,6 @@ static GUID cx_guid = WSAID_CONNECTEX;
 static GUID dx_guid = WSAID_DISCONNECTEX;
 
 
-#if (NGX_LOAD_WSAPOLL)
-ngx_wsapoll_pt             WSAPoll;
-ngx_uint_t                 ngx_have_wsapoll;
-#endif
-
-
 ngx_int_t
 ngx_os_init(ngx_log_t *log)
 {
@@ -229,32 +223,6 @@ ngx_os_init(ngx_log_t *log)
                       ngx_close_socket_n " failed");
     }
 
-#if (NGX_LOAD_WSAPOLL)
-    {
-    HMODULE  hmod;
-
-    hmod = GetModuleHandle("ws2_32.dll");
-    if (hmod == NULL) {
-        ngx_log_error(NGX_LOG_NOTICE, log, ngx_errno,
-                      "GetModuleHandle(\"ws2_32.dll\") failed");
-        goto nopoll;
-    }
-
-    WSAPoll = (ngx_wsapoll_pt) GetProcAddress(hmod, "WSAPoll");
-    if (WSAPoll == NULL) {
-        ngx_log_error(NGX_LOG_NOTICE, log, ngx_errno,
-                      "GetProcAddress(\"WSAPoll\") failed");
-        goto nopoll;
-    }
-
-    ngx_have_wsapoll = 1;
-
-    }
-
-nopoll:
-
-#endif
-
     if (GetEnvironmentVariable("ngx_unique", ngx_unique, NGX_INT32_LEN + 1)
         != 0)
     {

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_wsarecv.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_wsarecv_chain.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_wsasend.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/os/win32/ngx_wsasend_chain.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/stream/ngx_stream.c (+36 -6) 93%
===================================================================
--- vendor/nginx-1.15.10/src/stream/ngx_stream.c    2019-03-27 12:50:20 +0900 (78356754e)
+++ vendor/nginx-1.15.8/src/stream/ngx_stream.c    2019-03-27 13:17:47 +0900 (4abe387e8)
@@ -387,7 +387,7 @@ ngx_stream_add_ports(ngx_conf_t *cf, ngx_array_t *ports,
     ngx_stream_conf_port_t  *port;
     ngx_stream_conf_addr_t  *addr;
 
-    sa = listen->sockaddr;
+    sa = &listen->sockaddr.sockaddr;
     p = ngx_inet_get_port(sa);
 
     port = ports->elts;
@@ -476,7 +476,7 @@ ngx_stream_optimize_servers(ngx_conf_t *cf, ngx_array_t *ports)
                 continue;
             }
 
-            ls = ngx_create_listening(cf, addr[i].opt.sockaddr,
+            ls = ngx_create_listening(cf, &addr[i].opt.sockaddr.sockaddr,
                                       addr[i].opt.socklen);
             if (ls == NULL) {
                 return NGX_CONF_ERROR;
@@ -551,9 +551,12 @@ static ngx_int_t
 ngx_stream_add_addrs(ngx_conf_t *cf, ngx_stream_port_t *stport,
     ngx_stream_conf_addr_t *addr)
 {
+    u_char                *p;
+    size_t                 len;
     ngx_uint_t             i;
     struct sockaddr_in    *sin;
     ngx_stream_in_addr_t  *addrs;
+    u_char                 buf[NGX_SOCKADDR_STRLEN];
 
     stport->addrs = ngx_pcalloc(cf->pool,
                                 stport->naddrs * sizeof(ngx_stream_in_addr_t));
@@ -565,7 +568,7 @@ ngx_stream_add_addrs(ngx_conf_t *cf, ngx_stream_port_t *stport,
 
     for (i = 0; i < stport->naddrs; i++) {
 
-        sin = (struct sockaddr_in *) addr[i].opt.sockaddr;
+        sin = &addr[i].opt.sockaddr.sockaddr_in;
         addrs[i].addr = sin->sin_addr.s_addr;
 
         addrs[i].conf.ctx = addr[i].opt.ctx;
@@ -573,7 +576,19 @@ ngx_stream_add_addrs(ngx_conf_t *cf, ngx_stream_port_t *stport,
         addrs[i].conf.ssl = addr[i].opt.ssl;
 #endif
         addrs[i].conf.proxy_protocol = addr[i].opt.proxy_protocol;
-        addrs[i].conf.addr_text = addr[i].opt.addr_text;
+
+        len = ngx_sock_ntop(&addr[i].opt.sockaddr.sockaddr, addr[i].opt.socklen,
+                            buf, NGX_SOCKADDR_STRLEN, 1);
+
+        p = ngx_pnalloc(cf->pool, len);
+        if (p == NULL) {
+            return NGX_ERROR;
+        }
+
+        ngx_memcpy(p, buf, len);
+
+        addrs[i].conf.addr_text.len = len;
+        addrs[i].conf.addr_text.data = p;
     }
 
     return NGX_OK;
@@ -586,9 +601,12 @@ static ngx_int_t
 ngx_stream_add_addrs6(ngx_conf_t *cf, ngx_stream_port_t *stport,
     ngx_stream_conf_addr_t *addr)
 {
+    u_char                 *p;
+    size_t                  len;
     ngx_uint_t              i;
     struct sockaddr_in6    *sin6;
     ngx_stream_in6_addr_t  *addrs6;
+    u_char                  buf[NGX_SOCKADDR_STRLEN];
 
     stport->addrs = ngx_pcalloc(cf->pool,
                                 stport->naddrs * sizeof(ngx_stream_in6_addr_t));
@@ -600,7 +618,7 @@ ngx_stream_add_addrs6(ngx_conf_t *cf, ngx_stream_port_t *stport,
 
     for (i = 0; i < stport->naddrs; i++) {
 
-        sin6 = (struct sockaddr_in6 *) addr[i].opt.sockaddr;
+        sin6 = &addr[i].opt.sockaddr.sockaddr_in6;
         addrs6[i].addr6 = sin6->sin6_addr;
 
         addrs6[i].conf.ctx = addr[i].opt.ctx;
@@ -608,7 +626,19 @@ ngx_stream_add_addrs6(ngx_conf_t *cf, ngx_stream_port_t *stport,
         addrs6[i].conf.ssl = addr[i].opt.ssl;
 #endif
         addrs6[i].conf.proxy_protocol = addr[i].opt.proxy_protocol;
-        addrs6[i].conf.addr_text = addr[i].opt.addr_text;
+
+        len = ngx_sock_ntop(&addr[i].opt.sockaddr.sockaddr, addr[i].opt.socklen,
+                            buf, NGX_SOCKADDR_STRLEN, 1);
+
+        p = ngx_pnalloc(cf->pool, len);
+        if (p == NULL) {
+            return NGX_ERROR;
+        }
+
+        ngx_memcpy(p, buf, len);
+
+        addrs6[i].conf.addr_text.len = len;
+        addrs6[i].conf.addr_text.data = p;
     }
 
     return NGX_OK;

  Renamed: vendor/nginx-1.15.8/src/stream/ngx_stream.h (+1 -2) 99%
===================================================================
--- vendor/nginx-1.15.10/src/stream/ngx_stream.h    2019-03-27 12:50:20 +0900 (57e73e046)
+++ vendor/nginx-1.15.8/src/stream/ngx_stream.h    2019-03-27 13:17:47 +0900 (09d245939)
@@ -41,9 +41,8 @@ typedef struct {
 
 
 typedef struct {
-    struct sockaddr               *sockaddr;
+    ngx_sockaddr_t                 sockaddr;
     socklen_t                      socklen;
-    ngx_str_t                      addr_text;
 
     /* server ctx */
     ngx_stream_conf_ctx_t         *ctx;

  Renamed: vendor/nginx-1.15.8/src/stream/ngx_stream_access_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/stream/ngx_stream_core_module.c (+42 -33) 93%
===================================================================
--- vendor/nginx-1.15.10/src/stream/ngx_stream_core_module.c    2019-03-27 12:50:20 +0900 (9b6afe974)
+++ vendor/nginx-1.15.8/src/stream/ngx_stream_core_module.c    2019-03-27 13:17:47 +0900 (3c4027b77)
@@ -577,7 +577,7 @@ ngx_stream_core_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
 
     ngx_str_t                    *value, size;
     ngx_url_t                     u;
-    ngx_uint_t                    i, n, backlog;
+    ngx_uint_t                    i, backlog;
     ngx_stream_listen_t          *ls, *als;
     ngx_stream_core_main_conf_t  *cmcf;
 
@@ -602,17 +602,21 @@ ngx_stream_core_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
 
     cmcf = ngx_stream_conf_get_module_main_conf(cf, ngx_stream_core_module);
 
-    ls = ngx_array_push_n(&cmcf->listen, u.naddrs);
+    ls = ngx_array_push(&cmcf->listen);
     if (ls == NULL) {
         return NGX_CONF_ERROR;
     }
 
     ngx_memzero(ls, sizeof(ngx_stream_listen_t));
 
+    ngx_memcpy(&ls->sockaddr.sockaddr, &u.sockaddr, u.socklen);
+
+    ls->socklen = u.socklen;
     ls->backlog = NGX_LISTEN_BACKLOG;
     ls->rcvbuf = -1;
     ls->sndbuf = -1;
     ls->type = SOCK_STREAM;
+    ls->wildcard = u.wildcard;
     ls->ctx = cf->ctx;
 
 #if (NGX_HAVE_INET6)
@@ -684,20 +688,35 @@ ngx_stream_core_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
 
         if (ngx_strncmp(value[i].data, "ipv6only=o", 10) == 0) {
 #if (NGX_HAVE_INET6 && defined IPV6_V6ONLY)
-            if (ngx_strcmp(&value[i].data[10], "n") == 0) {
-                ls->ipv6only = 1;
+            size_t  len;
+            u_char  buf[NGX_SOCKADDR_STRLEN];
+
+            if (ls->sockaddr.sockaddr.sa_family == AF_INET6) {
+
+                if (ngx_strcmp(&value[i].data[10], "n") == 0) {
+                    ls->ipv6only = 1;
+
+                } else if (ngx_strcmp(&value[i].data[10], "ff") == 0) {
+                    ls->ipv6only = 0;
+
+                } else {
+                    ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+                                       "invalid ipv6only flags \"%s\"",
+                                       &value[i].data[9]);
+                    return NGX_CONF_ERROR;
+                }
 
-            } else if (ngx_strcmp(&value[i].data[10], "ff") == 0) {
-                ls->ipv6only = 0;
+                ls->bind = 1;
 
             } else {
+                len = ngx_sock_ntop(&ls->sockaddr.sockaddr, ls->socklen, buf,
+                                    NGX_SOCKADDR_STRLEN, 1);
+
                 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
-                                   "invalid ipv6only flags \"%s\"",
-                                   &value[i].data[9]);
-                return NGX_CONF_ERROR;
+                                   "ipv6only is not supported "
+                                   "on addr \"%*s\", ignored", len, buf);
             }
 
-            ls->bind = 1;
             continue;
 #else
             ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
@@ -863,31 +882,21 @@ ngx_stream_core_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
 
     als = cmcf->listen.elts;
 
-    for (n = 0; n < u.naddrs; n++) {
-        ls[n] = ls[0];
-
-        ls[n].sockaddr = u.addrs[n].sockaddr;
-        ls[n].socklen = u.addrs[n].socklen;
-        ls[n].addr_text = u.addrs[n].name;
-        ls[n].wildcard = ngx_inet_wildcard(ls[n].sockaddr);
-
-        for (i = 0; i < cmcf->listen.nelts - u.naddrs + n; i++) {
-            if (ls[n].type != als[i].type) {
-                continue;
-            }
-
-            if (ngx_cmp_sockaddr(als[i].sockaddr, als[i].socklen,
-                                 ls[n].sockaddr, ls[n].socklen, 1)
-                != NGX_OK)
-            {
-                continue;
-            }
+    for (i = 0; i < cmcf->listen.nelts - 1; i++) {
+        if (ls->type != als[i].type) {
+            continue;
+        }
 
-            ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
-                               "duplicate \"%V\" address and port pair",
-                               &ls[n].addr_text);
-            return NGX_CONF_ERROR;
+        if (ngx_cmp_sockaddr(&als[i].sockaddr.sockaddr, als[i].socklen,
+                             &ls->sockaddr.sockaddr, ls->socklen, 1)
+            != NGX_OK)
+        {
+            continue;
         }
+
+        ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+                           "duplicate \"%V\" address and port pair", &u.url);
+        return NGX_CONF_ERROR;
     }
 
     return NGX_CONF_OK;

  Renamed: vendor/nginx-1.15.8/src/stream/ngx_stream_geo_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/stream/ngx_stream_geoip_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/stream/ngx_stream_handler.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/stream/ngx_stream_limit_conn_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/stream/ngx_stream_log_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/stream/ngx_stream_map_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/stream/ngx_stream_proxy_module.c (+3 -4) 99%
===================================================================
--- vendor/nginx-1.15.10/src/stream/ngx_stream_proxy_module.c    2019-03-27 12:50:20 +0900 (127c8a4a4)
+++ vendor/nginx-1.15.8/src/stream/ngx_stream_proxy_module.c    2019-03-27 13:17:47 +0900 (094931355)
@@ -1593,7 +1593,7 @@ ngx_stream_proxy_process(ngx_stream_session_t *s, ngx_uint_t from_upstream,
                     break;
                 }
 
-                if (c->type == SOCK_STREAM && (off_t) size > limit) {
+                if ((off_t) size > limit) {
                     size = (size_t) limit;
                 }
             }
@@ -1667,13 +1667,13 @@ ngx_stream_proxy_process(ngx_stream_session_t *s, ngx_uint_t from_upstream,
 
     flags = src->read->eof ? NGX_CLOSE_EVENT : 0;
 
-    if (ngx_handle_read_event(src->read, flags) != NGX_OK) {
+    if (!src->shared && ngx_handle_read_event(src->read, flags) != NGX_OK) {
         ngx_stream_proxy_finalize(s, NGX_STREAM_INTERNAL_SERVER_ERROR);
         return;
     }
 
     if (dst) {
-        if (ngx_handle_write_event(dst->write, 0) != NGX_OK) {
+        if (!dst->shared && ngx_handle_write_event(dst->write, 0) != NGX_OK) {
             ngx_stream_proxy_finalize(s, NGX_STREAM_INTERNAL_SERVER_ERROR);
             return;
         }
@@ -2096,7 +2096,6 @@ ngx_stream_proxy_set_ssl(ngx_conf_t *cf, ngx_stream_proxy_srv_conf_t *pscf)
 
     cln = ngx_pool_cleanup_add(cf->pool, 0);
     if (cln == NULL) {
-        ngx_ssl_cleanup_ctx(pscf->ssl);
         return NGX_ERROR;
     }
 

  Renamed: vendor/nginx-1.15.8/src/stream/ngx_stream_realip_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/stream/ngx_stream_return_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/stream/ngx_stream_script.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/stream/ngx_stream_script.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/stream/ngx_stream_split_clients_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/stream/ngx_stream_ssl_module.c (+5 -197) 83%
===================================================================
--- vendor/nginx-1.15.10/src/stream/ngx_stream_ssl_module.c    2019-03-27 12:50:20 +0900 (ec9524e07)
+++ vendor/nginx-1.15.8/src/stream/ngx_stream_ssl_module.c    2019-03-27 13:17:47 +0900 (dcc33e1ce)
@@ -22,12 +22,6 @@ static ngx_int_t ngx_stream_ssl_handler(ngx_stream_session_t *s);
 static ngx_int_t ngx_stream_ssl_init_connection(ngx_ssl_t *ssl,
     ngx_connection_t *c);
 static void ngx_stream_ssl_handshake_handler(ngx_connection_t *c);
-#ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME
-int ngx_stream_ssl_servername(ngx_ssl_conn_t *ssl_conn, int *ad, void *arg);
-#endif
-#ifdef SSL_R_CERT_CB_ERROR
-static int ngx_stream_ssl_certificate(ngx_ssl_conn_t *ssl_conn, void *arg);
-#endif
 static ngx_int_t ngx_stream_ssl_static_variable(ngx_stream_session_t *s,
     ngx_stream_variable_value_t *v, uintptr_t data);
 static ngx_int_t ngx_stream_ssl_variable(ngx_stream_session_t *s,
@@ -38,9 +32,6 @@ static void *ngx_stream_ssl_create_conf(ngx_conf_t *cf);
 static char *ngx_stream_ssl_merge_conf(ngx_conf_t *cf, void *parent,
     void *child);
 
-static ngx_int_t ngx_stream_ssl_compile_certificates(ngx_conf_t *cf,
-    ngx_stream_ssl_conf_t *conf);
-
 static char *ngx_stream_ssl_password_file(ngx_conf_t *cf, ngx_command_t *cmd,
     void *conf);
 static char *ngx_stream_ssl_session_cache(ngx_conf_t *cf, ngx_command_t *cmd,
@@ -417,73 +408,6 @@ ngx_stream_ssl_handshake_handler(ngx_connection_t *c)
 }
 
 
-#ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME
-
-int
-ngx_stream_ssl_servername(ngx_ssl_conn_t *ssl_conn, int *ad, void *arg)
-{
-    return SSL_TLSEXT_ERR_OK;
-}
-
-#endif
-
-
-#ifdef SSL_R_CERT_CB_ERROR
-
-int
-ngx_stream_ssl_certificate(ngx_ssl_conn_t *ssl_conn, void *arg)
-{
-    ngx_str_t                    cert, key;
-    ngx_uint_t                   i, nelts;
-    ngx_connection_t            *c;
-    ngx_stream_session_t        *s;
-    ngx_stream_ssl_conf_t       *sslcf;
-    ngx_stream_complex_value_t  *certs, *keys;
-
-    c = ngx_ssl_get_connection(ssl_conn);
-
-    if (c->ssl->handshaked) {
-        return 0;
-    }
-
-    s = c->data;
-
-    sslcf = arg;
-
-    nelts = sslcf->certificate_values->nelts;
-    certs = sslcf->certificate_values->elts;
-    keys = sslcf->certificate_key_values->elts;
-
-    for (i = 0; i < nelts; i++) {
-
-        if (ngx_stream_complex_value(s, &certs[i], &cert) != NGX_OK) {
-            return 0;
-        }
-
-        ngx_log_debug1(NGX_LOG_DEBUG_STREAM, c->log, 0,
-                       "ssl cert: \"%s\"", cert.data);
-
-        if (ngx_stream_complex_value(s, &keys[i], &key) != NGX_OK) {
-            return 0;
-        }
-
-        ngx_log_debug1(NGX_LOG_DEBUG_STREAM, c->log, 0,
-                       "ssl key: \"%s\"", key.data);
-
-        if (ngx_ssl_connection_certificate(c, c->pool, &cert, &key,
-                                           sslcf->passwords)
-            != NGX_OK)
-        {
-            return 0;
-        }
-    }
-
-    return 1;
-}
-
-#endif
-
-
 static ngx_int_t
 ngx_stream_ssl_static_variable(ngx_stream_session_t *s,
     ngx_stream_variable_value_t *v, uintptr_t data)
@@ -581,7 +505,6 @@ ngx_stream_ssl_create_conf(ngx_conf_t *cf)
      *
      *     scf->listen = 0;
      *     scf->protocols = 0;
-     *     scf->certificate_values = NULL;
      *     scf->dhparam = { 0, NULL };
      *     scf->ecdh_curve = { 0, NULL };
      *     scf->client_certificate = { 0, NULL };
@@ -690,50 +613,19 @@ ngx_stream_ssl_merge_conf(ngx_conf_t *cf, void *parent, void *child)
 
     cln = ngx_pool_cleanup_add(cf->pool, 0);
     if (cln == NULL) {
-        ngx_ssl_cleanup_ctx(&conf->ssl);
         return NGX_CONF_ERROR;
     }
 
     cln->handler = ngx_ssl_cleanup_ctx;
     cln->data = &conf->ssl;
 
-#ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME
-    SSL_CTX_set_tlsext_servername_callback(conf->ssl.ctx,
-                                           ngx_stream_ssl_servername);
-#endif
-
-    if (ngx_stream_ssl_compile_certificates(cf, conf) != NGX_OK) {
+    if (ngx_ssl_certificates(cf, &conf->ssl, conf->certificates,
+                             conf->certificate_keys, conf->passwords)
+        != NGX_OK)
+    {
         return NGX_CONF_ERROR;
     }
 
-    if (conf->certificate_values) {
-
-#ifdef SSL_R_CERT_CB_ERROR
-
-        /* install callback to lookup certificates */
-
-        SSL_CTX_set_cert_cb(conf->ssl.ctx, ngx_stream_ssl_certificate, conf);
-
-#else
-        ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
-                      "variables in "
-                      "\"ssl_certificate\" and \"ssl_certificate_key\" "
-                      "directives are not supported on this platform");
-        return NGX_CONF_ERROR;
-#endif
-
-    } else {
-
-        /* configure certificates */
-
-        if (ngx_ssl_certificates(cf, &conf->ssl, conf->certificates,
-                                 conf->certificate_keys, conf->passwords)
-            != NGX_OK)
-        {
-            return NGX_CONF_ERROR;
-        }
-    }
-
     if (ngx_ssl_ciphers(cf, &conf->ssl, &conf->ciphers,
                         conf->prefer_server_ciphers)
         != NGX_OK)
@@ -786,7 +678,7 @@ ngx_stream_ssl_merge_conf(ngx_conf_t *cf, void *parent, void *child)
     }
 
     if (ngx_ssl_session_cache(&conf->ssl, &ngx_stream_ssl_sess_id_ctx,
-                              conf->certificates, conf->builtin_session_cache,
+                              conf->builtin_session_cache,
                               conf->shm_zone, conf->session_timeout)
         != NGX_OK)
     {
@@ -815,90 +707,6 @@ ngx_stream_ssl_merge_conf(ngx_conf_t *cf, void *parent, void *child)
 }
 
 
-static ngx_int_t
-ngx_stream_ssl_compile_certificates(ngx_conf_t *cf,
-    ngx_stream_ssl_conf_t *conf)
-{
-    ngx_str_t                           *cert, *key;
-    ngx_uint_t                           i, nelts;
-    ngx_stream_complex_value_t          *cv;
-    ngx_stream_compile_complex_value_t   ccv;
-
-    cert = conf->certificates->elts;
-    key = conf->certificate_keys->elts;
-    nelts = conf->certificates->nelts;
-
-    for (i = 0; i < nelts; i++) {
-
-        if (ngx_stream_script_variables_count(&cert[i])) {
-            goto found;
-        }
-
-        if (ngx_stream_script_variables_count(&key[i])) {
-            goto found;
-        }
-    }
-
-    return NGX_OK;
-
-found:
-
-    conf->certificate_values = ngx_array_create(cf->pool, nelts,
-                                           sizeof(ngx_stream_complex_value_t));
-    if (conf->certificate_values == NULL) {
-        return NGX_ERROR;
-    }
-
-    conf->certificate_key_values = ngx_array_create(cf->pool, nelts,
-                                           sizeof(ngx_stream_complex_value_t));
-    if (conf->certificate_key_values == NULL) {
-        return NGX_ERROR;
-    }
-
-    for (i = 0; i < nelts; i++) {
-
-        cv = ngx_array_push(conf->certificate_values);
-        if (cv == NULL) {
-            return NGX_ERROR;
-        }
-
-        ngx_memzero(&ccv, sizeof(ngx_stream_compile_complex_value_t));
-
-        ccv.cf = cf;
-        ccv.value = &cert[i];
-        ccv.complex_value = cv;
-        ccv.zero = 1;
-
-        if (ngx_stream_compile_complex_value(&ccv) != NGX_OK) {
-            return NGX_ERROR;
-        }
-
-        cv = ngx_array_push(conf->certificate_key_values);
-        if (cv == NULL) {
-            return NGX_ERROR;
-        }
-
-        ngx_memzero(&ccv, sizeof(ngx_stream_compile_complex_value_t));
-
-        ccv.cf = cf;
-        ccv.value = &key[i];
-        ccv.complex_value = cv;
-        ccv.zero = 1;
-
-        if (ngx_stream_compile_complex_value(&ccv) != NGX_OK) {
-            return NGX_ERROR;
-        }
-    }
-
-    conf->passwords = ngx_ssl_preserve_passwords(cf, conf->passwords);
-    if (conf->passwords == NULL) {
-        return NGX_ERROR;
-    }
-
-    return NGX_OK;
-}
-
-
 static char *
 ngx_stream_ssl_password_file(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
 {

  Renamed: vendor/nginx-1.15.8/src/stream/ngx_stream_ssl_module.h (+0 -3) 92%
===================================================================
--- vendor/nginx-1.15.10/src/stream/ngx_stream_ssl_module.h    2019-03-27 12:50:20 +0900 (6cb4140a8)
+++ vendor/nginx-1.15.8/src/stream/ngx_stream_ssl_module.h    2019-03-27 13:17:47 +0900 (9f8f01cf1)
@@ -34,9 +34,6 @@ typedef struct {
     ngx_array_t     *certificates;
     ngx_array_t     *certificate_keys;
 
-    ngx_array_t     *certificate_values;
-    ngx_array_t     *certificate_key_values;
-
     ngx_str_t        dhparam;
     ngx_str_t        ecdh_curve;
     ngx_str_t        client_certificate;

  Renamed: vendor/nginx-1.15.8/src/stream/ngx_stream_ssl_preread_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/stream/ngx_stream_upstream.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/stream/ngx_stream_upstream.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/stream/ngx_stream_upstream_hash_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/stream/ngx_stream_upstream_least_conn_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/stream/ngx_stream_upstream_random_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/stream/ngx_stream_upstream_round_robin.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/stream/ngx_stream_upstream_round_robin.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/stream/ngx_stream_upstream_zone_module.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/stream/ngx_stream_variables.c (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/stream/ngx_stream_variables.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.8/src/stream/ngx_stream_write_filter_module.c (+0 -0) 100%
===================================================================



More information about the Groonga-commit mailing list
Back to archive index