[Groonga-commit] groonga/groonga at d0c4014 [master] nginx: update nginx

Back to archive index

Kentaro Hayashi null+****@clear*****
Wed Sep 26 09:53:43 JST 2018


Kentaro Hayashi	2018-09-26 09:53:43 +0900 (Wed, 26 Sep 2018)

  Revision: d0c401492a44588b7a3a7cadbac21a438c529c91
  https://github.com/groonga/groonga/commit/d0c401492a44588b7a3a7cadbac21a438c529c91

  Message:
    nginx: update nginx
    
    $ ./update_nginx.sh 1.15.4

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

  Modified: nginx_version (+1 -1)
===================================================================
--- nginx_version    2018-09-26 09:51:37 +0900 (42cf0675c)
+++ nginx_version    2018-09-26 09:53:43 +0900 (e34208c93)
@@ -1 +1 @@
-1.15.2
+1.15.4

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.15.4/auto/lib/google-perftools/conf (+2 -1) 92%
===================================================================
--- vendor/nginx-1.15.2/auto/lib/google-perftools/conf    2018-09-26 09:51:37 +0900 (5d5ddaef6)
+++ vendor/nginx-1.15.4/auto/lib/google-perftools/conf    2018-09-26 09:53:43 +0900 (7f1a91139)
@@ -9,7 +9,8 @@
     ngx_feature_incs=
     ngx_feature_path=
     ngx_feature_libs="-lprofiler"
-    ngx_feature_test="ProfilerStop()"
+    ngx_feature_test="void ProfilerStop(void);
+                      ProfilerStop()"
     . auto/feature
 
 

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

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

  Renamed: vendor/nginx-1.15.4/auto/lib/libgd/conf (+4 -2) 95%
===================================================================
--- vendor/nginx-1.15.2/auto/lib/libgd/conf    2018-09-26 09:51:37 +0900 (87761f14d)
+++ vendor/nginx-1.15.4/auto/lib/libgd/conf    2018-09-26 09:53:43 +0900 (678639767)
@@ -9,7 +9,8 @@
     ngx_feature_incs="#include <gd.h>"
     ngx_feature_path=
     ngx_feature_libs="-lgd"
-    ngx_feature_test="gdImagePtr img = gdImageCreateFromGifPtr(1, NULL);"
+    ngx_feature_test="gdImagePtr img = gdImageCreateFromGifPtr(1, NULL);
+                      (void) img"
     . auto/feature
 
 
@@ -76,7 +77,8 @@ if [ $ngx_found = yes ]; then
 
     ngx_feature="GD WebP support"
     ngx_feature_name="NGX_HAVE_GD_WEBP"
-    ngx_feature_test="gdImagePtr img = gdImageCreateFromWebpPtr(1, NULL);"
+    ngx_feature_test="gdImagePtr img = gdImageCreateFromWebpPtr(1, NULL);
+                      (void) img"
     . auto/feature
 
 else

  Renamed: vendor/nginx-1.15.4/auto/lib/libxslt/conf (+2 -2) 97%
===================================================================
--- vendor/nginx-1.15.2/auto/lib/libxslt/conf    2018-09-26 09:51:37 +0900 (3a0f37be5)
+++ vendor/nginx-1.15.4/auto/lib/libxslt/conf    2018-09-26 09:53:43 +0900 (3063ac7ce)
@@ -16,8 +16,8 @@
     ngx_feature_libs="-lxml2 -lxslt"
     ngx_feature_test="xmlParserCtxtPtr    ctxt = NULL;
                       xsltStylesheetPtr   sheet = NULL;
-                      xmlDocPtr           doc;
-                      doc = xmlParseChunk(ctxt, NULL, 0, 0);
+                      xmlDocPtr           doc = NULL;
+                      xmlParseChunk(ctxt, NULL, 0, 0);
                       xsltApplyStylesheet(sheet, doc, NULL);"
     . auto/feature
 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.15.4/auto/os/linux (+2 -0) 98%
===================================================================
--- vendor/nginx-1.15.2/auto/os/linux    2018-09-26 09:51:37 +0900 (2c8a9bb8e)
+++ vendor/nginx-1.15.4/auto/os/linux    2018-09-26 09:53:43 +0900 (5e280eca7)
@@ -185,6 +185,8 @@ ngx_feature_test="struct __user_cap_data_struct    data;
                   data.effective = CAP_TO_MASK(CAP_NET_RAW);
                   data.permitted = 0;
 
+                  (void) header;
+                  (void) data;
                   (void) SYS_capset"
 . auto/feature
 

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

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

  Renamed: vendor/nginx-1.15.4/auto/sources (+0 -0) 100%
===================================================================

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.15.4/docs/html/50x.html (+1 -1) 86%
===================================================================
--- vendor/nginx-1.15.2/docs/html/50x.html    2018-09-26 09:51:37 +0900 (f60f5e72d)
+++ vendor/nginx-1.15.4/docs/html/50x.html    2018-09-26 09:53:43 +0900 (9071e0a24)
@@ -15,7 +15,7 @@
 <p>Sorry, the page you are looking for is currently unavailable.<br/>
 Please try again later.</p>
 <p>If you are the system administrator of this resource then you should check
-the <a href="http://nginx.org/r/error_log">error log</a> for details.</p>
+the error log for details.</p>
 <p><em>Faithfully yours, nginx.</em></p>
 </body>
 </html>

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

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

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

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

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

  Renamed: vendor/nginx-1.15.4/docs/xml/nginx/changes.xml (+187 -0) 99%
===================================================================
--- vendor/nginx-1.15.2/docs/xml/nginx/changes.xml    2018-09-26 09:51:37 +0900 (bb8948d77)
+++ vendor/nginx-1.15.4/docs/xml/nginx/changes.xml    2018-09-26 09:53:43 +0900 (02c4b3c24)
@@ -5,6 +5,193 @@
 <change_log title="nginx">
 
 
+<changes ver="1.15.4" date="2018-09-25">
+
+<change type="feature">
+<para lang="ru">
+теперь директиву ssl_early_data можно использовать с OpenSSL.
+</para>
+<para lang="en">
+now the "ssl_early_data" directive can be used with OpenSSL.
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+в модуле ngx_http_uwsgi_module.<br/>
+Спасибо Chris Caputo.
+</para>
+<para lang="en">
+in the ngx_http_uwsgi_module.<br/>
+Thanks to Chris Caputo.
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+соединения к некоторым gRPC-бэкендам могли не кэшироваться
+при использовании директивы keepalive.
+</para>
+<para lang="en">
+connections with some gRPC backends might not be cached
+when using the "keepalive" directive.
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+при использовании директивы error_page для перенаправления ошибок,
+возникающих на ранних этапах обработки запроса,
+в частности ошибок с кодом 400,
+могла происходить утечка сокетов.
+</para>
+<para lang="en">
+a socket leak might occur
+when using the "error_page" directive
+to redirect early request processing errors,
+notably errors with code 400.
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+директива return при возврате ошибок не изменяла код ответа,
+если запрос был перенаправлен с помощью директивы error_page.
+</para>
+<para lang="en">
+the "return" directive did not change the response code when returning errors
+if the request was redirected by the "error_page" directive.
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+стандартные сообщения об ошибках и ответы модуля ngx_http_autoindex_module
+содержали атрибут bgcolor, что могло приводить к их некорректному отображению
+при использовании пользовательских настроек цветов в браузерах.<br/>
+Спасибо Nova DasSarma.
+</para>
+<para lang="en">
+standard error pages and responses of the ngx_http_autoindex_module module
+used the "bgcolor" attribute, and might be displayed incorrectly when using
+custom color settings in browsers.<br/>
+Thanks to Nova DasSarma.
+</para>
+</change>
+
+<change type="change">
+<para lang="ru">
+уровень логгирования ошибок SSL "no suitable key share" и
+"no suitable signature algorithm"
+понижен с уровня crit до info.
+</para>
+<para lang="en">
+the logging level of the "no suitable key share" and
+"no suitable signature algorithm" SSL errors
+has been lowered from "crit" to "info".
+</para>
+</change>
+
+</changes>
+
+
+<changes ver="1.15.3" date="2018-08-28">
+
+<change type="feature">
+<para lang="ru">
+теперь TLSv1.3 можно использовать с BoringSSL.
+</para>
+<para lang="en">
+now TLSv1.3 can be used with BoringSSL.
+</para>
+</change>
+
+<change type="feature">
+<para lang="ru">
+директива ssl_early_data,
+сейчас доступна при использовании BoringSSL.
+</para>
+<para lang="en">
+the "ssl_early_data" directive,
+currently available with BoringSSL.
+</para>
+</change>
+
+<change type="feature">
+<para lang="ru">
+директивы keepalive_timeout и keepalive_requests
+в блоке upstream.
+</para>
+<para lang="en">
+the "keepalive_timeout" and "keepalive_requests" directives
+in the "upstream" block.
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+модуль ngx_http_dav_module
+при копировании файла поверх существующего файла с помощью метода COPY
+не обнулял целевой файл.
+</para>
+<para lang="en">
+the ngx_http_dav_module
+did not truncate destination file when copying a file over an existing one
+with the COPY method.
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+модуль ngx_http_dav_module
+при перемещении файла между файловыми системами с помощью метода MOVE
+устанавливал нулевые права доступа на результирующий файл
+и не сохранял время изменения файла.
+</para>
+<para lang="en">
+the ngx_http_dav_module
+used zero access rights on the destination file
+and did not preserve file modification time
+when moving a file between different file systems with the MOVE method.
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+модуль ngx_http_dav_module
+при копировании файла с помощью метода COPY
+для результирующего файла использовал права доступа по умолчанию.
+</para>
+<para lang="en">
+the ngx_http_dav_module
+used default access rights
+when copying a file with the COPY method.
+</para>
+</change>
+
+<change type="workaround">
+<para lang="ru">
+некоторые клиенты могли не работать при использовании HTTP/2;
+ошибка появилась в 1.13.5.
+</para>
+<para lang="en">
+some clients might not work when using HTTP/2;
+the bug had appeared in 1.13.5.
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+nginx не собирался с LibreSSL 2.8.0.
+</para>
+<para lang="en">
+nginx could not be built with LibreSSL 2.8.0.
+</para>
+</change>
+
+</changes>
+
+
 <changes ver="1.15.2" date="2018-07-24">
 
 <change type="feature">

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

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

  Renamed: vendor/nginx-1.15.4/misc/GNUmakefile (+1 -1) 99%
===================================================================
--- vendor/nginx-1.15.2/misc/GNUmakefile    2018-09-26 09:51:37 +0900 (243a18e73)
+++ vendor/nginx-1.15.4/misc/GNUmakefile    2018-09-26 09:53:43 +0900 (73d8bd922)
@@ -6,7 +6,7 @@ TEMP =		tmp
 
 CC =		cl
 OBJS =		objs.msvc8
-OPENSSL =	openssl-1.0.2o
+OPENSSL =	openssl-1.0.2p
 ZLIB =		zlib-1.2.11
 PCRE =		pcre-8.42
 

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

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

  Renamed: vendor/nginx-1.15.4/src/core/nginx.h (+2 -2) 85%
