[Groonga-commit] groonga/groonga at 6d9ff52 [master] Update nginx version

Back to archive index

Kentaro Hayashi null+****@clear*****
Mon Jun 25 12:23:48 JST 2018


Kentaro Hayashi	2018-06-25 12:23:48 +0900 (Mon, 25 Jun 2018)

  New Revision: 6d9ff52ef9206a4f4e6b5ea8e336500344f27680
  https://github.com/groonga/groonga/commit/6d9ff52ef9206a4f4e6b5ea8e336500344f27680

  Message:
    Update nginx version
    
    % ./update_nginx.sh 1.15.0

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

  Modified: nginx_version (+1 -1)
===================================================================
--- nginx_version    2018-06-25 12:02:55 +0900 (850e74240)
+++ nginx_version    2018-06-25 12:23:48 +0900 (141f2e805)
@@ -1 +1 @@
-1.14.0
+1.15.0

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

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

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

  Renamed: vendor/nginx-1.15.0/auto/cc/clang (+2 -1) 92%
===================================================================
--- vendor/nginx-1.14.0/auto/cc/clang    2018-06-25 12:02:55 +0900 (9d900c258)
+++ vendor/nginx-1.15.0/auto/cc/clang    2018-06-25 12:23:48 +0900 (a962ee234)
@@ -6,7 +6,8 @@
 
 
 NGX_CLANG_VER=`$CC -v 2>&1 | grep 'version' 2>&1 \
-                           | sed -e 's/^.* version \(.*\)/\1/'`
+                           | sed -n -e 's/^.*clang version \(.*\)/\1/p' \
+                                    -e 's/^.*LLVM version \(.*\)/\1/p'`
 
 echo " + clang version: $NGX_CLANG_VER"
 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.15.0/auto/os/win32 (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.15.0/auto/sources (+1 -0) 99%
===================================================================
--- vendor/nginx-1.14.0/auto/sources    2018-06-25 12:02:55 +0900 (139814743)
+++ vendor/nginx-1.15.0/auto/sources    2018-06-25 12:23:48 +0900 (9b425063e)
@@ -95,6 +95,7 @@ EVENT_SRCS="src/event/ngx_event.c \
             src/event/ngx_event_timer.c \
             src/event/ngx_event_posted.c \
             src/event/ngx_event_accept.c \
+            src/event/ngx_event_udp.c \
             src/event/ngx_event_connect.c \
             src/event/ngx_event_pipe.c"
 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.15.0/docs/text/LICENSE (+0 -0) 100%
===================================================================

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

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

  Renamed: vendor/nginx-1.15.0/docs/xml/nginx/changes.xml (+121 -4) 99%
===================================================================
--- vendor/nginx-1.14.0/docs/xml/nginx/changes.xml    2018-06-25 12:02:55 +0900 (ae5282987)
+++ vendor/nginx-1.15.0/docs/xml/nginx/changes.xml    2018-06-25 12:23:48 +0900 (6bbff2cfd)
@@ -5,14 +5,131 @@
 <change_log title="nginx">
 
 
-<changes ver="1.14.0" date="2018-04-17">
+<changes ver="1.15.0" date="2018-06-05">
 
-<change>
+<change type="change">
 <para lang="ru">
-Стабильная ветка 1.14.x.
+директива "ssl" теперь считается устаревшей;
+вместо неё следует использовать параметр ssl директивы listen.
 </para>
 <para lang="en">
-1.14.x stable branch.
+the "ssl" directive is deprecated;
+the "ssl" parameter of the "listen" directive should be used instead.
+</para>
+</change>
+
+<change type="change">
+<para lang="ru">
+теперь при использовании директивы listen с параметром ssl
+nginx определяет отсутствие SSL-сертификатов при тестировании конфигурации.
+</para>
+<para lang="en">
+now nginx detects missing SSL certificates during configuration testing
+when using the "ssl" parameter of the "listen" directive.
+</para>
+</change>
+
+<change type="feature">
+<para lang="ru">
+теперь модуль stream умеет обрабатывать
+несколько входящих UDP-пакетов от клиента в рамках одной сессии.
+</para>
+<para lang="en">
+now the stream module can handle
+multiple incoming UDP datagrams from a client within a single session.
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+в директиве proxy_cache_valid
+можно было указать некорректный код ответа.
+</para>
+<para lang="en">
+it was possible to specify an incorrect response code
+in the "proxy_cache_valid" directive.
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+nginx не собирался gcc 8.1.
+</para>
+<para lang="en">
+nginx could not be built by gcc 8.1.
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+логгирование в syslog останавливалось при изменении локального IP-адреса.
+</para>
+<para lang="en">
+logging to syslog stopped on local IP address changes.
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+nginx не собирался компилятором clang, если был установлен CUDA SDK;
+ошибка появилась в 1.13.8.
+</para>
+<para lang="en">
+nginx could not be built by clang with CUDA SDK installed;
+the bug had appeared in 1.13.8.
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+при использовании unix domain listen-сокетов на FreeBSD
+в процессе обновления исполняемого файла
+в логе могли появляться сообщения "getsockopt(TCP_FASTOPEN) ... failed".
+</para>
+<para lang="en">
+"getsockopt(TCP_FASTOPEN) ... failed" messages might appear in logs
+during binary upgrade
+when using unix domain listen sockets on FreeBSD.
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+nginx не собирался на Fedora 28 Linux.
+</para>
+<para lang="en">
+nginx could not be built on Fedora 28 Linux.
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+при использовании директивы limit_req
+заданная скорость обработки запросов могла не соблюдаться.
+</para>
+<para lang="en">
+request processing rate might exceed configured rate
+when using the "limit_req" directive.
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+в обработке адресов клиентов при использовании unix domain listen-сокетов
+для работы с датаграммами на Linux.
+</para>
+<para lang="en">
+in handling of client addresses when using unix domain listen sockets
+to work with datagrams on Linux.
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+в обработке ошибок выделения памяти.
+</para>
+<para lang="en">
+in memory allocation error handling.
 </para>
 </change>
 

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

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

  Renamed: vendor/nginx-1.15.0/misc/GNUmakefile (+0 -0) 100%
===================================================================

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

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

  Renamed: vendor/nginx-1.15.0/src/core/nginx.h (+2 -2) 85%
===================================================================
--- vendor/nginx-1.14.0/src/core/nginx.h    2018-06-25 12:02:55 +0900 (be4563d1e)
+++ vendor/nginx-1.15.0/src/core/nginx.h    2018-06-25 12:23:48 +0900 (cbe857173)
@@ -9,8 +9,8 @@
 #define _NGINX_H_INCLUDED_
 
 
-#define nginx_version      1014000
-#define NGINX_VERSION      "1.14.0"
+#define nginx_version      1015000
+#define NGINX_VERSION      "1.15.0"
 #define NGINX_VER          "nginx/" NGINX_VERSION
 
 #ifdef NGX_BUILD

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

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

  Renamed: vendor/nginx-1.15.0/src/core/ngx_buf.c (+1 -0) 99%
===================================================================
--- vendor/nginx-1.14.0/src/core/ngx_buf.c    2018-06-25 12:02:55 +0900 (1862a0606)
+++ vendor/nginx-1.15.0/src/core/ngx_buf.c    2018-06-25 12:23:48 +0900 (c3783c446)
@@ -137,6 +137,7 @@ ngx_chain_add_copy(ngx_pool_t *pool, ngx_chain_t **chain, ngx_chain_t *in)
     while (in) {
         cl = ngx_alloc_chain_link(pool);
         if (cl == NULL) {
+            *ll = NULL;
             return NGX_ERROR;
         }
 

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

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

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

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

  Renamed: vendor/nginx-1.15.0/src/core/ngx_connection.c (+7 -1) 99%
===================================================================
--- vendor/nginx-1.14.0/src/core/ngx_connection.c    2018-06-25 12:02:55 +0900 (9a747589c)
+++ vendor/nginx-1.15.0/src/core/ngx_connection.c    2018-06-25 12:23:48 +0900 (dc6067922)
@@ -72,6 +72,10 @@ ngx_create_listening(ngx_conf_t *cf, struct sockaddr *sockaddr,
 
     ngx_memcpy(ls->addr_text.data, text, len);
 
+#if !(NGX_WIN32)
+    ngx_rbtree_init(&ls->rbtree, &ls->sentinel, ngx_udp_rbtree_insert_value);
+#endif
+
     ls->fd = (ngx_socket_t) -1;
     ls->type = SOCK_STREAM;
 
@@ -305,7 +309,9 @@ ngx_set_inherited_sockets(ngx_cycle_t *cycle)
         {
             err = ngx_socket_errno;
 
-            if (err != NGX_EOPNOTSUPP && err != NGX_ENOPROTOOPT) {
+            if (err != NGX_EOPNOTSUPP && err != NGX_ENOPROTOOPT
+                && err != NGX_EINVAL)
+            {
                 ngx_log_error(NGX_LOG_NOTICE, cycle->log, err,
                               "getsockopt(TCP_FASTOPEN) %V failed, ignored",
                               &ls[i].addr_text);

  Renamed: vendor/nginx-1.15.0/src/core/ngx_connection.h (+5 -0) 98%
===================================================================
--- vendor/nginx-1.14.0/src/core/ngx_connection.h    2018-06-25 12:02:55 +0900 (e4dfe5879)
+++ vendor/nginx-1.15.0/src/core/ngx_connection.h    2018-06-25 12:23:48 +0900 (ef0755800)
@@ -51,6 +51,9 @@ struct ngx_listening_s {
     ngx_listening_t    *previous;
     ngx_connection_t   *connection;
 
+    ngx_rbtree_t        rbtree;
+    ngx_rbtree_node_t   sentinel;
+
     ngx_uint_t          worker;
 
     unsigned            open:1;
@@ -151,6 +154,8 @@ struct ngx_connection_s {
     ngx_ssl_connection_t  *ssl;
 #endif
 
+    ngx_udp_connection_t  *udp;
+
     struct sockaddr    *local_sockaddr;
     socklen_t           local_socklen;
 

  Renamed: vendor/nginx-1.15.0/src/core/ngx_core.h (+1 -0) 97%
===================================================================
--- vendor/nginx-1.14.0/src/core/ngx_core.h    2018-06-25 12:02:55 +0900 (2069373ba)
+++ vendor/nginx-1.15.0/src/core/ngx_core.h    2018-06-25 12:23:48 +0900 (93ca9174d)
@@ -27,6 +27,7 @@ typedef struct ngx_connection_s      ngx_connection_t;
 typedef struct ngx_thread_task_s     ngx_thread_task_t;
 typedef struct ngx_ssl_s             ngx_ssl_t;
 typedef struct ngx_ssl_connection_s  ngx_ssl_connection_t;
+typedef struct ngx_udp_connection_s  ngx_udp_connection_t;
 
 typedef void (*ngx_event_handler_pt)(ngx_event_t *ev);
 typedef void (*ngx_connection_handler_pt)(ngx_connection_t *c);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.15.0/src/core/ngx_resolver.c (+11 -4) 99%
===================================================================
--- vendor/nginx-1.14.0/src/core/ngx_resolver.c    2018-06-25 12:02:55 +0900 (cd55520cb)
+++ vendor/nginx-1.15.0/src/core/ngx_resolver.c    2018-06-25 12:23:48 +0900 (f904091bf)
@@ -1299,16 +1299,23 @@ ngx_resolver_send_udp_query(ngx_resolver_t *r, ngx_resolver_connection_t  *rec,
 
     n = ngx_send(rec->udp, query, qlen);
 
-    if (n == -1) {
-        return NGX_ERROR;
+    if (n == NGX_ERROR) {
+        goto failed;
     }
 
     if ((size_t) n != (size_t) qlen) {
         ngx_log_error(NGX_LOG_CRIT, &rec->log, 0, "send() incomplete");
-        return NGX_ERROR;
+        goto failed;
     }
 
     return NGX_OK;
+
+failed:
+
+    ngx_close_connection(rec->udp);
+    rec->udp = NULL;
+
+    return NGX_ERROR;
 }
 
 
@@ -4546,7 +4553,7 @@ ngx_tcp_connect(ngx_resolver_connection_t *rec)
                 level = NGX_LOG_CRIT;
             }
 
-            ngx_log_error(level, c->log, err, "connect() to %V failed",
+            ngx_log_error(level, &rec->log, err, "connect() to %V failed",
                           &rec->server);
 
             ngx_close_connection(c);

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

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

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

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

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

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.15.0/src/core/ngx_syslog.c (+17 -21) 97%
===================================================================
--- vendor/nginx-1.14.0/src/core/ngx_syslog.c    2018-06-25 12:02:55 +0900 (0a67928e0)
+++ vendor/nginx-1.15.0/src/core/ngx_syslog.c    2018-06-25 12:23:48 +0900 (3c7b63a62)
@@ -39,7 +39,8 @@ static ngx_event_t  ngx_syslog_dummy_event;
 char *
 ngx_syslog_process_conf(ngx_conf_t *cf, ngx_syslog_peer_t *peer)
 {
-    peer->pool = cf->pool;
+    ngx_pool_cleanup_t  *cln;
+
     peer->facility = NGX_CONF_UNSET_UINT;
     peer->severity = NGX_CONF_UNSET_UINT;
 
@@ -67,6 +68,19 @@ ngx_syslog_process_conf(ngx_conf_t *cf, ngx_syslog_peer_t *peer)
 
     peer->conn.fd = (ngx_socket_t) -1;
 
+    peer->conn.read = &ngx_syslog_dummy_event;
+    peer->conn.write = &ngx_syslog_dummy_event;
+
+    ngx_syslog_dummy_event.log = &ngx_syslog_dummy_log;
+
+    cln = ngx_pool_cleanup_add(cf->pool, 0);
+    if (cln == NULL) {
+        return NGX_CONF_ERROR;
+    }
+
+    cln->data = peer;
+    cln->handler = ngx_syslog_cleanup;
+
     return NGX_CONF_OK;
 }
 
@@ -289,9 +303,7 @@ ngx_syslog_send(ngx_syslog_peer_t *peer, u_char *buf, size_t len)
         n = ngx_os_io.send(&peer->conn, buf, len);
     }
 
-#if (NGX_HAVE_UNIX_DOMAIN)
-
-    if (n == NGX_ERROR && peer->server.sockaddr->sa_family == AF_UNIX) {
+    if (n == NGX_ERROR) {
 
         if (ngx_close_socket(peer->conn.fd) == -1) {
             ngx_log_error(NGX_LOG_ALERT, ngx_cycle->log, ngx_socket_errno,
@@ -301,8 +313,6 @@ ngx_syslog_send(ngx_syslog_peer_t *peer, u_char *buf, size_t len)
         peer->conn.fd = (ngx_socket_t) -1;
     }
 
-#endif
-
     return n;
 }
 
@@ -310,13 +320,7 @@ ngx_syslog_send(ngx_syslog_peer_t *peer, u_char *buf, size_t len)
 static ngx_int_t
 ngx_syslog_init_peer(ngx_syslog_peer_t *peer)
 {
-    ngx_socket_t         fd;
-    ngx_pool_cleanup_t  *cln;
-
-    peer->conn.read = &ngx_syslog_dummy_event;
-    peer->conn.write = &ngx_syslog_dummy_event;
-
-    ngx_syslog_dummy_event.log = &ngx_syslog_dummy_log;
+    ngx_socket_t  fd;
 
     fd = ngx_socket(peer->server.sockaddr->sa_family, SOCK_DGRAM, 0);
     if (fd == (ngx_socket_t) -1) {
@@ -337,14 +341,6 @@ ngx_syslog_init_peer(ngx_syslog_peer_t *peer)
         goto failed;
     }
 
-    cln = ngx_pool_cleanup_add(peer->pool, 0);
-    if (cln == NULL) {
-        goto failed;
-    }
-
-    cln->data = peer;
-    cln->handler = ngx_syslog_cleanup;
-
     peer->conn.fd = fd;
 
     /* UDP sockets are always ready to write */

  Renamed: vendor/nginx-1.15.0/src/core/ngx_syslog.h (+0 -1) 96%
===================================================================
--- vendor/nginx-1.14.0/src/core/ngx_syslog.h    2018-06-25 12:02:55 +0900 (cc4c842c7)
+++ vendor/nginx-1.15.0/src/core/ngx_syslog.h    2018-06-25 12:23:48 +0900 (50dcd3511)
@@ -9,7 +9,6 @@
 
 
 typedef struct {
-    ngx_pool_t       *pool;
     ngx_uint_t        facility;
     ngx_uint_t        severity;
     ngx_str_t         tag;

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

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

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

  Renamed: vendor/nginx-1.15.0/src/core/ngx_times.h (+2 -2) 90%
===================================================================
--- vendor/nginx-1.14.0/src/core/ngx_times.h    2018-06-25 12:02:55 +0900 (94aedcdc9)
+++ vendor/nginx-1.15.0/src/core/ngx_times.h    2018-06-25 12:23:48 +0900 (49e0a8c48)
@@ -43,8 +43,8 @@ extern volatile ngx_str_t    ngx_cached_http_log_iso8601;
 extern volatile ngx_str_t    ngx_cached_syslog_time;
 
 /*
- * milliseconds elapsed since epoch and truncated to ngx_msec_t,
- * used in event timers
+ * milliseconds elapsed since some unspecified point in the past
+ * and truncated to ngx_msec_t, used in event timers
  */
 extern volatile ngx_msec_t  ngx_current_msec;
 

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

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

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

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.15.0/src/event/ngx_event.h (+6 -0) 97%
===================================================================
--- vendor/nginx-1.14.0/src/event/ngx_event.h    2018-06-25 12:02:55 +0900 (19fec681b)
+++ vendor/nginx-1.15.0/src/event/ngx_event.h    2018-06-25 12:23:48 +0900 (44f9e0544)
@@ -506,9 +506,15 @@ extern ngx_module_t           ngx_event_core_module;
 void ngx_event_accept(ngx_event_t *ev);
 #if !(NGX_WIN32)
 void ngx_event_recvmsg(ngx_event_t *ev);
+void ngx_udp_rbtree_insert_value(ngx_rbtree_node_t *temp,
+    ngx_rbtree_node_t *node, ngx_rbtree_node_t *sentinel);
 #endif
 ngx_int_t ngx_trylock_accept_mutex(ngx_cycle_t *cycle);
+ngx_int_t ngx_enable_accept_events(ngx_cycle_t *cycle);
 u_char *ngx_accept_log_error(ngx_log_t *log, u_char *buf, size_t len);
+#if (NGX_DEBUG)
+void ngx_debug_accepted_connection(ngx_event_conf_t *ecf, ngx_connection_t *c);
+#endif
 
 
 void ngx_process_events_and_timers(ngx_cycle_t *cycle);

  Renamed: vendor/nginx-1.15.0/src/event/ngx_event_accept.c (+3 -331) 58%
===================================================================
--- vendor/nginx-1.14.0/src/event/ngx_event_accept.c    2018-06-25 12:02:55 +0900 (775637090)
+++ vendor/nginx-1.15.0/src/event/ngx_event_accept.c    2018-06-25 12:23:48 +0900 (436424093)
@@ -10,13 +10,8 @@
 #include <ngx_event.h>
 
 
-static ngx_int_t ngx_enable_accept_events(ngx_cycle_t *cycle);
 static ngx_int_t ngx_disable_accept_events(ngx_cycle_t *cycle, ngx_uint_t all);
 static void ngx_close_accepted_connection(ngx_connection_t *c);
-#if (NGX_DEBUG)
-static void ngx_debug_accepted_connection(ngx_event_conf_t *ecf,
-    ngx_connection_t *c);
-#endif
 
 
 void
@@ -320,329 +315,6 @@ ngx_event_accept(ngx_event_t *ev)
 }
 
 
-#if !(NGX_WIN32)
-
-void
-ngx_event_recvmsg(ngx_event_t *ev)
-{
-    ssize_t            n;
-    ngx_log_t         *log;
-    ngx_err_t          err;
-    ngx_event_t       *rev, *wev;
-    struct iovec       iov[1];
-    struct msghdr      msg;
-    ngx_sockaddr_t     sa;
-    ngx_listening_t   *ls;
-    ngx_event_conf_t  *ecf;
-    ngx_connection_t  *c, *lc;
-    static u_char      buffer[65535];
-
-#if (NGX_HAVE_MSGHDR_MSG_CONTROL)
-
-#if (NGX_HAVE_IP_RECVDSTADDR)
-    u_char             msg_control[CMSG_SPACE(sizeof(struct in_addr))];
-#elif (NGX_HAVE_IP_PKTINFO)
-    u_char             msg_control[CMSG_SPACE(sizeof(struct in_pktinfo))];
-#endif
-
-#if (NGX_HAVE_INET6 && NGX_HAVE_IPV6_RECVPKTINFO)
-    u_char             msg_control6[CMSG_SPACE(sizeof(struct in6_pktinfo))];
-#endif
-
-#endif
-
-    if (ev->timedout) {
-        if (ngx_enable_accept_events((ngx_cycle_t *) ngx_cycle) != NGX_OK) {
-            return;
-        }
-
-        ev->timedout = 0;
-    }
-
-    ecf = ngx_event_get_conf(ngx_cycle->conf_ctx, ngx_event_core_module);
-
-    if (!(ngx_event_flags & NGX_USE_KQUEUE_EVENT)) {
-        ev->available = ecf->multi_accept;
-    }
-
-    lc = ev->data;
-    ls = lc->listening;
-    ev->ready = 0;
-
-    ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0,
-                   "recvmsg on %V, ready: %d", &ls->addr_text, ev->available);
-
-    do {
-        ngx_memzero(&msg, sizeof(struct msghdr));
-
-        iov[0].iov_base = (void *) buffer;
-        iov[0].iov_len = sizeof(buffer);
-
-        msg.msg_name = &sa;
-        msg.msg_namelen = sizeof(ngx_sockaddr_t);
-        msg.msg_iov = iov;
-        msg.msg_iovlen = 1;
-
-#if (NGX_HAVE_MSGHDR_MSG_CONTROL)
-
-        if (ls->wildcard) {
-
-#if (NGX_HAVE_IP_RECVDSTADDR || NGX_HAVE_IP_PKTINFO)
-            if (ls->sockaddr->sa_family == AF_INET) {
-                msg.msg_control = &msg_control;
-                msg.msg_controllen = sizeof(msg_control);
-            }
-#endif
-
-#if (NGX_HAVE_INET6 && NGX_HAVE_IPV6_RECVPKTINFO)
-            if (ls->sockaddr->sa_family == AF_INET6) {
-                msg.msg_control = &msg_control6;
-                msg.msg_controllen = sizeof(msg_control6);
-            }
-#endif
-        }
-
-#endif
-
-        n = recvmsg(lc->fd, &msg, 0);
-
-        if (n == -1) {
-            err = ngx_socket_errno;
-
-            if (err == NGX_EAGAIN) {
-                ngx_log_debug0(NGX_LOG_DEBUG_EVENT, ev->log, err,
-                               "recvmsg() not ready");
-                return;
-            }
-
-            ngx_log_error(NGX_LOG_ALERT, ev->log, err, "recvmsg() failed");
-
-            return;
-        }
-
-#if (NGX_STAT_STUB)
-        (void) ngx_atomic_fetch_add(ngx_stat_accepted, 1);
-#endif
-
-#if (NGX_HAVE_MSGHDR_MSG_CONTROL)
-        if (msg.msg_flags & (MSG_TRUNC|MSG_CTRUNC)) {
-            ngx_log_error(NGX_LOG_ALERT, ev->log, 0,
-                          "recvmsg() truncated data");
-            continue;
-        }
-#endif
-
-        ngx_accept_disabled = ngx_cycle->connection_n / 8
-                              - ngx_cycle->free_connection_n;
-
-        c = ngx_get_connection(lc->fd, ev->log);
-        if (c == NULL) {
-            return;
-        }
-
-        c->shared = 1;
-        c->type = SOCK_DGRAM;
-        c->socklen = msg.msg_namelen;
-
-        if (c->socklen > (socklen_t) sizeof(ngx_sockaddr_t)) {
-            c->socklen = sizeof(ngx_sockaddr_t);
-        }
-
-#if (NGX_STAT_STUB)
-        (void) ngx_atomic_fetch_add(ngx_stat_active, 1);
-#endif
-
-        c->pool = ngx_create_pool(ls->pool_size, ev->log);
-        if (c->pool == NULL) {
-            ngx_close_accepted_connection(c);
-            return;
-        }
-
-        c->sockaddr = ngx_palloc(c->pool, c->socklen);
-        if (c->sockaddr == NULL) {
-            ngx_close_accepted_connection(c);
-            return;
-        }
-
-        ngx_memcpy(c->sockaddr, msg.msg_name, c->socklen);
-
-        log = ngx_palloc(c->pool, sizeof(ngx_log_t));
-        if (log == NULL) {
-            ngx_close_accepted_connection(c);
-            return;
-        }
-
-        *log = ls->log;
-
-        c->send = ngx_udp_send;
-        c->send_chain = ngx_udp_send_chain;
-
-        c->log = log;
-        c->pool->log = log;
-
-        c->listening = ls;
-        c->local_sockaddr = ls->sockaddr;
-        c->local_socklen = ls->socklen;
-
-#if (NGX_HAVE_MSGHDR_MSG_CONTROL)
-
-        if (ls->wildcard) {
-            struct cmsghdr   *cmsg;
-            struct sockaddr  *sockaddr;
-
-            sockaddr = ngx_palloc(c->pool, c->local_socklen);
-            if (sockaddr == NULL) {
-                ngx_close_accepted_connection(c);
-                return;
-            }
-
-            ngx_memcpy(sockaddr, c->local_sockaddr, c->local_socklen);
-            c->local_sockaddr = sockaddr;
-
-            for (cmsg = CMSG_FIRSTHDR(&msg);
-                 cmsg != NULL;
-                 cmsg = CMSG_NXTHDR(&msg, cmsg))
-            {
-
-#if (NGX_HAVE_IP_RECVDSTADDR)
-
-                if (cmsg->cmsg_level == IPPROTO_IP
-                    && cmsg->cmsg_type == IP_RECVDSTADDR
-                    && sockaddr->sa_family == AF_INET)
-                {
-                    struct in_addr      *addr;
-                    struct sockaddr_in  *sin;
-
-                    addr = (struct in_addr *) CMSG_DATA(cmsg);
-                    sin = (struct sockaddr_in *) sockaddr;
-                    sin->sin_addr = *addr;
-
-                    break;
-                }
-
-#elif (NGX_HAVE_IP_PKTINFO)
-
-                if (cmsg->cmsg_level == IPPROTO_IP
-                    && cmsg->cmsg_type == IP_PKTINFO
-                    && sockaddr->sa_family == AF_INET)
-                {
-                    struct in_pktinfo   *pkt;
-                    struct sockaddr_in  *sin;
-
-                    pkt = (struct in_pktinfo *) CMSG_DATA(cmsg);
-                    sin = (struct sockaddr_in *) sockaddr;
-                    sin->sin_addr = pkt->ipi_addr;
-
-                    break;
-                }
-
-#endif
-
-#if (NGX_HAVE_INET6 && NGX_HAVE_IPV6_RECVPKTINFO)
-
-                if (cmsg->cmsg_level == IPPROTO_IPV6
-                    && cmsg->cmsg_type == IPV6_PKTINFO
-                    && sockaddr->sa_family == AF_INET6)
-                {
-                    struct in6_pktinfo   *pkt6;
-                    struct sockaddr_in6  *sin6;
-
-                    pkt6 = (struct in6_pktinfo *) CMSG_DATA(cmsg);
-                    sin6 = (struct sockaddr_in6 *) sockaddr;
-                    sin6->sin6_addr = pkt6->ipi6_addr;
-
-                    break;
-                }
-
-#endif
-
-            }
-        }
-
-#endif
-
-        c->buffer = ngx_create_temp_buf(c->pool, n);
-        if (c->buffer == NULL) {
-            ngx_close_accepted_connection(c);
-            return;
-        }
-
-        c->buffer->last = ngx_cpymem(c->buffer->last, buffer, n);
-
-        rev = c->read;
-        wev = c->write;
-
-        wev->ready = 1;
-
-        rev->log = log;
-        wev->log = log;
-
-        /*
-         * TODO: MT: - ngx_atomic_fetch_add()
-         *             or protection by critical section or light mutex
-         *
-         * TODO: MP: - allocated in a shared memory
-         *           - ngx_atomic_fetch_add()
-         *             or protection by critical section or light mutex
-         */
-
-        c->number = ngx_atomic_fetch_add(ngx_connection_counter, 1);
-
-#if (NGX_STAT_STUB)
-        (void) ngx_atomic_fetch_add(ngx_stat_handled, 1);
-#endif
-
-        if (ls->addr_ntop) {
-            c->addr_text.data = ngx_pnalloc(c->pool, ls->addr_text_max_len);
-            if (c->addr_text.data == NULL) {
-                ngx_close_accepted_connection(c);
-                return;
-            }
-
-            c->addr_text.len = ngx_sock_ntop(c->sockaddr, c->socklen,
-                                             c->addr_text.data,
-                                             ls->addr_text_max_len, 0);
-            if (c->addr_text.len == 0) {
-                ngx_close_accepted_connection(c);
-                return;
-            }
-        }
-
-#if (NGX_DEBUG)
-        {
-        ngx_str_t  addr;
-        u_char     text[NGX_SOCKADDR_STRLEN];
-
-        ngx_debug_accepted_connection(ecf, c);
-
-        if (log->log_level & NGX_LOG_DEBUG_EVENT) {
-            addr.data = text;
-            addr.len = ngx_sock_ntop(c->sockaddr, c->socklen, text,
-                                     NGX_SOCKADDR_STRLEN, 1);
-
-            ngx_log_debug4(NGX_LOG_DEBUG_EVENT, log, 0,
-                           "*%uA recvmsg: %V fd:%d n:%z",
-                           c->number, &addr, c->fd, n);
-        }
-
-        }
-#endif
-
-        log->data = NULL;
-        log->handler = NULL;
-
-        ls->handler(c);
-
-        if (ngx_event_flags & NGX_USE_KQUEUE_EVENT) {
-            ev->available -= n;
-        }
-
-    } while (ev->available);
-}
-
-#endif
-
-
 ngx_int_t
 ngx_trylock_accept_mutex(ngx_cycle_t *cycle)
 {
@@ -681,7 +353,7 @@ ngx_trylock_accept_mutex(ngx_cycle_t *cycle)
 }
 
 
-static ngx_int_t
+ngx_int_t
 ngx_enable_accept_events(ngx_cycle_t *cycle)
 {
     ngx_uint_t         i;
@@ -756,7 +428,7 @@ ngx_close_accepted_connection(ngx_connection_t *c)
     fd = c->fd;
     c->fd = (ngx_socket_t) -1;
 
-    if (!c->shared && ngx_close_socket(fd) == -1) {
+    if (ngx_close_socket(fd) == -1) {
         ngx_log_error(NGX_LOG_ALERT, c->log, ngx_socket_errno,
                       ngx_close_socket_n " failed");
     }
@@ -781,7 +453,7 @@ ngx_accept_log_error(ngx_log_t *log, u_char *buf, size_t len)
 
 #if (NGX_DEBUG)
 
-static void
+void
 ngx_debug_accepted_connection(ngx_event_conf_t *ecf, ngx_connection_t *c)
 {
     struct sockaddr_in   *sin;

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

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

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

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

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

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

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

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

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

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

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

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

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

  Added: vendor/nginx-1.15.0/src/event/ngx_event_udp.c (+641 -0) 100644
===================================================================
--- /dev/null
+++ vendor/nginx-1.15.0/src/event/ngx_event_udp.c    2018-06-25 12:23:48 +0900 (8b0ae5539)
@@ -0,0 +1,641 @@
+
+/*
+ * Copyright (C) Roman Arutyunyan
+ * Copyright (C) Nginx, Inc.
+ */
+
+
+#include <ngx_config.h>
+#include <ngx_core.h>
+#include <ngx_event.h>
+
+
+#if !(NGX_WIN32)
+
+struct ngx_udp_connection_s {
+    ngx_rbtree_node_t   node;
+    ngx_connection_t   *connection;
+    ngx_buf_t          *buffer;
+};
+
+
+static void ngx_close_accepted_udp_connection(ngx_connection_t *c);
+static ssize_t ngx_udp_shared_recv(ngx_connection_t *c, u_char *buf,
+    size_t size);
+static ngx_int_t ngx_insert_udp_connection(ngx_connection_t *c);
+static void ngx_delete_udp_connection(void *data);
+static ngx_connection_t *ngx_lookup_udp_connection(ngx_listening_t *ls,
+    struct sockaddr *sockaddr, socklen_t socklen,
+    struct sockaddr *local_sockaddr, socklen_t local_socklen);
+
+
+void
+ngx_event_recvmsg(ngx_event_t *ev)
+{
+    ssize_t            n;
+    ngx_buf_t          buf;
+    ngx_log_t         *log;
+    ngx_err_t          err;
+    socklen_t          socklen, local_socklen;
+    ngx_event_t       *rev, *wev;
+    struct iovec       iov[1];
+    struct msghdr      msg;
+    ngx_sockaddr_t     sa, lsa;
+    struct sockaddr   *sockaddr, *local_sockaddr;
+    ngx_listening_t   *ls;
+    ngx_event_conf_t  *ecf;
+    ngx_connection_t  *c, *lc;
+    static u_char      buffer[65535];
+
+#if (NGX_HAVE_MSGHDR_MSG_CONTROL)
+
+#if (NGX_HAVE_IP_RECVDSTADDR)
+    u_char             msg_control[CMSG_SPACE(sizeof(struct in_addr))];
+#elif (NGX_HAVE_IP_PKTINFO)
+    u_char             msg_control[CMSG_SPACE(sizeof(struct in_pktinfo))];
+#endif
+
+#if (NGX_HAVE_INET6 && NGX_HAVE_IPV6_RECVPKTINFO)
+    u_char             msg_control6[CMSG_SPACE(sizeof(struct in6_pktinfo))];
+#endif
+
+#endif
+
+    if (ev->timedout) {
+        if (ngx_enable_accept_events((ngx_cycle_t *) ngx_cycle) != NGX_OK) {
+            return;
+        }
+
+        ev->timedout = 0;
+    }
+
+    ecf = ngx_event_get_conf(ngx_cycle->conf_ctx, ngx_event_core_module);
+
+    if (!(ngx_event_flags & NGX_USE_KQUEUE_EVENT)) {
+        ev->available = ecf->multi_accept;
+    }
+
+    lc = ev->data;
+    ls = lc->listening;
+    ev->ready = 0;
+
+    ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0,
+                   "recvmsg on %V, ready: %d", &ls->addr_text, ev->available);
+
+    do {
+        ngx_memzero(&msg, sizeof(struct msghdr));
+
+        iov[0].iov_base = (void *) buffer;
+        iov[0].iov_len = sizeof(buffer);
+
+        msg.msg_name = &sa;
+        msg.msg_namelen = sizeof(ngx_sockaddr_t);
+        msg.msg_iov = iov;
+        msg.msg_iovlen = 1;
+
+#if (NGX_HAVE_MSGHDR_MSG_CONTROL)
+
+        if (ls->wildcard) {
+
+#if (NGX_HAVE_IP_RECVDSTADDR || NGX_HAVE_IP_PKTINFO)
+            if (ls->sockaddr->sa_family == AF_INET) {
+                msg.msg_control = &msg_control;
+                msg.msg_controllen = sizeof(msg_control);
+            }
+#endif
+
+#if (NGX_HAVE_INET6 && NGX_HAVE_IPV6_RECVPKTINFO)
+            if (ls->sockaddr->sa_family == AF_INET6) {
+                msg.msg_control = &msg_control6;
+                msg.msg_controllen = sizeof(msg_control6);
+            }
+#endif
+        }
+
+#endif
+
+        n = recvmsg(lc->fd, &msg, 0);
+
+        if (n == -1) {
+            err = ngx_socket_errno;
+
+            if (err == NGX_EAGAIN) {
+                ngx_log_debug0(NGX_LOG_DEBUG_EVENT, ev->log, err,
+                               "recvmsg() not ready");
+                return;
+            }
+
+            ngx_log_error(NGX_LOG_ALERT, ev->log, err, "recvmsg() failed");
+
+            return;
+        }
+
+#if (NGX_HAVE_MSGHDR_MSG_CONTROL)
+        if (msg.msg_flags & (MSG_TRUNC|MSG_CTRUNC)) {
+            ngx_log_error(NGX_LOG_ALERT, ev->log, 0,
+                          "recvmsg() truncated data");
+            continue;
+        }
+#endif
+
+        sockaddr = msg.msg_name;
+        socklen = msg.msg_namelen;
+
+        if (socklen > (socklen_t) sizeof(ngx_sockaddr_t)) {
+            socklen = sizeof(ngx_sockaddr_t);
+        }
+
+        if (socklen == 0) {
+
+            /*
+             * on Linux recvmsg() returns zero msg_namelen
+             * when receiving packets from unbound AF_UNIX sockets
+             */
+
+            socklen = sizeof(struct sockaddr);
+            ngx_memzero(&sa, sizeof(struct sockaddr));
+            sa.sockaddr.sa_family = ls->sockaddr->sa_family;
+        }
+
+        local_sockaddr = ls->sockaddr;
+        local_socklen = ls->socklen;
+
+#if (NGX_HAVE_MSGHDR_MSG_CONTROL)
+
+        if (ls->wildcard) {
+            struct cmsghdr  *cmsg;
+
+            ngx_memcpy(&lsa, local_sockaddr, local_socklen);
+            local_sockaddr = &lsa.sockaddr;
+
+            for (cmsg = CMSG_FIRSTHDR(&msg);
+                 cmsg != NULL;
+                 cmsg = CMSG_NXTHDR(&msg, cmsg))
+            {
+
+#if (NGX_HAVE_IP_RECVDSTADDR)
+
+                if (cmsg->cmsg_level == IPPROTO_IP
+                    && cmsg->cmsg_type == IP_RECVDSTADDR
+                    && local_sockaddr->sa_family == AF_INET)
+                {
+                    struct in_addr      *addr;
+                    struct sockaddr_in  *sin;
+
+                    addr = (struct in_addr *) CMSG_DATA(cmsg);
+                    sin = (struct sockaddr_in *) local_sockaddr;
+                    sin->sin_addr = *addr;
+
+                    break;
+                }
+
+#elif (NGX_HAVE_IP_PKTINFO)
+
+                if (cmsg->cmsg_level == IPPROTO_IP
+                    && cmsg->cmsg_type == IP_PKTINFO
+                    && local_sockaddr->sa_family == AF_INET)
+                {
+                    struct in_pktinfo   *pkt;
+                    struct sockaddr_in  *sin;
+
+                    pkt = (struct in_pktinfo *) CMSG_DATA(cmsg);
+                    sin = (struct sockaddr_in *) local_sockaddr;
+                    sin->sin_addr = pkt->ipi_addr;
+
+                    break;
+                }
+
+#endif
+
+#if (NGX_HAVE_INET6 && NGX_HAVE_IPV6_RECVPKTINFO)
+
+                if (cmsg->cmsg_level == IPPROTO_IPV6
+                    && cmsg->cmsg_type == IPV6_PKTINFO
+                    && local_sockaddr->sa_family == AF_INET6)
+                {
+                    struct in6_pktinfo   *pkt6;
+                    struct sockaddr_in6  *sin6;
+
+                    pkt6 = (struct in6_pktinfo *) CMSG_DATA(cmsg);
+                    sin6 = (struct sockaddr_in6 *) local_sockaddr;
+                    sin6->sin6_addr = pkt6->ipi6_addr;
+
+                    break;
+                }
+
+#endif
+
+            }
+        }
+
+#endif
+
+        c = ngx_lookup_udp_connection(ls, sockaddr, socklen, local_sockaddr,
+                                      local_socklen);
+
+        if (c) {
+
+#if (NGX_DEBUG)
+            if (c->log->log_level & NGX_LOG_DEBUG_EVENT) {
+                ngx_log_handler_pt  handler;
+
+                handler = c->log->handler;
+                c->log->handler = NULL;
+
+                ngx_log_debug2(NGX_LOG_DEBUG_EVENT, c->log, 0,
+                               "recvmsg: fd:%d n:%z", c->fd, n);
+
+                c->log->handler = handler;
+            }
+#endif
+
+            ngx_memzero(&buf, sizeof(ngx_buf_t));
+
+            buf.pos = buffer;
+            buf.last = buffer + n;
+
+            rev = c->read;
+
+            c->udp->buffer = &buf;
+            rev->ready = 1;
+
+            rev->handler(rev);
+
+            c->udp->buffer = NULL;
+            rev->ready = 0;
+
+            goto next;
+        }
+
+#if (NGX_STAT_STUB)
+        (void) ngx_atomic_fetch_add(ngx_stat_accepted, 1);
+#endif
+
+        ngx_accept_disabled = ngx_cycle->connection_n / 8
+                              - ngx_cycle->free_connection_n;
+
+        c = ngx_get_connection(lc->fd, ev->log);
+        if (c == NULL) {
+            return;
+        }
+
+        c->shared = 1;
+        c->type = SOCK_DGRAM;
+        c->socklen = socklen;
+
+#if (NGX_STAT_STUB)
+        (void) ngx_atomic_fetch_add(ngx_stat_active, 1);
+#endif
+
+        c->pool = ngx_create_pool(ls->pool_size, ev->log);
+        if (c->pool == NULL) {
+            ngx_close_accepted_udp_connection(c);
+            return;
+        }
+
+        c->sockaddr = ngx_palloc(c->pool, socklen);
+        if (c->sockaddr == NULL) {
+            ngx_close_accepted_udp_connection(c);
+            return;
+        }
+
+        ngx_memcpy(c->sockaddr, sockaddr, socklen);
+
+        log = ngx_palloc(c->pool, sizeof(ngx_log_t));
+        if (log == NULL) {
+            ngx_close_accepted_udp_connection(c);
+            return;
+        }
+
+        *log = ls->log;
+
+        c->recv = ngx_udp_shared_recv;
+        c->send = ngx_udp_send;
+        c->send_chain = ngx_udp_send_chain;
+
+        c->log = log;
+        c->pool->log = log;
+        c->listening = ls;
+
+        if (local_sockaddr == &lsa.sockaddr) {
+            local_sockaddr = ngx_palloc(c->pool, local_socklen);
+            if (local_sockaddr == NULL) {
+                ngx_close_accepted_udp_connection(c);
+                return;
+            }
+
+            ngx_memcpy(local_sockaddr, &lsa, local_socklen);
+        }
+
+        c->local_sockaddr = local_sockaddr;
+        c->local_socklen = local_socklen;
+
+        c->buffer = ngx_create_temp_buf(c->pool, n);
+        if (c->buffer == NULL) {
+            ngx_close_accepted_udp_connection(c);
+            return;
+        }
+
+        c->buffer->last = ngx_cpymem(c->buffer->last, buffer, n);
+
+        rev = c->read;
+        wev = c->write;
+
+        wev->ready = 1;
+
+        rev->log = log;
+        wev->log = log;
+
+        /*
+         * TODO: MT: - ngx_atomic_fetch_add()
+         *             or protection by critical section or light mutex
+         *
+         * TODO: MP: - allocated in a shared memory
+         *           - ngx_atomic_fetch_add()
+         *             or protection by critical section or light mutex
+         */
+
+        c->number = ngx_atomic_fetch_add(ngx_connection_counter, 1);
+
+#if (NGX_STAT_STUB)
+        (void) ngx_atomic_fetch_add(ngx_stat_handled, 1);
+#endif
+
+        if (ls->addr_ntop) {
+            c->addr_text.data = ngx_pnalloc(c->pool, ls->addr_text_max_len);
+            if (c->addr_text.data == NULL) {
+                ngx_close_accepted_udp_connection(c);
+                return;
+            }
+
+            c->addr_text.len = ngx_sock_ntop(c->sockaddr, c->socklen,
+                                             c->addr_text.data,
+                                             ls->addr_text_max_len, 0);
+            if (c->addr_text.len == 0) {
+                ngx_close_accepted_udp_connection(c);
+                return;
+            }
+        }
+
+#if (NGX_DEBUG)
+        {
+        ngx_str_t  addr;
+        u_char     text[NGX_SOCKADDR_STRLEN];
+
+        ngx_debug_accepted_connection(ecf, c);
+
+        if (log->log_level & NGX_LOG_DEBUG_EVENT) {
+            addr.data = text;
+            addr.len = ngx_sock_ntop(c->sockaddr, c->socklen, text,
+                                     NGX_SOCKADDR_STRLEN, 1);
+
+            ngx_log_debug4(NGX_LOG_DEBUG_EVENT, log, 0,
+                           "*%uA recvmsg: %V fd:%d n:%z",
+                           c->number, &addr, c->fd, n);
+        }
+
+        }
+#endif
+
+        if (ngx_insert_udp_connection(c) != NGX_OK) {
+            ngx_close_accepted_udp_connection(c);
+            return;
+        }
+
+        log->data = NULL;
+        log->handler = NULL;
+
+        ls->handler(c);
+
+    next:
+
+        if (ngx_event_flags & NGX_USE_KQUEUE_EVENT) {
+            ev->available -= n;
+        }
+
+    } while (ev->available);
+}
+
+
+static void
+ngx_close_accepted_udp_connection(ngx_connection_t *c)
+{
+    ngx_free_connection(c);
+
+    c->fd = (ngx_socket_t) -1;
+
+    if (c->pool) {
+        ngx_destroy_pool(c->pool);
+    }
+
+#if (NGX_STAT_STUB)
+    (void) ngx_atomic_fetch_add(ngx_stat_active, -1);
+#endif
+}
+
+
+static ssize_t
+ngx_udp_shared_recv(ngx_connection_t *c, u_char *buf, size_t size)
+{
+    ssize_t     n;
+    ngx_buf_t  *b;
+
+    if (c->udp == NULL || c->udp->buffer == NULL) {
+        return NGX_AGAIN;
+    }
+
+    b = c->udp->buffer;
+
+    n = ngx_min(b->last - b->pos, (ssize_t) size);
+
+    ngx_memcpy(buf, b->pos, n);
+
+    c->udp->buffer = NULL;
+    c->read->ready = 0;
+
+    return n;
+}
+
+
+void
+ngx_udp_rbtree_insert_value(ngx_rbtree_node_t *temp,
+    ngx_rbtree_node_t *node, ngx_rbtree_node_t *sentinel)
+{
+    ngx_int_t               rc;
+    ngx_connection_t       *c, *ct;
+    ngx_rbtree_node_t     **p;
+    ngx_udp_connection_t   *udp, *udpt;
+
+    for ( ;; ) {
+
+        if (node->key < temp->key) {
+
+            p = &temp->left;
+
+        } else if (node->key > temp->key) {
+
+            p = &temp->right;
+
+        } else { /* node->key == temp->key */
+
+            udp = (ngx_udp_connection_t *) node;
+            c = udp->connection;
+
+            udpt = (ngx_udp_connection_t *) temp;
+            ct = udpt->connection;
+
+            rc = ngx_cmp_sockaddr(c->sockaddr, c->socklen,
+                                  ct->sockaddr, ct->socklen, 1);
+
+            if (rc == 0 && c->listening->wildcard) {
+                rc = ngx_cmp_sockaddr(c->local_sockaddr, c->local_socklen,
+                                      ct->local_sockaddr, ct->local_socklen, 1);
+            }
+
+            p = (rc < 0) ? &temp->left : &temp->right;
+        }
+
+        if (*p == sentinel) {
+            break;
+        }
+
+        temp = *p;
+    }
+
+    *p = node;
+    node->parent = temp;
+    node->left = sentinel;
+    node->right = sentinel;
+    ngx_rbt_red(node);
+}
+
+
+static ngx_int_t
+ngx_insert_udp_connection(ngx_connection_t *c)
+{
+    uint32_t               hash;
+    ngx_pool_cleanup_t    *cln;
+    ngx_udp_connection_t  *udp;
+
+    if (c->udp) {
+        return NGX_OK;
+    }
+
+    udp = ngx_pcalloc(c->pool, sizeof(ngx_udp_connection_t));
+    if (udp == NULL) {
+        return NGX_ERROR;
+    }
+
+    udp->connection = c;
+
+    ngx_crc32_init(hash);
+    ngx_crc32_update(&hash, (u_char *) c->sockaddr, c->socklen);
+
+    if (c->listening->wildcard) {
+        ngx_crc32_update(&hash, (u_char *) c->local_sockaddr, c->local_socklen);
+    }
+
+    ngx_crc32_final(hash);
+
+    udp->node.key = hash;
+
+    cln = ngx_pool_cleanup_add(c->pool, 0);
+    if (cln == NULL) {
+        return NGX_ERROR;
+    }
+
+    cln->data = c;
+    cln->handler = ngx_delete_udp_connection;
+
+    ngx_rbtree_insert(&c->listening->rbtree, &udp->node);
+
+    c->udp = udp;
+
+    return NGX_OK;
+}
+
+
+static void
+ngx_delete_udp_connection(void *data)
+{
+    ngx_connection_t  *c = data;
+
+    ngx_rbtree_delete(&c->listening->rbtree, &c->udp->node);
+}
+
+
+static ngx_connection_t *
+ngx_lookup_udp_connection(ngx_listening_t *ls, struct sockaddr *sockaddr,
+    socklen_t socklen, struct sockaddr *local_sockaddr, socklen_t local_socklen)
+{
+    uint32_t               hash;
+    ngx_int_t              rc;
+    ngx_connection_t      *c;
+    ngx_rbtree_node_t     *node, *sentinel;
+    ngx_udp_connection_t  *udp;
+
+#if (NGX_HAVE_UNIX_DOMAIN)
+
+    if (sockaddr->sa_family == AF_UNIX) {
+        struct sockaddr_un *saun = (struct sockaddr_un *) sockaddr;
+
+        if (socklen <= (socklen_t) offsetof(struct sockaddr_un, sun_path)
+            || saun->sun_path[0] == '\0')
+        {
+            ngx_log_debug0(NGX_LOG_DEBUG_EVENT, ngx_cycle->log, 0,
+                           "unbound unix socket");
+            return NULL;
+        }
+    }
+
+#endif
+
+    node = ls->rbtree.root;
+    sentinel = ls->rbtree.sentinel;
+
+    ngx_crc32_init(hash);
+    ngx_crc32_update(&hash, (u_char *) sockaddr, socklen);
+
+    if (ls->wildcard) {
+        ngx_crc32_update(&hash, (u_char *) local_sockaddr, local_socklen);
+    }
+
+    ngx_crc32_final(hash);
+
+    while (node != sentinel) {
+
+        if (hash < node->key) {
+            node = node->left;
+            continue;
+        }
+
+        if (hash > node->key) {
+            node = node->right;
+            continue;
+        }
+
+        /* hash == node->key */
+
+        udp = (ngx_udp_connection_t *) node;
+
+        c = udp->connection;
+
+        rc = ngx_cmp_sockaddr(sockaddr, socklen,
+                              c->sockaddr, c->socklen, 1);
+
+        if (rc == 0 && ls->wildcard) {
+            rc = ngx_cmp_sockaddr(local_sockaddr, local_socklen,
+                                  c->local_sockaddr, c->local_socklen, 1);
+        }
+
+        if (rc == 0) {
+            return c;
+        }
+
+        node = (rc < 0) ? node->left : node->right;
+    }
+
+    return NULL;
+}
+
+#endif

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

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

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

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

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.15.0/src/http/modules/ngx_http_fastcgi_module.c (+4 -2) 99%
===================================================================
--- vendor/nginx-1.14.0/src/http/modules/ngx_http_fastcgi_module.c    2018-06-25 12:02:55 +0900 (bc43f53ed)
+++ vendor/nginx-1.15.0/src/http/modules/ngx_http_fastcgi_module.c    2018-06-25 12:23:48 +0900 (3eec1b7dd)
@@ -3264,7 +3264,8 @@ ngx_http_fastcgi_init_params(ngx_conf_t *cf, ngx_http_fastcgi_loc_conf_t *conf,
             return NGX_ERROR;
         }
 
-        copy->code = (ngx_http_script_code_pt) ngx_http_script_copy_len_code;
+        copy->code = (ngx_http_script_code_pt) (void *)
+                                                 ngx_http_script_copy_len_code;
         copy->len = src[i].key.len;
 
         copy = ngx_array_push_n(params->lengths,
@@ -3273,7 +3274,8 @@ ngx_http_fastcgi_init_params(ngx_conf_t *cf, ngx_http_fastcgi_loc_conf_t *conf,
             return NGX_ERROR;
         }
 
-        copy->code = (ngx_http_script_code_pt) ngx_http_script_copy_len_code;
+        copy->code = (ngx_http_script_code_pt) (void *)
+                                                 ngx_http_script_copy_len_code;
         copy->len = src[i].skip_empty;
 
 

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

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

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

  Renamed: vendor/nginx-1.15.0/src/http/modules/ngx_http_grpc_module.c (+2 -1) 99%
===================================================================
--- vendor/nginx-1.14.0/src/http/modules/ngx_http_grpc_module.c    2018-06-25 12:02:55 +0900 (837ad9a2e)
+++ vendor/nginx-1.15.0/src/http/modules/ngx_http_grpc_module.c    2018-06-25 12:23:48 +0900 (300d92704)
@@ -4389,7 +4389,8 @@ ngx_http_grpc_init_headers(ngx_conf_t *cf, ngx_http_grpc_loc_conf_t *conf,
             return NGX_ERROR;
         }
 
-        copy->code = (ngx_http_script_code_pt) ngx_http_script_copy_len_code;
+        copy->code = (ngx_http_script_code_pt) (void *)
+                                                 ngx_http_script_copy_len_code;
         copy->len = src[i].key.len;
 
         size = (sizeof(ngx_http_script_copy_code_t)

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.15.0/src/http/modules/ngx_http_limit_req_module.c (+25 -4) 98%
===================================================================
--- vendor/nginx-1.14.0/src/http/modules/ngx_http_limit_req_module.c    2018-06-25 12:02:55 +0900 (579b13c84)
+++ vendor/nginx-1.15.0/src/http/modules/ngx_http_limit_req_module.c    2018-06-25 12:23:48 +0900 (63ec2de3f)
@@ -399,7 +399,14 @@ ngx_http_limit_req_lookup(ngx_http_limit_req_limit_t *limit, ngx_uint_t hash,
 
             ms = (ngx_msec_int_t) (now - lr->last);
 
-            excess = lr->excess - ctx->rate * ngx_abs(ms) / 1000 + 1000;
+            if (ms < -60000) {
+                ms = 1;
+
+            } else if (ms < 0) {
+                ms = 0;
+            }
+
+            excess = lr->excess - ctx->rate * ms / 1000 + 1000;
 
             if (excess < 0) {
                 excess = 0;
@@ -413,7 +420,11 @@ ngx_http_limit_req_lookup(ngx_http_limit_req_limit_t *limit, ngx_uint_t hash,
 
             if (account) {
                 lr->excess = excess;
-                lr->last = now;
+
+                if (ms) {
+                    lr->last = now;
+                }
+
                 return NGX_OK;
             }
 
@@ -509,13 +520,23 @@ ngx_http_limit_req_account(ngx_http_limit_req_limit_t *limits, ngx_uint_t n,
         now = ngx_current_msec;
         ms = (ngx_msec_int_t) (now - lr->last);
 
-        excess = lr->excess - ctx->rate * ngx_abs(ms) / 1000 + 1000;
+        if (ms < -60000) {
+            ms = 1;
+
+        } else if (ms < 0) {
+            ms = 0;
+        }
+
+        excess = lr->excess - ctx->rate * ms / 1000 + 1000;
 
         if (excess < 0) {
             excess = 0;
         }
 
-        lr->last = now;
+        if (ms) {
+            lr->last = now;
+        }
+
         lr->excess = excess;
         lr->count--;
 

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

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

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

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

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

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

  Renamed: vendor/nginx-1.15.0/src/http/modules/ngx_http_proxy_module.c (+2 -1) 99%
===================================================================
--- vendor/nginx-1.14.0/src/http/modules/ngx_http_proxy_module.c    2018-06-25 12:02:55 +0900 (c9ad638df)
+++ vendor/nginx-1.15.0/src/http/modules/ngx_http_proxy_module.c    2018-06-25 12:23:48 +0900 (e7f829d65)
@@ -3493,7 +3493,8 @@ ngx_http_proxy_init_headers(ngx_conf_t *cf, ngx_http_proxy_loc_conf_t *conf,
             return NGX_ERROR;
         }
 
-        copy->code = (ngx_http_script_code_pt) ngx_http_script_copy_len_code;
+        copy->code = (ngx_http_script_code_pt) (void *)
+                                                 ngx_http_script_copy_len_code;
         copy->len = src[i].key.len;
 
         size = (sizeof(ngx_http_script_copy_code_t)

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

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

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

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

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

  Renamed: vendor/nginx-1.15.0/src/http/modules/ngx_http_scgi_module.c (+4 -2) 99%
===================================================================
--- vendor/nginx-1.14.0/src/http/modules/ngx_http_scgi_module.c    2018-06-25 12:02:55 +0900 (3fb227b28)
+++ vendor/nginx-1.15.0/src/http/modules/ngx_http_scgi_module.c    2018-06-25 12:23:48 +0900 (9bd45bd13)
@@ -1724,7 +1724,8 @@ ngx_http_scgi_init_params(ngx_conf_t *cf, ngx_http_scgi_loc_conf_t *conf,
             return NGX_ERROR;
         }
 
-        copy->code = (ngx_http_script_code_pt) ngx_http_script_copy_len_code;
+        copy->code = (ngx_http_script_code_pt) (void *)
+                                                 ngx_http_script_copy_len_code;
         copy->len = src[i].key.len + 1;
 
         copy = ngx_array_push_n(params->lengths,
@@ -1733,7 +1734,8 @@ ngx_http_scgi_init_params(ngx_conf_t *cf, ngx_http_scgi_loc_conf_t *conf,
             return NGX_ERROR;
         }
 
-        copy->code = (ngx_http_script_code_pt) ngx_http_script_copy_len_code;
+        copy->code = (ngx_http_script_code_pt) (void *)
+                                                 ngx_http_script_copy_len_code;
         copy->len = src[i].skip_empty;
 
 

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

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

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

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

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

  Renamed: vendor/nginx-1.15.0/src/http/modules/ngx_http_ssl_module.c (+37 -3) 96%
===================================================================
--- vendor/nginx-1.14.0/src/http/modules/ngx_http_ssl_module.c    2018-06-25 12:02:55 +0900 (7d62176e0)
+++ vendor/nginx-1.15.0/src/http/modules/ngx_http_ssl_module.c    2018-06-25 12:23:48 +0900 (7e9544127)
@@ -71,6 +71,11 @@ static ngx_conf_enum_t  ngx_http_ssl_verify[] = {
 };
 
 
+static ngx_conf_deprecated_t  ngx_http_ssl_deprecated = {
+    ngx_conf_deprecated, "ssl", "listen ... ssl"
+};
+
+
 static ngx_command_t  ngx_http_ssl_commands[] = {
 
     { ngx_string("ssl"),
@@ -78,7 +83,7 @@ static ngx_command_t  ngx_http_ssl_commands[] = {
       ngx_http_ssl_enable,
       NGX_HTTP_SRV_CONF_OFFSET,
       offsetof(ngx_http_ssl_srv_conf_t, enable),
-      NULL },
+      &ngx_http_ssl_deprecated },
 
     { ngx_string("ssl_certificate"),
       NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_CONF_TAKE1,
@@ -966,10 +971,12 @@ invalid:
 static ngx_int_t
 ngx_http_ssl_init(ngx_conf_t *cf)
 {
-    ngx_uint_t                   s;
+    ngx_uint_t                   a, p, s;
+    ngx_http_conf_addr_t        *addr;
+    ngx_http_conf_port_t        *port;
     ngx_http_ssl_srv_conf_t     *sscf;
     ngx_http_core_loc_conf_t    *clcf;
-    ngx_http_core_srv_conf_t   **cscfp;
+    ngx_http_core_srv_conf_t   **cscfp, *cscf;
     ngx_http_core_main_conf_t   *cmcf;
 
     cmcf = ngx_http_conf_get_module_main_conf(cf, ngx_http_core_module);
@@ -993,5 +1000,32 @@ ngx_http_ssl_init(ngx_conf_t *cf)
         }
     }
 
+    if (cmcf->ports == NULL) {
+        return NGX_OK;
+    }
+
+    port = cmcf->ports->elts;
+    for (p = 0; p < cmcf->ports->nelts; p++) {
+
+        addr = port[p].addrs.elts;
+        for (a = 0; a < port[p].addrs.nelts; a++) {
+
+            if (!addr[a].opt.ssl) {
+                continue;
+            }
+
+            cscf = addr[a].default_server;
+            sscf = cscf->ctx->srv_conf[ngx_http_ssl_module.ctx_index];
+
+            if (sscf->certificates == NULL) {
+                ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
+                              "no \"ssl_certificate\" is defined for "
+                              "the \"listen ... ssl\" directive in %s:%ui",
+                              cscf->file_name, cscf->line);
+                return NGX_ERROR;
+            }
+        }
+    }
+
     return NGX_OK;
 }

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

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

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

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

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.15.0/src/http/modules/ngx_http_uwsgi_module.c (+4 -2) 99%
===================================================================
--- vendor/nginx-1.14.0/src/http/modules/ngx_http_uwsgi_module.c    2018-06-25 12:02:55 +0900 (124da4db5)
+++ vendor/nginx-1.15.0/src/http/modules/ngx_http_uwsgi_module.c    2018-06-25 12:23:48 +0900 (238bcf8a3)
@@ -1987,7 +1987,8 @@ ngx_http_uwsgi_init_params(ngx_conf_t *cf, ngx_http_uwsgi_loc_conf_t *conf,
             return NGX_ERROR;
         }
 
-        copy->code = (ngx_http_script_code_pt) ngx_http_script_copy_len_code;
+        copy->code = (ngx_http_script_code_pt) (void *)
+                                                 ngx_http_script_copy_len_code;
         copy->len = src[i].key.len;
 
         copy = ngx_array_push_n(params->lengths,
@@ -1996,7 +1997,8 @@ ngx_http_uwsgi_init_params(ngx_conf_t *cf, ngx_http_uwsgi_loc_conf_t *conf,
             return NGX_ERROR;
         }
 
-        copy->code = (ngx_http_script_code_pt) ngx_http_script_copy_len_code;
+        copy->code = (ngx_http_script_code_pt) (void *)
+                                                 ngx_http_script_copy_len_code;
         copy->len = src[i].skip_empty;
 
 

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

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

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

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

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

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.15.0/src/http/ngx_http_core_module.c (+3 -0) 99%
===================================================================
--- vendor/nginx-1.14.0/src/http/ngx_http_core_module.c    2018-06-25 12:02:55 +0900 (6b318dd0f)
+++ vendor/nginx-1.15.0/src/http/ngx_http_core_module.c    2018-06-25 12:23:48 +0900 (2d8fdb88e)
@@ -3256,6 +3256,9 @@ ngx_http_core_create_srv_conf(ngx_conf_t *cf)
     cscf->merge_slashes = NGX_CONF_UNSET;
     cscf->underscores_in_headers = NGX_CONF_UNSET;
 
+    cscf->file_name = cf->conf_file->file.name.data;
+    cscf->line = cf->conf_file->line;
+
     return cscf;
 }
 

  Renamed: vendor/nginx-1.15.0/src/http/ngx_http_core_module.h (+3 -0) 99%
===================================================================
--- vendor/nginx-1.14.0/src/http/ngx_http_core_module.h    2018-06-25 12:02:55 +0900 (d79850498)
+++ vendor/nginx-1.15.0/src/http/ngx_http_core_module.h    2018-06-25 12:23:48 +0900 (4c6da7c0f)
@@ -184,6 +184,9 @@ typedef struct {
     /* server ctx */
     ngx_http_conf_ctx_t        *ctx;
 
+    u_char                     *file_name;
+    ngx_uint_t                  line;
+
     ngx_str_t                   server_name;
 
     size_t                      connection_pool_size;

  Renamed: vendor/nginx-1.15.0/src/http/ngx_http_file_cache.c (+2 -1) 99%
===================================================================
--- vendor/nginx-1.14.0/src/http/ngx_http_file_cache.c    2018-06-25 12:02:55 +0900 (3b2b68a26)
+++ vendor/nginx-1.15.0/src/http/ngx_http_file_cache.c    2018-06-25 12:23:48 +0900 (56866fa4e)
@@ -2620,7 +2620,8 @@ ngx_http_file_cache_valid_set_slot(ngx_conf_t *cf, ngx_command_t *cmd,
 
     time_t                    valid;
     ngx_str_t                *value;
-    ngx_uint_t                i, n, status;
+    ngx_int_t                 status;
+    ngx_uint_t                i, n;
     ngx_array_t             **a;
     ngx_http_cache_valid_t   *v;
     static ngx_uint_t         statuses[] = { 200, 301, 302 };

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

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

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

  Renamed: vendor/nginx-1.15.0/src/http/ngx_http_request.c (+1 -12) 99%
===================================================================
--- vendor/nginx-1.14.0/src/http/ngx_http_request.c    2018-06-25 12:02:55 +0900 (2db7a6279)
+++ vendor/nginx-1.15.0/src/http/ngx_http_request.c    2018-06-25 12:23:48 +0900 (47c62d9fd)
@@ -336,19 +336,8 @@ ngx_http_init_connection(ngx_connection_t *c)
     sscf = ngx_http_get_module_srv_conf(hc->conf_ctx, ngx_http_ssl_module);
 
     if (sscf->enable || hc->addr_conf->ssl) {
-
-        c->log->action = "SSL handshaking";
-
-        if (hc->addr_conf->ssl && sscf->ssl.ctx == NULL) {
-            ngx_log_error(NGX_LOG_ERR, c->log, 0,
-                          "no \"ssl_certificate\" is defined "
-                          "in server listening on SSL port");
-            ngx_http_close_connection(c);
-            return;
-        }
-
         hc->ssl = 1;
-
+        c->log->action = "SSL handshaking";
         rev->handler = ngx_http_ssl_handshake;
     }
     }

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

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

  Renamed: vendor/nginx-1.15.0/src/http/ngx_http_script.c (+8 -5) 98%
===================================================================
--- vendor/nginx-1.14.0/src/http/ngx_http_script.c    2018-06-25 12:02:55 +0900 (96f3ec696)
+++ vendor/nginx-1.15.0/src/http/ngx_http_script.c    2018-06-25 12:23:48 +0900 (1a8773561)
@@ -695,7 +695,8 @@ ngx_http_script_add_copy_code(ngx_http_script_compile_t *sc, ngx_str_t *value,
         return NGX_ERROR;
     }
 
-    code->code = (ngx_http_script_code_pt) ngx_http_script_copy_len_code;
+    code->code = (ngx_http_script_code_pt) (void *)
+                                                 ngx_http_script_copy_len_code;
     code->len = len;
 
     size = (sizeof(ngx_http_script_copy_code_t) + len + sizeof(uintptr_t) - 1)
@@ -784,7 +785,8 @@ ngx_http_script_add_var_code(ngx_http_script_compile_t *sc, ngx_str_t *name)
         return NGX_ERROR;
     }
 
-    code->code = (ngx_http_script_code_pt) ngx_http_script_copy_var_len_code;
+    code->code = (ngx_http_script_code_pt) (void *)
+                                             ngx_http_script_copy_var_len_code;
     code->index = (uintptr_t) index;
 
     code = ngx_http_script_add_code(*sc->values,
@@ -1178,8 +1180,8 @@ ngx_http_script_add_capture_code(ngx_http_script_compile_t *sc, ngx_uint_t n)
         return NGX_ERROR;
     }
 
-    code->code = (ngx_http_script_code_pt)
-                      ngx_http_script_copy_capture_len_code;
+    code->code = (ngx_http_script_code_pt) (void *)
+                                         ngx_http_script_copy_capture_len_code;
     code->n = 2 * n;
 
 
@@ -1293,7 +1295,8 @@ ngx_http_script_add_full_name_code(ngx_http_script_compile_t *sc)
         return NGX_ERROR;
     }
 
-    code->code = (ngx_http_script_code_pt) ngx_http_script_full_name_len_code;
+    code->code = (ngx_http_script_code_pt) (void *)
+                                            ngx_http_script_full_name_len_code;
     code->conf_prefix = sc->conf_prefix;
 
     code = ngx_http_script_add_code(*sc->values,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.15.0/src/mail/ngx_mail_core_module.c (+9 -0) 98%
===================================================================
--- vendor/nginx-1.14.0/src/mail/ngx_mail_core_module.c    2018-06-25 12:02:55 +0900 (276b8eeb1)
+++ vendor/nginx-1.15.0/src/mail/ngx_mail_core_module.c    2018-06-25 12:23:48 +0900 (dd4e9802b)
@@ -474,7 +474,16 @@ ngx_mail_core_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
 
         if (ngx_strcmp(value[i].data, "ssl") == 0) {
 #if (NGX_MAIL_SSL)
+            ngx_mail_ssl_conf_t  *sslcf;
+
+            sslcf = ngx_mail_conf_get_module_srv_conf(cf, ngx_mail_ssl_module);
+
+            sslcf->listen = 1;
+            sslcf->file = cf->conf_file->file.name.data;
+            sslcf->line = cf->conf_file->line;
+
             ls->ssl = 1;
+
             continue;
 #else
             ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,

  Renamed: vendor/nginx-1.15.0/src/mail/ngx_mail_handler.c (+1 -17) 97%
===================================================================
--- vendor/nginx-1.14.0/src/mail/ngx_mail_handler.c    2018-06-25 12:02:55 +0900 (bc3e6b9e2)
+++ vendor/nginx-1.15.0/src/mail/ngx_mail_handler.c    2018-06-25 12:23:48 +0900 (803a247d2)
@@ -165,29 +165,13 @@ ngx_mail_init_connection(ngx_connection_t *c)
 
     sslcf = ngx_mail_get_module_srv_conf(s, ngx_mail_ssl_module);
 
-    if (sslcf->enable) {
+    if (sslcf->enable || addr_conf->ssl) {
         c->log->action = "SSL handshaking";
 
         ngx_mail_ssl_init_connection(&sslcf->ssl, c);
         return;
     }
 
-    if (addr_conf->ssl) {
-
-        c->log->action = "SSL handshaking";
-
-        if (sslcf->ssl.ctx == NULL) {
-            ngx_log_error(NGX_LOG_ERR, c->log, 0,
-                          "no \"ssl_certificate\" is defined "
-                          "in server listening on SSL port");
-            ngx_mail_close_connection(c);
-            return;
-        }
-
-        ngx_mail_ssl_init_connection(&sslcf->ssl, c);
-        return;
-    }
-
     }
 #endif
 

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

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

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

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

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.15.0/src/mail/ngx_mail_ssl_module.c (+43 -50) 89%
===================================================================
--- vendor/nginx-1.14.0/src/mail/ngx_mail_ssl_module.c    2018-06-25 12:02:55 +0900 (aebd179d0)
+++ vendor/nginx-1.15.0/src/mail/ngx_mail_ssl_module.c    2018-06-25 12:23:48 +0900 (45095979e)
@@ -56,6 +56,11 @@ static ngx_conf_enum_t  ngx_mail_ssl_verify[] = {
 };
 
 
+static ngx_conf_deprecated_t  ngx_mail_ssl_deprecated = {
+    ngx_conf_deprecated, "ssl", "listen ... ssl"
+};
+
+
 static ngx_command_t  ngx_mail_ssl_commands[] = {
 
     { ngx_string("ssl"),
@@ -63,7 +68,7 @@ static ngx_command_t  ngx_mail_ssl_commands[] = {
       ngx_mail_ssl_enable,
       NGX_MAIL_SRV_CONF_OFFSET,
       offsetof(ngx_mail_ssl_conf_t, enable),
-      NULL },
+      &ngx_mail_ssl_deprecated },
 
     { ngx_string("starttls"),
       NGX_MAIL_MAIN_CONF|NGX_MAIL_SRV_CONF|NGX_CONF_TAKE1,
@@ -238,6 +243,7 @@ ngx_mail_ssl_create_conf(ngx_conf_t *cf)
     /*
      * set by ngx_pcalloc():
      *
+     *     scf->listen = 0;
      *     scf->protocols = 0;
      *     scf->dhparam = { 0, NULL };
      *     scf->ecdh_curve = { 0, NULL };
@@ -313,14 +319,17 @@ ngx_mail_ssl_merge_conf(ngx_conf_t *cf, void *parent, void *child)
 
     conf->ssl.log = cf->log;
 
-    if (conf->enable) {
+    if (conf->listen) {
+        mode = "listen ... ssl";
+
+    } else if (conf->enable) {
         mode = "ssl";
 
     } else if (conf->starttls != NGX_MAIL_STARTTLS_OFF) {
         mode = "starttls";
 
     } else {
-        mode = "";
+        return NGX_CONF_OK;
     }
 
     if (conf->file == NULL) {
@@ -328,51 +337,31 @@ ngx_mail_ssl_merge_conf(ngx_conf_t *cf, void *parent, void *child)
         conf->line = prev->line;
     }
 
-    if (*mode) {
-
-        if (conf->certificates == NULL) {
-            ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
-                          "no \"ssl_certificate\" is defined for "
-                          "the \"%s\" directive in %s:%ui",
-                          mode, conf->file, conf->line);
-            return NGX_CONF_ERROR;
-        }
-
-        if (conf->certificate_keys == NULL) {
-            ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
-                          "no \"ssl_certificate_key\" is defined for "
-                          "the \"%s\" directive in %s:%ui",
-                          mode, conf->file, conf->line);
-            return NGX_CONF_ERROR;
-        }
-
-        if (conf->certificate_keys->nelts < conf->certificates->nelts) {
-            ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
-                          "no \"ssl_certificate_key\" is defined "
-                          "for certificate \"%V\" and "
-                          "the \"ssl\" directive in %s:%ui",
-                          ((ngx_str_t *) conf->certificates->elts)
-                          + conf->certificates->nelts - 1,
-                          conf->file, conf->line);
-            return NGX_CONF_ERROR;
-        }
-
-    } else {
+    if (conf->certificates == NULL) {
+        ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
+                      "no \"ssl_certificate\" is defined for "
+                      "the \"%s\" directive in %s:%ui",
+                      mode, conf->file, conf->line);
+        return NGX_CONF_ERROR;
+    }
 
-        if (conf->certificates == NULL) {
-            return NGX_CONF_OK;
-        }
+    if (conf->certificate_keys == NULL) {
+        ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
+                      "no \"ssl_certificate_key\" is defined for "
+                      "the \"%s\" directive in %s:%ui",
+                      mode, conf->file, conf->line);
+        return NGX_CONF_ERROR;
+    }
 
-        if (conf->certificate_keys == NULL
-            || conf->certificate_keys->nelts < conf->certificates->nelts)
-        {
-            ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
-                          "no \"ssl_certificate_key\" is defined "
-                          "for certificate \"%V\"",
-                          ((ngx_str_t *) conf->certificates->elts)
-                          + conf->certificates->nelts - 1);
-            return NGX_CONF_ERROR;
-        }
+    if (conf->certificate_keys->nelts < conf->certificates->nelts) {
+        ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
+                      "no \"ssl_certificate_key\" is defined "
+                      "for certificate \"%V\" and "
+                      "the \"%s\" directive in %s:%ui",
+                      ((ngx_str_t *) conf->certificates->elts)
+                      + conf->certificates->nelts - 1,
+                      mode, conf->file, conf->line);
+        return NGX_CONF_ERROR;
     }
 
     if (ngx_ssl_create(&conf->ssl, conf->protocols, NULL) != NGX_OK) {
@@ -494,8 +483,10 @@ ngx_mail_ssl_enable(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
         return NGX_CONF_ERROR;
     }
 
-    scf->file = cf->conf_file->file.name.data;
-    scf->line = cf->conf_file->line;
+    if (!scf->listen) {
+        scf->file = cf->conf_file->file.name.data;
+        scf->line = cf->conf_file->line;
+    }
 
     return NGX_CONF_OK;
 }
@@ -520,8 +511,10 @@ ngx_mail_ssl_starttls(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
         return NGX_CONF_ERROR;
     }
 
-    scf->file = cf->conf_file->file.name.data;
-    scf->line = cf->conf_file->line;
+    if (!scf->listen) {
+        scf->file = cf->conf_file->file.name.data;
+        scf->line = cf->conf_file->line;
+    }
 
     return NGX_CONF_OK;
 }

  Renamed: vendor/nginx-1.15.0/src/mail/ngx_mail_ssl_module.h (+1 -0) 97%
===================================================================
--- vendor/nginx-1.14.0/src/mail/ngx_mail_ssl_module.h    2018-06-25 12:02:55 +0900 (26628d57e)
+++ vendor/nginx-1.15.0/src/mail/ngx_mail_ssl_module.h    2018-06-25 12:23:48 +0900 (d6b0b8e0d)
@@ -26,6 +26,7 @@ typedef struct {
     ngx_ssl_t        ssl;
 
     ngx_uint_t       starttls;
+    ngx_uint_t       listen;
     ngx_uint_t       protocols;
 
     ngx_uint_t       verify;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.15.0/src/os/unix/ngx_user.c (+0 -4) 93%
===================================================================
--- vendor/nginx-1.14.0/src/os/unix/ngx_user.c    2018-06-25 12:02:55 +0900 (7ebe2b576)
+++ vendor/nginx-1.15.0/src/os/unix/ngx_user.c    2018-06-25 12:23:48 +0900 (b3d81d07b)
@@ -21,10 +21,6 @@ ngx_libc_crypt(ngx_pool_t *pool, u_char *key, u_char *salt, u_char **encrypted)
     struct crypt_data   cd;
 
     cd.initialized = 0;
-#ifdef __GLIBC__
-    /* work around the glibc bug */
-    cd.current_salt[0] = ~salt[0];
-#endif
 
     value = crypt_r((char *) key, (char *) salt, &cd);
 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.15.0/src/os/win32/ngx_time.c (+1 -1) 98%
===================================================================
--- vendor/nginx-1.14.0/src/os/win32/ngx_time.c    2018-06-25 12:02:55 +0900 (bd6d28766)
+++ vendor/nginx-1.15.0/src/os/win32/ngx_time.c    2018-06-25 12:23:48 +0900 (79149b2c7)
@@ -23,7 +23,7 @@ ngx_gettimeofday(struct timeval *tp)
      * January 1, 1601 12:00 A.M. UTC.
      *
      * Between January 1, 1970 (Epoch) and January 1, 1601 there were
-     * 134744 days,
+     * 134774 days,
      * 11644473600 seconds or
      * 11644473600,000,000,0 100-nanosecond intervals.
      *

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

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

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

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

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

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

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.15.0/src/stream/ngx_stream_core_module.c (+10 -0) 98%
===================================================================
--- vendor/nginx-1.14.0/src/stream/ngx_stream_core_module.c    2018-06-25 12:02:55 +0900 (272708d62)
+++ vendor/nginx-1.15.0/src/stream/ngx_stream_core_module.c    2018-06-25 12:23:48 +0900 (96e7c9ac8)
@@ -734,7 +734,17 @@ ngx_stream_core_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
 
         if (ngx_strcmp(value[i].data, "ssl") == 0) {
 #if (NGX_STREAM_SSL)
+            ngx_stream_ssl_conf_t  *sslcf;
+
+            sslcf = ngx_stream_conf_get_module_srv_conf(cf,
+                                                        ngx_stream_ssl_module);
+
+            sslcf->listen = 1;
+            sslcf->file = cf->conf_file->file.name.data;
+            sslcf->line = cf->conf_file->line;
+
             ls->ssl = 1;
+
             continue;
 #else
             ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,

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

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

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

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

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

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

  Renamed: vendor/nginx-1.15.0/src/stream/ngx_stream_proxy_module.c (+76 -50) 95%
===================================================================
--- vendor/nginx-1.14.0/src/stream/ngx_stream_proxy_module.c    2018-06-25 12:02:55 +0900 (30572cdd9)
+++ vendor/nginx-1.15.0/src/stream/ngx_stream_proxy_module.c    2018-06-25 12:23:48 +0900 (792bb7758)
@@ -377,6 +377,8 @@ ngx_stream_proxy_handler(ngx_stream_session_t *s)
 
     s->log_handler = ngx_stream_proxy_log_error;
 
+    u->requests = 1;
+
     u->peer.log = c->log;
     u->peer.log_error = NGX_ERROR_ERR;
 
@@ -398,21 +400,19 @@ ngx_stream_proxy_handler(ngx_stream_session_t *s)
         return;
     }
 
-    if (c->type == SOCK_STREAM) {
-        p = ngx_pnalloc(c->pool, pscf->buffer_size);
-        if (p == NULL) {
-            ngx_stream_proxy_finalize(s, NGX_STREAM_INTERNAL_SERVER_ERROR);
-            return;
-        }
+    p = ngx_pnalloc(c->pool, pscf->buffer_size);
+    if (p == NULL) {
+        ngx_stream_proxy_finalize(s, NGX_STREAM_INTERNAL_SERVER_ERROR);
+        return;
+    }
 
-        u->downstream_buf.start = p;
-        u->downstream_buf.end = p + pscf->buffer_size;
-        u->downstream_buf.pos = p;
-        u->downstream_buf.last = p;
+    u->downstream_buf.start = p;
+    u->downstream_buf.end = p + pscf->buffer_size;
+    u->downstream_buf.pos = p;
+    u->downstream_buf.last = p;
 
-        if (c->read->ready) {
-            ngx_post_event(c->read, &ngx_posted_events);
-        }
+    if (c->read->ready) {
+        ngx_post_event(c->read, &ngx_posted_events);
     }
 
     if (pscf->upstream_value) {
@@ -829,7 +829,6 @@ ngx_stream_proxy_init_upstream(ngx_stream_session_t *s)
 
         cl->buf->tag = (ngx_buf_tag_t) &ngx_stream_proxy_module;
         cl->buf->flush = 1;
-        cl->buf->last_buf = (c->type == SOCK_DGRAM);
 
         cl->next = u->upstream_out;
         u->upstream_out = cl;
@@ -871,17 +870,12 @@ ngx_stream_proxy_init_upstream(ngx_stream_session_t *s)
         u->proxy_protocol = 0;
     }
 
-    if (c->type == SOCK_DGRAM && pscf->responses == 0) {
-        pc->read->ready = 0;
-        pc->read->eof = 1;
-    }
-
     u->connected = 1;
 
     pc->read->handler = ngx_stream_proxy_upstream_handler;
     pc->write->handler = ngx_stream_proxy_upstream_handler;
 
-    if (pc->read->ready || pc->read->eof) {
+    if (pc->read->ready) {
         ngx_post_event(pc->read, &ngx_posted_events);
     }
 
@@ -1280,6 +1274,7 @@ static void
 ngx_stream_proxy_process_connection(ngx_event_t *ev, ngx_uint_t from_upstream)
 {
     ngx_connection_t             *c, *pc;
+    ngx_log_handler_pt            handler;
     ngx_stream_session_t         *s;
     ngx_stream_upstream_t        *u;
     ngx_stream_proxy_srv_conf_t  *pscf;
@@ -1328,25 +1323,37 @@ ngx_stream_proxy_process_connection(ngx_event_t *ev, ngx_uint_t from_upstream)
                      * with unspecified number of responses
                      */
 
-                    pc->read->ready = 0;
-                    pc->read->eof = 1;
+                    handler = c->log->handler;
+                    c->log->handler = NULL;
+
+                    ngx_log_error(NGX_LOG_INFO, c->log, 0,
+                                  "udp timed out"
+                                  ", packets from/to client:%ui/%ui"
+                                  ", bytes from/to client:%O/%O"
+                                  ", bytes from/to upstream:%O/%O",
+                                  u->requests, u->responses,
+                                  s->received, c->sent, u->received,
+                                  pc ? pc->sent : 0);
+
+                    c->log->handler = handler;
 
-                    ngx_stream_proxy_process(s, 1, 0);
+                    ngx_stream_proxy_finalize(s, NGX_STREAM_OK);
                     return;
                 }
 
                 ngx_connection_error(pc, NGX_ETIMEDOUT, "upstream timed out");
 
-                if (u->received == 0) {
-                    ngx_stream_proxy_next_upstream(s);
-                    return;
-                }
+                pc->read->error = 1;
 
-            } else {
-                ngx_connection_error(c, NGX_ETIMEDOUT, "connection timed out");
+                ngx_stream_proxy_finalize(s, NGX_STREAM_BAD_GATEWAY);
+
+                return;
             }
 
+            ngx_connection_error(c, NGX_ETIMEDOUT, "connection timed out");
+
             ngx_stream_proxy_finalize(s, NGX_STREAM_OK);
+
             return;
         }
 
@@ -1453,7 +1460,7 @@ ngx_stream_proxy_process(ngx_stream_session_t *s, ngx_uint_t from_upstream,
     ssize_t                       n;
     ngx_buf_t                    *b;
     ngx_int_t                     rc;
-    ngx_uint_t                    flags;
+    ngx_uint_t                    flags, *packets;
     ngx_msec_t                    delay;
     ngx_chain_t                  *cl, **ll, **out, **busy;
     ngx_connection_t             *c, *pc, *src, *dst;
@@ -1489,6 +1496,7 @@ ngx_stream_proxy_process(ngx_stream_session_t *s, ngx_uint_t from_upstream,
         b = &u->upstream_buf;
         limit_rate = pscf->download_rate;
         received = &u->received;
+        packets = &u->responses;
         out = &u->downstream_out;
         busy = &u->downstream_busy;
         recv_action = "proxying and reading from upstream";
@@ -1500,6 +1508,7 @@ ngx_stream_proxy_process(ngx_stream_session_t *s, ngx_uint_t from_upstream,
         b = &u->downstream_buf;
         limit_rate = pscf->upload_rate;
         received = &s->received;
+        packets = &u->requests;
         out = &u->upstream_out;
         busy = &u->upstream_busy;
         recv_action = "proxying and reading from client";
@@ -1516,11 +1525,6 @@ ngx_stream_proxy_process(ngx_stream_session_t *s, ngx_uint_t from_upstream,
                 rc = ngx_stream_top_filter(s, *out, from_upstream);
 
                 if (rc == NGX_ERROR) {
-                    if (c->type == SOCK_DGRAM && !from_upstream) {
-                        ngx_stream_proxy_next_upstream(s);
-                        return;
-                    }
-
                     ngx_stream_proxy_finalize(s, NGX_STREAM_OK);
                     return;
                 }
@@ -1565,11 +1569,6 @@ ngx_stream_proxy_process(ngx_stream_session_t *s, ngx_uint_t from_upstream,
             }
 
             if (n == NGX_ERROR) {
-                if (c->type == SOCK_DGRAM && u->received == 0) {
-                    ngx_stream_proxy_next_upstream(s);
-                    return;
-                }
-
                 src->read->eof = 1;
                 n = 0;
             }
@@ -1591,12 +1590,6 @@ ngx_stream_proxy_process(ngx_stream_session_t *s, ngx_uint_t from_upstream,
                     }
                 }
 
-                if (c->type == SOCK_DGRAM && ++u->responses == pscf->responses)
-                {
-                    src->read->ready = 0;
-                    src->read->eof = 1;
-                }
-
                 for (ll = out; *ll; ll = &(*ll)->next) { /* void */ }
 
                 cl = ngx_chain_get_free_buf(c->pool, &u->free);
@@ -1616,6 +1609,7 @@ ngx_stream_proxy_process(ngx_stream_session_t *s, ngx_uint_t from_upstream,
                 cl->buf->last_buf = src->read->eof;
                 cl->buf->flush = 1;
 
+                (*packets)++;
                 *received += n;
                 b->last += n;
                 do_write = 1;
@@ -1629,15 +1623,38 @@ ngx_stream_proxy_process(ngx_stream_session_t *s, ngx_uint_t from_upstream,
 
     c->log->action = "proxying connection";
 
-    if (src->read->eof && dst && (dst->read->eof || !dst->buffered)) {
+    if (c->type == SOCK_DGRAM
+        && pscf->responses != NGX_MAX_INT32_VALUE
+        && u->responses >= pscf->responses * u->requests
+        && !src->buffered && dst && !dst->buffered)
+    {
         handler = c->log->handler;
         c->log->handler = NULL;
 
         ngx_log_error(NGX_LOG_INFO, c->log, 0,
-                      "%s%s disconnected"
+                      "udp done"
+                      ", packets from/to client:%ui/%ui"
+                      ", bytes from/to client:%O/%O"
+                      ", bytes from/to upstream:%O/%O",
+                      u->requests, u->responses,
+                      s->received, c->sent, u->received, pc ? pc->sent : 0);
+
+        c->log->handler = handler;
+
+        ngx_stream_proxy_finalize(s, NGX_STREAM_OK);
+        return;
+    }
+
+    if (c->type == SOCK_STREAM
+        && src->read->eof && dst && (dst->read->eof || !dst->buffered))
+    {
+        handler = c->log->handler;
+        c->log->handler = NULL;
+
+        ngx_log_error(NGX_LOG_INFO, c->log, 0,
+                      "%s disconnected"
                       ", bytes from/to client:%O/%O"
                       ", bytes from/to upstream:%O/%O",
-                      src->type == SOCK_DGRAM ? "udp " : "",
                       from_upstream ? "upstream" : "client",
                       s->received, c->sent, u->received, pc ? pc->sent : 0);
 
@@ -1739,6 +1756,7 @@ ngx_stream_proxy_next_upstream(ngx_stream_session_t *s)
 static void
 ngx_stream_proxy_finalize(ngx_stream_session_t *s, ngx_uint_t rc)
 {
+    ngx_uint_t              state;
     ngx_connection_t       *pc;
     ngx_stream_upstream_t  *u;
 
@@ -1768,7 +1786,15 @@ ngx_stream_proxy_finalize(ngx_stream_session_t *s, ngx_uint_t rc)
     }
 
     if (u->peer.free && u->peer.sockaddr) {
-        u->peer.free(&u->peer, u->peer.data, 0);
+        state = 0;
+
+        if (pc && pc->type == SOCK_DGRAM
+            && (pc->read->error || pc->write->error))
+        {
+            state = NGX_PEER_FAILED;
+        }
+
+        u->peer.free(&u->peer, u->peer.data, state);
         u->peer.sockaddr = NULL;
     }
 

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

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

  Renamed: vendor/nginx-1.15.0/src/stream/ngx_stream_script.c (+7 -6) 97%
===================================================================
--- vendor/nginx-1.14.0/src/stream/ngx_stream_script.c    2018-06-25 12:02:55 +0900 (aa555ca2c)
+++ vendor/nginx-1.15.0/src/stream/ngx_stream_script.c    2018-06-25 12:23:48 +0900 (b00e7086f)
@@ -587,7 +587,8 @@ ngx_stream_script_add_copy_code(ngx_stream_script_compile_t *sc,
         return NGX_ERROR;
     }
 
-    code->code = (ngx_stream_script_code_pt) ngx_stream_script_copy_len_code;
+    code->code = (ngx_stream_script_code_pt) (void *)
+                                               ngx_stream_script_copy_len_code;
     code->len = len;
 
     size = (sizeof(ngx_stream_script_copy_code_t) + len + sizeof(uintptr_t) - 1)
@@ -677,8 +678,8 @@ ngx_stream_script_add_var_code(ngx_stream_script_compile_t *sc, ngx_str_t *name)
         return NGX_ERROR;
     }
 
-    code->code = (ngx_stream_script_code_pt)
-                      ngx_stream_script_copy_var_len_code;
+    code->code = (ngx_stream_script_code_pt) (void *)
+                                           ngx_stream_script_copy_var_len_code;
     code->index = (uintptr_t) index;
 
     code = ngx_stream_script_add_code(*sc->values,
@@ -767,8 +768,8 @@ ngx_stream_script_add_capture_code(ngx_stream_script_compile_t *sc,
         return NGX_ERROR;
     }
 
-    code->code = (ngx_stream_script_code_pt)
-                      ngx_stream_script_copy_capture_len_code;
+    code->code = (ngx_stream_script_code_pt) (void *)
+                                       ngx_stream_script_copy_capture_len_code;
     code->n = 2 * n;
 
 
@@ -859,7 +860,7 @@ ngx_stream_script_add_full_name_code(ngx_stream_script_compile_t *sc)
         return NGX_ERROR;
     }
 
-    code->code = (ngx_stream_script_code_pt)
+    code->code = (ngx_stream_script_code_pt) (void *)
                                           ngx_stream_script_full_name_len_code;
     code->conf_prefix = sc->conf_prefix;
 

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

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

  Renamed: vendor/nginx-1.15.0/src/stream/ngx_stream_ssl_module.c (+23 -13) 96%
===================================================================
--- vendor/nginx-1.14.0/src/stream/ngx_stream_ssl_module.c    2018-06-25 12:02:55 +0900 (3e5a1f210)
+++ vendor/nginx-1.15.0/src/stream/ngx_stream_ssl_module.c    2018-06-25 12:23:48 +0900 (dcc33e1ce)
@@ -304,13 +304,6 @@ ngx_stream_ssl_handler(ngx_stream_session_t *s)
     if (c->ssl == NULL) {
         c->log->action = "SSL handshaking";
 
-        if (sslcf->ssl.ctx == NULL) {
-            ngx_log_error(NGX_LOG_ERR, c->log, 0,
-                          "no \"ssl_certificate\" is defined "
-                          "in server listening on SSL port");
-            return NGX_ERROR;
-        }
-
         rv = ngx_stream_ssl_init_connection(&sslcf->ssl, c);
 
         if (rv != NGX_OK) {
@@ -510,6 +503,7 @@ ngx_stream_ssl_create_conf(ngx_conf_t *cf)
     /*
      * set by ngx_pcalloc():
      *
+     *     scf->listen = 0;
      *     scf->protocols = 0;
      *     scf->dhparam = { 0, NULL };
      *     scf->ecdh_curve = { 0, NULL };
@@ -582,18 +576,34 @@ ngx_stream_ssl_merge_conf(ngx_conf_t *cf, void *parent, void *child)
 
     conf->ssl.log = cf->log;
 
-    if (conf->certificates == NULL) {
+    if (!conf->listen) {
         return NGX_CONF_OK;
     }
 
-    if (conf->certificate_keys == NULL
-        || conf->certificate_keys->nelts < conf->certificates->nelts)
-    {
+    if (conf->certificates == NULL) {
+        ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
+                      "no \"ssl_certificate\" is defined for "
+                      "the \"listen ... ssl\" directive in %s:%ui",
+                      conf->file, conf->line);
+        return NGX_CONF_ERROR;
+    }
+
+    if (conf->certificate_keys == NULL) {
+        ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
+                      "no \"ssl_certificate_key\" is defined for "
+                      "the \"listen ... ssl\" directive in %s:%ui",
+                      conf->file, conf->line);
+        return NGX_CONF_ERROR;
+    }
+
+    if (conf->certificate_keys->nelts < conf->certificates->nelts) {
         ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
                       "no \"ssl_certificate_key\" is defined "
-                      "for certificate \"%V\"",
+                      "for certificate \"%V\" and "
+                      "the \"listen ... ssl\" directive in %s:%ui",
                       ((ngx_str_t *) conf->certificates->elts)
-                      + conf->certificates->nelts - 1);
+                      + conf->certificates->nelts - 1,
+                      conf->file, conf->line);
         return NGX_CONF_ERROR;
     }
 

  Renamed: vendor/nginx-1.15.0/src/stream/ngx_stream_ssl_module.h (+4 -0) 92%
===================================================================
--- vendor/nginx-1.14.0/src/stream/ngx_stream_ssl_module.h    2018-06-25 12:02:55 +0900 (65f5d456e)
+++ vendor/nginx-1.15.0/src/stream/ngx_stream_ssl_module.h    2018-06-25 12:23:48 +0900 (9f8f01cf1)
@@ -21,6 +21,7 @@ typedef struct {
 
     ngx_ssl_t        ssl;
 
+    ngx_uint_t       listen;
     ngx_uint_t       protocols;
 
     ngx_uint_t       verify;
@@ -47,6 +48,9 @@ typedef struct {
 
     ngx_flag_t       session_tickets;
     ngx_array_t     *session_ticket_keys;
+
+    u_char          *file;
+    ngx_uint_t       line;
 } ngx_stream_ssl_conf_t;
 
 

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

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

  Renamed: vendor/nginx-1.15.0/src/stream/ngx_stream_upstream.h (+1 -0) 98%
===================================================================
--- vendor/nginx-1.14.0/src/stream/ngx_stream_upstream.h    2018-06-25 12:02:55 +0900 (73947f465)
+++ vendor/nginx-1.15.0/src/stream/ngx_stream_upstream.h    2018-06-25 12:23:48 +0900 (741ef4e0a)
@@ -128,6 +128,7 @@ typedef struct {
 
     off_t                              received;
     time_t                             start_sec;
+    ngx_uint_t                         requests;
     ngx_uint_t                         responses;
 
     ngx_str_t                          ssl_name;

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

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

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

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

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

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

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

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




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