===================================================================
--- vendor/nginx-1.15.2/src/core/nginx.h    2018-09-26 09:51:37 +0900 (d563a6a39)
+++ vendor/nginx-1.15.4/src/core/nginx.h    2018-09-26 09:53:43 +0900 (9f66765f6)
@@ -9,8 +9,8 @@
 #define _NGINX_H_INCLUDED_
 
 
-#define nginx_version      1015002
-#define NGINX_VERSION      "1.15.2"
+#define nginx_version      1015004
+#define NGINX_VERSION      "1.15.4"
 #define NGINX_VER          "nginx/" NGINX_VERSION
 
 #ifdef NGX_BUILD

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

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

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

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

  Renamed: vendor/nginx-1.15.4/src/core/ngx_conf_file.c (+4 -3) 99%
===================================================================
--- vendor/nginx-1.15.2/src/core/ngx_conf_file.c    2018-09-26 09:51:37 +0900 (ba454dea8)
+++ vendor/nginx-1.15.4/src/core/ngx_conf_file.c    2018-09-26 09:53:43 +0900 (e92cd33c9)
@@ -656,13 +656,14 @@ ngx_conf_read_token(ngx_conf_t *cf)
         }
 
         if (last_space) {
-            if (ch == ' ' || ch == '\t' || ch == CR || ch == LF) {
-                continue;
-            }
 
             start = b->pos - 1;
             start_line = cf->conf_file->line;
 
+            if (ch == ' ' || ch == '\t' || ch == CR || ch == LF) {
+                continue;
+            }
+
             switch (ch) {
 
             case ';':

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

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

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

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

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

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

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.15.4/src/core/ngx_file.c (+13 -10) 97%
===================================================================
--- vendor/nginx-1.15.2/src/core/ngx_file.c    2018-09-26 09:51:37 +0900 (3a94089de)
+++ vendor/nginx-1.15.4/src/core/ngx_file.c    2018-09-26 09:53:43 +0900 (56780303b)
@@ -796,10 +796,12 @@ ngx_copy_file(u_char *from, u_char *to, ngx_copy_file_t *cf)
 {
     char             *buf;
     off_t             size;
+    time_t            time;
     size_t            len;
     ssize_t           n;
     ngx_fd_t          fd, nfd;
     ngx_int_t         rc;
+    ngx_uint_t        access;
     ngx_file_info_t   fi;
 
     rc = NGX_ERROR;
@@ -814,8 +816,10 @@ ngx_copy_file(u_char *from, u_char *to, ngx_copy_file_t *cf)
         goto failed;
     }
 
-    if (cf->size != -1) {
+    if (cf->size != -1 && cf->access != 0 && cf->time != -1) {
         size = cf->size;
+        access = cf->access;
+        time = cf->time;
 
     } else {
         if (ngx_fd_info(fd, &fi) == NGX_FILE_ERROR) {
@@ -825,7 +829,9 @@ ngx_copy_file(u_char *from, u_char *to, ngx_copy_file_t *cf)
             goto failed;
         }
 
-        size = ngx_file_size(&fi);
+        size = (cf->size != -1) ? cf->size : ngx_file_size(&fi);
+        access = cf->access ? cf->access : ngx_file_access(&fi);
+        time = (cf->time != -1) ? cf->time : ngx_file_mtime(&fi);
     }
 
     len = cf->buf_size ? cf->buf_size : 65536;
@@ -839,8 +845,7 @@ ngx_copy_file(u_char *from, u_char *to, ngx_copy_file_t *cf)
         goto failed;
     }
 
-    nfd = ngx_open_file(to, NGX_FILE_WRONLY, NGX_FILE_CREATE_OR_OPEN,
-                        cf->access);
+    nfd = ngx_open_file(to, NGX_FILE_WRONLY, NGX_FILE_TRUNCATE, access);
 
     if (nfd == NGX_INVALID_FILE) {
         ngx_log_error(NGX_LOG_CRIT, cf->log, ngx_errno,
@@ -887,12 +892,10 @@ ngx_copy_file(u_char *from, u_char *to, ngx_copy_file_t *cf)
         size -= n;
     }
 
-    if (cf->time != -1) {
-        if (ngx_set_file_time(to, nfd, cf->time) != NGX_OK) {
-            ngx_log_error(NGX_LOG_ALERT, cf->log, ngx_errno,
-                          ngx_set_file_time_n " \"%s\" failed", to);
-            goto failed;
-        }
+    if (ngx_set_file_time(to, nfd, time) != NGX_OK) {
+        ngx_log_error(NGX_LOG_ALERT, cf->log, ngx_errno,
+                      ngx_set_file_time_n " \"%s\" failed", to);
+        goto failed;
     }
 
     rc = NGX_OK;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.15.4/src/event/ngx_event_openssl.c (+546 -47) 89%
===================================================================
--- vendor/nginx-1.15.2/src/event/ngx_event_openssl.c    2018-09-26 09:51:37 +0900 (96ee10543)
+++ vendor/nginx-1.15.4/src/event/ngx_event_openssl.c    2018-09-26 09:53:43 +0900 (3a0e150d2)
@@ -26,9 +26,23 @@ static void ngx_ssl_info_callback(const ngx_ssl_conn_t *ssl_conn, int where,
 static void ngx_ssl_passwords_cleanup(void *data);
 static int ngx_ssl_new_client_session(ngx_ssl_conn_t *ssl_conn,
     ngx_ssl_session_t *sess);
+#ifdef SSL_READ_EARLY_DATA_SUCCESS
+static ngx_int_t ngx_ssl_try_early_data(ngx_connection_t *c);
+#endif
+#if (NGX_DEBUG)
+static void ngx_ssl_handshake_log(ngx_connection_t *c);
+#endif
 static void ngx_ssl_handshake_handler(ngx_event_t *ev);
+#ifdef SSL_READ_EARLY_DATA_SUCCESS
+static ssize_t ngx_ssl_recv_early(ngx_connection_t *c, u_char *buf,
+    size_t size);
+#endif
 static ngx_int_t ngx_ssl_handle_recv(ngx_connection_t *c, int n);
 static void ngx_ssl_write_handler(ngx_event_t *wev);
+#ifdef SSL_READ_EARLY_DATA_SUCCESS
+static ssize_t ngx_ssl_write_early(ngx_connection_t *c, u_char *data,
+    size_t size);
+#endif
 static void ngx_ssl_read_handler(ngx_event_t *rev);
 static void ngx_ssl_shutdown_handler(ngx_event_t *ev);
 static void ngx_ssl_connection_error(ngx_connection_t *c, int sslerr,
@@ -331,10 +345,19 @@ ngx_ssl_create(ngx_ssl_t *ssl, ngx_uint_t protocols, void *data)
     }
 #endif
 
+#ifdef TLS1_3_VERSION
+    SSL_CTX_set_min_proto_version(ssl->ctx, 0);
+    SSL_CTX_set_max_proto_version(ssl->ctx, TLS1_3_VERSION);
+#endif
+
 #ifdef SSL_OP_NO_COMPRESSION
     SSL_CTX_set_options(ssl->ctx, SSL_OP_NO_COMPRESSION);
 #endif
 
+#ifdef SSL_OP_NO_ANTI_REPLAY
+    SSL_CTX_set_options(ssl->ctx, SSL_OP_NO_ANTI_REPLAY);
+#endif
+
 #ifdef SSL_MODE_RELEASE_BUFFERS
     SSL_CTX_set_mode(ssl->ctx, SSL_MODE_RELEASE_BUFFERS);
 #endif
@@ -838,6 +861,8 @@ ngx_ssl_info_callback(const ngx_ssl_conn_t *ssl_conn, int where, int ret)
     BIO               *rbio, *wbio;
     ngx_connection_t  *c;
 
+#ifndef SSL_OP_NO_RENEGOTIATION
+
     if ((where & SSL_CB_HANDSHAKE_START)
         && SSL_is_server((ngx_ssl_conn_t *) ssl_conn))
     {
@@ -849,6 +874,8 @@ ngx_ssl_info_callback(const ngx_ssl_conn_t *ssl_conn, int where, int ret)
         }
     }
 
+#endif
+
     if ((where & SSL_CB_ACCEPT_LOOP) == SSL_CB_ACCEPT_LOOP) {
         c = ngx_ssl_get_connection((ngx_ssl_conn_t *) ssl_conn);
 
@@ -1164,6 +1191,35 @@ ngx_ssl_ecdh_curve(ngx_conf_t *cf, ngx_ssl_t *ssl, ngx_str_t *name)
 
 
 ngx_int_t
+ngx_ssl_early_data(ngx_conf_t *cf, ngx_ssl_t *ssl, ngx_uint_t enable)
+{
+    if (!enable) {
+        return NGX_OK;
+    }
+
+#ifdef SSL_ERROR_EARLY_DATA_REJECTED
+
+    /* BoringSSL */
+
+    SSL_CTX_set_early_data_enabled(ssl->ctx, 1);
+
+#elif defined SSL_READ_EARLY_DATA_SUCCESS
+
+    /* OpenSSL */
+
+    SSL_CTX_set_max_early_data(ssl->ctx, NGX_SSL_BUFSIZE);
+
+#else
+    ngx_log_error(NGX_LOG_WARN, ssl->log, 0,
+                  "\"ssl_early_data\" is not supported on this platform, "
+                  "ignored");
+#endif
+
+    return NGX_OK;
+}
+
+
+ngx_int_t
 ngx_ssl_client_session_cache(ngx_conf_t *cf, ngx_ssl_t *ssl, ngx_uint_t enable)
 {
     if (!enable) {
@@ -1214,6 +1270,12 @@ ngx_ssl_create_connection(ngx_ssl_t *ssl, ngx_connection_t *c, ngx_uint_t flags)
 
     sc->session_ctx = ssl->ctx;
 
+#ifdef SSL_READ_EARLY_DATA_SUCCESS
+    if (SSL_CTX_get_max_early_data(ssl->ctx)) {
+        sc->try_early_data = 1;
+    }
+#endif
+
     sc->connection = SSL_new(ssl->ctx);
 
     if (sc->connection == NULL) {
@@ -1293,6 +1355,12 @@ ngx_ssl_handshake(ngx_connection_t *c)
     int        n, sslerr;
     ngx_err_t  err;
 
+#ifdef SSL_READ_EARLY_DATA_SUCCESS
+    if (c->ssl->try_early_data) {
+        return ngx_ssl_try_early_data(c);
+    }
+#endif
+
     ngx_ssl_clear_error(c->log);
 
     n = SSL_do_handshake(c->ssl->connection);
@@ -1310,73 +1378,145 @@ ngx_ssl_handshake(ngx_connection_t *c)
         }
 
 #if (NGX_DEBUG)
-        {
-        char         buf[129], *s, *d;
-#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-        const
+        ngx_ssl_handshake_log(c);
 #endif
-        SSL_CIPHER  *cipher;
 
-        cipher = SSL_get_current_cipher(c->ssl->connection);
+        c->ssl->handshaked = 1;
 
-        if (cipher) {
-            SSL_CIPHER_description(cipher, &buf[1], 128);
+        c->recv = ngx_ssl_recv;
+        c->send = ngx_ssl_write;
+        c->recv_chain = ngx_ssl_recv_chain;
+        c->send_chain = ngx_ssl_send_chain;
 
-            for (s = &buf[1], d = buf; *s; s++) {
-                if (*s == ' ' && *d == ' ') {
-                    continue;
-                }
+#ifndef SSL_OP_NO_RENEGOTIATION
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#ifdef SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS
 
-                if (*s == LF || *s == CR) {
-                    continue;
-                }
+        /* initial handshake done, disable renegotiation (CVE-2009-3555) */
+        if (c->ssl->connection->s3 && SSL_is_server(c->ssl->connection)) {
+            c->ssl->connection->s3->flags |= SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS;
+        }
 
-                *++d = *s;
-            }
+#endif
+#endif
+#endif
 
-            if (*d != ' ') {
-                d++;
-            }
+        return NGX_OK;
+    }
 
-            *d = '\0';
+    sslerr = SSL_get_error(c->ssl->connection, n);
 
-            ngx_log_debug2(NGX_LOG_DEBUG_EVENT, c->log, 0,
-                           "SSL: %s, cipher: \"%s\"",
-                           SSL_get_version(c->ssl->connection), &buf[1]);
+    ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0, "SSL_get_error: %d", sslerr);
 
-            if (SSL_session_reused(c->ssl->connection)) {
-                ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, 0,
-                               "SSL reused session");
-            }
+    if (sslerr == SSL_ERROR_WANT_READ) {
+        c->read->ready = 0;
+        c->read->handler = ngx_ssl_handshake_handler;
+        c->write->handler = ngx_ssl_handshake_handler;
 
-        } else {
-            ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, 0,
-                           "SSL no shared ciphers");
+        if (ngx_handle_read_event(c->read, 0) != NGX_OK) {
+            return NGX_ERROR;
+        }
+
+        if (ngx_handle_write_event(c->write, 0) != NGX_OK) {
+            return NGX_ERROR;
+        }
+
+        return NGX_AGAIN;
+    }
+
+    if (sslerr == SSL_ERROR_WANT_WRITE) {
+        c->write->ready = 0;
+        c->read->handler = ngx_ssl_handshake_handler;
+        c->write->handler = ngx_ssl_handshake_handler;
+
+        if (ngx_handle_read_event(c->read, 0) != NGX_OK) {
+            return NGX_ERROR;
+        }
+
+        if (ngx_handle_write_event(c->write, 0) != NGX_OK) {
+            return NGX_ERROR;
+        }
+
+        return NGX_AGAIN;
+    }
+
+    err = (sslerr == SSL_ERROR_SYSCALL) ? ngx_errno : 0;
+
+    c->ssl->no_wait_shutdown = 1;
+    c->ssl->no_send_shutdown = 1;
+    c->read->eof = 1;
+
+    if (sslerr == SSL_ERROR_ZERO_RETURN || ERR_peek_error() == 0) {
+        ngx_connection_error(c, err,
+                             "peer closed connection in SSL handshake");
+
+        return NGX_ERROR;
+    }
+
+    c->read->error = 1;
+
+    ngx_ssl_connection_error(c, sslerr, err, "SSL_do_handshake() failed");
+
+    return NGX_ERROR;
+}
+
+
+#ifdef SSL_READ_EARLY_DATA_SUCCESS
+
+static ngx_int_t
+ngx_ssl_try_early_data(ngx_connection_t *c)
+{
+    int        n, sslerr;
+    u_char     buf;
+    size_t     readbytes;
+    ngx_err_t  err;
+
+    ngx_ssl_clear_error(c->log);
+
+    readbytes = 0;
+
+    n = SSL_read_early_data(c->ssl->connection, &buf, 1, &readbytes);
+
+    ngx_log_debug2(NGX_LOG_DEBUG_EVENT, c->log, 0,
+                   "SSL_read_early_data: %d, %uz", n, readbytes);
+
+    if (n == SSL_READ_EARLY_DATA_FINISH) {
+        c->ssl->try_early_data = 0;
+        return ngx_ssl_handshake(c);
+    }
+
+    if (n == SSL_READ_EARLY_DATA_SUCCESS) {
+
+        if (ngx_handle_read_event(c->read, 0) != NGX_OK) {
+            return NGX_ERROR;
         }
+
+        if (ngx_handle_write_event(c->write, 0) != NGX_OK) {
+            return NGX_ERROR;
         }
+
+#if (NGX_DEBUG)
+        ngx_ssl_handshake_log(c);
 #endif
 
+        c->ssl->try_early_data = 0;
+
+        c->ssl->early_buf = buf;
+        c->ssl->early_preread = 1;
+
         c->ssl->handshaked = 1;
+        c->ssl->in_early = 1;
 
         c->recv = ngx_ssl_recv;
         c->send = ngx_ssl_write;
         c->recv_chain = ngx_ssl_recv_chain;
         c->send_chain = ngx_ssl_send_chain;
 
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
-#ifdef SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS
-
-        /* initial handshake done, disable renegotiation (CVE-2009-3555) */
-        if (c->ssl->connection->s3 && SSL_is_server(c->ssl->connection)) {
-            c->ssl->connection->s3->flags |= SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS;
-        }
-
-#endif
-#endif
-
         return NGX_OK;
     }
 
+    /* SSL_READ_EARLY_DATA_ERROR */
+
     sslerr = SSL_get_error(c->ssl->connection, n);
 
     ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0, "SSL_get_error: %d", sslerr);
@@ -1428,11 +1568,65 @@ ngx_ssl_handshake(ngx_connection_t *c)
 
     c->read->error = 1;
 
-    ngx_ssl_connection_error(c, sslerr, err, "SSL_do_handshake() failed");
+    ngx_ssl_connection_error(c, sslerr, err, "SSL_read_early_data() failed");
 
     return NGX_ERROR;
 }
 
+#endif
+
+
+#if (NGX_DEBUG)
+
+static void
+ngx_ssl_handshake_log(ngx_connection_t *c)
+{
+    char         buf[129], *s, *d;
+#if OPENSSL_VERSION_NUMBER >= 0x10000000L
+    const
+#endif
+    SSL_CIPHER  *cipher;
+
+    cipher = SSL_get_current_cipher(c->ssl->connection);
+
+    if (cipher) {
+        SSL_CIPHER_description(cipher, &buf[1], 128);
+
+        for (s = &buf[1], d = buf; *s; s++) {
+            if (*s == ' ' && *d == ' ') {
+                continue;
+            }
+
+            if (*s == LF || *s == CR) {
+                continue;
+            }
+
+            *++d = *s;
+        }
+
+        if (*d != ' ') {
+            d++;
+        }
+
+        *d = '\0';
+
+        ngx_log_debug2(NGX_LOG_DEBUG_EVENT, c->log, 0,
+                       "SSL: %s, cipher: \"%s\"",
+                       SSL_get_version(c->ssl->connection), &buf[1]);
+
+        if (SSL_session_reused(c->ssl->connection)) {
+            ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, 0,
+                           "SSL reused session");
+        }
+
+    } else {
+        ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, 0,
+                       "SSL no shared ciphers");
+    }
+}
+
+#endif
+
 
 static void
 ngx_ssl_handshake_handler(ngx_event_t *ev)
@@ -1521,6 +1715,12 @@ ngx_ssl_recv(ngx_connection_t *c, u_char *buf, size_t size)
 {
     int  n, bytes;
 
+#ifdef SSL_READ_EARLY_DATA_SUCCESS
+    if (c->ssl->in_early) {
+        return ngx_ssl_recv_early(c, buf, size);
+    }
+#endif
+
     if (c->ssl->last == NGX_ERROR) {
         c->read->error = 1;
         return NGX_ERROR;
@@ -1594,12 +1794,131 @@ ngx_ssl_recv(ngx_connection_t *c, u_char *buf, size_t size)
 }
 
 
+#ifdef SSL_READ_EARLY_DATA_SUCCESS
+
+static ssize_t
+ngx_ssl_recv_early(ngx_connection_t *c, u_char *buf, size_t size)
+{
+    int        n, bytes;
+    size_t     readbytes;
+
+    if (c->ssl->last == NGX_ERROR) {
+        c->read->error = 1;
+        return NGX_ERROR;
+    }
+
+    if (c->ssl->last == NGX_DONE) {
+        c->read->ready = 0;
+        c->read->eof = 1;
+        return 0;
+    }
+
+    bytes = 0;
+
+    ngx_ssl_clear_error(c->log);
+
+    if (c->ssl->early_preread) {
+
+        if (size == 0) {
+            c->read->ready = 0;
+            c->read->eof = 1;
+            return 0;
+        }
+
+        *buf = c->ssl->early_buf;
+
+        c->ssl->early_preread = 0;
+
+        bytes = 1;
+        size -= 1;
+        buf += 1;
+    }
+
+    /*
+     * SSL_read_early_data() may return data in parts, so try to read
+     * until SSL_read_early_data() would return no data
+     */
+
+    for ( ;; ) {
+
+        readbytes = 0;
+
+        n = SSL_read_early_data(c->ssl->connection, buf, size, &readbytes);
+
+        ngx_log_debug2(NGX_LOG_DEBUG_EVENT, c->log, 0,
+                       "SSL_read_early_data: %d, %uz", n, readbytes);
+
+        if (n == SSL_READ_EARLY_DATA_SUCCESS) {
+
+            c->ssl->last = ngx_ssl_handle_recv(c, 1);
+
+            bytes += readbytes;
+            size -= readbytes;
+
+            if (size == 0) {
+                c->read->ready = 1;
+                return bytes;
+            }
+
+            buf += readbytes;
+
+            continue;
+        }
+
+        if (n == SSL_READ_EARLY_DATA_FINISH) {
+
+            c->ssl->last = ngx_ssl_handle_recv(c, 1);
+            c->ssl->in_early = 0;
+
+            if (bytes) {
+                c->read->ready = 1;
+                return bytes;
+            }
+
+            return ngx_ssl_recv(c, buf, size);
+        }
+
+        /* SSL_READ_EARLY_DATA_ERROR */
+
+        c->ssl->last = ngx_ssl_handle_recv(c, 0);
+
+        if (bytes) {
+            if (c->ssl->last != NGX_AGAIN) {
+                c->read->ready = 1;
+            }
+
+            return bytes;
+        }
+
+        switch (c->ssl->last) {
+
+        case NGX_DONE:
+            c->read->ready = 0;
+            c->read->eof = 1;
+            return 0;
+
+        case NGX_ERROR:
+            c->read->error = 1;
+
+            /* fall through */
+
+        case NGX_AGAIN:
+            return c->ssl->last;
+        }
+    }
+}
+
+#endif
+
+
 static ngx_int_t
 ngx_ssl_handle_recv(ngx_connection_t *c, int n)
 {
     int        sslerr;
     ngx_err_t  err;
 
+#ifndef SSL_OP_NO_RENEGOTIATION
+
     if (c->ssl->renegotiation) {
         /*
          * disable renegotiation (CVE-2009-3555):
@@ -1622,6 +1941,8 @@ ngx_ssl_handle_recv(ngx_connection_t *c, int n)
         return NGX_ERROR;
     }
 
+#endif
+
     if (n > 0) {
 
         if (c->ssl->saved_write_handler) {
@@ -1647,14 +1968,28 @@ ngx_ssl_handle_recv(ngx_connection_t *c, int n)
     ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0, "SSL_get_error: %d", sslerr);
 
     if (sslerr == SSL_ERROR_WANT_READ) {
+
+        if (c->ssl->saved_write_handler) {
+
+            c->write->handler = c->ssl->saved_write_handler;
+            c->ssl->saved_write_handler = NULL;
+            c->write->ready = 1;
+
+            if (ngx_handle_write_event(c->write, 0) != NGX_OK) {
+                return NGX_ERROR;
+            }
+
+            ngx_post_event(c->write, &ngx_posted_events);
+        }
+
         c->read->ready = 0;
         return NGX_AGAIN;
     }
 
     if (sslerr == SSL_ERROR_WANT_WRITE) {
 
-        ngx_log_error(NGX_LOG_INFO, c->log, 0,
-                      "peer started SSL renegotiation");
+        ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, 0,
+                       "SSL_read: want write");
 
         c->write->ready = 0;
 
@@ -1696,6 +2031,8 @@ ngx_ssl_write_handler(ngx_event_t *wev)
 
     c = wev->data;
 
+    ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, 0, "SSL write handler");
+
     c->read->handler(c->read);
 }
 
@@ -1869,6 +2206,12 @@ ngx_ssl_write(ngx_connection_t *c, u_char *data, size_t size)
     int        n, sslerr;
     ngx_err_t  err;
 
+#ifdef SSL_READ_EARLY_DATA_SUCCESS
+    if (c->ssl->in_early) {
+        return ngx_ssl_write_early(c, data, size);
+    }
+#endif
+
     ngx_ssl_clear_error(c->log);
 
     ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0, "SSL to write: %uz", size);
@@ -1904,14 +2247,28 @@ ngx_ssl_write(ngx_connection_t *c, u_char *data, size_t size)
     ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0, "SSL_get_error: %d", sslerr);
 
     if (sslerr == SSL_ERROR_WANT_WRITE) {
+
+        if (c->ssl->saved_read_handler) {
+
+            c->read->handler = c->ssl->saved_read_handler;
+            c->ssl->saved_read_handler = NULL;
+            c->read->ready = 1;
+
+            if (ngx_handle_read_event(c->read, 0) != NGX_OK) {
+                return NGX_ERROR;
+            }
+
+            ngx_post_event(c->read, &ngx_posted_events);
+        }
+
         c->write->ready = 0;
         return NGX_AGAIN;
     }
 
     if (sslerr == SSL_ERROR_WANT_READ) {
 
-        ngx_log_error(NGX_LOG_INFO, c->log, 0,
-                      "peer started SSL renegotiation");
+        ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, 0,
+                       "SSL_write: want read");
 
         c->read->ready = 0;
 
@@ -1942,6 +2299,107 @@ ngx_ssl_write(ngx_connection_t *c, u_char *data, size_t size)
 }
 
 
+#ifdef SSL_READ_EARLY_DATA_SUCCESS
+
+ssize_t
+ngx_ssl_write_early(ngx_connection_t *c, u_char *data, size_t size)
+{
+    int        n, sslerr;
+    size_t     written;
+    ngx_err_t  err;
+
+    ngx_ssl_clear_error(c->log);
+
+    ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0, "SSL to write: %uz", size);
+
+    written = 0;
+
+    n = SSL_write_early_data(c->ssl->connection, data, size, &written);
+
+    ngx_log_debug2(NGX_LOG_DEBUG_EVENT, c->log, 0,
+                   "SSL_write_early_data: %d, %uz", n, written);
+
+    if (n > 0) {
+
+        if (c->ssl->saved_read_handler) {
+
+            c->read->handler = c->ssl->saved_read_handler;
+            c->ssl->saved_read_handler = NULL;
+            c->read->ready = 1;
+
+            if (ngx_handle_read_event(c->read, 0) != NGX_OK) {
+                return NGX_ERROR;
+            }
+
+            ngx_post_event(c->read, &ngx_posted_events);
+        }
+
+        c->sent += written;
+
+        return written;
+    }
+
+    sslerr = SSL_get_error(c->ssl->connection, n);
+
+    err = (sslerr == SSL_ERROR_SYSCALL) ? ngx_errno : 0;
+
+    ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0, "SSL_get_error: %d", sslerr);
+
+    if (sslerr == SSL_ERROR_WANT_WRITE) {
+
+        if (c->ssl->saved_read_handler) {
+
+            c->read->handler = c->ssl->saved_read_handler;
+            c->ssl->saved_read_handler = NULL;
+            c->read->ready = 1;
+
+            if (ngx_handle_read_event(c->read, 0) != NGX_OK) {
+                return NGX_ERROR;
+            }
+
+            ngx_post_event(c->read, &ngx_posted_events);
+        }
+
+        c->write->ready = 0;
+        return NGX_AGAIN;
+    }
+
+    if (sslerr == SSL_ERROR_WANT_READ) {
+
+        ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, 0,
+                       "SSL_write_early_data: want read");
+
+        c->read->ready = 0;
+
+        if (ngx_handle_read_event(c->read, 0) != NGX_OK) {
+            return NGX_ERROR;
+        }
+
+        /*
+         * we do not set the timer because there is already
+         * the write event timer
+         */
+
+        if (c->ssl->saved_read_handler == NULL) {
+            c->ssl->saved_read_handler = c->read->handler;
+            c->read->handler = ngx_ssl_read_handler;
+        }
+
+        return NGX_AGAIN;
+    }
+
+    c->ssl->no_wait_shutdown = 1;
+    c->ssl->no_send_shutdown = 1;
+    c->write->error = 1;
+
+    ngx_ssl_connection_error(c, sslerr, err, "SSL_write_early_data() failed");
+
+    return NGX_ERROR;
+}
+
+#endif
+
+
 static void
 ngx_ssl_read_handler(ngx_event_t *rev)
 {
@@ -1949,6 +2407,8 @@ ngx_ssl_read_handler(ngx_event_t *rev)
 
     c = rev->data;
 
+    ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, 0, "SSL read handler");
+
     c->write->handler(c->write);
 }
 
@@ -2125,6 +2585,12 @@ ngx_ssl_connection_error(ngx_connection_t *c, int sslerr, ngx_err_t err,
 
             /* handshake failures */
         if (n == SSL_R_BAD_CHANGE_CIPHER_SPEC                        /*  103 */
+#ifdef SSL_R_NO_SUITABLE_KEY_SHARE
+            || n == SSL_R_NO_SUITABLE_KEY_SHARE                      /*  101 */
+#endif
+#ifdef SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM
+            || n == SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM            /*  118 */
+#endif
             || n == SSL_R_BLOCK_CIPHER_PAD_IS_WRONG                  /*  129 */
             || n == SSL_R_DIGEST_CHECK_FAILED                        /*  149 */
             || n == SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST              /*  151 */
@@ -2146,7 +2612,13 @@ ngx_ssl_connection_error(ngx_connection_t *c, int sslerr, ngx_err_t err,
             || n == SSL_R_UNEXPECTED_RECORD                          /*  245 */
             || n == SSL_R_UNKNOWN_ALERT_TYPE                         /*  246 */
             || n == SSL_R_UNKNOWN_PROTOCOL                           /*  252 */
+#ifdef SSL_R_NO_COMMON_SIGNATURE_ALGORITHMS
+            || n == SSL_R_NO_COMMON_SIGNATURE_ALGORITHMS             /*  253 */
+#endif
             || n == SSL_R_UNSUPPORTED_PROTOCOL                       /*  258 */
+#ifdef SSL_R_NO_SHARED_GROUP
+            || n == SSL_R_NO_SHARED_GROUP                            /*  266 */
+#endif
             || n == SSL_R_WRONG_VERSION_NUMBER                       /*  267 */
             || n == SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC        /*  281 */
 #ifdef SSL_R_RENEGOTIATE_EXT_TOO_LONG
@@ -3619,6 +4091,33 @@ ngx_ssl_get_session_reused(ngx_connection_t *c, ngx_pool_t *pool, ngx_str_t *s)
 
 
 ngx_int_t
+ngx_ssl_get_early_data(ngx_connection_t *c, ngx_pool_t *pool, ngx_str_t *s)
+{
+    s->len = 0;
+
+#ifdef SSL_ERROR_EARLY_DATA_REJECTED
+
+    /* BoringSSL */
+
+    if (SSL_in_early_data(c->ssl->connection)) {
+        ngx_str_set(s, "1");
+    }
+
+#elif defined SSL_READ_EARLY_DATA_SUCCESS
+
+    /* OpenSSL */
+
+    if (!SSL_is_init_finished(c->ssl->connection)) {
+        ngx_str_set(s, "1");
+    }
+
+#endif
+
+    return NGX_OK;
+}
+
+
+ngx_int_t
 ngx_ssl_get_server_name(ngx_connection_t *c, ngx_pool_t *pool, ngx_str_t *s)
 {
 #ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME

  Renamed: vendor/nginx-1.15.4/src/event/ngx_event_openssl.h (+13 -0) 95%
===================================================================
--- vendor/nginx-1.15.2/src/event/ngx_event_openssl.h    2018-09-26 09:51:37 +0900 (22350d54b)
+++ vendor/nginx-1.15.4/src/event/ngx_event_openssl.h    2018-09-26 09:53:43 +0900 (abd84ccf0)
@@ -36,8 +36,12 @@
 
 #if (defined LIBRESSL_VERSION_NUMBER && OPENSSL_VERSION_NUMBER == 0x20000000L)
 #undef OPENSSL_VERSION_NUMBER
+#if (LIBRESSL_VERSION_NUMBER >= 0x2080000fL)
+#define OPENSSL_VERSION_NUMBER  0x1010000fL
+#else
 #define OPENSSL_VERSION_NUMBER  0x1000107fL
 #endif
+#endif
 
 
 #if (OPENSSL_VERSION_NUMBER >= 0x10100001L)
@@ -83,12 +87,17 @@ struct ngx_ssl_connection_s {
     ngx_event_handler_pt        saved_read_handler;
     ngx_event_handler_pt        saved_write_handler;
 
+    u_char                      early_buf;
+
     unsigned                    handshaked:1;
     unsigned                    renegotiation:1;
     unsigned                    buffer:1;
     unsigned                    no_wait_shutdown:1;
     unsigned                    no_send_shutdown:1;
     unsigned                    handshake_buffer_set:1;
+    unsigned                    try_early_data:1;
+    unsigned                    in_early:1;
+    unsigned                    early_preread:1;
 };
 
 
@@ -171,6 +180,8 @@ RSA *ngx_ssl_rsa512_key_callback(ngx_ssl_conn_t *ssl_conn, int is_export,
 ngx_array_t *ngx_ssl_read_password_file(ngx_conf_t *cf, ngx_str_t *file);
 ngx_int_t ngx_ssl_dhparam(ngx_conf_t *cf, ngx_ssl_t *ssl, ngx_str_t *file);
 ngx_int_t ngx_ssl_ecdh_curve(ngx_conf_t *cf, ngx_ssl_t *ssl, ngx_str_t *name);
+ngx_int_t ngx_ssl_early_data(ngx_conf_t *cf, ngx_ssl_t *ssl,
+    ngx_uint_t enable);
 ngx_int_t ngx_ssl_client_session_cache(ngx_conf_t *cf, ngx_ssl_t *ssl,
     ngx_uint_t enable);
 ngx_int_t ngx_ssl_session_cache(ngx_ssl_t *ssl, ngx_str_t *sess_ctx,
@@ -213,6 +224,8 @@ ngx_int_t ngx_ssl_get_session_id(ngx_connection_t *c, ngx_pool_t *pool,
     ngx_str_t *s);
 ngx_int_t ngx_ssl_get_session_reused(ngx_connection_t *c, ngx_pool_t *pool,
     ngx_str_t *s);
+ngx_int_t ngx_ssl_get_early_data(ngx_connection_t *c, ngx_pool_t *pool,
+    ngx_str_t *s);
 ngx_int_t ngx_ssl_get_server_name(ngx_connection_t *c, ngx_pool_t *pool,
     ngx_str_t *s);
 ngx_int_t ngx_ssl_get_raw_certificate(ngx_connection_t *c, ngx_pool_t *pool,

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

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

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

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

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

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.15.4/src/http/modules/ngx_http_autoindex_module.c (+1 -1) 99%
===================================================================
--- vendor/nginx-1.15.2/src/http/modules/ngx_http_autoindex_module.c    2018-09-26 09:51:37 +0900 (94b91db80)
+++ vendor/nginx-1.15.4/src/http/modules/ngx_http_autoindex_module.c    2018-09-26 09:53:43 +0900 (d59fba237)
@@ -452,7 +452,7 @@ ngx_http_autoindex_html(ngx_http_request_t *r, ngx_array_t *entries)
 
     static u_char  header[] =
         "</title></head>" CRLF
-        "<body bgcolor=\"white\">" CRLF
+        "<body>" CRLF
         "<h1>Index of "
     ;
 

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

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

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

  Renamed: vendor/nginx-1.15.4/src/http/modules/ngx_http_dav_module.c (+1 -3) 99%
===================================================================
--- vendor/nginx-1.15.2/src/http/modules/ngx_http_dav_module.c    2018-09-26 09:51:37 +0900 (55ad9eb19)
+++ vendor/nginx-1.15.4/src/http/modules/ngx_http_dav_module.c    2018-09-26 09:53:43 +0900 (95c7b3299)
@@ -841,11 +841,9 @@ overwrite_done:
             return NGX_HTTP_INTERNAL_SERVER_ERROR;
         }
 
-        dlcf = ngx_http_get_module_loc_conf(r, ngx_http_dav_module);
-
         cf.size = ngx_file_size(&fi);
         cf.buf_size = 0;
-        cf.access = dlcf->access;
+        cf.access = ngx_file_access(&fi);
         cf.time = ngx_file_mtime(&fi);
         cf.log = r->connection->log;
 

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

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

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

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

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

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

  Renamed: vendor/nginx-1.15.4/src/http/modules/ngx_http_grpc_module.c (+79 -33) 98%
===================================================================
--- vendor/nginx-1.15.2/src/http/modules/ngx_http_grpc_module.c    2018-09-26 09:51:37 +0900 (7fbf7366f)
+++ vendor/nginx-1.15.4/src/http/modules/ngx_http_grpc_module.c    2018-09-26 09:53:43 +0900 (17b0a267c)
@@ -109,8 +109,10 @@ typedef struct {
 
     unsigned                   header_sent:1;
     unsigned                   output_closed:1;
+    unsigned                   output_blocked:1;
     unsigned                   parsing_headers:1;
     unsigned                   end_stream:1;
+    unsigned                   done:1;
     unsigned                   status:1;
 
     ngx_http_request_t        *request;
@@ -1072,8 +1074,10 @@ ngx_http_grpc_reinit_request(ngx_http_request_t *r)
     ctx->state = 0;
     ctx->header_sent = 0;
     ctx->output_closed = 0;
+    ctx->output_blocked = 0;
     ctx->parsing_headers = 0;
     ctx->end_stream = 0;
+    ctx->done = 0;
     ctx->status = 0;
     ctx->connection = NULL;
 
@@ -1093,6 +1097,7 @@ ngx_http_grpc_body_output_filter(void *data, ngx_chain_t *in)
     ngx_int_t               rc;
     ngx_uint_t              next, last;
     ngx_chain_t            *cl, *out, **ll;
+    ngx_http_upstream_t    *u;
     ngx_http_grpc_ctx_t    *ctx;
     ngx_http_grpc_frame_t  *f;
 
@@ -1407,6 +1412,36 @@ ngx_http_grpc_body_output_filter(void *data, ngx_chain_t *in)
         rc = NGX_AGAIN;
     }
 
+    if (rc == NGX_AGAIN) {
+        ctx->output_blocked = 1;
+
+    } else {
+        ctx->output_blocked = 0;
+    }
+
+    if (ctx->done) {
+
+        /*
+         * We have already got the response and were sending some additional
+         * control frames.  Even if there is still something unsent, stop
+         * here anyway.
+         */
+
+        u = r->upstream;
+        u->length = 0;
+
+        if (ctx->in == NULL
+            && ctx->out == NULL
+            && ctx->output_closed
+            && !ctx->output_blocked
+            && ctx->state == ngx_http_grpc_st_start)
+        {
+            u->keepalive = 1;
+        }
+
+        ngx_post_event(u->peer.connection->read, &ngx_posted_events);
+    }
+
     return rc;
 }
 
@@ -1749,6 +1784,7 @@ ngx_http_grpc_process_header(ngx_http_request_t *r)
                     if (ctx->in == NULL
                         && ctx->out == NULL
                         && ctx->output_closed
+                        && !ctx->output_blocked
                         && b->last == b->pos)
                     {
                         u->keepalive = 1;
@@ -1832,6 +1868,34 @@ ngx_http_grpc_filter(void *data, ssize_t bytes)
             rc = ngx_http_grpc_parse_frame(r, ctx, b);
 
             if (rc == NGX_AGAIN) {
+
+                if (ctx->done) {
+
+                    /*
+                     * We have finished parsing the response and the
+                     * remaining control frames.  If there are unsent
+                     * control frames, post a write event to send them.
+                     */
+
+                    if (ctx->out) {
+                        ngx_post_event(u->peer.connection->write,
+                                       &ngx_posted_events);
+                        return NGX_AGAIN;
+                    }
+
+                    u->length = 0;
+
+                    if (ctx->in == NULL
+                        && ctx->output_closed
+                        && !ctx->output_blocked
+                        && ctx->state == ngx_http_grpc_st_start)
+                    {
+                        u->keepalive = 1;
+                    }
+
+                    break;
+                }
+
                 return NGX_AGAIN;
             }
 
@@ -1898,6 +1962,13 @@ ngx_http_grpc_filter(void *data, ssize_t bytes)
                 return NGX_ERROR;
             }
 
+            if (ctx->stream_id && ctx->done) {
+                ngx_log_error(NGX_LOG_ERR, r->connection->log, 0,
+                              "upstream sent frame for closed stream %ui",
+                              ctx->stream_id);
+                return NGX_ERROR;
+            }
+
             ctx->padding = 0;
         }
 
@@ -1914,17 +1985,7 @@ ngx_http_grpc_filter(void *data, ssize_t bytes)
             ctx->state = ngx_http_grpc_st_start;
 
             if (ctx->flags & NGX_HTTP_V2_END_STREAM_FLAG) {
-                u->length = 0;
-
-                if (ctx->in == NULL
-                    && ctx->out == NULL
-                    && ctx->output_closed
-                    && b->last == b->pos)
-                {
-                    u->keepalive = 1;
-                }
-
-                break;
+                ctx->done = 1;
             }
 
             continue;
@@ -2094,17 +2155,8 @@ ngx_http_grpc_filter(void *data, ssize_t bytes)
                                    "grpc trailer done");
 
                     if (ctx->end_stream) {
-                        u->length = 0;
-
-                        if (ctx->in == NULL
-                            && ctx->out == NULL
-                            && ctx->output_closed
-                            && b->last == b->pos)
-                        {
-                            u->keepalive = 1;
-                        }
-
-                        return NGX_OK;
+                        ctx->done = 1;
+                        break;
                     }
 
                     ngx_log_error(NGX_LOG_ERR, r->connection->log, 0,
@@ -2121,6 +2173,10 @@ ngx_http_grpc_filter(void *data, ssize_t bytes)
                 return NGX_ERROR;
             }
 
+            if (rc == NGX_HTTP_PARSE_HEADER_DONE) {
+                continue;
+            }
+
             /* rc == NGX_AGAIN */
 
             if (ctx->rest == 0) {
@@ -2237,17 +2293,7 @@ ngx_http_grpc_filter(void *data, ssize_t bytes)
         ctx->state = ngx_http_grpc_st_start;
 
         if (ctx->flags & NGX_HTTP_V2_END_STREAM_FLAG) {
-            u->length = 0;
-
-            if (ctx->in == NULL
-                && ctx->out == NULL
-                && ctx->output_closed
-                && b->last == b->pos)
-            {
-                u->keepalive = 1;
-            }
-
-            break;
+            ctx->done = 1;
         }
     }
 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.15.4/src/http/modules/ngx_http_rewrite_module.c (+1 -9) 99%
===================================================================
--- vendor/nginx-1.15.2/src/http/modules/ngx_http_rewrite_module.c    2018-09-26 09:51:37 +0900 (a6f1fc820)
+++ vendor/nginx-1.15.4/src/http/modules/ngx_http_rewrite_module.c    2018-09-26 09:53:43 +0900 (3b49c455c)
@@ -180,15 +180,7 @@ ngx_http_rewrite_handler(ngx_http_request_t *r)
         code(e);
     }
 
-    if (e->status < NGX_HTTP_BAD_REQUEST) {
-        return e->status;
-    }
-
-    if (r->err_status == 0) {
-        return e->status;
-    }
-
-    return r->err_status;
+    return e->status;
 }
 
 

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

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

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

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

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

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

  Renamed: vendor/nginx-1.15.4/src/http/modules/ngx_http_ssl_module.c (+18 -0) 98%
===================================================================
--- vendor/nginx-1.15.2/src/http/modules/ngx_http_ssl_module.c    2018-09-26 09:51:37 +0900 (7e9544127)
+++ vendor/nginx-1.15.4/src/http/modules/ngx_http_ssl_module.c    2018-09-26 09:53:43 +0900 (9e243ea05)
@@ -239,6 +239,13 @@ static ngx_command_t  ngx_http_ssl_commands[] = {
       offsetof(ngx_http_ssl_srv_conf_t, stapling_verify),
       NULL },
 
+    { ngx_string("ssl_early_data"),
+      NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_CONF_FLAG,
+      ngx_conf_set_flag_slot,
+      NGX_HTTP_SRV_CONF_OFFSET,
+      offsetof(ngx_http_ssl_srv_conf_t, early_data),
+      NULL },
+
       ngx_null_command
 };
 
@@ -294,6 +301,10 @@ static ngx_http_variable_t  ngx_http_ssl_vars[] = {
     { ngx_string("ssl_session_reused"), NULL, ngx_http_ssl_variable,
       (uintptr_t) ngx_ssl_get_session_reused, NGX_HTTP_VAR_CHANGEABLE, 0 },
 
+    { ngx_string("ssl_early_data"), NULL, ngx_http_ssl_variable,
+      (uintptr_t) ngx_ssl_get_early_data,
+      NGX_HTTP_VAR_CHANGEABLE|NGX_HTTP_VAR_NOCACHEABLE, 0 },
+
     { ngx_string("ssl_server_name"), NULL, ngx_http_ssl_variable,
       (uintptr_t) ngx_ssl_get_server_name, NGX_HTTP_VAR_CHANGEABLE, 0 },
 
@@ -552,6 +563,7 @@ ngx_http_ssl_create_srv_conf(ngx_conf_t *cf)
 
     sscf->enable = NGX_CONF_UNSET;
     sscf->prefer_server_ciphers = NGX_CONF_UNSET;
+    sscf->early_data = NGX_CONF_UNSET;
     sscf->buffer_size = NGX_CONF_UNSET_SIZE;
     sscf->verify = NGX_CONF_UNSET_UINT;
     sscf->verify_depth = NGX_CONF_UNSET_UINT;
@@ -594,6 +606,8 @@ ngx_http_ssl_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child)
     ngx_conf_merge_value(conf->prefer_server_ciphers,
                          prev->prefer_server_ciphers, 0);
 
+    ngx_conf_merge_value(conf->early_data, prev->early_data, 0);
+
     ngx_conf_merge_bitmask_value(conf->protocols, prev->protocols,
                          (NGX_CONF_BITMASK_SET|NGX_SSL_TLSv1
                           |NGX_SSL_TLSv1_1|NGX_SSL_TLSv1_2));
@@ -809,6 +823,10 @@ ngx_http_ssl_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child)
 
     }
 
+    if (ngx_ssl_early_data(cf, &conf->ssl, conf->early_data) != NGX_OK) {
+        return NGX_CONF_ERROR;
+    }
+
     return NGX_CONF_OK;
 }
 

  Renamed: vendor/nginx-1.15.4/src/http/modules/ngx_http_ssl_module.h (+1 -0) 97%
===================================================================
--- vendor/nginx-1.15.2/src/http/modules/ngx_http_ssl_module.h    2018-09-26 09:51:37 +0900 (57f5941d4)
+++ vendor/nginx-1.15.4/src/http/modules/ngx_http_ssl_module.h    2018-09-26 09:53:43 +0900 (fb3219b63)
@@ -20,6 +20,7 @@ typedef struct {
     ngx_ssl_t                       ssl;
 
     ngx_flag_t                      prefer_server_ciphers;
+    ngx_flag_t                      early_data;
 
     ngx_uint_t                      protocols;
 

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

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

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

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

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

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

  Renamed: vendor/nginx-1.15.4/src/http/modules/ngx_http_upstream_keepalive_module.c (+36 -5) 93%
===================================================================
--- vendor/nginx-1.15.2/src/http/modules/ngx_http_upstream_keepalive_module.c    2018-09-26 09:51:37 +0900 (90a226d91)
+++ vendor/nginx-1.15.4/src/http/modules/ngx_http_upstream_keepalive_module.c    2018-09-26 09:53:43 +0900 (bdc4ae5c7)
@@ -12,6 +12,8 @@
 
 typedef struct {
     ngx_uint_t                         max_cached;
+    ngx_uint_t                         requests;
+    ngx_msec_t                         timeout;
 
     ngx_queue_t                        cache;
     ngx_queue_t                        free;
@@ -84,6 +86,20 @@ static ngx_command_t  ngx_http_upstream_keepalive_commands[] = {
       0,
       NULL },
 
+    { ngx_string("keepalive_timeout"),
+      NGX_HTTP_UPS_CONF|NGX_CONF_TAKE1,
+      ngx_conf_set_msec_slot,
+      NGX_HTTP_SRV_CONF_OFFSET,
+      offsetof(ngx_http_upstream_keepalive_srv_conf_t, timeout),
+      NULL },
+
+    { ngx_string("keepalive_requests"),
+      NGX_HTTP_UPS_CONF|NGX_CONF_TAKE1,
+      ngx_conf_set_num_slot,
+      NGX_HTTP_SRV_CONF_OFFSET,
+      offsetof(ngx_http_upstream_keepalive_srv_conf_t, requests),
+      NULL },
+
       ngx_null_command
 };
 
@@ -133,6 +149,9 @@ ngx_http_upstream_init_keepalive(ngx_conf_t *cf,
     kcf = ngx_http_conf_upstream_srv_conf(us,
                                           ngx_http_upstream_keepalive_module);
 
+    ngx_conf_init_msec_value(kcf->timeout, 60000);
+    ngx_conf_init_uint_value(kcf->requests, 100);
+
     if (kcf->original_init_upstream(cf, us) != NGX_OK) {
         return NGX_ERROR;
     }
@@ -261,6 +280,10 @@ found:
     c->write->log = pc->log;
     c->pool->log = pc->log;
 
+    if (c->read->timer_set) {
+        ngx_del_timer(c->read);
+    }
+
     pc->connection = c;
     pc->cached = 1;
 
@@ -298,6 +321,10 @@ ngx_http_upstream_free_keepalive_peer(ngx_peer_connection_t *pc, void *data,
         goto invalid;
     }
 
+    if (c->requests >= kp->conf->requests) {
+        goto invalid;
+    }
+
     if (!u->keepalive) {
         goto invalid;
     }
@@ -339,10 +366,9 @@ ngx_http_upstream_free_keepalive_peer(ngx_peer_connection_t *pc, void *data,
 
     pc->connection = NULL;
 
-    if (c->read->timer_set) {
-        c->read->delayed = 0;
-        ngx_del_timer(c->read);
-    }
+    c->read->delayed = 0;
+    ngx_add_timer(c->read, kp->conf->timeout);
+
     if (c->write->timer_set) {
         ngx_del_timer(c->write);
     }
@@ -393,7 +419,7 @@ ngx_http_upstream_keepalive_close_handler(ngx_event_t *ev)
 
     c = ev->data;
 
-    if (c->close) {
+    if (c->close || c->read->timedout) {
         goto close;
     }
 
@@ -486,6 +512,9 @@ ngx_http_upstream_keepalive_create_conf(ngx_conf_t *cf)
      *     conf->max_cached = 0;
      */
 
+    conf->timeout = NGX_CONF_UNSET_MSEC;
+    conf->requests = NGX_CONF_UNSET_UINT;
+
     return conf;
 }
 
@@ -518,6 +547,8 @@ ngx_http_upstream_keepalive(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
 
     kcf->max_cached = n;
 
+    /* init upstream handler */
+
     uscf = ngx_http_conf_get_module_srv_conf(cf, ngx_http_upstream_module);
 
     kcf->original_init_upstream = uscf->peer.init_upstream

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

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

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

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

  Renamed: vendor/nginx-1.15.4/src/http/modules/ngx_http_uwsgi_module.c (+8 -2) 99%
===================================================================
--- vendor/nginx-1.15.2/src/http/modules/ngx_http_uwsgi_module.c    2018-09-26 09:51:37 +0900 (0959133d1)
+++ vendor/nginx-1.15.4/src/http/modules/ngx_http_uwsgi_module.c    2018-09-26 09:53:43 +0900 (d0adbdbf2)
@@ -954,12 +954,18 @@ ngx_http_uwsgi_create_request(ngx_http_request_t *r)
 #if 0
     /* allow custom uwsgi packet */
     if (len > 0 && len < 2) {
-        ngx_log_error (NGX_LOG_ALERT, r->connection->log, 0,
-                       "uwsgi request is too little: %uz", len);
+        ngx_log_error(NGX_LOG_ALERT, r->connection->log, 0,
+                      "uwsgi request is too little: %uz", len);
         return NGX_ERROR;
     }
 #endif
 
+    if (len > 65535) {
+        ngx_log_error(NGX_LOG_ALERT, r->connection->log, 0,
+                      "uwsgi request is too big: %uz", len);
+        return NGX_ERROR;
+    }
+
     b = ngx_create_temp_buf(r->pool, len + 4);
     if (b == NULL) {
         return NGX_ERROR;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.15.4/src/http/ngx_http_file_cache.c (+1 -1) 99%
===================================================================
--- vendor/nginx-1.15.2/src/http/ngx_http_file_cache.c    2018-09-26 09:51:37 +0900 (56866fa4e)
+++ vendor/nginx-1.15.4/src/http/ngx_http_file_cache.c    2018-09-26 09:53:43 +0900 (330833df6)
@@ -2669,7 +2669,7 @@ ngx_http_file_cache_valid_set_slot(ngx_conf_t *cf, ngx_command_t *cmd,
         } else {
 
             status = ngx_atoi(value[i].data, value[i].len);
-            if (status < 100) {
+            if (status < 100 || status > 599) {
                 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
                                    "invalid status \"%V\"", &value[i]);
                 return NGX_CONF_ERROR;

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

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

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

  Renamed: vendor/nginx-1.15.4/src/http/ngx_http_request.c (+30 -24) 99%
===================================================================
--- vendor/nginx-1.15.2/src/http/ngx_http_request.c    2018-09-26 09:51:37 +0900 (979009158)
+++ vendor/nginx-1.15.4/src/http/ngx_http_request.c    2018-09-26 09:53:43 +0900 (c80df6e66)
@@ -959,7 +959,7 @@ ngx_http_process_request_line(ngx_event_t *rev)
             n = ngx_http_read_request_header(r);
 
             if (n == NGX_AGAIN || n == NGX_ERROR) {
-                return;
+                break;
             }
         }
 
@@ -984,7 +984,7 @@ ngx_http_process_request_line(ngx_event_t *rev)
             }
 
             if (ngx_http_process_request_uri(r) != NGX_OK) {
-                return;
+                break;
             }
 
             if (r->schema_end) {
@@ -1003,16 +1003,16 @@ ngx_http_process_request_line(ngx_event_t *rev)
                     ngx_log_error(NGX_LOG_INFO, c->log, 0,
                                   "client sent invalid host in request line");
                     ngx_http_finalize_request(r, NGX_HTTP_BAD_REQUEST);
-                    return;
+                    break;
                 }
 
                 if (rc == NGX_ERROR) {
                     ngx_http_close_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR);
-                    return;
+                    break;
                 }
 
                 if (ngx_http_set_virtual_server(r, &host) == NGX_ERROR) {
-                    return;
+                    break;
                 }
 
                 r->headers_in.server = host;
@@ -1024,11 +1024,11 @@ ngx_http_process_request_line(ngx_event_t *rev)
                     && ngx_http_set_virtual_server(r, &r->headers_in.server)
                        == NGX_ERROR)
                 {
-                    return;
+                    break;
                 }
 
                 ngx_http_process_request(r);
-                return;
+                break;
             }
 
 
@@ -1037,7 +1037,7 @@ ngx_http_process_request_line(ngx_event_t *rev)
                 != NGX_OK)
             {
                 ngx_http_close_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR);
-                return;
+                break;
             }
 
             c->log->action = "reading client request headers";
@@ -1045,7 +1045,7 @@ ngx_http_process_request_line(ngx_event_t *rev)
             rev->handler = ngx_http_process_request_headers;
             ngx_http_process_request_headers(rev);
 
-            return;
+            break;
         }
 
         if (rc != NGX_AGAIN) {
@@ -1062,7 +1062,7 @@ ngx_http_process_request_line(ngx_event_t *rev)
                 ngx_http_finalize_request(r, NGX_HTTP_BAD_REQUEST);
             }
 
-            return;
+            break;
         }
 
         /* NGX_AGAIN: a request line parsing is still incomplete */
@@ -1073,7 +1073,7 @@ ngx_http_process_request_line(ngx_event_t *rev)
 
             if (rv == NGX_ERROR) {
                 ngx_http_close_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR);
-                return;
+                break;
             }
 
             if (rv == NGX_DECLINED) {
@@ -1083,10 +1083,12 @@ ngx_http_process_request_line(ngx_event_t *rev)
                 ngx_log_error(NGX_LOG_INFO, c->log, 0,
                               "client sent too long URI");
                 ngx_http_finalize_request(r, NGX_HTTP_REQUEST_URI_TOO_LARGE);
-                return;
+                break;
             }
         }
     }
+
+    ngx_http_run_posted_requests(c);
 }
 
 
@@ -1248,7 +1250,7 @@ ngx_http_process_request_headers(ngx_event_t *rev)
 
                 if (rv == NGX_ERROR) {
                     ngx_http_close_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR);
-                    return;
+                    break;
                 }
 
                 if (rv == NGX_DECLINED) {
@@ -1261,7 +1263,7 @@ ngx_http_process_request_headers(ngx_event_t *rev)
                                       "client sent too large request");
                         ngx_http_finalize_request(r,
                                             NGX_HTTP_REQUEST_HEADER_TOO_LARGE);
-                        return;
+                        break;
                     }
 
                     len = r->header_in->end - p;
@@ -1276,14 +1278,14 @@ ngx_http_process_request_headers(ngx_event_t *rev)
 
                     ngx_http_finalize_request(r,
                                             NGX_HTTP_REQUEST_HEADER_TOO_LARGE);
-                    return;
+                    break;
                 }
             }
 
             n = ngx_http_read_request_header(r);
 
             if (n == NGX_AGAIN || n == NGX_ERROR) {
-                return;
+                break;
             }
         }
 
@@ -1313,7 +1315,7 @@ ngx_http_process_request_headers(ngx_event_t *rev)
             h = ngx_list_push(&r->headers_in.headers);
             if (h == NULL) {
                 ngx_http_close_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR);
-                return;
+                break;
             }
 
             h->hash = r->header_hash;
@@ -1329,7 +1331,7 @@ ngx_http_process_request_headers(ngx_event_t *rev)
             h->lowcase_key = ngx_pnalloc(r->pool, h->key.len);
             if (h->lowcase_key == NULL) {
                 ngx_http_close_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR);
-                return;
+                break;
             }
 
             if (h->key.len == r->lowcase_index) {
@@ -1343,7 +1345,7 @@ ngx_http_process_request_headers(ngx_event_t *rev)
                                h->lowcase_key, h->key.len);
 
             if (hh && hh->handler(r, h, hh->offset) != NGX_OK) {
-                return;
+                break;
             }
 
             ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
@@ -1367,12 +1369,12 @@ ngx_http_process_request_headers(ngx_event_t *rev)
             rc = ngx_http_process_request_header(r);
 
             if (rc != NGX_OK) {
-                return;
+                break;
             }
 
             ngx_http_process_request(r);
 
-            return;
+            break;
         }
 
         if (rc == NGX_AGAIN) {
@@ -1388,8 +1390,10 @@ ngx_http_process_request_headers(ngx_event_t *rev)
                       "client sent invalid header line");
 
         ngx_http_finalize_request(r, NGX_HTTP_BAD_REQUEST);
-        return;
+        break;
     }
+
+    ngx_http_run_posted_requests(c);
 }
 
 
@@ -1944,8 +1948,6 @@ ngx_http_process_request(ngx_http_request_t *r)
     r->read_event_handler = ngx_http_block_reading;
 
     ngx_http_handler(r);
-
-    ngx_http_run_posted_requests(c);
 }
 
 
@@ -3311,6 +3313,10 @@ ngx_http_lingering_close_handler(ngx_event_t *rev)
 
         ngx_log_debug1(NGX_LOG_DEBUG_HTTP, c->log, 0, "lingering read: %z", n);
 
+        if (n == NGX_AGAIN) {
+            break;
+        }
+
         if (n == NGX_ERROR || n == 0) {
             ngx_http_close_request(r, 0);
             return;

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

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

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

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

  Renamed: vendor/nginx-1.15.4/src/http/ngx_http_special_response.c (+34 -34) 95%
===================================================================
--- vendor/nginx-1.15.2/src/http/ngx_http_special_response.c    2018-09-26 09:51:37 +0900 (2c1ff1743)
+++ vendor/nginx-1.15.4/src/http/ngx_http_special_response.c    2018-09-26 09:53:43 +0900 (4ffb2cc8a)
@@ -60,7 +60,7 @@ static u_char ngx_http_msie_refresh_tail[] =
 static char ngx_http_error_301_page[] =
 "<html>" CRLF
 "<head><title>301 Moved Permanently</title></head>" CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>301 Moved Permanently</h1></center>" CRLF
 ;
 
@@ -68,7 +68,7 @@ static char ngx_http_error_301_page[] =
 static char ngx_http_error_302_page[] =
 "<html>" CRLF
 "<head><title>302 Found</title></head>" CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>302 Found</h1></center>" CRLF
 ;
 
@@ -76,7 +76,7 @@ static char ngx_http_error_302_page[] =
 static char ngx_http_error_303_page[] =
 "<html>" CRLF
 "<head><title>303 See Other</title></head>" CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>303 See Other</h1></center>" CRLF
 ;
 
@@ -84,7 +84,7 @@ static char ngx_http_error_303_page[] =
 static char ngx_http_error_307_page[] =
 "<html>" CRLF
 "<head><title>307 Temporary Redirect</title></head>" CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>307 Temporary Redirect</h1></center>" CRLF
 ;
 
@@ -92,7 +92,7 @@ static char ngx_http_error_307_page[] =
 static char ngx_http_error_308_page[] =
 "<html>" CRLF
 "<head><title>308 Permanent Redirect</title></head>" CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>308 Permanent Redirect</h1></center>" CRLF
 ;
 
@@ -100,7 +100,7 @@ static char ngx_http_error_308_page[] =
 static char ngx_http_error_400_page[] =
 "<html>" CRLF
 "<head><title>400 Bad Request</title></head>" CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>400 Bad Request</h1></center>" CRLF
 ;
 
@@ -108,7 +108,7 @@ static char ngx_http_error_400_page[] =
 static char ngx_http_error_401_page[] =
 "<html>" CRLF
 "<head><title>401 Authorization Required</title></head>" CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>401 Authorization Required</h1></center>" CRLF
 ;
 
@@ -116,7 +116,7 @@ static char ngx_http_error_401_page[] =
 static char ngx_http_error_402_page[] =
 "<html>" CRLF
 "<head><title>402 Payment Required</title></head>" CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>402 Payment Required</h1></center>" CRLF
 ;
 
@@ -124,7 +124,7 @@ static char ngx_http_error_402_page[] =
 static char ngx_http_error_403_page[] =
 "<html>" CRLF
 "<head><title>403 Forbidden</title></head>" CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>403 Forbidden</h1></center>" CRLF
 ;
 
@@ -132,7 +132,7 @@ static char ngx_http_error_403_page[] =
 static char ngx_http_error_404_page[] =
 "<html>" CRLF
 "<head><title>404 Not Found</title></head>" CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>404 Not Found</h1></center>" CRLF
 ;
 
@@ -140,7 +140,7 @@ static char ngx_http_error_404_page[] =
 static char ngx_http_error_405_page[] =
 "<html>" CRLF
 "<head><title>405 Not Allowed</title></head>" CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>405 Not Allowed</h1></center>" CRLF
 ;
 
@@ -148,7 +148,7 @@ static char ngx_http_error_405_page[] =
 static char ngx_http_error_406_page[] =
 "<html>" CRLF
 "<head><title>406 Not Acceptable</title></head>" CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>406 Not Acceptable</h1></center>" CRLF
 ;
 
@@ -156,7 +156,7 @@ static char ngx_http_error_406_page[] =
 static char ngx_http_error_408_page[] =
 "<html>" CRLF
 "<head><title>408 Request Time-out</title></head>" CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>408 Request Time-out</h1></center>" CRLF
 ;
 
@@ -164,7 +164,7 @@ static char ngx_http_error_408_page[] =
 static char ngx_http_error_409_page[] =
 "<html>" CRLF
 "<head><title>409 Conflict</title></head>" CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>409 Conflict</h1></center>" CRLF
 ;
 
@@ -172,7 +172,7 @@ static char ngx_http_error_409_page[] =
 static char ngx_http_error_410_page[] =
 "<html>" CRLF
 "<head><title>410 Gone</title></head>" CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>410 Gone</h1></center>" CRLF
 ;
 
@@ -180,7 +180,7 @@ static char ngx_http_error_410_page[] =
 static char ngx_http_error_411_page[] =
 "<html>" CRLF
 "<head><title>411 Length Required</title></head>" CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>411 Length Required</h1></center>" CRLF
 ;
 
@@ -188,7 +188,7 @@ static char ngx_http_error_411_page[] =
 static char ngx_http_error_412_page[] =
 "<html>" CRLF
 "<head><title>412 Precondition Failed</title></head>" CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>412 Precondition Failed</h1></center>" CRLF
 ;
 
@@ -196,7 +196,7 @@ static char ngx_http_error_412_page[] =
 static char ngx_http_error_413_page[] =
 "<html>" CRLF
 "<head><title>413 Request Entity Too Large</title></head>" CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>413 Request Entity Too Large</h1></center>" CRLF
 ;
 
@@ -204,7 +204,7 @@ static char ngx_http_error_413_page[] =
 static char ngx_http_error_414_page[] =
 "<html>" CRLF
 "<head><title>414 Request-URI Too Large</title></head>" CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>414 Request-URI Too Large</h1></center>" CRLF
 ;
 
@@ -212,7 +212,7 @@ static char ngx_http_error_414_page[] =
 static char ngx_http_error_415_page[] =
 "<html>" CRLF
 "<head><title>415 Unsupported Media Type</title></head>" CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>415 Unsupported Media Type</h1></center>" CRLF
 ;
 
@@ -220,7 +220,7 @@ static char ngx_http_error_415_page[] =
 static char ngx_http_error_416_page[] =
 "<html>" CRLF
 "<head><title>416 Requested Range Not Satisfiable</title></head>" CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>416 Requested Range Not Satisfiable</h1></center>" CRLF
 ;
 
@@ -228,7 +228,7 @@ static char ngx_http_error_416_page[] =
 static char ngx_http_error_421_page[] =
 "<html>" CRLF
 "<head><title>421 Misdirected Request</title></head>" CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>421 Misdirected Request</h1></center>" CRLF
 ;
 
@@ -236,7 +236,7 @@ static char ngx_http_error_421_page[] =
 static char ngx_http_error_429_page[] =
 "<html>" CRLF
 "<head><title>429 Too Many Requests</title></head>" CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>429 Too Many Requests</h1></center>" CRLF
 ;
 
@@ -245,7 +245,7 @@ static char ngx_http_error_494_page[] =
 "<html>" CRLF
 "<head><title>400 Request Header Or Cookie Too Large</title></head>"
 CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>400 Bad Request</h1></center>" CRLF
 "<center>Request Header Or Cookie Too Large</center>" CRLF
 ;
@@ -255,7 +255,7 @@ static char ngx_http_error_495_page[] =
 "<html>" CRLF
 "<head><title>400 The SSL certificate error</title></head>"
 CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>400 Bad Request</h1></center>" CRLF
 "<center>The SSL certificate error</center>" CRLF
 ;
@@ -265,7 +265,7 @@ static char ngx_http_error_496_page[] =
 "<html>" CRLF
 "<head><title>400 No required SSL certificate was sent</title></head>"
 CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>400 Bad Request</h1></center>" CRLF
 "<center>No required SSL certificate was sent</center>" CRLF
 ;
@@ -275,7 +275,7 @@ static char ngx_http_error_497_page[] =
 "<html>" CRLF
 "<head><title>400 The plain HTTP request was sent to HTTPS port</title></head>"
 CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>400 Bad Request</h1></center>" CRLF
 "<center>The plain HTTP request was sent to HTTPS port</center>" CRLF
 ;
@@ -284,7 +284,7 @@ CRLF
 static char ngx_http_error_500_page[] =
 "<html>" CRLF
 "<head><title>500 Internal Server Error</title></head>" CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>500 Internal Server Error</h1></center>" CRLF
 ;
 
@@ -292,7 +292,7 @@ static char ngx_http_error_500_page[] =
 static char ngx_http_error_501_page[] =
 "<html>" CRLF
 "<head><title>501 Not Implemented</title></head>" CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>501 Not Implemented</h1></center>" CRLF
 ;
 
@@ -300,7 +300,7 @@ static char ngx_http_error_501_page[] =
 static char ngx_http_error_502_page[] =
 "<html>" CRLF
 "<head><title>502 Bad Gateway</title></head>" CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>502 Bad Gateway</h1></center>" CRLF
 ;
 
@@ -308,7 +308,7 @@ static char ngx_http_error_502_page[] =
 static char ngx_http_error_503_page[] =
 "<html>" CRLF
 "<head><title>503 Service Temporarily Unavailable</title></head>" CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>503 Service Temporarily Unavailable</h1></center>" CRLF
 ;
 
@@ -316,7 +316,7 @@ static char ngx_http_error_503_page[] =
 static char ngx_http_error_504_page[] =
 "<html>" CRLF
 "<head><title>504 Gateway Time-out</title></head>" CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>504 Gateway Time-out</h1></center>" CRLF
 ;
 
@@ -324,7 +324,7 @@ static char ngx_http_error_504_page[] =
 static char ngx_http_error_505_page[] =
 "<html>" CRLF
 "<head><title>505 HTTP Version Not Supported</title></head>" CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>505 HTTP Version Not Supported</h1></center>" CRLF
 ;
 
@@ -332,7 +332,7 @@ static char ngx_http_error_505_page[] =
 static char ngx_http_error_507_page[] =
 "<html>" CRLF
 "<head><title>507 Insufficient Storage</title></head>" CRLF
-"<body bgcolor=\"white\">" CRLF
+"<body>" CRLF
 "<center><h1>507 Insufficient Storage</h1></center>" CRLF
 ;
 

  Renamed: vendor/nginx-1.15.4/src/http/ngx_http_upstream.c (+3 -1) 99%
===================================================================
--- vendor/nginx-1.15.2/src/http/ngx_http_upstream.c    2018-09-26 09:51:37 +0900 (63fa5d998)
+++ vendor/nginx-1.15.4/src/http/ngx_http_upstream.c    2018-09-26 09:53:43 +0900 (690194175)
@@ -1546,6 +1546,8 @@ ngx_http_upstream_connect(ngx_http_request_t *r, ngx_http_upstream_t *u)
 
     c = u->peer.connection;
 
+    c->requests++;
+
     c->data = r;
 
     c->write->handler = ngx_http_upstream_handler;
@@ -2133,7 +2135,7 @@ ngx_http_upstream_send_request_body(ngx_http_request_t *r,
         out = u->request_bufs;
 
         if (r->request_body->bufs) {
-            for (cl = out; cl->next; cl = out->next) { /* void */ }
+            for (cl = out; cl->next; cl = cl->next) { /* void */ }
             cl->next = r->request_body->bufs;
             r->request_body->bufs = NULL;
         }

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

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

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

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

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

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

  Renamed: vendor/nginx-1.15.4/src/http/v2/ngx_http_v2.c (+19 -6) 99%
===================================================================
--- vendor/nginx-1.15.2/src/http/v2/ngx_http_v2.c    2018-09-26 09:51:37 +0900 (09737700a)
+++ vendor/nginx-1.15.4/src/http/v2/ngx_http_v2.c    2018-09-26 09:53:43 +0900 (b916ebdf6)
@@ -270,8 +270,6 @@ ngx_http_v2_init(ngx_event_t *rev)
 
     h2c->frame_size = NGX_HTTP_V2_DEFAULT_FRAME_SIZE;
 
-    h2c->table_update = 1;
-
     h2scf = ngx_http_get_module_srv_conf(hc->conf_ctx, ngx_http_v2_module);
 
     h2c->concurrent_pushes = h2scf->concurrent_pushes;
@@ -2075,6 +2073,11 @@ ngx_http_v2_state_settings_params(ngx_http_v2_connection_t *h2c, u_char *pos,
             h2c->concurrent_pushes = ngx_min(value, h2scf->concurrent_pushes);
             break;
 
+        case NGX_HTTP_V2_HEADER_TABLE_SIZE_SETTING:
+
+            h2c->table_update = 1;
+            break;
+
         default:
             break;
         }
@@ -2670,11 +2673,13 @@ error:
 
     if (rc == NGX_ABORT) {
         /* header handler has already finalized request */
+        ngx_http_run_posted_requests(fc);
         return NULL;
     }
 
     if (rc == NGX_DECLINED) {
         ngx_http_finalize_request(r, NGX_HTTP_BAD_REQUEST);
+        ngx_http_run_posted_requests(fc);
         return NULL;
     }
 
@@ -3739,18 +3744,22 @@ ngx_http_v2_construct_cookie_header(ngx_http_request_t *r)
 static void
 ngx_http_v2_run_request(ngx_http_request_t *r)
 {
+    ngx_connection_t  *fc;
+
+    fc = r->connection;
+
     if (ngx_http_v2_construct_request_line(r) != NGX_OK) {
-        return;
+        goto failed;
     }
 
     if (ngx_http_v2_construct_cookie_header(r) != NGX_OK) {
-        return;
+        goto failed;
     }
 
     r->http_state = NGX_HTTP_PROCESS_REQUEST_STATE;
 
     if (ngx_http_process_request_header(r) != NGX_OK) {
-        return;
+        goto failed;
     }
 
     if (r->headers_in.content_length_n > 0 && r->stream->in_closed) {
@@ -3760,7 +3769,7 @@ ngx_http_v2_run_request(ngx_http_request_t *r)
         r->stream->skip_data = 1;
 
         ngx_http_finalize_request(r, NGX_HTTP_BAD_REQUEST);
-        return;
+        goto failed;
     }
 
     if (r->headers_in.content_length_n == -1 && !r->stream->in_closed) {
@@ -3768,6 +3777,10 @@ ngx_http_v2_run_request(ngx_http_request_t *r)
     }
 
     ngx_http_process_request(r);
+
+failed:
+
+    ngx_http_run_posted_requests(fc);
 }
 
 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.15.4/src/stream/ngx_stream_core_module.c (+21 -15) 97%
===================================================================
--- vendor/nginx-1.15.2/src/stream/ngx_stream_core_module.c    2018-09-26 09:51:37 +0900 (96e7c9ac8)
+++ vendor/nginx-1.15.4/src/stream/ngx_stream_core_module.c    2018-09-26 09:53:43 +0900 (3c4027b77)
@@ -249,34 +249,40 @@ ngx_stream_core_preread_phase(ngx_stream_session_t *s,
         }
 
         if (!c->read->ready) {
-            if (ngx_handle_read_event(c->read, 0) != NGX_OK) {
-                rc = NGX_ERROR;
-                break;
-            }
-
-            if (!c->read->timer_set) {
-                ngx_add_timer(c->read, cscf->preread_timeout);
-            }
-
-            c->read->handler = ngx_stream_session_handler;
-
-            return NGX_OK;
+            break;
         }
 
         n = c->recv(c, c->buffer->last, size);
 
-        if (n == NGX_ERROR) {
+        if (n == NGX_ERROR || n == 0) {
             rc = NGX_STREAM_OK;
             break;
         }
 
-        if (n > 0) {
-            c->buffer->last += n;
+        if (n == NGX_AGAIN) {
+            break;
         }
 
+        c->buffer->last += n;
+
         rc = ph->handler(s);
     }
 
+    if (rc == NGX_AGAIN) {
+        if (ngx_handle_read_event(c->read, 0) != NGX_OK) {
+            ngx_stream_finalize_session(s, NGX_STREAM_INTERNAL_SERVER_ERROR);
+            return NGX_OK;
+        }
+
+        if (!c->read->timer_set) {
+            ngx_add_timer(c->read, cscf->preread_timeout);
+        }
+
+        c->read->handler = ngx_stream_session_handler;
+
+        return NGX_OK;
+    }
+
     if (c->read->timer_set) {
         ngx_del_timer(c->read);
     }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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




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