[Groonga-commit] groonga/groonga [master] httpd: update nginx to 1.2.6 from 1.2.1

Back to archive index

Kouhei Sutou null+****@clear*****
Thu Jan 17 13:43:24 JST 2013


Kouhei Sutou	2013-01-17 13:43:24 +0900 (Thu, 17 Jan 2013)

  New Revision: 90ce840c989477bc8e70d8e83e650eb40c402b9a
  https://github.com/groonga/groonga/commit/90ce840c989477bc8e70d8e83e650eb40c402b9a

  Log:
    httpd: update nginx to 1.2.6 from 1.2.1

  Added files:
    vendor/nginx-1.2.6/auto/cc/clang
    vendor/nginx-1.2.6/auto/lib/zlib/makefile.bcc
    vendor/nginx-1.2.6/html/50x.html
    vendor/nginx-1.2.6/html/index.html
    vendor/nginx-1.2.6/src/http/modules/ngx_http_upstream_least_conn_module.c
  Removed files:
    vendor/nginx-1.2.1/auto/lib/zlib/makefile.bcc
    vendor/nginx-1.2.1/html/50x.html
    vendor/nginx-1.2.1/html/index.html
  Modified files:
    .gitignore
    nginx_version
  Renamed files:
    vendor/nginx-1.2.6/CHANGES
      (from vendor/nginx-1.2.1/CHANGES)
    vendor/nginx-1.2.6/CHANGES.ru
      (from vendor/nginx-1.2.1/CHANGES.ru)
    vendor/nginx-1.2.6/LICENSE
      (from vendor/nginx-1.2.1/LICENSE)
    vendor/nginx-1.2.6/README
      (from vendor/nginx-1.2.1/README)
    vendor/nginx-1.2.6/auto/cc/acc
      (from vendor/nginx-1.2.1/auto/cc/acc)
    vendor/nginx-1.2.6/auto/cc/bcc
      (from vendor/nginx-1.2.1/auto/cc/bcc)
    vendor/nginx-1.2.6/auto/cc/ccc
      (from vendor/nginx-1.2.1/auto/cc/ccc)
    vendor/nginx-1.2.6/auto/cc/conf
      (from vendor/nginx-1.2.1/auto/cc/conf)
    vendor/nginx-1.2.6/auto/cc/gcc
      (from vendor/nginx-1.2.1/auto/cc/gcc)
    vendor/nginx-1.2.6/auto/cc/icc
      (from vendor/nginx-1.2.1/auto/cc/icc)
    vendor/nginx-1.2.6/auto/cc/msvc
      (from vendor/nginx-1.2.1/auto/cc/msvc)
    vendor/nginx-1.2.6/auto/cc/name
      (from vendor/nginx-1.2.1/auto/cc/name)
    vendor/nginx-1.2.6/auto/cc/owc
      (from vendor/nginx-1.2.1/auto/cc/owc)
    vendor/nginx-1.2.6/auto/cc/sunc
      (from vendor/nginx-1.2.1/auto/cc/sunc)
    vendor/nginx-1.2.6/auto/define
      (from vendor/nginx-1.2.1/auto/define)
    vendor/nginx-1.2.6/auto/endianness
      (from vendor/nginx-1.2.1/auto/endianess)
    vendor/nginx-1.2.6/auto/feature
      (from vendor/nginx-1.2.1/auto/feature)
    vendor/nginx-1.2.6/auto/have
      (from vendor/nginx-1.2.1/auto/have)
    vendor/nginx-1.2.6/auto/have_headers
      (from vendor/nginx-1.2.1/auto/have_headers)
    vendor/nginx-1.2.6/auto/headers
      (from vendor/nginx-1.2.1/auto/headers)
    vendor/nginx-1.2.6/auto/include
      (from vendor/nginx-1.2.1/auto/include)
    vendor/nginx-1.2.6/auto/init
      (from vendor/nginx-1.2.1/auto/init)
    vendor/nginx-1.2.6/auto/install
      (from vendor/nginx-1.2.1/auto/install)
    vendor/nginx-1.2.6/auto/lib/conf
      (from vendor/nginx-1.2.1/auto/lib/conf)
    vendor/nginx-1.2.6/auto/lib/geoip/conf
      (from vendor/nginx-1.2.1/auto/lib/geoip/conf)
    vendor/nginx-1.2.6/auto/lib/google-perftools/conf
      (from vendor/nginx-1.2.1/auto/lib/google-perftools/conf)
    vendor/nginx-1.2.6/auto/lib/libatomic/conf
      (from vendor/nginx-1.2.1/auto/lib/libatomic/conf)
    vendor/nginx-1.2.6/auto/lib/libatomic/make
      (from vendor/nginx-1.2.1/auto/lib/libatomic/make)
    vendor/nginx-1.2.6/auto/lib/libgd/conf
      (from vendor/nginx-1.2.1/auto/lib/libgd/conf)
    vendor/nginx-1.2.6/auto/lib/libxslt/conf
      (from vendor/nginx-1.2.1/auto/lib/libxslt/conf)
    vendor/nginx-1.2.6/auto/lib/make
      (from vendor/nginx-1.2.1/auto/lib/make)
    vendor/nginx-1.2.6/auto/lib/md5/conf
      (from vendor/nginx-1.2.1/auto/lib/md5/conf)
    vendor/nginx-1.2.6/auto/lib/md5/make
      (from vendor/nginx-1.2.1/auto/lib/md5/make)
    vendor/nginx-1.2.6/auto/lib/md5/makefile.bcc
      (from vendor/nginx-1.2.1/auto/lib/md5/makefile.bcc)
    vendor/nginx-1.2.6/auto/lib/md5/makefile.msvc
      (from vendor/nginx-1.2.1/auto/lib/md5/makefile.msvc)
    vendor/nginx-1.2.6/auto/lib/md5/makefile.owc
      (from vendor/nginx-1.2.1/auto/lib/md5/makefile.owc)
    vendor/nginx-1.2.6/auto/lib/openssl/conf
      (from vendor/nginx-1.2.1/auto/lib/openssl/conf)
    vendor/nginx-1.2.6/auto/lib/openssl/make
      (from vendor/nginx-1.2.1/auto/lib/openssl/make)
    vendor/nginx-1.2.6/auto/lib/openssl/makefile.bcc
      (from vendor/nginx-1.2.1/auto/lib/openssl/makefile.bcc)
    vendor/nginx-1.2.6/auto/lib/openssl/makefile.msvc
      (from vendor/nginx-1.2.1/auto/lib/openssl/makefile.msvc)
    vendor/nginx-1.2.6/auto/lib/pcre/conf
      (from vendor/nginx-1.2.1/auto/lib/pcre/conf)
    vendor/nginx-1.2.6/auto/lib/pcre/make
      (from vendor/nginx-1.2.1/auto/lib/pcre/make)
    vendor/nginx-1.2.6/auto/lib/pcre/makefile.bcc
      (from vendor/nginx-1.2.1/auto/lib/pcre/makefile.bcc)
    vendor/nginx-1.2.6/auto/lib/pcre/makefile.msvc
      (from vendor/nginx-1.2.1/auto/lib/pcre/makefile.msvc)
    vendor/nginx-1.2.6/auto/lib/pcre/makefile.owc
      (from vendor/nginx-1.2.1/auto/lib/pcre/makefile.owc)
    vendor/nginx-1.2.6/auto/lib/perl/conf
      (from vendor/nginx-1.2.1/auto/lib/perl/conf)
    vendor/nginx-1.2.6/auto/lib/perl/make
      (from vendor/nginx-1.2.1/auto/lib/perl/make)
    vendor/nginx-1.2.6/auto/lib/sha1/conf
      (from vendor/nginx-1.2.1/auto/lib/sha1/conf)
    vendor/nginx-1.2.6/auto/lib/sha1/make
      (from vendor/nginx-1.2.1/auto/lib/sha1/make)
    vendor/nginx-1.2.6/auto/lib/sha1/makefile.bcc
      (from vendor/nginx-1.2.1/auto/lib/sha1/makefile.bcc)
    vendor/nginx-1.2.6/auto/lib/sha1/makefile.msvc
      (from vendor/nginx-1.2.1/auto/lib/sha1/makefile.msvc)
    vendor/nginx-1.2.6/auto/lib/sha1/makefile.owc
      (from vendor/nginx-1.2.1/auto/lib/sha1/makefile.owc)
    vendor/nginx-1.2.6/auto/lib/test
      (from vendor/nginx-1.2.1/auto/lib/test)
    vendor/nginx-1.2.6/auto/lib/zlib/conf
      (from vendor/nginx-1.2.1/auto/lib/zlib/conf)
    vendor/nginx-1.2.6/auto/lib/zlib/make
      (from vendor/nginx-1.2.1/auto/lib/zlib/make)
    vendor/nginx-1.2.6/auto/lib/zlib/makefile.msvc
      (from vendor/nginx-1.2.1/auto/lib/zlib/makefile.msvc)
    vendor/nginx-1.2.6/auto/lib/zlib/makefile.owc
      (from vendor/nginx-1.2.1/auto/lib/zlib/makefile.owc)
    vendor/nginx-1.2.6/auto/lib/zlib/patch.zlib.h
      (from vendor/nginx-1.2.1/auto/lib/zlib/patch.zlib.h)
    vendor/nginx-1.2.6/auto/make
      (from vendor/nginx-1.2.1/auto/make)
    vendor/nginx-1.2.6/auto/modules
      (from vendor/nginx-1.2.1/auto/modules)
    vendor/nginx-1.2.6/auto/nohave
      (from vendor/nginx-1.2.1/auto/nohave)
    vendor/nginx-1.2.6/auto/options
      (from vendor/nginx-1.2.1/auto/options)
    vendor/nginx-1.2.6/auto/os/conf
      (from vendor/nginx-1.2.1/auto/os/conf)
    vendor/nginx-1.2.6/auto/os/darwin
      (from vendor/nginx-1.2.1/auto/os/darwin)
    vendor/nginx-1.2.6/auto/os/freebsd
      (from vendor/nginx-1.2.1/auto/os/freebsd)
    vendor/nginx-1.2.6/auto/os/linux
      (from vendor/nginx-1.2.1/auto/os/linux)
    vendor/nginx-1.2.6/auto/os/solaris
      (from vendor/nginx-1.2.1/auto/os/solaris)
    vendor/nginx-1.2.6/auto/os/win32
      (from vendor/nginx-1.2.1/auto/os/win32)
    vendor/nginx-1.2.6/auto/sources
      (from vendor/nginx-1.2.1/auto/sources)
    vendor/nginx-1.2.6/auto/stubs
      (from vendor/nginx-1.2.1/auto/stubs)
    vendor/nginx-1.2.6/auto/summary
      (from vendor/nginx-1.2.1/auto/summary)
    vendor/nginx-1.2.6/auto/types/sizeof
      (from vendor/nginx-1.2.1/auto/types/sizeof)
    vendor/nginx-1.2.6/auto/types/typedef
      (from vendor/nginx-1.2.1/auto/types/typedef)
    vendor/nginx-1.2.6/auto/types/uintptr_t
      (from vendor/nginx-1.2.1/auto/types/uintptr_t)
    vendor/nginx-1.2.6/auto/types/value
      (from vendor/nginx-1.2.1/auto/types/value)
    vendor/nginx-1.2.6/auto/unix
      (from vendor/nginx-1.2.1/auto/unix)
    vendor/nginx-1.2.6/conf/fastcgi.conf
      (from vendor/nginx-1.2.1/conf/fastcgi.conf)
    vendor/nginx-1.2.6/conf/fastcgi_params
      (from vendor/nginx-1.2.1/conf/fastcgi_params)
    vendor/nginx-1.2.6/conf/koi-utf
      (from vendor/nginx-1.2.1/conf/koi-utf)
    vendor/nginx-1.2.6/conf/koi-win
      (from vendor/nginx-1.2.1/conf/koi-win)
    vendor/nginx-1.2.6/conf/mime.types
      (from vendor/nginx-1.2.1/conf/mime.types)
    vendor/nginx-1.2.6/conf/nginx.conf
      (from vendor/nginx-1.2.1/conf/nginx.conf)
    vendor/nginx-1.2.6/conf/scgi_params
      (from vendor/nginx-1.2.1/conf/scgi_params)
    vendor/nginx-1.2.6/conf/uwsgi_params
      (from vendor/nginx-1.2.1/conf/uwsgi_params)
    vendor/nginx-1.2.6/conf/win-utf
      (from vendor/nginx-1.2.1/conf/win-utf)
    vendor/nginx-1.2.6/configure
      (from vendor/nginx-1.2.1/configure)
    vendor/nginx-1.2.6/contrib/README
      (from vendor/nginx-1.2.1/contrib/README)
    vendor/nginx-1.2.6/contrib/geo2nginx.pl
      (from vendor/nginx-1.2.1/contrib/geo2nginx.pl)
    vendor/nginx-1.2.6/contrib/unicode2nginx/koi-utf
      (from vendor/nginx-1.2.1/contrib/unicode2nginx/koi-utf)
    vendor/nginx-1.2.6/contrib/unicode2nginx/unicode-to-nginx.pl
      (from vendor/nginx-1.2.1/contrib/unicode2nginx/unicode-to-nginx.pl)
    vendor/nginx-1.2.6/contrib/unicode2nginx/win-utf
      (from vendor/nginx-1.2.1/contrib/unicode2nginx/win-utf)
    vendor/nginx-1.2.6/man/nginx.8
      (from vendor/nginx-1.2.1/man/nginx.8)
    vendor/nginx-1.2.6/src/core/nginx.c
      (from vendor/nginx-1.2.1/src/core/nginx.c)
    vendor/nginx-1.2.6/src/core/nginx.h
      (from vendor/nginx-1.2.1/src/core/nginx.h)
    vendor/nginx-1.2.6/src/core/ngx_array.c
      (from vendor/nginx-1.2.1/src/core/ngx_array.c)
    vendor/nginx-1.2.6/src/core/ngx_array.h
      (from vendor/nginx-1.2.1/src/core/ngx_array.h)
    vendor/nginx-1.2.6/src/core/ngx_buf.c
      (from vendor/nginx-1.2.1/src/core/ngx_buf.c)
    vendor/nginx-1.2.6/src/core/ngx_buf.h
      (from vendor/nginx-1.2.1/src/core/ngx_buf.h)
    vendor/nginx-1.2.6/src/core/ngx_conf_file.c
      (from vendor/nginx-1.2.1/src/core/ngx_conf_file.c)
    vendor/nginx-1.2.6/src/core/ngx_conf_file.h
      (from vendor/nginx-1.2.1/src/core/ngx_conf_file.h)
    vendor/nginx-1.2.6/src/core/ngx_config.h
      (from vendor/nginx-1.2.1/src/core/ngx_config.h)
    vendor/nginx-1.2.6/src/core/ngx_connection.c
      (from vendor/nginx-1.2.1/src/core/ngx_connection.c)
    vendor/nginx-1.2.6/src/core/ngx_connection.h
      (from vendor/nginx-1.2.1/src/core/ngx_connection.h)
    vendor/nginx-1.2.6/src/core/ngx_core.h
      (from vendor/nginx-1.2.1/src/core/ngx_core.h)
    vendor/nginx-1.2.6/src/core/ngx_cpuinfo.c
      (from vendor/nginx-1.2.1/src/core/ngx_cpuinfo.c)
    vendor/nginx-1.2.6/src/core/ngx_crc.h
      (from vendor/nginx-1.2.1/src/core/ngx_crc.h)
    vendor/nginx-1.2.6/src/core/ngx_crc32.c
      (from vendor/nginx-1.2.1/src/core/ngx_crc32.c)
    vendor/nginx-1.2.6/src/core/ngx_crc32.h
      (from vendor/nginx-1.2.1/src/core/ngx_crc32.h)
    vendor/nginx-1.2.6/src/core/ngx_crypt.c
      (from vendor/nginx-1.2.1/src/core/ngx_crypt.c)
    vendor/nginx-1.2.6/src/core/ngx_crypt.h
      (from vendor/nginx-1.2.1/src/core/ngx_crypt.h)
    vendor/nginx-1.2.6/src/core/ngx_cycle.c
      (from vendor/nginx-1.2.1/src/core/ngx_cycle.c)
    vendor/nginx-1.2.6/src/core/ngx_cycle.h
      (from vendor/nginx-1.2.1/src/core/ngx_cycle.h)
    vendor/nginx-1.2.6/src/core/ngx_file.c
      (from vendor/nginx-1.2.1/src/core/ngx_file.c)
    vendor/nginx-1.2.6/src/core/ngx_file.h
      (from vendor/nginx-1.2.1/src/core/ngx_file.h)
    vendor/nginx-1.2.6/src/core/ngx_hash.c
      (from vendor/nginx-1.2.1/src/core/ngx_hash.c)
    vendor/nginx-1.2.6/src/core/ngx_hash.h
      (from vendor/nginx-1.2.1/src/core/ngx_hash.h)
    vendor/nginx-1.2.6/src/core/ngx_inet.c
      (from vendor/nginx-1.2.1/src/core/ngx_inet.c)
    vendor/nginx-1.2.6/src/core/ngx_inet.h
      (from vendor/nginx-1.2.1/src/core/ngx_inet.h)
    vendor/nginx-1.2.6/src/core/ngx_list.c
      (from vendor/nginx-1.2.1/src/core/ngx_list.c)
    vendor/nginx-1.2.6/src/core/ngx_list.h
      (from vendor/nginx-1.2.1/src/core/ngx_list.h)
    vendor/nginx-1.2.6/src/core/ngx_log.c
      (from vendor/nginx-1.2.1/src/core/ngx_log.c)
    vendor/nginx-1.2.6/src/core/ngx_log.h
      (from vendor/nginx-1.2.1/src/core/ngx_log.h)
    vendor/nginx-1.2.6/src/core/ngx_md5.c
      (from vendor/nginx-1.2.1/src/core/ngx_md5.c)
    vendor/nginx-1.2.6/src/core/ngx_md5.h
      (from vendor/nginx-1.2.1/src/core/ngx_md5.h)
    vendor/nginx-1.2.6/src/core/ngx_murmurhash.c
      (from vendor/nginx-1.2.1/src/core/ngx_murmurhash.c)
    vendor/nginx-1.2.6/src/core/ngx_murmurhash.h
      (from vendor/nginx-1.2.1/src/core/ngx_murmurhash.h)
    vendor/nginx-1.2.6/src/core/ngx_open_file_cache.c
      (from vendor/nginx-1.2.1/src/core/ngx_open_file_cache.c)
    vendor/nginx-1.2.6/src/core/ngx_open_file_cache.h
      (from vendor/nginx-1.2.1/src/core/ngx_open_file_cache.h)
    vendor/nginx-1.2.6/src/core/ngx_output_chain.c
      (from vendor/nginx-1.2.1/src/core/ngx_output_chain.c)
    vendor/nginx-1.2.6/src/core/ngx_palloc.c
      (from vendor/nginx-1.2.1/src/core/ngx_palloc.c)
    vendor/nginx-1.2.6/src/core/ngx_palloc.h
      (from vendor/nginx-1.2.1/src/core/ngx_palloc.h)
    vendor/nginx-1.2.6/src/core/ngx_parse.c
      (from vendor/nginx-1.2.1/src/core/ngx_parse.c)
    vendor/nginx-1.2.6/src/core/ngx_parse.h
      (from vendor/nginx-1.2.1/src/core/ngx_parse.h)
    vendor/nginx-1.2.6/src/core/ngx_queue.c
      (from vendor/nginx-1.2.1/src/core/ngx_queue.c)
    vendor/nginx-1.2.6/src/core/ngx_queue.h
      (from vendor/nginx-1.2.1/src/core/ngx_queue.h)
    vendor/nginx-1.2.6/src/core/ngx_radix_tree.c
      (from vendor/nginx-1.2.1/src/core/ngx_radix_tree.c)
    vendor/nginx-1.2.6/src/core/ngx_radix_tree.h
      (from vendor/nginx-1.2.1/src/core/ngx_radix_tree.h)
    vendor/nginx-1.2.6/src/core/ngx_rbtree.c
      (from vendor/nginx-1.2.1/src/core/ngx_rbtree.c)
    vendor/nginx-1.2.6/src/core/ngx_rbtree.h
      (from vendor/nginx-1.2.1/src/core/ngx_rbtree.h)
    vendor/nginx-1.2.6/src/core/ngx_regex.c
      (from vendor/nginx-1.2.1/src/core/ngx_regex.c)
    vendor/nginx-1.2.6/src/core/ngx_regex.h
      (from vendor/nginx-1.2.1/src/core/ngx_regex.h)
    vendor/nginx-1.2.6/src/core/ngx_resolver.c
      (from vendor/nginx-1.2.1/src/core/ngx_resolver.c)
    vendor/nginx-1.2.6/src/core/ngx_resolver.h
      (from vendor/nginx-1.2.1/src/core/ngx_resolver.h)
    vendor/nginx-1.2.6/src/core/ngx_sha1.h
      (from vendor/nginx-1.2.1/src/core/ngx_sha1.h)
    vendor/nginx-1.2.6/src/core/ngx_shmtx.c
      (from vendor/nginx-1.2.1/src/core/ngx_shmtx.c)
    vendor/nginx-1.2.6/src/core/ngx_shmtx.h
      (from vendor/nginx-1.2.1/src/core/ngx_shmtx.h)
    vendor/nginx-1.2.6/src/core/ngx_slab.c
      (from vendor/nginx-1.2.1/src/core/ngx_slab.c)
    vendor/nginx-1.2.6/src/core/ngx_slab.h
      (from vendor/nginx-1.2.1/src/core/ngx_slab.h)
    vendor/nginx-1.2.6/src/core/ngx_spinlock.c
      (from vendor/nginx-1.2.1/src/core/ngx_spinlock.c)
    vendor/nginx-1.2.6/src/core/ngx_string.c
      (from vendor/nginx-1.2.1/src/core/ngx_string.c)
    vendor/nginx-1.2.6/src/core/ngx_string.h
      (from vendor/nginx-1.2.1/src/core/ngx_string.h)
    vendor/nginx-1.2.6/src/core/ngx_times.c
      (from vendor/nginx-1.2.1/src/core/ngx_times.c)
    vendor/nginx-1.2.6/src/core/ngx_times.h
      (from vendor/nginx-1.2.1/src/core/ngx_times.h)
    vendor/nginx-1.2.6/src/event/modules/ngx_aio_module.c
      (from vendor/nginx-1.2.1/src/event/modules/ngx_aio_module.c)
    vendor/nginx-1.2.6/src/event/modules/ngx_devpoll_module.c
      (from vendor/nginx-1.2.1/src/event/modules/ngx_devpoll_module.c)
    vendor/nginx-1.2.6/src/event/modules/ngx_epoll_module.c
      (from vendor/nginx-1.2.1/src/event/modules/ngx_epoll_module.c)
    vendor/nginx-1.2.6/src/event/modules/ngx_eventport_module.c
      (from vendor/nginx-1.2.1/src/event/modules/ngx_eventport_module.c)
    vendor/nginx-1.2.6/src/event/modules/ngx_kqueue_module.c
      (from vendor/nginx-1.2.1/src/event/modules/ngx_kqueue_module.c)
    vendor/nginx-1.2.6/src/event/modules/ngx_poll_module.c
      (from vendor/nginx-1.2.1/src/event/modules/ngx_poll_module.c)
    vendor/nginx-1.2.6/src/event/modules/ngx_rtsig_module.c
      (from vendor/nginx-1.2.1/src/event/modules/ngx_rtsig_module.c)
    vendor/nginx-1.2.6/src/event/modules/ngx_select_module.c
      (from vendor/nginx-1.2.1/src/event/modules/ngx_select_module.c)
    vendor/nginx-1.2.6/src/event/modules/ngx_win32_select_module.c
      (from vendor/nginx-1.2.1/src/event/modules/ngx_win32_select_module.c)
    vendor/nginx-1.2.6/src/event/ngx_event.c
      (from vendor/nginx-1.2.1/src/event/ngx_event.c)
    vendor/nginx-1.2.6/src/event/ngx_event.h
      (from vendor/nginx-1.2.1/src/event/ngx_event.h)
    vendor/nginx-1.2.6/src/event/ngx_event_accept.c
      (from vendor/nginx-1.2.1/src/event/ngx_event_accept.c)
    vendor/nginx-1.2.6/src/event/ngx_event_busy_lock.c
      (from vendor/nginx-1.2.1/src/event/ngx_event_busy_lock.c)
    vendor/nginx-1.2.6/src/event/ngx_event_busy_lock.h
      (from vendor/nginx-1.2.1/src/event/ngx_event_busy_lock.h)
    vendor/nginx-1.2.6/src/event/ngx_event_connect.c
      (from vendor/nginx-1.2.1/src/event/ngx_event_connect.c)
    vendor/nginx-1.2.6/src/event/ngx_event_connect.h
      (from vendor/nginx-1.2.1/src/event/ngx_event_connect.h)
    vendor/nginx-1.2.6/src/event/ngx_event_mutex.c
      (from vendor/nginx-1.2.1/src/event/ngx_event_mutex.c)
    vendor/nginx-1.2.6/src/event/ngx_event_openssl.c
      (from vendor/nginx-1.2.1/src/event/ngx_event_openssl.c)
    vendor/nginx-1.2.6/src/event/ngx_event_openssl.h
      (from vendor/nginx-1.2.1/src/event/ngx_event_openssl.h)
    vendor/nginx-1.2.6/src/event/ngx_event_pipe.c
      (from vendor/nginx-1.2.1/src/event/ngx_event_pipe.c)
    vendor/nginx-1.2.6/src/event/ngx_event_pipe.h
      (from vendor/nginx-1.2.1/src/event/ngx_event_pipe.h)
    vendor/nginx-1.2.6/src/event/ngx_event_posted.c
      (from vendor/nginx-1.2.1/src/event/ngx_event_posted.c)
    vendor/nginx-1.2.6/src/event/ngx_event_posted.h
      (from vendor/nginx-1.2.1/src/event/ngx_event_posted.h)
    vendor/nginx-1.2.6/src/event/ngx_event_timer.c
      (from vendor/nginx-1.2.1/src/event/ngx_event_timer.c)
    vendor/nginx-1.2.6/src/event/ngx_event_timer.h
      (from vendor/nginx-1.2.1/src/event/ngx_event_timer.h)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_access_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_access_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_addition_filter_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_addition_filter_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_auth_basic_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_auth_basic_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_autoindex_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_autoindex_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_browser_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_browser_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_charset_filter_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_charset_filter_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_chunked_filter_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_chunked_filter_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_dav_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_dav_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_degradation_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_degradation_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_empty_gif_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_empty_gif_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_fastcgi_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_fastcgi_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_flv_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_flv_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_geo_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_geo_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_geoip_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_geoip_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_gzip_filter_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_gzip_filter_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_gzip_static_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_gzip_static_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_headers_filter_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_headers_filter_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_image_filter_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_image_filter_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_index_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_index_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_limit_conn_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_limit_conn_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_limit_req_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_limit_req_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_log_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_log_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_map_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_map_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_memcached_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_memcached_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_mp4_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_mp4_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_not_modified_filter_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_not_modified_filter_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_proxy_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_proxy_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_random_index_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_random_index_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_range_filter_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_range_filter_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_realip_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_realip_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_referer_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_referer_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_rewrite_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_rewrite_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_scgi_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_scgi_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_secure_link_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_secure_link_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_split_clients_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_split_clients_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_ssi_filter_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_ssi_filter_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_ssi_filter_module.h
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_ssi_filter_module.h)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_ssl_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_ssl_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_ssl_module.h
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_ssl_module.h)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_static_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_static_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_stub_status_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_stub_status_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_sub_filter_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_sub_filter_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_upstream_ip_hash_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_upstream_ip_hash_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_upstream_keepalive_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_upstream_keepalive_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_userid_filter_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_userid_filter_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_uwsgi_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_uwsgi_module.c)
    vendor/nginx-1.2.6/src/http/modules/ngx_http_xslt_filter_module.c
      (from vendor/nginx-1.2.1/src/http/modules/ngx_http_xslt_filter_module.c)
    vendor/nginx-1.2.6/src/http/modules/perl/Makefile.PL
      (from vendor/nginx-1.2.1/src/http/modules/perl/Makefile.PL)
    vendor/nginx-1.2.6/src/http/modules/perl/nginx.pm
      (from vendor/nginx-1.2.1/src/http/modules/perl/nginx.pm)
    vendor/nginx-1.2.6/src/http/modules/perl/nginx.xs
      (from vendor/nginx-1.2.1/src/http/modules/perl/nginx.xs)
    vendor/nginx-1.2.6/src/http/modules/perl/ngx_http_perl_module.c
      (from vendor/nginx-1.2.1/src/http/modules/perl/ngx_http_perl_module.c)
    vendor/nginx-1.2.6/src/http/modules/perl/ngx_http_perl_module.h
      (from vendor/nginx-1.2.1/src/http/modules/perl/ngx_http_perl_module.h)
    vendor/nginx-1.2.6/src/http/modules/perl/typemap
      (from vendor/nginx-1.2.1/src/http/modules/perl/typemap)
    vendor/nginx-1.2.6/src/http/ngx_http.c
      (from vendor/nginx-1.2.1/src/http/ngx_http.c)
    vendor/nginx-1.2.6/src/http/ngx_http.h
      (from vendor/nginx-1.2.1/src/http/ngx_http.h)
    vendor/nginx-1.2.6/src/http/ngx_http_busy_lock.c
      (from vendor/nginx-1.2.1/src/http/ngx_http_busy_lock.c)
    vendor/nginx-1.2.6/src/http/ngx_http_busy_lock.h
      (from vendor/nginx-1.2.1/src/http/ngx_http_busy_lock.h)
    vendor/nginx-1.2.6/src/http/ngx_http_cache.h
      (from vendor/nginx-1.2.1/src/http/ngx_http_cache.h)
    vendor/nginx-1.2.6/src/http/ngx_http_config.h
      (from vendor/nginx-1.2.1/src/http/ngx_http_config.h)
    vendor/nginx-1.2.6/src/http/ngx_http_copy_filter_module.c
      (from vendor/nginx-1.2.1/src/http/ngx_http_copy_filter_module.c)
    vendor/nginx-1.2.6/src/http/ngx_http_core_module.c
      (from vendor/nginx-1.2.1/src/http/ngx_http_core_module.c)
    vendor/nginx-1.2.6/src/http/ngx_http_core_module.h
      (from vendor/nginx-1.2.1/src/http/ngx_http_core_module.h)
    vendor/nginx-1.2.6/src/http/ngx_http_file_cache.c
      (from vendor/nginx-1.2.1/src/http/ngx_http_file_cache.c)
    vendor/nginx-1.2.6/src/http/ngx_http_header_filter_module.c
      (from vendor/nginx-1.2.1/src/http/ngx_http_header_filter_module.c)
    vendor/nginx-1.2.6/src/http/ngx_http_parse.c
      (from vendor/nginx-1.2.1/src/http/ngx_http_parse.c)
    vendor/nginx-1.2.6/src/http/ngx_http_parse_time.c
      (from vendor/nginx-1.2.1/src/http/ngx_http_parse_time.c)
    vendor/nginx-1.2.6/src/http/ngx_http_postpone_filter_module.c
      (from vendor/nginx-1.2.1/src/http/ngx_http_postpone_filter_module.c)
    vendor/nginx-1.2.6/src/http/ngx_http_request.c
      (from vendor/nginx-1.2.1/src/http/ngx_http_request.c)
    vendor/nginx-1.2.6/src/http/ngx_http_request.h
      (from vendor/nginx-1.2.1/src/http/ngx_http_request.h)
    vendor/nginx-1.2.6/src/http/ngx_http_request_body.c
      (from vendor/nginx-1.2.1/src/http/ngx_http_request_body.c)
    vendor/nginx-1.2.6/src/http/ngx_http_script.c
      (from vendor/nginx-1.2.1/src/http/ngx_http_script.c)
    vendor/nginx-1.2.6/src/http/ngx_http_script.h
      (from vendor/nginx-1.2.1/src/http/ngx_http_script.h)
    vendor/nginx-1.2.6/src/http/ngx_http_special_response.c
      (from vendor/nginx-1.2.1/src/http/ngx_http_special_response.c)
    vendor/nginx-1.2.6/src/http/ngx_http_upstream.c
      (from vendor/nginx-1.2.1/src/http/ngx_http_upstream.c)
    vendor/nginx-1.2.6/src/http/ngx_http_upstream.h
      (from vendor/nginx-1.2.1/src/http/ngx_http_upstream.h)
    vendor/nginx-1.2.6/src/http/ngx_http_upstream_round_robin.c
      (from vendor/nginx-1.2.1/src/http/ngx_http_upstream_round_robin.c)
    vendor/nginx-1.2.6/src/http/ngx_http_upstream_round_robin.h
      (from vendor/nginx-1.2.1/src/http/ngx_http_upstream_round_robin.h)
    vendor/nginx-1.2.6/src/http/ngx_http_variables.c
      (from vendor/nginx-1.2.1/src/http/ngx_http_variables.c)
    vendor/nginx-1.2.6/src/http/ngx_http_variables.h
      (from vendor/nginx-1.2.1/src/http/ngx_http_variables.h)
    vendor/nginx-1.2.6/src/http/ngx_http_write_filter_module.c
      (from vendor/nginx-1.2.1/src/http/ngx_http_write_filter_module.c)
    vendor/nginx-1.2.6/src/mail/ngx_mail.c
      (from vendor/nginx-1.2.1/src/mail/ngx_mail.c)
    vendor/nginx-1.2.6/src/mail/ngx_mail.h
      (from vendor/nginx-1.2.1/src/mail/ngx_mail.h)
    vendor/nginx-1.2.6/src/mail/ngx_mail_auth_http_module.c
      (from vendor/nginx-1.2.1/src/mail/ngx_mail_auth_http_module.c)
    vendor/nginx-1.2.6/src/mail/ngx_mail_core_module.c
      (from vendor/nginx-1.2.1/src/mail/ngx_mail_core_module.c)
    vendor/nginx-1.2.6/src/mail/ngx_mail_handler.c
      (from vendor/nginx-1.2.1/src/mail/ngx_mail_handler.c)
    vendor/nginx-1.2.6/src/mail/ngx_mail_imap_handler.c
      (from vendor/nginx-1.2.1/src/mail/ngx_mail_imap_handler.c)
    vendor/nginx-1.2.6/src/mail/ngx_mail_imap_module.c
      (from vendor/nginx-1.2.1/src/mail/ngx_mail_imap_module.c)
    vendor/nginx-1.2.6/src/mail/ngx_mail_imap_module.h
      (from vendor/nginx-1.2.1/src/mail/ngx_mail_imap_module.h)
    vendor/nginx-1.2.6/src/mail/ngx_mail_parse.c
      (from vendor/nginx-1.2.1/src/mail/ngx_mail_parse.c)
    vendor/nginx-1.2.6/src/mail/ngx_mail_pop3_handler.c
      (from vendor/nginx-1.2.1/src/mail/ngx_mail_pop3_handler.c)
    vendor/nginx-1.2.6/src/mail/ngx_mail_pop3_module.c
      (from vendor/nginx-1.2.1/src/mail/ngx_mail_pop3_module.c)
    vendor/nginx-1.2.6/src/mail/ngx_mail_pop3_module.h
      (from vendor/nginx-1.2.1/src/mail/ngx_mail_pop3_module.h)
    vendor/nginx-1.2.6/src/mail/ngx_mail_proxy_module.c
      (from vendor/nginx-1.2.1/src/mail/ngx_mail_proxy_module.c)
    vendor/nginx-1.2.6/src/mail/ngx_mail_smtp_handler.c
      (from vendor/nginx-1.2.1/src/mail/ngx_mail_smtp_handler.c)
    vendor/nginx-1.2.6/src/mail/ngx_mail_smtp_module.c
      (from vendor/nginx-1.2.1/src/mail/ngx_mail_smtp_module.c)
    vendor/nginx-1.2.6/src/mail/ngx_mail_smtp_module.h
      (from vendor/nginx-1.2.1/src/mail/ngx_mail_smtp_module.h)
    vendor/nginx-1.2.6/src/mail/ngx_mail_ssl_module.c
      (from vendor/nginx-1.2.1/src/mail/ngx_mail_ssl_module.c)
    vendor/nginx-1.2.6/src/mail/ngx_mail_ssl_module.h
      (from vendor/nginx-1.2.1/src/mail/ngx_mail_ssl_module.h)
    vendor/nginx-1.2.6/src/misc/ngx_cpp_test_module.cpp
      (from vendor/nginx-1.2.1/src/misc/ngx_cpp_test_module.cpp)
    vendor/nginx-1.2.6/src/misc/ngx_google_perftools_module.c
      (from vendor/nginx-1.2.1/src/misc/ngx_google_perftools_module.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_aio_read.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_aio_read.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_aio_read_chain.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_aio_read_chain.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_aio_write.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_aio_write.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_aio_write_chain.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_aio_write_chain.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_alloc.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_alloc.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_alloc.h
      (from vendor/nginx-1.2.1/src/os/unix/ngx_alloc.h)
    vendor/nginx-1.2.6/src/os/unix/ngx_atomic.h
      (from vendor/nginx-1.2.1/src/os/unix/ngx_atomic.h)
    vendor/nginx-1.2.6/src/os/unix/ngx_channel.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_channel.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_channel.h
      (from vendor/nginx-1.2.1/src/os/unix/ngx_channel.h)
    vendor/nginx-1.2.6/src/os/unix/ngx_daemon.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_daemon.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_darwin.h
      (from vendor/nginx-1.2.1/src/os/unix/ngx_darwin.h)
    vendor/nginx-1.2.6/src/os/unix/ngx_darwin_config.h
      (from vendor/nginx-1.2.1/src/os/unix/ngx_darwin_config.h)
    vendor/nginx-1.2.6/src/os/unix/ngx_darwin_init.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_darwin_init.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_darwin_sendfile_chain.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_darwin_sendfile_chain.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_errno.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_errno.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_errno.h
      (from vendor/nginx-1.2.1/src/os/unix/ngx_errno.h)
    vendor/nginx-1.2.6/src/os/unix/ngx_file_aio_read.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_file_aio_read.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_files.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_files.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_files.h
      (from vendor/nginx-1.2.1/src/os/unix/ngx_files.h)
    vendor/nginx-1.2.6/src/os/unix/ngx_freebsd.h
      (from vendor/nginx-1.2.1/src/os/unix/ngx_freebsd.h)
    vendor/nginx-1.2.6/src/os/unix/ngx_freebsd_config.h
      (from vendor/nginx-1.2.1/src/os/unix/ngx_freebsd_config.h)
    vendor/nginx-1.2.6/src/os/unix/ngx_freebsd_init.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_freebsd_init.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_freebsd_rfork_thread.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_freebsd_rfork_thread.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_freebsd_rfork_thread.h
      (from vendor/nginx-1.2.1/src/os/unix/ngx_freebsd_rfork_thread.h)
    vendor/nginx-1.2.6/src/os/unix/ngx_freebsd_sendfile_chain.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_freebsd_sendfile_chain.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_gcc_atomic_amd64.h
      (from vendor/nginx-1.2.1/src/os/unix/ngx_gcc_atomic_amd64.h)
    vendor/nginx-1.2.6/src/os/unix/ngx_gcc_atomic_ppc.h
      (from vendor/nginx-1.2.1/src/os/unix/ngx_gcc_atomic_ppc.h)
    vendor/nginx-1.2.6/src/os/unix/ngx_gcc_atomic_sparc64.h
      (from vendor/nginx-1.2.1/src/os/unix/ngx_gcc_atomic_sparc64.h)
    vendor/nginx-1.2.6/src/os/unix/ngx_gcc_atomic_x86.h
      (from vendor/nginx-1.2.1/src/os/unix/ngx_gcc_atomic_x86.h)
    vendor/nginx-1.2.6/src/os/unix/ngx_linux.h
      (from vendor/nginx-1.2.1/src/os/unix/ngx_linux.h)
    vendor/nginx-1.2.6/src/os/unix/ngx_linux_aio_read.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_linux_aio_read.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_linux_config.h
      (from vendor/nginx-1.2.1/src/os/unix/ngx_linux_config.h)
    vendor/nginx-1.2.6/src/os/unix/ngx_linux_init.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_linux_init.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_linux_sendfile_chain.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_linux_sendfile_chain.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_os.h
      (from vendor/nginx-1.2.1/src/os/unix/ngx_os.h)
    vendor/nginx-1.2.6/src/os/unix/ngx_posix_config.h
      (from vendor/nginx-1.2.1/src/os/unix/ngx_posix_config.h)
    vendor/nginx-1.2.6/src/os/unix/ngx_posix_init.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_posix_init.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_process.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_process.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_process.h
      (from vendor/nginx-1.2.1/src/os/unix/ngx_process.h)
    vendor/nginx-1.2.6/src/os/unix/ngx_process_cycle.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_process_cycle.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_process_cycle.h
      (from vendor/nginx-1.2.1/src/os/unix/ngx_process_cycle.h)
    vendor/nginx-1.2.6/src/os/unix/ngx_pthread_thread.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_pthread_thread.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_readv_chain.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_readv_chain.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_recv.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_recv.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_send.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_send.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_setaffinity.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_setaffinity.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_setaffinity.h
      (from vendor/nginx-1.2.1/src/os/unix/ngx_setaffinity.h)
    vendor/nginx-1.2.6/src/os/unix/ngx_setproctitle.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_setproctitle.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_setproctitle.h
      (from vendor/nginx-1.2.1/src/os/unix/ngx_setproctitle.h)
    vendor/nginx-1.2.6/src/os/unix/ngx_shmem.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_shmem.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_shmem.h
      (from vendor/nginx-1.2.1/src/os/unix/ngx_shmem.h)
    vendor/nginx-1.2.6/src/os/unix/ngx_socket.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_socket.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_socket.h
      (from vendor/nginx-1.2.1/src/os/unix/ngx_socket.h)
    vendor/nginx-1.2.6/src/os/unix/ngx_solaris.h
      (from vendor/nginx-1.2.1/src/os/unix/ngx_solaris.h)
    vendor/nginx-1.2.6/src/os/unix/ngx_solaris_config.h
      (from vendor/nginx-1.2.1/src/os/unix/ngx_solaris_config.h)
    vendor/nginx-1.2.6/src/os/unix/ngx_solaris_init.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_solaris_init.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_solaris_sendfilev_chain.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_solaris_sendfilev_chain.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_sunpro_amd64.il
      (from vendor/nginx-1.2.1/src/os/unix/ngx_sunpro_amd64.il)
    vendor/nginx-1.2.6/src/os/unix/ngx_sunpro_atomic_sparc64.h
      (from vendor/nginx-1.2.1/src/os/unix/ngx_sunpro_atomic_sparc64.h)
    vendor/nginx-1.2.6/src/os/unix/ngx_sunpro_sparc64.il
      (from vendor/nginx-1.2.1/src/os/unix/ngx_sunpro_sparc64.il)
    vendor/nginx-1.2.6/src/os/unix/ngx_sunpro_x86.il
      (from vendor/nginx-1.2.1/src/os/unix/ngx_sunpro_x86.il)
    vendor/nginx-1.2.6/src/os/unix/ngx_thread.h
      (from vendor/nginx-1.2.1/src/os/unix/ngx_thread.h)
    vendor/nginx-1.2.6/src/os/unix/ngx_time.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_time.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_time.h
      (from vendor/nginx-1.2.1/src/os/unix/ngx_time.h)
    vendor/nginx-1.2.6/src/os/unix/ngx_udp_recv.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_udp_recv.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_user.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_user.c)
    vendor/nginx-1.2.6/src/os/unix/ngx_user.h
      (from vendor/nginx-1.2.1/src/os/unix/ngx_user.h)
    vendor/nginx-1.2.6/src/os/unix/ngx_writev_chain.c
      (from vendor/nginx-1.2.1/src/os/unix/ngx_writev_chain.c)
    vendor/nginx-1.2.6/src/os/unix/rfork_thread.S
      (from vendor/nginx-1.2.1/src/os/unix/rfork_thread.S)

  Modified: .gitignore (+1 -1)
===================================================================
--- .gitignore    2013-01-17 13:42:10 +0900 (115ea97)
+++ .gitignore    2013-01-17 13:43:24 +0900 (b247c10)
@@ -33,7 +33,7 @@
 /groonga.pc
 /groonga-httpd-conf.sh
 /data/groonga-httpd.conf
-/vendor/nginx-1.2.1/objs
+/vendor/nginx-*/objs
 /vendor/mruby/parse.c
 /groonga.spec
 /stamp-h1

  Modified: nginx_version (+1 -1)
===================================================================
--- nginx_version    2013-01-17 13:42:10 +0900 (6085e94)
+++ nginx_version    2013-01-17 13:43:24 +0900 (3c43790)
@@ -1 +1 @@
-1.2.1
+1.2.6

  Deleted: vendor/nginx-1.2.1/auto/lib/zlib/makefile.bcc (+0 -15) 100644
===================================================================
--- vendor/nginx-1.2.1/auto/lib/zlib/makefile.bcc    2013-01-17 13:42:10 +0900 (56f8356)
+++ /dev/null
@@ -1,15 +0,0 @@
-
-# Copyright (C) Igor Sysoev
-# Copyright (C) Nginx, Inc.
-
-
-CFLAGS = -q -O2 -tWM -w-8004 -w-8012 $(CPU_OPT)
-
-zlib.lib:
-	cd $(ZLIB)
-
-	bcc32 -c $(CFLAGS) adler32.c crc32.c deflate.c trees.c zutil.c \
-		compress.c
-
-	tlib zlib.lib +adler32.obj +crc32.obj +deflate.obj \
-		+trees.obj +zutil.obj +compress.obj

  Deleted: vendor/nginx-1.2.1/html/50x.html (+0 -18) 100644
===================================================================
--- vendor/nginx-1.2.1/html/50x.html    2013-01-17 13:42:10 +0900 (836fb2d)
+++ /dev/null
@@ -1,18 +0,0 @@
-<html>
-<head>
-<title>The page is temporarily unavailable</title>
-<style>
-body { font-family: Tahoma, Verdana, Arial, sans-serif; }
-</style>
-</head>
-<body bgcolor="white" text="black">
-<table width="100%" height="100%">
-<tr>
-<td align="center" valign="middle">
-The page you are looking for is temporarily unavailable.<br/>
-Please try again later.
-</td>
-</tr>
-</table>
-</body>
-</html>

  Deleted: vendor/nginx-1.2.1/html/index.html (+0 -8) 100644
===================================================================
--- vendor/nginx-1.2.1/html/index.html    2013-01-17 13:42:10 +0900 (1f79275)
+++ /dev/null
@@ -1,8 +0,0 @@
-<html>
-<head>
-<title>Welcome to nginx!</title>
-</head>
-<body bgcolor="white" text="black">
-<center><h1>Welcome to nginx!</h1></center>
-</body>
-</html>

  Renamed: vendor/nginx-1.2.6/CHANGES (+143 -0) 97%
===================================================================
--- vendor/nginx-1.2.1/CHANGES    2013-01-17 13:42:10 +0900 (2095422)
+++ vendor/nginx-1.2.6/CHANGES    2013-01-17 13:43:24 +0900 (ca47aee)
@@ -1,4 +1,147 @@
 
+Changes with nginx 1.2.6                                         11 Dec 2012
+
+    *) Feature: the $request_time and $msec variables can now be used not
+       only in the "log_format" directive.
+
+    *) Bugfix: cache manager and cache loader processes might not be able to
+       start if more than 512 listen sockets were used.
+
+    *) Bugfix: in the ngx_http_dav_module.
+
+
+Changes with nginx 1.2.5                                         13 Nov 2012
+
+    *) Feature: the "optional_no_ca" parameter of the "ssl_verify_client"
+       directive.
+       Thanks to Mike Kazantsev and Eric O'Connor.
+
+    *) Feature: the $bytes_sent, $connection, and $connection_requests
+       variables can now be used not only in the "log_format" directive.
+       Thanks to Benjamin Grössing.
+
+    *) Feature: resolver now randomly rotates addresses returned from cache.
+       Thanks to Anton Jouline.
+
+    *) Feature: the "auto" parameter of the "worker_processes" directive.
+
+    *) Bugfix: "cache file ... has md5 collision" alert.
+
+    *) Bugfix: OpenSSL 0.9.7 compatibility.
+
+
+Changes with nginx 1.2.4                                         25 Sep 2012
+
+    *) Bugfix: in the "limit_req" directive; the bug had appeared in 1.1.14.
+       Thanks to Charles Chen.
+
+    *) Bugfix: nginx could not be built by gcc 4.7 with -O2 optimization if
+       the --with-ipv6 option was used.
+
+    *) Bugfix: a segmentation fault might occur in a worker process if the
+       "map" directive was used with variables as values.
+
+    *) Bugfix: a segmentation fault might occur in a worker process if the
+       "geo" directive was used with the "ranges" parameter but without the
+       "default" parameter; the bug had appeared in 0.8.43.
+       Thanks to Zhen Chen and Weibin Yao.
+
+    *) Bugfix: in the -p command-line parameter handling.
+
+    *) Bugfix: in the mail proxy server.
+
+    *) Bugfix: of minor potential bugs.
+       Thanks to Coverity.
+
+    *) Bugfix: nginx/Windows could not be built with Visual Studio 2005
+       Express.
+       Thanks to HAYASHI Kentaro.
+
+
+Changes with nginx 1.2.3                                         07 Aug 2012
+
+    *) Feature: the Clang compiler support.
+
+    *) Bugfix: extra listening sockets might be created.
+       Thanks to Roman Odaisky.
+
+    *) Bugfix: nginx/Windows might hog CPU if a worker process failed to
+       start.
+       Thanks to Ricardo Villalobos Guevara.
+
+    *) Bugfix: the "proxy_pass_header", "fastcgi_pass_header",
+       "scgi_pass_header", "uwsgi_pass_header", "proxy_hide_header",
+       "fastcgi_hide_header", "scgi_hide_header", and "uwsgi_hide_header"
+       directives might be inherited incorrectly.
+
+    *) Bugfix: trailing dot in a source value was not ignored if the "map"
+       directive was used with the "hostnames" parameter.
+
+    *) Bugfix: incorrect location might be used to process a request if a
+       URI was changed via a "rewrite" directive before an internal redirect
+       to a named location.
+
+
+Changes with nginx 1.2.2                                         03 Jul 2012
+
+    *) Change: the "single" parameter of the "keepalive" directive is now
+       ignored.
+
+    *) Change: SSL compression is now disabled when using all versions of
+       OpenSSL, including ones prior to 1.0.0.
+
+    *) Feature: the "proxy_pass", "fastcgi_pass", "scgi_pass", "uwsgi_pass"
+       directives, and the "server" directive inside the "upstream" block,
+       now support IPv6 addresses.
+
+    *) Feature: the "resolver" directive now supports IPv6 addresses and an
+       optional port specification.
+
+    *) Feature: the "least_conn" directive inside the "upstream" block.
+
+    *) Feature: it is now possible to specify a weight for servers while
+       using the "ip_hash" directive.
+
+    *) Feature: it is now possible to use the "ip_hash" directive to balance
+       IPv6 clients.
+
+    *) Feature: the $status variable can now be used not only in the
+       "log_format" directive.
+
+    *) Bugfix: nginx could not be built with ngx_cpp_test_module; the bug
+       had appeared in 1.1.12.
+
+    *) Bugfix: access to variables from SSI and embedded perl module might
+       not work after reconfiguration.
+       Thanks to Yichun Zhang.
+
+    *) Bugfix: in the ngx_http_xslt_filter_module.
+       Thanks to Kuramoto Eiji.
+
+    *) Bugfix: memory leak if $geoip_org variable was used.
+       Thanks to Denis F. Latypoff.
+
+    *) Bugfix: in the "proxy_cookie_domain" and "proxy_cookie_path"
+       directives.
+
+    *) Bugfix: a segmentation fault might occur in a worker process on
+       shutdown if the "resolver" directive was used.
+
+    *) Bugfix: a segmentation fault might occur in a worker process if the
+       ngx_http_mp4_module was used.
+
+    *) Bugfix: in the ngx_http_mp4_module.
+
+    *) Bugfix: a segmentation fault might occur in a worker process if
+       conflicting wildcard server names were used.
+
+    *) Bugfix: nginx might be terminated abnormally on a SIGBUS signal on
+       ARM platform.
+
+    *) Bugfix: an alert "sendmsg() failed (9: Bad file number)" on HP-UX
+       while reconfiguration.
+
+
 Changes with nginx 1.2.1                                         05 Jun 2012
 
     *) Security: now nginx/Windows ignores trailing dot in URI path

  Renamed: vendor/nginx-1.2.6/CHANGES.ru (+140 -0) 97%
===================================================================
--- vendor/nginx-1.2.1/CHANGES.ru    2013-01-17 13:42:10 +0900 (63ac53e)
+++ vendor/nginx-1.2.6/CHANGES.ru    2013-01-17 13:43:24 +0900 (d6c774e)
@@ -1,4 +1,144 @@
 
+Изменения в nginx 1.2.6                                           11.12.2012
+
+    *) Добавление: переменные $request_time и $msec теперь можно
+       использовать не только в директиве log_format.
+
+    *) Исправление: cache manager и cache loader могли не запускаться, если
+       использовалось более 512 listen-сокетов.
+
+    *) Исправление: в модуле ngx_http_dav_module.
+
+
+Изменения в nginx 1.2.5                                           13.11.2012
+
+    *) Добавление: параметр optional_no_ca директивы ssl_verify_client.
+       Спасибо Михаилу Казанцеву и Eric O'Connor.
+
+    *) Добавление: переменные $bytes_sent, $connection и
+       $connection_requests теперь можно использовать не только в директиве
+       log_format.
+       Спасибо Benjamin Grössing.
+
+    *) Добавление: теперь resolver случайным образом меняет порядок
+       возвращаемых закэшированных адресов.
+       Спасибо Антону Жулину.
+
+    *) Добавление: параметр auto директивы worker_processes.
+
+    *) Исправление: сообщения "cache file ... has md5 collision".
+
+    *) Исправление: совместимость с OpenSSL 0.9.7.
+
+
+Изменения в nginx 1.2.4                                           25.09.2012
+
+    *) Исправление: в директиве "limit_req"; ошибка появилась в 1.1.14.
+       Спасибо Charles Chen.
+
+    *) Исправление: nginx не собирался gcc 4.7 с оптимизацией -O2 если
+       использовался параметр --with-ipv6.
+
+    *) Исправление: в рабочем процессе мог произойти segmentation fault,
+       если в директиве map в качестве значений использовались переменные.
+
+    *) Исправление: в рабочем процессе мог произойти segmentation fault при
+       использовании директивы geo с параметром ranges, но без параметра
+       default; ошибка появилась в 0.8.43.
+       Спасибо Zhen Chen и Weibin Yao.
+
+    *) Исправление: в обработке параметра командной строки -p.
+
+    *) Исправление: в почтовом прокси-сервере.
+
+    *) Исправление: незначительных потенциальных ошибок.
+       Спасибо Coverity.
+
+    *) Исправление: nginx/Windows не собирался с Visual Studio 2005 Express.
+       Спасибо HAYASHI Kentaro.
+
+
+Изменения в nginx 1.2.3                                           07.08.2012
+
+    *) Добавление: поддержка компилятора Clang.
+
+    *) Исправление: могли создаваться лишние слушающие сокеты.
+       Спасибо Роману Одайскому.
+
+    *) Исправление: nginx/Windows мог нагружать процессор, если при запуске
+       рабочего процесса происходила ошибка.
+       Спасибо Ricardo Villalobos Guevara.
+
+    *) Исправление: директивы proxy_pass_header, fastcgi_pass_header,
+       scgi_pass_header, uwsgi_pass_header, proxy_hide_header,
+       fastcgi_hide_header, scgi_hide_header и uwsgi_hide_header могли
+       наследоваться некорректно.
+
+    *) Исправление: при использовании директивы map с параметром hostnames
+       не игнорировалась конечная точка в исходном значении.
+
+    *) Исправление: для обработки запроса мог использоваться неверный
+       location, если переход в именованный location происходил после
+       изменения URI с помощью директивы rewrite.
+
+
+Изменения в nginx 1.2.2                                           03.07.2012
+
+    *) Изменение: параметр single директивы keepalive теперь игнорируется.
+
+    *) Изменение: сжатие SSL теперь отключено в том числе при использовании
+       OpenSSL cтарее 1.0.0.
+
+    *) Добавление: директивы proxy_pass, fastcgi_pass, scgi_pass, uwsgi_pass
+       и директива server в блоке upstream теперь поддерживают IPv6-адреса.
+
+    *) Добавление: в директиве resolver теперь можно указывать порт и
+       задавать IPv6-адреса DNS-серверов.
+
+    *) Добавление: директива least_conn в блоке upstream.
+
+    *) Добавление: при использовании директивы ip_hash теперь можно задавать
+       веса серверов.
+
+    *) Добавление: директиву "ip_hash" теперь можно использовать для
+       балансировки IPv6 клиентов.
+
+    *) Добавление: переменную $status теперь можно использовать не только в
+       директиве log_format.
+
+    *) Исправление: nginx не собирался с модулем ngx_cpp_test_module; ошибка
+       появилась в 1.1.12.
+
+    *) Исправление: доступ к переменным из SSI и встроенного перла мог не
+       работать после переконфигурации.
+       Спасибо Yichun Zhang.
+
+    *) Исправление: в модуле ngx_http_xslt_filter_module.
+       Спасибо Kuramoto Eiji.
+
+    *) Исправление: утечки памяти при использовании переменной $geoip_org.
+       Спасибо Денису Латыпову.
+
+    *) Исправление: в директивах proxy_cookie_domain и proxy_cookie_path.
+
+    *) Исправление: при завершении рабочего процесса мог произойти
+       segmentation fault, если использовалась директива resolver.
+
+    *) Исправление: в рабочем процессе мог произойти segmentation fault,
+       если использовался модуль ngx_http_mp4_module.
+
+    *) Исправление: в модуле ngx_http_mp4_module.
+
+    *) Исправление: в рабочем процессе мог произойти segmentation fault,
+       если использовались конфликтующие имена серверов с масками.
+
+    *) Исправление: на платформе ARM nginx мог аварийно завершаться по
+       сигналу SIGBUS.
+
+    *) Исправление: во время переконфигурации на HP-UX в лог записывался
+       alert "sendmsg() failed (9: Bad file number)".
+
+
 Изменения в nginx 1.2.1                                           05.06.2012
 
     *) Безопасность: теперь nginx/Windows игнорирует точку в конце

  Renamed: vendor/nginx-1.2.6/LICENSE (+3 -2) 87%
===================================================================
--- vendor/nginx-1.2.1/LICENSE    2013-01-17 13:42:10 +0900 (1bfc054)
+++ vendor/nginx-1.2.6/LICENSE    2013-01-17 13:43:24 +0900 (c78be7e)
@@ -1,6 +1,7 @@
 /* 
  * Copyright (C) 2002-2012 Igor Sysoev
  * Copyright (C) 2011,2012 Nginx, Inc.
+ * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -11,10 +12,10 @@
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
  *
- * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)

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

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

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

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

  Added: vendor/nginx-1.2.6/auto/cc/clang (+98 -0) 100644
===================================================================
--- /dev/null
+++ vendor/nginx-1.2.6/auto/cc/clang    2013-01-17 13:43:24 +0900 (9f60d7b)
@@ -0,0 +1,98 @@
+
+# Copyright (C) Nginx, Inc.
+
+
+# clang
+
+
+NGX_CLANG_VER=`$CC -v 2>&1 | grep 'clang version' 2>&1 \
+                           | sed -e 's/^.*clang version \(.*\)/\1/'`
+
+echo " + clang version: $NGX_CLANG_VER"
+
+have=NGX_COMPILER value="\"clang $NGX_CLANG_VER\"" . auto/define
+
+
+CC_TEST_FLAGS="-pipe"
+
+
+# optimizations
+
+#NGX_CLANG_OPT="-O2"
+#NGX_CLANG_OPT="-Oz"
+NGX_CLANG_OPT="-O"
+
+case $CPU in
+    pentium)
+        # optimize for Pentium
+        CPU_OPT="-march=pentium"
+        NGX_CPU_CACHE_LINE=32
+    ;;
+
+    pentiumpro | pentium3)
+        # optimize for Pentium Pro, Pentium II and Pentium III
+        CPU_OPT="-march=pentiumpro"
+        NGX_CPU_CACHE_LINE=32
+    ;;
+
+    pentium4)
+        # optimize for Pentium 4
+        CPU_OPT="-march=pentium4"
+        NGX_CPU_CACHE_LINE=128
+    ;;
+
+    athlon)
+        # optimize for Athlon
+        CPU_OPT="-march=athlon"
+        NGX_CPU_CACHE_LINE=64
+    ;;
+
+    opteron)
+        # optimize for Opteron
+        CPU_OPT="-march=opteron"
+        NGX_CPU_CACHE_LINE=64
+    ;;
+
+esac
+
+CC_AUX_FLAGS="$CC_AUX_FLAGS $CPU_OPT"
+
+
+CFLAGS="$CFLAGS -pipe $CPU_OPT"
+
+if [ ".$PCRE_OPT" = "." ]; then
+    PCRE_OPT="-O2 -pipe $CPU_OPT"
+else
+    PCRE_OPT="$PCRE_OPT -pipe"
+fi
+
+if [ ".$MD5_OPT" = "." ]; then
+    MD5_OPT="-O2 -pipe $CPU_OPT"
+else
+    MD5_OPT="$MD5_OPT -pipe"
+fi
+
+if [ ".$ZLIB_OPT" = "." ]; then
+    ZLIB_OPT="-O2 -pipe $CPU_OPT"
+else
+    ZLIB_OPT="$ZLIB_OPT -pipe"
+fi
+
+
+# warnings
+
+CFLAGS="$CFLAGS $NGX_CLANG_OPT -Wall -Wextra -Wpointer-arith"
+#CFLAGS="$CFLAGS -Wmissing-prototypes"
+
+# we have a lot of unused function arguments
+CFLAGS="$CFLAGS -Wno-unused-parameter"
+
+# stop on warning
+#CFLAGS="$CFLAGS -Werror"
+
+# debug
+CFLAGS="$CFLAGS -g"
+
+if [ ".$CPP" = "." ]; then
+    CPP="$CC -E"
+fi

  Renamed: vendor/nginx-1.2.6/auto/cc/conf (+6 -0) 97%
===================================================================
--- vendor/nginx-1.2.1/auto/cc/conf    2013-01-17 13:42:10 +0900 (c9118f2)
+++ vendor/nginx-1.2.6/auto/cc/conf    2013-01-17 13:43:24 +0900 (8027b98)
@@ -56,6 +56,12 @@ else
             . auto/cc/gcc
         ;;
 
+        clang)
+            # Clang C compiler
+
+            . auto/cc/clang
+        ;;
+
         icc)
             # Intel C++ compiler 7.1, 8.0, 8.1
 

  Renamed: vendor/nginx-1.2.6/auto/cc/gcc (+1 -3) 96%
===================================================================
--- vendor/nginx-1.2.1/auto/cc/gcc    2013-01-17 13:42:10 +0900 (de666a3)
+++ vendor/nginx-1.2.6/auto/cc/gcc    2013-01-17 13:43:24 +0900 (c27d857)
@@ -149,15 +149,13 @@ CFLAGS="$CFLAGS ${NGX_GCC_OPT:--O} -W"
 CFLAGS="$CFLAGS -Wall -Wpointer-arith"
 #CFLAGS="$CFLAGS -Wconversion"
 #CFLAGS="$CFLAGS -Winline"
+#CFLAGS="$CFLAGS -Wmissing-prototypes"
 
 
 case "$NGX_GCC_VER" in
     3.* | 4.* )
         # we have a lot of the unused function arguments
         CFLAGS="$CFLAGS -Wno-unused-parameter"
-        CFLAGS="$CFLAGS -Wunused-function"
-        CFLAGS="$CFLAGS -Wunused-variable"
-        CFLAGS="$CFLAGS -Wunused-value"
         # 4.2.1 shows the warning in wrong places
         #CFLAGS="$CFLAGS -Wunreachable-code"
     ;;

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

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

  Renamed: vendor/nginx-1.2.6/auto/cc/name (+14 -26) 74%
===================================================================
--- vendor/nginx-1.2.1/auto/cc/name    2013-01-17 13:42:10 +0900 (7860c69)
+++ vendor/nginx-1.2.6/auto/cc/name    2013-01-17 13:43:24 +0900 (7a5656c)
@@ -32,14 +32,14 @@ if [ "$CC" = cl ]; then
         NGX_CC_NAME=msvc10
         echo " + using Microsoft Visual C++ 10 compiler"
 
-    else if `$NGX_WINE $CC -v 2>&1 \
+    elif `$NGX_WINE $CC -v 2>&1 \
         | grep '^Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14' \
         >/dev/null 2>&1`; then
 
         NGX_CC_NAME=msvc8
         echo " + using Microsoft Visual C++ 8 compiler"
 
-    else if `$NGX_WINE $CC -v 2>&1 \
+    elif `$NGX_WINE $CC -v 2>&1 \
         | grep '^Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13' \
         >/dev/null 2>&1`; then
 
@@ -50,52 +50,40 @@ if [ "$CC" = cl ]; then
         NGX_CC_NAME=msvc
         echo " + using Microsoft Visual C++ compiler"
     fi
-    fi
-    fi
 
-else
-if [ "$CC" = wcl386 ]; then
+elif [ "$CC" = wcl386 ]; then
     NGX_CC_NAME=owc
     echo " + using Open Watcom C compiler"
 
-else
-if [ "$CC" = bcc32 ]; then
+elif [ "$CC" = bcc32 ]; then
     NGX_CC_NAME=bcc
     echo " + using Borland C++ compiler"
 
-else
-if `$CC -V 2>&1 | grep '^Intel(R) C' >/dev/null 2>&1`; then
+elif `$CC -V 2>&1 | grep '^Intel(R) C' >/dev/null 2>&1`; then
     NGX_CC_NAME=icc
     echo " + using Intel C++ compiler"
 
-else
-if `$CC -v 2>&1 | grep 'gcc version' >/dev/null 2>&1`; then
+elif `$CC -v 2>&1 | grep 'gcc version' >/dev/null 2>&1`; then
     NGX_CC_NAME=gcc
     echo " + using GNU C compiler"
 
-else
-if `$CC -V 2>&1 | grep 'Sun C' >/dev/null 2>&1`; then
+elif `$CC -v 2>&1 | grep 'clang version' >/dev/null 2>&1`; then
+    NGX_CC_NAME=clang
+    echo " + using Clang C compiler"
+
+elif `$CC -V 2>&1 | grep 'Sun C' >/dev/null 2>&1`; then
     NGX_CC_NAME=sunc
     echo " + using Sun C compiler"
 
-else
-if `$CC -V 2>&1 | grep '^Compaq C' >/dev/null 2>&1`; then
+elif `$CC -V 2>&1 | grep '^Compaq C' >/dev/null 2>&1`; then
     NGX_CC_NAME=ccc
     echo " + using Compaq C compiler"
 
-else
-if `$CC -V 2>&1 | grep '^aCC: ' >/dev/null 2>&1`; then
+elif `$CC -V 2>&1 | grep '^aCC: ' >/dev/null 2>&1`; then
     NGX_CC_NAME=acc
     echo " + using HP aC++ compiler"
 
 else
     NGX_CC_NAME=unknown
 
-fi # acc
-fi # ccc
-fi # sunc
-fi # icc
-fi # gcc
-fi # bcc
-fi # owc
-fi # msvc
+fi

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

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

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

  Renamed: vendor/nginx-1.2.6/auto/endianness (+5 -5) 72%
===================================================================
--- vendor/nginx-1.2.1/auto/endianess    2013-01-17 13:42:10 +0900 (452dd7c)
+++ vendor/nginx-1.2.6/auto/endianness    2013-01-17 13:43:24 +0900 (87311a0)
@@ -3,9 +3,9 @@
 # Copyright (C) Nginx, Inc.
 
 
-echo $ngx_n "checking for system endianess ...$ngx_c"
+echo $ngx_n "checking for system byte ordering ...$ngx_c"
 echo >> $NGX_ERR
-echo "checking for system endianess" >> $NGX_ERR
+echo "checking for system byte ordering" >> $NGX_ERR
 
 
 cat << END > $NGX_AUTOTEST.c
@@ -28,10 +28,10 @@ eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1"
 
 if [ -x $NGX_AUTOTEST ]; then
     if $NGX_AUTOTEST >/dev/null 2>&1; then
-        echo " little endianess"
+        echo " little endian"
         have=NGX_HAVE_LITTLE_ENDIAN . auto/have
     else
-        echo " big endianess"
+        echo " big endian"
     fi
 
     rm $NGX_AUTOTEST*
@@ -40,6 +40,6 @@ else
     rm $NGX_AUTOTEST*
 
     echo
-    echo "$0: error: can not detect system endianess"
+    echo "$0: error: cannot detect system byte ordering"
     exit 1
 fi

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

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

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

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

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

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

  Renamed: vendor/nginx-1.2.6/auto/install (+1 -1) 98%
===================================================================
--- vendor/nginx-1.2.1/auto/install    2013-01-17 13:42:10 +0900 (c2c0ade)
+++ vendor/nginx-1.2.6/auto/install    2013-01-17 13:43:24 +0900 (254f9bc)
@@ -8,7 +8,7 @@ if [ $USE_PERL = YES ]; then
     cat << END                                                >> $NGX_MAKEFILE
 
 install_perl_modules:
-	cd $NGX_OBJS/src/http/modules/perl && make install
+	cd $NGX_OBJS/src/http/modules/perl && \$(MAKE) install
 END
 
     NGX_INSTALL_PERL_MODULES=install_perl_modules

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

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

  Renamed: vendor/nginx-1.2.6/auto/lib/google-perftools/conf (+16 -0) 73%
===================================================================
--- vendor/nginx-1.2.1/auto/lib/google-perftools/conf    2013-01-17 13:42:10 +0900 (398ddd0)
+++ vendor/nginx-1.2.6/auto/lib/google-perftools/conf    2013-01-17 13:43:24 +0900 (7a9de30)
@@ -29,6 +29,22 @@ if [ $ngx_found = no ]; then
 fi
 
 
+if [ $ngx_found = no ]; then
+
+    # MacPorts
+
+    ngx_feature="Google perftools in /opt/local/"
+
+    if [ $NGX_RPATH = YES ]; then
+        ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lprofiler"
+    else
+        ngx_feature_libs="-L/opt/local/lib -lprofiler"
+    fi
+
+    . auto/feature
+fi
+
+
 if [ $ngx_found = yes ]; then
     CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
 

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

  Renamed: vendor/nginx-1.2.6/auto/lib/libatomic/make (+1 -1) 89%
===================================================================
--- vendor/nginx-1.2.1/auto/lib/libatomic/make    2013-01-17 13:42:10 +0900 (b84267b)
+++ vendor/nginx-1.2.6/auto/lib/libatomic/make    2013-01-17 13:43:24 +0900 (023ed18)
@@ -6,7 +6,7 @@
     cat << END                                            >> $NGX_MAKEFILE
 
 $NGX_LIBATOMIC/src/libatomic_ops.a:	$NGX_LIBATOMIC/Makefile
-	cd $NGX_LIBATOMIC && make
+	cd $NGX_LIBATOMIC && \$(MAKE)
 
 $NGX_LIBATOMIC/Makefile:	$NGX_MAKEFILE
 	cd $NGX_LIBATOMIC && ./configure

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.2.6/auto/lib/perl/conf (+9 -1) 87%
===================================================================
--- vendor/nginx-1.2.1/auto/lib/perl/conf    2013-01-17 13:42:10 +0900 (52c7084)
+++ vendor/nginx-1.2.6/auto/lib/perl/conf    2013-01-17 13:43:24 +0900 (5ce6c91)
@@ -12,7 +12,7 @@ NGX_PERL_VER=`$NGX_PERL -v 2>&1 | grep '^This is perl' 2>&1 \
 if test -n "$NGX_PERL_VER"; then
     echo " + perl version: $NGX_PERL_VER"
 
-    if [ "`echo 'use 5.006001; print "OK"' | $NGX_PERL 2>&1`" != OK ]; then
+    if [ "`$NGX_PERL -e 'use 5.006001; print "OK"'`" != "OK" ]; then
         echo
         echo "$0: error: perl 5.6.1 or higher is required"
         echo
@@ -20,6 +20,14 @@ if test -n "$NGX_PERL_VER"; then
         exit 1;
     fi
 
+    if [ "`$NGX_PERL -MExtUtils::Embed -e 'print "OK"'`" != "OK" ]; then
+        echo
+        echo "$0: error: perl module ExtUtils::Embed is required"
+        echo
+
+        exit 1;
+    fi
+
     NGX_PERL_CFLAGS="$CFLAGS `$NGX_PERL -MExtUtils::Embed -e ccopts`"
     NGX_PM_CFLAGS=`$NGX_PERL -MExtUtils::Embed -e ccopts`
 

  Renamed: vendor/nginx-1.2.6/auto/lib/perl/make (+1 -1) 95%
===================================================================
--- vendor/nginx-1.2.1/auto/lib/perl/make    2013-01-17 13:42:10 +0900 (b4df01d)
+++ vendor/nginx-1.2.6/auto/lib/perl/make    2013-01-17 13:43:24 +0900 (5f13bb2)
@@ -12,7 +12,7 @@ $NGX_OBJS/src/http/modules/perl/blib/arch/auto/nginx/nginx.so:		\
 		$NGX_OBJS/src/http/modules/perl/Makefile
 	cp -p src/http/modules/perl/nginx.* $NGX_OBJS/src/http/modules/perl/
 
-	cd $NGX_OBJS/src/http/modules/perl && make
+	cd $NGX_OBJS/src/http/modules/perl && \$(MAKE)
 
 	rm -rf $NGX_OBJS/install_perl
 

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

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

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

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

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

  Renamed: vendor/nginx-1.2.6/auto/lib/test (+0 -0) 100%
===================================================================

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

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

  Added: vendor/nginx-1.2.6/auto/lib/zlib/makefile.bcc (+17 -0) 100644
===================================================================
--- /dev/null
+++ vendor/nginx-1.2.6/auto/lib/zlib/makefile.bcc    2013-01-17 13:43:24 +0900 (97a30ea)
@@ -0,0 +1,17 @@
+
+# Copyright (C) Igor Sysoev
+# Copyright (C) Nginx, Inc.
+
+
+CFLAGS = -q -O2 -tWM -w-8004 -w-8012 $(CPU_OPT)
+
+zlib.lib:
+	cd $(ZLIB)
+
+	bcc32 -c $(CFLAGS) adler32.c crc32.c deflate.c \
+		trees.c zutil.c compress.c \
+		inflate.c inffast.c inftrees.c
+
+	tlib zlib.lib +adler32.obj +crc32.obj +deflate.obj \
+		+trees.obj +zutil.obj +compress.obj \
+		+inflate.obj +inffast.obj +inftrees.obj

  Renamed: vendor/nginx-1.2.6/auto/lib/zlib/makefile.msvc (+5 -2) 51%
===================================================================
--- vendor/nginx-1.2.1/auto/lib/zlib/makefile.msvc    2013-01-17 13:42:10 +0900 (2c7c1ae)
+++ vendor/nginx-1.2.6/auto/lib/zlib/makefile.msvc    2013-01-17 13:43:24 +0900 (6fbd691)
@@ -8,7 +8,10 @@ CFLAGS = -nologo -O2 -Ob1 -Oi -Gs $(LIBC) $(CPU_OPT)
 zlib.lib:
 	cd $(ZLIB)
 
-	cl -c $(CFLAGS) adler32.c crc32.c deflate.c trees.c zutil.c compress.c
+	cl -c $(CFLAGS) adler32.c crc32.c deflate.c \
+		trees.c zutil.c compress.c \
+		inflate.c inffast.c inftrees.c
 
 	link -lib -out:zlib.lib adler32.obj crc32.obj deflate.obj \
-		trees.obj zutil.obj compress.obj
+		trees.obj zutil.obj compress.obj \
+		inflate.obj inffast.obj inftrees.obj

  Renamed: vendor/nginx-1.2.6/auto/lib/zlib/makefile.owc (+2 -2) 71%
===================================================================
--- vendor/nginx-1.2.1/auto/lib/zlib/makefile.owc    2013-01-17 13:42:10 +0900 (f75e66d)
+++ vendor/nginx-1.2.6/auto/lib/zlib/makefile.owc    2013-01-17 13:43:24 +0900 (9e123be)
@@ -9,6 +9,6 @@ zlib.lib:
 	cd $(ZLIB)
 
 	wcl386 -c $(CFLAGS) adler32.c crc32.c deflate.c trees.c zutil.c &
-		compress.c
+		compress.c inflate.c inffast.c inftrees.c
 	wlib -n zlib.lib adler32.obj crc32.obj deflate.obj trees.obj &
-		zutil.obj compress.obj
+		zutil.obj compress.obj inflate.obj inffast.obj inftrees.obj

  Renamed: vendor/nginx-1.2.6/auto/lib/zlib/patch.zlib.h (+0 -0) 100%
===================================================================

  Renamed: vendor/nginx-1.2.6/auto/make (+3 -3) 98%
===================================================================
--- vendor/nginx-1.2.1/auto/make    2013-01-17 13:42:10 +0900 (e7f5490)
+++ vendor/nginx-1.2.6/auto/make    2013-01-17 13:43:24 +0900 (05b7454)
@@ -49,7 +49,7 @@ END
 ngx_all_srcs="$CORE_SRCS"
 
 
-# the core dependences and include pathes
+# the core dependences and include paths
 
 ngx_deps=`echo $CORE_DEPS $NGX_AUTO_CONFIG_H $NGX_PCH \
     | sed -e "s/  *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \
@@ -69,7 +69,7 @@ CORE_INCS = $ngx_include_opt$ngx_incs
 END
 
 
-# the http dependences and include pathes
+# the http dependences and include paths
 
 if [ $HTTP = YES ]; then
 
@@ -95,7 +95,7 @@ END
 fi
 
 
-# the mail dependences and include pathes
+# the mail dependences and include paths
 
 if [ $MAIL = YES ]; then
 

  Renamed: vendor/nginx-1.2.6/auto/modules (+10 -0) 97%
===================================================================
--- vendor/nginx-1.2.1/auto/modules    2013-01-17 13:42:10 +0900 (dab660f)
+++ vendor/nginx-1.2.6/auto/modules    2013-01-17 13:43:24 +0900 (d872c4e)
@@ -223,6 +223,7 @@ fi
 
 if [ $HTTP_REALIP = YES ]; then
     have=NGX_HTTP_REALIP . auto/have
+    have=NGX_HTTP_X_FORWARDED_FOR . auto/have
     HTTP_MODULES="$HTTP_MODULES $HTTP_REALIP_MODULE"
     HTTP_SRCS="$HTTP_SRCS $HTTP_REALIP_SRCS"
 fi
@@ -234,11 +235,13 @@ fi
 
 if [ $HTTP_GEO = YES ]; then
     have=NGX_HTTP_GEO . auto/have
+    have=NGX_HTTP_X_FORWARDED_FOR . auto/have
     HTTP_MODULES="$HTTP_MODULES $HTTP_GEO_MODULE"
     HTTP_SRCS="$HTTP_SRCS $HTTP_GEO_SRCS"
 fi
 
 if [ $HTTP_GEOIP = YES ]; then
+    have=NGX_HTTP_X_FORWARDED_FOR . auto/have
     HTTP_MODULES="$HTTP_MODULES $HTTP_GEOIP_MODULE"
     HTTP_SRCS="$HTTP_SRCS $HTTP_GEOIP_SRCS"
 fi
@@ -274,6 +277,7 @@ fi
 
 if [ $HTTP_PROXY = YES ]; then
     have=NGX_HTTP_PROXY . auto/have
+    have=NGX_HTTP_X_FORWARDED_FOR . auto/have
     #USE_MD5=YES
     HTTP_MODULES="$HTTP_MODULES $HTTP_PROXY_MODULE"
     HTTP_DEPS="$HTTP_DEPS $HTTP_PROXY_DEPS"
@@ -345,6 +349,11 @@ if [ $HTTP_UPSTREAM_IP_HASH = YES ]; then
     HTTP_SRCS="$HTTP_SRCS $HTTP_UPSTREAM_IP_HASH_SRCS"
 fi
 
+if [ $HTTP_UPSTREAM_LEAST_CONN = YES ]; then
+    HTTP_MODULES="$HTTP_MODULES $HTTP_UPSTREAM_LEAST_CONN_MODULE"
+    HTTP_SRCS="$HTTP_SRCS $HTTP_UPSTREAM_LEAST_CONN_SRCS"
+fi
+
 if [ $HTTP_UPSTREAM_KEEPALIVE = YES ]; then
     HTTP_MODULES="$HTTP_MODULES $HTTP_UPSTREAM_KEEPALIVE_MODULE"
     HTTP_SRCS="$HTTP_SRCS $HTTP_UPSTREAM_KEEPALIVE_SRCS"
@@ -458,6 +467,7 @@ fi
 
 if [ $NGX_CPP_TEST = YES ]; then
     NGX_MISC_SRCS="$NGX_MISC_SRCS $NGX_CPP_TEST_SRCS"
+    CORE_LIBS="$CORE_LIBS -lstdc++"
 fi
 
 

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

  Renamed: vendor/nginx-1.2.6/auto/options (+7 -0) 97%
===================================================================
--- vendor/nginx-1.2.1/auto/options    2013-01-17 13:42:10 +0900 (393be40)
+++ vendor/nginx-1.2.6/auto/options    2013-01-17 13:43:24 +0900 (6c3a4db)
@@ -96,6 +96,7 @@ HTTP_FLV=NO
 HTTP_MP4=NO
 HTTP_GZIP_STATIC=NO
 HTTP_UPSTREAM_IP_HASH=YES
+HTTP_UPSTREAM_LEAST_CONN=YES
 HTTP_UPSTREAM_KEEPALIVE=YES
 
 # STUB
@@ -243,6 +244,8 @@ use the \"--without-http_limit_conn_module\" option instead"
         --without-http_empty_gif_module) HTTP_EMPTY_GIF=NO          ;;
         --without-http_browser_module)   HTTP_BROWSER=NO            ;;
         --without-http_upstream_ip_hash_module) HTTP_UPSTREAM_IP_HASH=NO ;;
+        --without-http_upstream_least_conn_module)
+                                         HTTP_UPSTREAM_LEAST_CONN=NO ;;
         --without-http_upstream_keepalive_module) HTTP_UPSTREAM_KEEPALIVE=NO ;;
 
         --with-http_perl_module)         HTTP_PERL=YES              ;;
@@ -382,6 +385,10 @@ cat << END
   --without-http_browser_module      disable ngx_http_browser_module
   --without-http_upstream_ip_hash_module
                                      disable ngx_http_upstream_ip_hash_module
+  --without-http_upstream_least_conn_module
+                                     disable ngx_http_upstream_least_conn_module
+  --without-http_upstream_keepalive_module
+                                     disable ngx_http_upstream_keepalive_module
 
   --with-http_perl_module            enable ngx_http_perl_module
   --with-perl_modules_path=PATH      set Perl modules path

  Renamed: vendor/nginx-1.2.6/auto/os/conf (+2 -0) 94%
===================================================================
--- vendor/nginx-1.2.1/auto/os/conf    2013-01-17 13:42:10 +0900 (8c18a63)
+++ vendor/nginx-1.2.6/auto/os/conf    2013-01-17 13:43:24 +0900 (fe72016)
@@ -48,6 +48,7 @@ case "$NGX_PLATFORM" in
         CORE_DEPS="$UNIX_DEPS $POSIX_DEPS"
         CORE_SRCS="$UNIX_SRCS"
         CC_AUX_FLAGS="$CC_AUX_FLAGS -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1"
+        CC_AUX_FLAGS="$CC_AUX_FLAGS -D_HPUX_ALT_XOPEN_SOCKET_API"
     ;;
 
     OSF1:*)
@@ -93,6 +94,7 @@ case "$NGX_MACHINE" in
     ;;
 
     *)
+        have=NGX_ALIGNMENT value=16 . auto/define
         NGX_MACH_CACHE_LINE=32
     ;;
 

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

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

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

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

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

  Renamed: vendor/nginx-1.2.6/auto/sources (+5 -0) 99%
===================================================================
--- vendor/nginx-1.2.1/auto/sources    2013-01-17 13:42:10 +0900 (374ad66)
+++ vendor/nginx-1.2.6/auto/sources    2013-01-17 13:43:24 +0900 (522d722)
@@ -479,6 +479,11 @@ HTTP_UPSTREAM_IP_HASH_MODULE=ngx_http_upstream_ip_hash_module
 HTTP_UPSTREAM_IP_HASH_SRCS=src/http/modules/ngx_http_upstream_ip_hash_module.c
 
 
+HTTP_UPSTREAM_LEAST_CONN_MODULE=ngx_http_upstream_least_conn_module
+HTTP_UPSTREAM_LEAST_CONN_SRCS=" \
+    src/http/modules/ngx_http_upstream_least_conn_module.c"
+
+
 HTTP_UPSTREAM_KEEPALIVE_MODULE=ngx_http_upstream_keepalive_module
 HTTP_UPSTREAM_KEEPALIVE_SRCS=" \
     src/http/modules/ngx_http_upstream_keepalive_module.c"

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

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

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

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

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

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

  Renamed: vendor/nginx-1.2.6/auto/unix (+1 -1) 99%
===================================================================
--- vendor/nginx-1.2.1/auto/unix    2013-01-17 13:42:10 +0900 (783219e)
+++ vendor/nginx-1.2.6/auto/unix    2013-01-17 13:43:24 +0900 (b0a0e4c)
@@ -464,7 +464,7 @@ ngx_type="rlim_t"; ngx_types="int"; . auto/types/typedef
 
 . auto/types/uintptr_t
 
-. auto/endianess
+. auto/endianness
 
 ngx_type="size_t"; . auto/types/sizeof
 ngx_param=NGX_MAX_SIZE_T_VALUE; ngx_value=$ngx_max_value; . auto/types/value

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

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

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.2.6/configure (+3 -0) 98%
===================================================================
--- vendor/nginx-1.2.1/configure    2013-01-17 13:42:10 +0900 (45ea154)
+++ vendor/nginx-1.2.6/configure    2013-01-17 13:43:24 +0900 (d7d8189)
@@ -4,6 +4,9 @@
 # Copyright (C) Nginx, Inc.
 
 
+LC_ALL=C
+export LC_ALL
+
 . auto/options
 . auto/init
 . auto/sources

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

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

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

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

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

  Added: vendor/nginx-1.2.6/html/50x.html (+21 -0) 100644
===================================================================
--- /dev/null
+++ vendor/nginx-1.2.6/html/50x.html    2013-01-17 13:43:24 +0900 (f60f5e7)
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>Error</title>
+<style>
+    body {
+        width: 35em;
+        margin: 0 auto;
+        font-family: Tahoma, Verdana, Arial, sans-serif;
+    }
+</style>
+</head>
+<body>
+<h1>An error occurred.</h1>
+<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>
+<p><em>Faithfully yours, nginx.</em></p>
+</body>
+</html>

  Added: vendor/nginx-1.2.6/html/index.html (+25 -0) 100644
===================================================================
--- /dev/null
+++ vendor/nginx-1.2.6/html/index.html    2013-01-17 13:43:24 +0900 (2ca3b95)
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>Welcome to nginx!</title>
+<style>
+    body {
+        width: 35em;
+        margin: 0 auto;
+        font-family: Tahoma, Verdana, Arial, sans-serif;
+    }
+</style>
+</head>
+<body>
+<h1>Welcome to nginx!</h1>
+<p>If you see this page, the nginx web server is successfully installed and
+working. Further configuration is required.</p>
+
+<p>For online documentation and support please refer to
+<a href="http://nginx.org/">nginx.org</a>.<br/>
+Commercial support is available at
+<a href="http://nginx.com/">nginx.com</a>.</p>
+
+<p><em>Thank you for using nginx.</em></p>
+</body>
+</html>

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

  Renamed: vendor/nginx-1.2.6/src/core/nginx.c (+34 -3) 97%
===================================================================
--- vendor/nginx-1.2.1/src/core/nginx.c    2013-01-17 13:42:10 +0900 (f21e77d)
+++ vendor/nginx-1.2.6/src/core/nginx.c    2013-01-17 13:43:24 +0900 (d02f911)
@@ -21,6 +21,8 @@ static char *ngx_set_env(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);
 static char *ngx_set_priority(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);
 static char *ngx_set_cpu_affinity(ngx_conf_t *cf, ngx_command_t *cmd,
     void *conf);
+static char *ngx_set_worker_processes(ngx_conf_t *cf, ngx_command_t *cmd,
+    void *conf);
 
 
 static ngx_conf_enum_t  ngx_debug_points[] = {
@@ -69,9 +71,9 @@ static ngx_command_t  ngx_core_commands[] = {
 
     { ngx_string("worker_processes"),
       NGX_MAIN_CONF|NGX_DIRECT_CONF|NGX_CONF_TAKE1,
-      ngx_conf_set_num_slot,
+      ngx_set_worker_processes,
+      0,
       0,
-      offsetof(ngx_core_conf_t, worker_processes),
       NULL },
 
     { ngx_string("debug_points"),
@@ -836,7 +838,7 @@ ngx_process_options(ngx_cycle_t *cycle)
         len = ngx_strlen(ngx_prefix);
         p = ngx_prefix;
 
-        if (!ngx_path_separator(*p)) {
+        if (len && !ngx_path_separator(p[len - 1])) {
             p = ngx_pnalloc(cycle->pool, len + 1);
             if (p == NULL) {
                 return NGX_ERROR;
@@ -1329,3 +1331,32 @@ ngx_get_cpu_affinity(ngx_uint_t n)
 
     return ccf->cpu_affinity[ccf->cpu_affinity_n - 1];
 }
+
+
+static char *
+ngx_set_worker_processes(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
+{
+    ngx_str_t        *value;
+    ngx_core_conf_t  *ccf;
+
+    ccf = (ngx_core_conf_t *) conf;
+
+    if (ccf->worker_processes != NGX_CONF_UNSET) {
+        return "is duplicate";
+    }
+
+    value = (ngx_str_t *) cf->args->elts;
+
+    if (ngx_strcmp(value[1].data, "auto") == 0) {
+        ccf->worker_processes = ngx_ncpu;
+        return NGX_CONF_OK;
+    }
+
+    ccf->worker_processes = ngx_atoi(value[1].data, value[1].len);
+
+    if (ccf->worker_processes == NGX_ERROR) {
+        return "invalid value";
+    }
+
+    return NGX_CONF_OK;
+}

  Renamed: vendor/nginx-1.2.6/src/core/nginx.h (+2 -2) 80%
===================================================================
--- vendor/nginx-1.2.1/src/core/nginx.h    2013-01-17 13:42:10 +0900 (df7ab91)
+++ vendor/nginx-1.2.6/src/core/nginx.h    2013-01-17 13:43:24 +0900 (4d59895)
@@ -9,8 +9,8 @@
 #define _NGINX_H_INCLUDED_
 
 
-#define nginx_version      1002001
-#define NGINX_VERSION      "1.2.1"
+#define nginx_version      1002006
+#define NGINX_VERSION      "1.2.6"
 #define NGINX_VER          "nginx/" NGINX_VERSION
 
 #define NGINX_VAR          "NGINX"

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

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

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

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

  Renamed: vendor/nginx-1.2.6/src/core/ngx_conf_file.c (+19 -23) 97%
===================================================================
--- vendor/nginx-1.2.1/src/core/ngx_conf_file.c    2013-01-17 13:42:10 +0900 (892fa47)
+++ vendor/nginx-1.2.6/src/core/ngx_conf_file.c    2013-01-17 13:43:24 +0900 (6da2dae)
@@ -12,7 +12,6 @@
 
 static ngx_int_t ngx_conf_handler(ngx_conf_t *cf, ngx_int_t last);
 static ngx_int_t ngx_conf_read_token(ngx_conf_t *cf);
-static char *ngx_conf_include(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);
 static ngx_int_t ngx_conf_test_full_name(ngx_str_t *name);
 static void ngx_conf_flush_files(ngx_cycle_t *cycle);
 
@@ -282,24 +281,16 @@ ngx_conf_handler(ngx_conf_t *cf, ngx_int_t last)
 {
     char           *rv;
     void           *conf, **confp;
-    ngx_uint_t      i, multi;
+    ngx_uint_t      i, found;
     ngx_str_t      *name;
     ngx_command_t  *cmd;
 
     name = cf->args->elts;
 
-    multi = 0;
+    found = 0;
 
     for (i = 0; ngx_modules[i]; i++) {
 
-        /* look up the directive in the appropriate modules */
-
-        if (ngx_modules[i]->type != NGX_CONF_MODULE
-            && ngx_modules[i]->type != cf->module_type)
-        {
-            continue;
-        }
-
         cmd = ngx_modules[i]->commands;
         if (cmd == NULL) {
             continue;
@@ -315,16 +306,18 @@ ngx_conf_handler(ngx_conf_t *cf, ngx_int_t last)
                 continue;
             }
 
+            found = 1;
+
+            if (ngx_modules[i]->type != NGX_CONF_MODULE
+                && ngx_modules[i]->type != cf->module_type)
+            {
+                continue;
+            }
 
             /* is the directive's location right ? */
 
             if (!(cmd->type & cf->cmd_type)) {
-                if (cmd->type & NGX_CONF_MULTI) {
-                    multi = 1;
-                    continue;
-                }
-
-                goto not_allowed;
+                continue;
             }
 
             if (!(cmd->type & NGX_CONF_BLOCK) && last != NGX_OK) {
@@ -408,17 +401,16 @@ ngx_conf_handler(ngx_conf_t *cf, ngx_int_t last)
         }
     }
 
-    if (multi == 0) {
+    if (found) {
         ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
-                           "unknown directive \"%s\"", name->data);
+                           "\"%s\" directive is not allowed here", name->data);
 
         return NGX_ERROR;
     }
 
-not_allowed:
-
     ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
-                       "\"%s\" directive is not allowed here", name->data);
+                       "unknown directive \"%s\"", name->data);
+
     return NGX_ERROR;
 
 invalid:
@@ -738,7 +730,7 @@ ngx_conf_read_token(ngx_conf_t *cf)
 }
 
 
-static char *
+char *
 ngx_conf_include(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
 {
     char        *rv;
@@ -1448,12 +1440,16 @@ ngx_conf_set_bitmask_slot(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
 }
 
 
+#if 0
+
 char *
 ngx_conf_unsupported(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
 {
     return "unsupported on this platform";
 }
 
+#endif
+
 
 char *
 ngx_conf_deprecated(ngx_conf_t *cf, void *post, void *data)

  Renamed: vendor/nginx-1.2.6/src/core/ngx_conf_file.h (+2 -1) 98%
===================================================================
--- vendor/nginx-1.2.1/src/core/ngx_conf_file.h    2013-01-17 13:42:10 +0900 (4b87f1a)
+++ vendor/nginx-1.2.6/src/core/ngx_conf_file.h    2013-01-17 13:43:24 +0900 (64a9e8f)
@@ -45,7 +45,7 @@
 #define NGX_CONF_ANY         0x00000400
 #define NGX_CONF_1MORE       0x00000800
 #define NGX_CONF_2MORE       0x00001000
-#define NGX_CONF_MULTI       0x00002000
+#define NGX_CONF_MULTI       0x00000000  /* compatibility */
 
 #define NGX_DIRECT_CONF      0x00010000
 
@@ -317,6 +317,7 @@ char *ngx_conf_check_num_bounds(ngx_conf_t *cf, void *post, void *data);
 
 char *ngx_conf_param(ngx_conf_t *cf);
 char *ngx_conf_parse(ngx_conf_t *cf, ngx_str_t *filename);
+char *ngx_conf_include(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);
 
 
 ngx_int_t ngx_conf_full_name(ngx_cycle_t *cycle, ngx_str_t *name,

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

  Renamed: vendor/nginx-1.2.6/src/core/ngx_connection.c (+2 -0) 99%
===================================================================
--- vendor/nginx-1.2.1/src/core/ngx_connection.c    2013-01-17 13:42:10 +0900 (ba1b3f9)
+++ vendor/nginx-1.2.6/src/core/ngx_connection.c    2013-01-17 13:43:24 +0900 (3ba5e76)
@@ -749,6 +749,8 @@ ngx_close_listening_sockets(ngx_cycle_t *cycle)
 
         ls[i].fd = (ngx_socket_t) -1;
     }
+
+    cycle->listening.nelts = 0;
 }
 
 

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

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

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

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

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

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

  Renamed: vendor/nginx-1.2.6/src/core/ngx_crypt.c (+10 -2) 95%
===================================================================
--- vendor/nginx-1.2.1/src/core/ngx_crypt.c    2013-01-17 13:42:10 +0900 (9564c36)
+++ vendor/nginx-1.2.6/src/core/ngx_crypt.c    2013-01-17 13:43:24 +0900 (b2e25b9)
@@ -6,6 +6,7 @@
 
 #include <ngx_config.h>
 #include <ngx_core.h>
+#include <ngx_crypt.h>
 #include <ngx_md5.h>
 #if (NGX_HAVE_SHA1)
 #include <ngx_sha1.h>
@@ -193,6 +194,7 @@ static ngx_int_t
 ngx_crypt_ssha(ngx_pool_t *pool, u_char *key, u_char *salt, u_char **encrypted)
 {
     size_t       len;
+    ngx_int_t    rc;
     ngx_str_t    encoded, decoded;
     ngx_sha1_t   sha1;
 
@@ -203,12 +205,18 @@ ngx_crypt_ssha(ngx_pool_t *pool, u_char *key, u_char *salt, u_char **encrypted)
     encoded.data = salt + sizeof("{SSHA}") - 1;
     encoded.len = ngx_strlen(encoded.data);
 
-    decoded.data = ngx_pnalloc(pool, ngx_base64_decoded_length(encoded.len));
+    len = ngx_max(ngx_base64_decoded_length(encoded.len), 20);
+
+    decoded.data = ngx_pnalloc(pool, len);
     if (decoded.data == NULL) {
         return NGX_ERROR;
     }
 
-    ngx_decode_base64(&decoded, &encoded);
+    rc = ngx_decode_base64(&decoded, &encoded);
+
+    if (rc != NGX_OK || decoded.len < 20) {
+        decoded.len = 20;
+    }
 
     /* update SHA1 from key and salt */
 

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

  Renamed: vendor/nginx-1.2.6/src/core/ngx_cycle.c (+21 -17) 98%
===================================================================
--- vendor/nginx-1.2.1/src/core/ngx_cycle.c    2013-01-17 13:42:10 +0900 (2da0bf9)
+++ vendor/nginx-1.2.6/src/core/ngx_cycle.c    2013-01-17 13:43:24 +0900 (e8b1559)
@@ -118,18 +118,18 @@ ngx_init_cycle(ngx_cycle_t *old_cycle)
     }
 
 
-    n = old_cycle->pathes.nelts ? old_cycle->pathes.nelts : 10;
+    n = old_cycle->paths.nelts ? old_cycle->paths.nelts : 10;
 
-    cycle->pathes.elts = ngx_pcalloc(pool, n * sizeof(ngx_path_t *));
-    if (cycle->pathes.elts == NULL) {
+    cycle->paths.elts = ngx_pcalloc(pool, n * sizeof(ngx_path_t *));
+    if (cycle->paths.elts == NULL) {
         ngx_destroy_pool(pool);
         return NULL;
     }
 
-    cycle->pathes.nelts = 0;
-    cycle->pathes.size = sizeof(ngx_path_t *);
-    cycle->pathes.nalloc = n;
-    cycle->pathes.pool = pool;
+    cycle->paths.nelts = 0;
+    cycle->paths.size = sizeof(ngx_path_t *);
+    cycle->paths.nalloc = n;
+    cycle->paths.pool = pool;
 
 
     if (old_cycle->open_files.part.nelts) {
@@ -334,7 +334,7 @@ ngx_init_cycle(ngx_cycle_t *old_cycle)
     }
 
 
-    if (ngx_create_pathes(cycle, ccf->user) != NGX_OK) {
+    if (ngx_create_paths(cycle, ccf->user) != NGX_OK) {
         goto failed;
     }
 
@@ -447,7 +447,9 @@ ngx_init_cycle(ngx_cycle_t *old_cycle)
                 continue;
             }
 
-            if (shm_zone[i].shm.size == oshm_zone[n].shm.size) {
+            if (shm_zone[i].tag == oshm_zone[n].tag
+                && shm_zone[i].shm.size == oshm_zone[n].shm.size)
+            {
                 shm_zone[i].shm.addr = oshm_zone[n].shm.addr;
 
                 if (shm_zone[i].init(&shm_zone[i], oshm_zone[n].data)
@@ -1038,6 +1040,8 @@ ngx_signal_process(ngx_cycle_t *cycle, char *sig)
 
     ccf = (ngx_core_conf_t *) ngx_get_conf(cycle->conf_ctx, ngx_core_module);
 
+    ngx_memzero(&file, sizeof(ngx_file_t));
+
     file.name = ccf->pid;
     file.log = cycle->log;
 
@@ -1285,14 +1289,6 @@ ngx_shared_memory_add(ngx_conf_t *cf, ngx_str_t *name, size_t size, void *tag)
             continue;
         }
 
-        if (size && size != shm_zone[i].shm.size) {
-            ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
-                            "the size %uz of shared memory zone \"%V\" "
-                            "conflicts with already declared size %uz",
-                            size, &shm_zone[i].shm.name, shm_zone[i].shm.size);
-            return NULL;
-        }
-
         if (tag != shm_zone[i].tag) {
             ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
                             "the shared memory zone \"%V\" is "
@@ -1301,6 +1297,14 @@ ngx_shared_memory_add(ngx_conf_t *cf, ngx_str_t *name, size_t size, void *tag)
             return NULL;
         }
 
+        if (size && size != shm_zone[i].shm.size) {
+            ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+                            "the size %uz of shared memory zone \"%V\" "
+                            "conflicts with already declared size %uz",
+                            size, &shm_zone[i].shm.name, shm_zone[i].shm.size);
+            return NULL;
+        }
+
         return &shm_zone[i];
     }
 

  Renamed: vendor/nginx-1.2.6/src/core/ngx_cycle.h (+1 -1) 98%
===================================================================
--- vendor/nginx-1.2.1/src/core/ngx_cycle.h    2013-01-17 13:42:10 +0900 (551b628)
+++ vendor/nginx-1.2.6/src/core/ngx_cycle.h    2013-01-17 13:43:24 +0900 (b55fee0)
@@ -48,7 +48,7 @@ struct ngx_cycle_s {
     ngx_queue_t               reusable_connections_queue;
 
     ngx_array_t               listening;
-    ngx_array_t               pathes;
+    ngx_array_t               paths;
     ngx_list_t                open_files;
     ngx_list_t                shared_memory;
 

  Renamed: vendor/nginx-1.2.6/src/core/ngx_file.c (+6 -6) 98%
===================================================================
--- vendor/nginx-1.2.1/src/core/ngx_file.c    2013-01-17 13:42:10 +0900 (d9b30f8)
+++ vendor/nginx-1.2.6/src/core/ngx_file.c    2013-01-17 13:43:24 +0900 (f13fb49)
@@ -412,8 +412,8 @@ ngx_add_path(ngx_conf_t *cf, ngx_path_t **slot)
 
     path = *slot;
 
-    p = cf->cycle->pathes.elts;
-    for (i = 0; i < cf->cycle->pathes.nelts; i++) {
+    p = cf->cycle->paths.elts;
+    for (i = 0; i < cf->cycle->paths.nelts; i++) {
         if (p[i]->name.len == path->name.len
             && ngx_strcmp(p[i]->name.data, path->name.data) == 0)
         {
@@ -457,7 +457,7 @@ ngx_add_path(ngx_conf_t *cf, ngx_path_t **slot)
         }
     }
 
-    p = ngx_array_push(&cf->cycle->pathes);
+    p = ngx_array_push(&cf->cycle->paths);
     if (p == NULL) {
         return NGX_ERROR;
     }
@@ -469,14 +469,14 @@ ngx_add_path(ngx_conf_t *cf, ngx_path_t **slot)
 
 
 ngx_int_t
-ngx_create_pathes(ngx_cycle_t *cycle, ngx_uid_t user)
+ngx_create_paths(ngx_cycle_t *cycle, ngx_uid_t user)
 {
     ngx_err_t         err;
     ngx_uint_t        i;
     ngx_path_t      **path;
 
-    path = cycle->pathes.elts;
-    for (i = 0; i < cycle->pathes.nelts; i++) {
+    path = cycle->paths.elts;
+    for (i = 0; i < cycle->paths.nelts; i++) {
 
         if (ngx_create_dir(path[i]->name.data, 0700) == NGX_FILE_ERROR) {
             err = ngx_errno;

  Renamed: vendor/nginx-1.2.6/src/core/ngx_file.h (+1 -1) 98%
===================================================================
--- vendor/nginx-1.2.1/src/core/ngx_file.h    2013-01-17 13:42:10 +0900 (7023e67)
+++ vendor/nginx-1.2.6/src/core/ngx_file.h    2013-01-17 13:43:24 +0900 (18abf14)
@@ -130,7 +130,7 @@ void ngx_create_hashed_filename(ngx_path_t *path, u_char *file, size_t len);
 ngx_int_t ngx_create_path(ngx_file_t *file, ngx_path_t *path);
 ngx_err_t ngx_create_full_path(u_char *dir, ngx_uint_t access);
 ngx_int_t ngx_add_path(ngx_conf_t *cf, ngx_path_t **slot);
-ngx_int_t ngx_create_pathes(ngx_cycle_t *cycle, ngx_uid_t user);
+ngx_int_t ngx_create_paths(ngx_cycle_t *cycle, ngx_uid_t user);
 ngx_int_t ngx_ext_rename_file(ngx_str_t *src, ngx_str_t *to,
     ngx_ext_rename_file_t *ext);
 ngx_int_t ngx_copy_file(u_char *from, u_char *to, ngx_copy_file_t *cf);

  Renamed: vendor/nginx-1.2.6/src/core/ngx_hash.c (+13 -11) 99%
===================================================================
--- vendor/nginx-1.2.1/src/core/ngx_hash.c    2013-01-17 13:42:10 +0900 (7d04f74)
+++ vendor/nginx-1.2.6/src/core/ngx_hash.c    2013-01-17 13:43:24 +0900 (b532945)
@@ -924,17 +924,6 @@ wildcard:
     }
 
 
-    hk = ngx_array_push(hwc);
-    if (hk == NULL) {
-        return NGX_ERROR;
-    }
-
-    hk->key.len = last - 1;
-    hk->key.data = p;
-    hk->key_hash = 0;
-    hk->value = value;
-
-
     /* check conflicts in wildcard hash */
 
     name = keys->elts;
@@ -972,5 +961,18 @@ wildcard:
 
     ngx_memcpy(name->data, key->data + skip, name->len);
 
+
+    /* add to wildcard hash */
+
+    hk = ngx_array_push(hwc);
+    if (hk == NULL) {
+        return NGX_ERROR;
+    }
+
+    hk->key.len = last - 1;
+    hk->key.data = p;
+    hk->key_hash = 0;
+    hk->value = value;
+
     return NGX_OK;
 }

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

  Renamed: vendor/nginx-1.2.6/src/core/ngx_inet.c (+32 -31) 96%
===================================================================
--- vendor/nginx-1.2.1/src/core/ngx_inet.c    2013-01-17 13:42:10 +0900 (d2bbbfb)
+++ vendor/nginx-1.2.6/src/core/ngx_inet.c    2013-01-17 13:43:24 +0900 (3db0136)
@@ -522,11 +522,6 @@ ngx_parse_url(ngx_pool_t *pool, ngx_url_t *u)
         return ngx_parse_unix_domain_url(pool, u);
     }
 
-    if ((p[0] == ':' || p[0] == '/') && !u->listen) {
-        u->err = "invalid host";
-        return NGX_ERROR;
-    }
-
     if (p[0] == '[') {
         return ngx_parse_inet6_url(pool, u);
     }
@@ -639,10 +634,7 @@ ngx_parse_inet_url(ngx_pool_t *pool, ngx_url_t *u)
     args = ngx_strlchr(host, last, '?');
 
     if (args) {
-        if (uri == NULL) {
-            uri = args;
-
-        } else if (args < uri) {
+        if (uri == NULL || args < uri) {
             uri = args;
         }
     }
@@ -668,11 +660,6 @@ ngx_parse_inet_url(ngx_pool_t *pool, ngx_url_t *u)
 
         len = last - port;
 
-        if (len == 0) {
-            u->err = "invalid port";
-            return NGX_ERROR;
-        }
-
         n = ngx_atoi(port, len);
 
         if (n < 1 || n > 65535) {
@@ -779,11 +766,7 @@ ngx_parse_inet_url(ngx_pool_t *pool, ngx_url_t *u)
         return NGX_OK;
     }
 
-    if (ngx_inet_resolve_host(pool, u) != NGX_OK) {
-        return NGX_ERROR;
-    }
-
-    return NGX_OK;
+    return ngx_inet_resolve_host(pool, u);
 }
 
 
@@ -825,6 +808,8 @@ ngx_parse_inet6_url(ngx_pool_t *pool, ngx_url_t *u)
 
             u->uri.len = last - uri;
             u->uri.data = uri;
+
+            last = uri;
         }
 
         if (*port == ':') {
@@ -832,11 +817,6 @@ ngx_parse_inet6_url(ngx_pool_t *pool, ngx_url_t *u)
 
             len = last - port;
 
-            if (len == 0) {
-                u->err = "invalid port";
-                return NGX_ERROR;
-            }
-
             n = ngx_atoi(port, len);
 
             if (n < 1 || n > 65535) {
@@ -862,8 +842,8 @@ ngx_parse_inet6_url(ngx_pool_t *pool, ngx_url_t *u)
         return NGX_ERROR;
     }
 
-    u->host.len = len;
-    u->host.data = host;
+    u->host.len = len + 2;
+    u->host.data = host - 1;
 
     if (ngx_inet6_addr(host, len, sin6->sin6_addr.s6_addr) != NGX_OK) {
         u->err = "invalid IPv6 address";
@@ -874,17 +854,38 @@ ngx_parse_inet6_url(ngx_pool_t *pool, ngx_url_t *u)
         u->wildcard = 1;
     }
 
+    if (u->no_port) {
+        u->port = u->default_port;
+        sin6->sin6_port = htons(u->default_port);
+    }
+
     u->family = AF_INET6;
+    u->naddrs = 1;
 
-    if (u->no_resolve) {
-        return NGX_OK;
+    u->addrs = ngx_pcalloc(pool, sizeof(ngx_addr_t));
+    if (u->addrs == NULL) {
+        return NGX_ERROR;
     }
 
-    if (u->no_port) {
-        u->port = u->default_port;
-        sin6->sin6_port = htons(u->default_port);
+    sin6 = ngx_pcalloc(pool, sizeof(struct sockaddr_in6));
+    if (sin6 == NULL) {
+        return NGX_ERROR;
     }
 
+    ngx_memcpy(sin6, u->sockaddr, sizeof(struct sockaddr_in6));
+
+    u->addrs[0].sockaddr = (struct sockaddr *) sin6;
+    u->addrs[0].socklen = sizeof(struct sockaddr_in6);
+
+    p = ngx_pnalloc(pool, u->host.len + sizeof(":65535") - 1);
+    if (p == NULL) {
+        return NGX_ERROR;
+    }
+
+    u->addrs[0].name.len = ngx_sprintf(p, "%V:%d",
+                                       &u->host, u->port) - p;
+    u->addrs[0].name.data = p;
+
     return NGX_OK;
 
 #else

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.2.6/src/core/ngx_radix_tree.c (+1 -1) 98%
===================================================================
--- vendor/nginx-1.2.1/src/core/ngx_radix_tree.c    2013-01-17 13:42:10 +0900 (b95cbc0)
+++ vendor/nginx-1.2.6/src/core/ngx_radix_tree.c    2013-01-17 13:43:24 +0900 (5b35d1e)
@@ -60,7 +60,7 @@ ngx_radix_tree_create(ngx_pool_t *pool, ngx_int_t preallocate)
      */
 
     if (preallocate == -1) {
-        switch (ngx_pagesize / sizeof(ngx_radix_tree_t)) {
+        switch (ngx_pagesize / sizeof(ngx_radix_node_t)) {
 
         /* amd64 */
         case 128:

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

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

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

  Renamed: vendor/nginx-1.2.6/src/core/ngx_regex.c (+3 -3) 98%
===================================================================
--- vendor/nginx-1.2.1/src/core/ngx_regex.c    2013-01-17 13:42:10 +0900 (677f862)
+++ vendor/nginx-1.2.6/src/core/ngx_regex.c    2013-01-17 13:43:24 +0900 (3771aab)
@@ -152,7 +152,7 @@ ngx_regex_compile(ngx_regex_compile_t *rc)
         return NGX_ERROR;
     }
 
-    rc->regex->pcre = re;
+    rc->regex->code = re;
 
     /* do not study at runtime */
 
@@ -367,7 +367,7 @@ ngx_regex_module_init(ngx_cycle_t *cycle)
             i = 0;
         }
 
-        elts[i].regex->extra = pcre_study(elts[i].regex->pcre, opt, &errstr);
+        elts[i].regex->extra = pcre_study(elts[i].regex->code, opt, &errstr);
 
         if (errstr != NULL) {
             ngx_log_error(NGX_LOG_ALERT, cycle->log, 0,
@@ -380,7 +380,7 @@ ngx_regex_module_init(ngx_cycle_t *cycle)
             int jit, n;
 
             jit = 0;
-            n = pcre_fullinfo(elts[i].regex->pcre, elts[i].regex->extra,
+            n = pcre_fullinfo(elts[i].regex->code, elts[i].regex->extra,
                               PCRE_INFO_JIT, &jit);
 
             if (n != 0 || jit != 1) {

  Renamed: vendor/nginx-1.2.6/src/core/ngx_regex.h (+2 -2) 92%
===================================================================
--- vendor/nginx-1.2.1/src/core/ngx_regex.h    2013-01-17 13:42:10 +0900 (55bd331)
+++ vendor/nginx-1.2.6/src/core/ngx_regex.h    2013-01-17 13:43:24 +0900 (680486c)
@@ -21,7 +21,7 @@
 
 
 typedef struct {
-    pcre        *pcre;
+    pcre        *code;
     pcre_extra  *extra;
 } ngx_regex_t;
 
@@ -50,7 +50,7 @@ void ngx_regex_init(void);
 ngx_int_t ngx_regex_compile(ngx_regex_compile_t *rc);
 
 #define ngx_regex_exec(re, s, captures, size)                                \
-    pcre_exec(re->pcre, re->extra, (const char *) (s)->data, (s)->len, 0, 0, \
+    pcre_exec(re->code, re->extra, (const char *) (s)->data, (s)->len, 0, 0, \
               captures, size)
 #define ngx_regex_exec_n      "pcre_exec()"
 

  Renamed: vendor/nginx-1.2.6/src/core/ngx_resolver.c (+60 -27) 97%
===================================================================
--- vendor/nginx-1.2.1/src/core/ngx_resolver.c    2013-01-17 13:42:10 +0900 (edc43dc)
+++ vendor/nginx-1.2.6/src/core/ngx_resolver.c    2013-01-17 13:43:24 +0900 (d59d0c4)
@@ -88,6 +88,8 @@ static void *ngx_resolver_calloc(ngx_resolver_t *r, size_t size);
 static void ngx_resolver_free(ngx_resolver_t *r, void *p);
 static void ngx_resolver_free_locked(ngx_resolver_t *r, void *p);
 static void *ngx_resolver_dup(ngx_resolver_t *r, void *src, size_t size);
+static in_addr_t *ngx_resolver_rotate(ngx_resolver_t *r, in_addr_t *src,
+    ngx_uint_t n);
 static u_char *ngx_resolver_log_error(ngx_log_t *log, u_char *buf, size_t len);
 
 
@@ -96,7 +98,7 @@ ngx_resolver_create(ngx_conf_t *cf, ngx_str_t *names, ngx_uint_t n)
 {
     ngx_str_t              s;
     ngx_url_t              u;
-    ngx_uint_t             i;
+    ngx_uint_t             i, j;
     ngx_resolver_t        *r;
     ngx_pool_cleanup_t    *cln;
     ngx_udp_connection_t  *uc;
@@ -113,15 +115,6 @@ ngx_resolver_create(ngx_conf_t *cf, ngx_str_t *names, ngx_uint_t n)
         return NULL;
     }
 
-    if (n) {
-        if (ngx_array_init(&r->udp_connections, cf->pool, n,
-                           sizeof(ngx_udp_connection_t))
-            != NGX_OK)
-        {
-            return NULL;
-        }
-    }
-
     cln->data = r;
 
     r->event = ngx_calloc(sizeof(ngx_event_t), cf->log);
@@ -153,6 +146,15 @@ ngx_resolver_create(ngx_conf_t *cf, ngx_str_t *names, ngx_uint_t n)
     r->log = &cf->cycle->new_log;
     r->log_level = NGX_LOG_ERR;
 
+    if (n) {
+        if (ngx_array_init(&r->udp_connections, cf->pool, n,
+                           sizeof(ngx_udp_connection_t))
+            != NGX_OK)
+        {
+            return NULL;
+        }
+    }
+
     for (i = 0; i < n; i++) {
         if (ngx_strncmp(names[i].data, "valid=", 6) == 0) {
             s.len = names[i].len - 6;
@@ -171,24 +173,31 @@ ngx_resolver_create(ngx_conf_t *cf, ngx_str_t *names, ngx_uint_t n)
 
         ngx_memzero(&u, sizeof(ngx_url_t));
 
-        u.host = names[i];
-        u.port = 53;
+        u.url = names[i];
+        u.default_port = 53;
+
+        if (ngx_parse_url(cf->pool, &u) != NGX_OK) {
+            if (u.err) {
+                ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+                                   "%s in resolver \"%V\"",
+                                   u.err, &u.url);
+            }
 
-        if (ngx_inet_resolve_host(cf->pool, &u) != NGX_OK) {
-            ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, "%V: %s", &u.host, u.err);
             return NULL;
         }
 
-        uc = ngx_array_push(&r->udp_connections);
+        uc = ngx_array_push_n(&r->udp_connections, u.naddrs);
         if (uc == NULL) {
             return NULL;
         }
 
-        ngx_memzero(uc, sizeof(ngx_udp_connection_t));
+        ngx_memzero(uc, u.naddrs * sizeof(ngx_udp_connection_t));
 
-        uc->sockaddr = u.addrs->sockaddr;
-        uc->socklen = u.addrs->socklen;
-        uc->server = u.addrs->name;
+        for (j = 0; j < u.naddrs; j++) {
+            uc[j].sockaddr = u.addrs[j].sockaddr;
+            uc[j].socklen = u.addrs[j].socklen;
+            uc[j].server = u.addrs[j].name;
+        }
     }
 
     return r;
@@ -438,8 +447,7 @@ ngx_resolve_name_locked(ngx_resolver_t *r, ngx_resolver_ctx_t *ctx)
 
                 if (naddrs != 1) {
                     addr = 0;
-                    addrs = ngx_resolver_dup(r, rn->u.addrs,
-                                             naddrs * sizeof(in_addr_t));
+                    addrs = ngx_resolver_rotate(r, rn->u.addrs, naddrs);
                     if (addrs == NULL) {
                         return NGX_ERROR;
                     }
@@ -972,12 +980,11 @@ ngx_resolver_resend(ngx_resolver_t *r, ngx_rbtree_t *tree, ngx_queue_t *queue)
 
         if (rn->waiting) {
 
-            if (ngx_resolver_send_query(r, rn) == NGX_OK) {
+            (void) ngx_resolver_send_query(r, rn);
 
-                rn->expire = now + r->resend_timeout;
+            rn->expire = now + r->resend_timeout;
 
-                ngx_queue_insert_head(queue, &rn->queue);
-            }
+            ngx_queue_insert_head(queue, q);
 
             continue;
         }
@@ -1035,7 +1042,7 @@ ngx_resolver_process_response(ngx_resolver_t *r, u_char *buf, size_t n)
     nan = (query->nan_hi << 8) + query->nan_lo;
 
     ngx_log_debug6(NGX_LOG_DEBUG_CORE, r->log, 0,
-                   "resolver DNS response %ui fl:%04Xui %ui/%ui/%ui/%ui",
+                   "resolver DNS response %ui fl:%04Xui %ui/%ui/%ud/%ud",
                    ident, flags, nqs, nan,
                    (query->nns_hi << 8) + query->nns_lo,
                    (query->nar_hi << 8) + query->nar_lo);
@@ -2129,6 +2136,32 @@ ngx_resolver_dup(ngx_resolver_t *r, void *src, size_t size)
 }
 
 
+static in_addr_t *
+ngx_resolver_rotate(ngx_resolver_t *r, in_addr_t *src, ngx_uint_t n)
+{
+    void        *dst, *p;
+    ngx_uint_t   j;
+
+    dst = ngx_resolver_alloc(r, n * sizeof(in_addr_t));
+
+    if (dst == NULL) {
+        return dst;
+    }
+
+    j = ngx_random() % n;
+
+    if (j == 0) {
+        ngx_memcpy(dst, src, n * sizeof(in_addr_t));
+        return dst;
+    }
+
+    p = ngx_cpymem(dst, &src[j], (n - j) * sizeof(in_addr_t));
+    ngx_memcpy(p, src, j * sizeof(in_addr_t));
+
+    return dst;
+}
+
+
 char *
 ngx_resolver_strerror(ngx_int_t err)
 {
@@ -2184,7 +2217,7 @@ ngx_udp_connect(ngx_udp_connection_t *uc)
     ngx_socket_t       s;
     ngx_connection_t  *c;
 
-    s = ngx_socket(AF_INET, SOCK_DGRAM, 0);
+    s = ngx_socket(uc->sockaddr->sa_family, SOCK_DGRAM, 0);
 
     ngx_log_debug1(NGX_LOG_DEBUG_EVENT, &uc->log, 0, "UDP socket %d", s);
 

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

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

  Renamed: vendor/nginx-1.2.6/src/core/ngx_shmtx.c (+6 -6) 96%
===================================================================
--- vendor/nginx-1.2.1/src/core/ngx_shmtx.c    2013-01-17 13:42:10 +0900 (085294a)
+++ vendor/nginx-1.2.6/src/core/ngx_shmtx.c    2013-01-17 13:43:24 +0900 (a62999f)
@@ -44,7 +44,7 @@ ngx_shmtx_create(ngx_shmtx_t *mtx, ngx_shmtx_sh_t *addr, u_char *name)
 
 
 void
-ngx_shmtx_destory(ngx_shmtx_t *mtx)
+ngx_shmtx_destroy(ngx_shmtx_t *mtx)
 {
 #if (NGX_HAVE_POSIX_SEM)
 
@@ -117,11 +117,11 @@ ngx_shmtx_lock(ngx_shmtx_t *mtx)
                                   "sem_wait() failed while waiting on shmtx");
                     break;
                 }
-
-                ngx_log_debug0(NGX_LOG_DEBUG_CORE, ngx_cycle->log, 0,
-                               "shmtx awoke");
             }
 
+            ngx_log_debug0(NGX_LOG_DEBUG_CORE, ngx_cycle->log, 0,
+                           "shmtx awoke");
+
             continue;
         }
 
@@ -208,7 +208,7 @@ ngx_shmtx_create(ngx_shmtx_t *mtx, ngx_shmtx_sh_t *addr, u_char *name)
             return NGX_OK;
         }
 
-        ngx_shmtx_destory(mtx);
+        ngx_shmtx_destroy(mtx);
     }
 
     mtx->fd = ngx_open_file(name, NGX_FILE_RDWR, NGX_FILE_CREATE_OR_OPEN,
@@ -232,7 +232,7 @@ ngx_shmtx_create(ngx_shmtx_t *mtx, ngx_shmtx_sh_t *addr, u_char *name)
 
 
 void
-ngx_shmtx_destory(ngx_shmtx_t *mtx)
+ngx_shmtx_destroy(ngx_shmtx_t *mtx)
 {
     if (ngx_close_file(mtx->fd) == NGX_FILE_ERROR) {
         ngx_log_error(NGX_LOG_ALERT, ngx_cycle->log, ngx_errno,

  Renamed: vendor/nginx-1.2.6/src/core/ngx_shmtx.h (+1 -1) 95%
===================================================================
--- vendor/nginx-1.2.1/src/core/ngx_shmtx.h    2013-01-17 13:42:10 +0900 (830b6f5)
+++ vendor/nginx-1.2.6/src/core/ngx_shmtx.h    2013-01-17 13:43:24 +0900 (91e11be)
@@ -39,7 +39,7 @@ typedef struct {
 
 ngx_int_t ngx_shmtx_create(ngx_shmtx_t *mtx, ngx_shmtx_sh_t *addr,
     u_char *name);
-void ngx_shmtx_destory(ngx_shmtx_t *mtx);
+void ngx_shmtx_destroy(ngx_shmtx_t *mtx);
 ngx_uint_t ngx_shmtx_trylock(ngx_shmtx_t *mtx);
 void ngx_shmtx_lock(ngx_shmtx_t *mtx);
 void ngx_shmtx_unlock(ngx_shmtx_t *mtx);

  Renamed: vendor/nginx-1.2.6/src/core/ngx_slab.c (+3 -7) 99%
===================================================================
--- vendor/nginx-1.2.1/src/core/ngx_slab.c    2013-01-17 13:42:10 +0900 (3d56603)
+++ vendor/nginx-1.2.6/src/core/ngx_slab.c    2013-01-17 13:43:24 +0900 (ae9d6f3)
@@ -45,9 +45,7 @@
 
 #define ngx_slab_junk(p, size)     ngx_memset(p, 0xA5, size)
 
-#else
-
-#if (NGX_HAVE_DEBUG_MALLOC)
+#elif (NGX_HAVE_DEBUG_MALLOC)
 
 #define ngx_slab_junk(p, size)                                                \
     if (ngx_debug_malloc)          ngx_memset(p, 0xA5, size)
@@ -58,8 +56,6 @@
 
 #endif
 
-#endif
-
 static ngx_slab_page_t *ngx_slab_alloc_pages(ngx_slab_pool_t *pool,
     ngx_uint_t pages);
 static void ngx_slab_free_pages(ngx_slab_pool_t *pool, ngx_slab_page_t *page,
@@ -166,8 +162,8 @@ ngx_slab_alloc_locked(ngx_slab_pool_t *pool, size_t size)
         ngx_log_debug1(NGX_LOG_DEBUG_ALLOC, ngx_cycle->log, 0,
                        "slab alloc: %uz", size);
 
-        page = ngx_slab_alloc_pages(pool, (size + ngx_pagesize - 1)
-                                          >> ngx_pagesize_shift);
+        page = ngx_slab_alloc_pages(pool, (size >> ngx_pagesize_shift)
+                                          + ((size % ngx_pagesize) ? 1 : 0));
         if (page) {
             p = (page - pool->pages) << ngx_pagesize_shift;
             p += (uintptr_t) pool->start;

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

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

  Renamed: vendor/nginx-1.2.6/src/core/ngx_string.c (+1 -1) 99%
===================================================================
--- vendor/nginx-1.2.1/src/core/ngx_string.c    2013-01-17 13:42:10 +0900 (8aaa1d2)
+++ vendor/nginx-1.2.6/src/core/ngx_string.c    2013-01-17 13:43:24 +0900 (3b392f7)
@@ -1827,7 +1827,7 @@ ngx_sort(void *base, size_t n, size_t size,
 #if (NGX_MEMCPY_LIMIT)
 
 void *
-ngx_memcpy(void *dst, void *src, size_t n)
+ngx_memcpy(void *dst, const void *src, size_t n)
 {
     if (n > NGX_MEMCPY_LIMIT) {
         ngx_log_error(NGX_LOG_ALERT, ngx_cycle->log, 0, "memcpy %uz bytes", n);

  Renamed: vendor/nginx-1.2.6/src/core/ngx_string.h (+1 -1) 99%
===================================================================
--- vendor/nginx-1.2.1/src/core/ngx_string.h    2013-01-17 13:42:10 +0900 (fa386ca)
+++ vendor/nginx-1.2.6/src/core/ngx_string.h    2013-01-17 13:43:24 +0900 (92d246e)
@@ -89,7 +89,7 @@ ngx_strlchr(u_char *p, u_char *last, u_char c)
 
 #if (NGX_MEMCPY_LIMIT)
 
-void *ngx_memcpy(void *dst, void *src, size_t n);
+void *ngx_memcpy(void *dst, const void *src, size_t n);
 #define ngx_cpymem(dst, src, n)   (((u_char *) ngx_memcpy(dst, src, n)) + (n))
 
 #else

  Renamed: vendor/nginx-1.2.6/src/core/ngx_times.c (+4 -0) 99%
===================================================================
--- vendor/nginx-1.2.1/src/core/ngx_times.c    2013-01-17 13:42:10 +0900 (ed1bf64)
+++ vendor/nginx-1.2.6/src/core/ngx_times.c    2013-01-17 13:43:24 +0900 (77490fa)
@@ -211,6 +211,10 @@ ngx_time_sigsafe_update(void)
         slot++;
     }
 
+    tp = &cached_time[slot];
+
+    tp->sec = 0;
+
     ngx_gmtime(sec + cached_gmtoff * 60, &tm);
 
     p = &cached_err_log_time[slot][0];

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

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

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

  Renamed: vendor/nginx-1.2.6/src/event/modules/ngx_epoll_module.c (+9 -5) 99%
===================================================================
--- vendor/nginx-1.2.1/src/event/modules/ngx_epoll_module.c    2013-01-17 13:42:10 +0900 (a733949)
+++ vendor/nginx-1.2.6/src/event/modules/ngx_epoll_module.c    2013-01-17 13:43:24 +0900 (ee77d8e)
@@ -44,16 +44,25 @@ struct epoll_event {
     epoll_data_t  data;
 };
 
+
+int epoll_create(int size);
+
 int epoll_create(int size)
 {
     return -1;
 }
 
+
+int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);
+
 int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event)
 {
     return -1;
 }
 
+
+int epoll_wait(int epfd, struct epoll_event *events, int nevents, int timeout);
+
 int epoll_wait(int epfd, struct epoll_event *events, int nevents, int timeout)
 {
     return -1;
@@ -76,11 +85,6 @@ struct io_event {
 };
 
 
-int eventfd(u_int initval)
-{
-    return -1;
-}
-
 #endif
 #endif
 

  Renamed: vendor/nginx-1.2.6/src/event/modules/ngx_eventport_module.c (+31 -0) 96%
===================================================================
--- vendor/nginx-1.2.1/src/event/modules/ngx_eventport_module.c    2013-01-17 13:42:10 +0900 (bbcd6dd)
+++ vendor/nginx-1.2.6/src/event/modules/ngx_eventport_module.c    2013-01-17 13:43:24 +0900 (d6dcb0b)
@@ -15,6 +15,12 @@
 #define ushort_t  u_short
 #define uint_t    u_int
 
+#ifndef CLOCK_REALTIME
+#define CLOCK_REALTIME          0
+typedef int     clockid_t;
+typedef void *  timer_t;
+#endif
+
 /* Solaris declarations */
 
 #define PORT_SOURCE_AIO         1
@@ -24,7 +30,9 @@
 #define PORT_SOURCE_ALERT       5
 #define PORT_SOURCE_MQ          6
 
+#ifndef ETIME
 #define ETIME                   64
+#endif
 
 #define SIGEV_PORT              4
 
@@ -50,39 +58,62 @@ typedef struct itimerspec {     /* definition per POSIX.4 */
 
 #endif
 
+int port_create(void);
+
 int port_create(void)
 {
     return -1;
 }
 
+
+int port_associate(int port, int source, uintptr_t object, int events,
+    void *user);
+
 int port_associate(int port, int source, uintptr_t object, int events,
     void *user)
 {
     return -1;
 }
 
+
+int port_dissociate(int port, int source, uintptr_t object);
+
 int port_dissociate(int port, int source, uintptr_t object)
 {
     return -1;
 }
 
+
+int port_getn(int port, port_event_t list[], uint_t max, uint_t *nget,
+    struct timespec *timeout);
+
 int port_getn(int port, port_event_t list[], uint_t max, uint_t *nget,
     struct timespec *timeout)
 {
     return -1;
 }
 
+
+int timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid);
+
 int timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
 {
     return -1;
 }
 
+
+int timer_settime(timer_t timerid, int flags, const struct itimerspec *value,
+    struct itimerspec *ovalue);
+
 int timer_settime(timer_t timerid, int flags, const struct itimerspec *value,
     struct itimerspec *ovalue)
 {
     return -1;
 }
 
+
+int timer_delete(timer_t timerid);
+
 int timer_delete(timer_t timerid)
 {
     return -1;

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

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

  Renamed: vendor/nginx-1.2.6/src/event/modules/ngx_rtsig_module.c (+12 -0) 99%
===================================================================
--- vendor/nginx-1.2.1/src/event/modules/ngx_rtsig_module.c    2013-01-17 13:42:10 +0900 (2f0f997)
+++ vendor/nginx-1.2.6/src/event/modules/ngx_rtsig_module.c    2013-01-17 13:43:24 +0900 (b36230c)
@@ -12,6 +12,13 @@
 
 #if (NGX_TEST_BUILD_RTSIG)
 
+#if (NGX_DARWIN)
+
+#define SIGRTMIN       33
+#define si_fd          __pad[0]
+
+#else
+
 #ifdef  SIGRTMIN
 #define si_fd          _reason.__spare__.__spare2__[0]
 #else
@@ -19,11 +26,16 @@
 #define si_fd          __spare__[0]
 #endif
 
+#endif
+
 #define F_SETSIG       10
 #define KERN_RTSIGNR   30
 #define KERN_RTSIGMAX  31
 
 int sigtimedwait(const sigset_t *set, siginfo_t *info,
+                 const struct timespec *timeout);
+
+int sigtimedwait(const sigset_t *set, siginfo_t *info,
                  const struct timespec *timeout)
 {
     return -1;

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

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

  Renamed: vendor/nginx-1.2.6/src/event/ngx_event.c (+68 -27) 94%
===================================================================
--- vendor/nginx-1.2.1/src/event/ngx_event.c    2013-01-17 13:42:10 +0900 (c584dd8)
+++ vendor/nginx-1.2.6/src/event/ngx_event.c    2013-01-17 13:43:24 +0900 (976bd64)
@@ -567,7 +567,7 @@ ngx_event_module_init(ngx_cycle_t *cycle)
 
 #if !(NGX_WIN32)
 
-void
+static void
 ngx_timer_signal_handler(int signo)
 {
     ngx_event_timer_alarm = 1;
@@ -1062,50 +1062,91 @@ ngx_event_debug_connection(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
 #if (NGX_DEBUG)
     ngx_event_conf_t  *ecf = conf;
 
-    ngx_int_t           rc;
-    ngx_str_t          *value;
-    struct hostent     *h;
-    ngx_cidr_t         *cidr;
+    ngx_int_t             rc;
+    ngx_str_t            *value;
+    ngx_url_t             u;
+    ngx_cidr_t            c, *cidr;
+    ngx_uint_t            i;
+    struct sockaddr_in   *sin;
+#if (NGX_HAVE_INET6)
+    struct sockaddr_in6  *sin6;
+#endif
 
     value = cf->args->elts;
 
-    cidr = ngx_array_push(&ecf->debug_connection);
-    if (cidr == NULL) {
-        return NGX_CONF_ERROR;
-    }
-
 #if (NGX_HAVE_UNIX_DOMAIN)
 
     if (ngx_strcmp(value[1].data, "unix:") == 0) {
-         cidr->family = AF_UNIX;
-         return NGX_CONF_OK;
+        cidr = ngx_array_push(&ecf->debug_connection);
+        if (cidr == NULL) {
+            return NGX_CONF_ERROR;
+        }
+
+        cidr->family = AF_UNIX;
+        return NGX_CONF_OK;
     }
 
 #endif
 
-    rc = ngx_ptocidr(&value[1], cidr);
+    rc = ngx_ptocidr(&value[1], &c);
 
-    if (rc == NGX_DONE) {
-        ngx_conf_log_error(NGX_LOG_WARN, cf, 0,
-                           "low address bits of %V are meaningless", &value[1]);
-        return NGX_CONF_OK;
-    }
+    if (rc != NGX_ERROR) {
+        if (rc == NGX_DONE) {
+            ngx_conf_log_error(NGX_LOG_WARN, cf, 0,
+                               "low address bits of %V are meaningless",
+                               &value[1]);
+        }
+
+        cidr = ngx_array_push(&ecf->debug_connection);
+        if (cidr == NULL) {
+            return NGX_CONF_ERROR;
+        }
+
+        *cidr = c;
 
-    if (rc == NGX_OK) {
         return NGX_CONF_OK;
     }
 
-    h = gethostbyname((char *) value[1].data);
+    ngx_memzero(&u, sizeof(ngx_url_t));
+    u.host = value[1];
+
+    if (ngx_inet_resolve_host(cf->pool, &u) != NGX_OK) {
+        if (u.err) {
+            ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+                               "%s in debug_connection \"%V\"",
+                               u.err, &u.host);
+        }
 
-    if (h == NULL || h->h_addr_list[0] == NULL) {
-        ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
-                           "host \"%s\" not found", value[1].data);
         return NGX_CONF_ERROR;
     }
 
-    cidr->family = AF_INET;
-    cidr->u.in.mask = 0xffffffff;
-    cidr->u.in.addr = *(in_addr_t *)(h->h_addr_list[0]);
+    cidr = ngx_array_push_n(&ecf->debug_connection, u.naddrs);
+    if (cidr == NULL) {
+        return NGX_CONF_ERROR;
+    }
+
+    ngx_memzero(cidr, u.naddrs * sizeof(ngx_cidr_t));
+
+    for (i = 0; i < u.naddrs; i++) {
+        cidr[i].family = u.addrs[i].sockaddr->sa_family;
+
+        switch (cidr[i].family) {
+
+#if (NGX_HAVE_INET6)
+        case AF_INET6:
+            sin6 = (struct sockaddr_in6 *) u.addrs[i].sockaddr;
+            cidr[i].u.in6.addr = sin6->sin6_addr;
+            ngx_memset(cidr[i].u.in6.mask.s6_addr, 0xff, 16);
+            break;
+#endif
+
+        default: /* AF_INET */
+            sin = (struct sockaddr_in *) u.addrs[i].sockaddr;
+            cidr[i].u.in.addr = sin->sin_addr.s_addr;
+            cidr[i].u.in.mask = 0xffffffff;
+            break;
+        }
+    }
 
 #else
 
@@ -1173,7 +1214,7 @@ ngx_event_core_init_conf(ngx_cycle_t *cycle, void *conf)
     fd = epoll_create(100);
 
     if (fd != -1) {
-        close(fd);
+        (void) close(fd);
         module = &ngx_epoll_module;
 
     } else if (ngx_errno != NGX_ENOSYS) {

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.2.6/src/event/ngx_event_openssl.c (+20 -1) 99%
===================================================================
--- vendor/nginx-1.2.1/src/event/ngx_event_openssl.c    2013-01-17 13:42:10 +0900 (7903eb6)
+++ vendor/nginx-1.2.6/src/event/ngx_event_openssl.c    2013-01-17 13:43:24 +0900 (5e25b01)
@@ -94,6 +94,26 @@ ngx_ssl_init(ngx_log_t *log)
 
     OpenSSL_add_all_algorithms();
 
+#if OPENSSL_VERSION_NUMBER >= 0x0090800fL
+#ifndef SSL_OP_NO_COMPRESSION
+    {
+    /*
+     * Disable gzip compression in OpenSSL prior to 1.0.0 version,
+     * this saves about 522K per connection.
+     */
+    int                  n;
+    STACK_OF(SSL_COMP)  *ssl_comp_methods;
+
+    ssl_comp_methods = SSL_COMP_get_compression_methods();
+    n = sk_SSL_COMP_num(ssl_comp_methods);
+
+    while (n--) {
+        (void) sk_SSL_COMP_pop(ssl_comp_methods);
+    }
+    }
+#endif
+#endif
+
     ngx_ssl_connection_index = SSL_get_ex_new_index(0, NULL, NULL, NULL, NULL);
 
     if (ngx_ssl_connection_index == -1) {
@@ -990,7 +1010,6 @@ ngx_ssl_send_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit)
             }
 
             if (n == NGX_AGAIN) {
-                c->buffered |= NGX_SSL_BUFFERED;
                 return in;
             }
 

  Renamed: vendor/nginx-1.2.6/src/event/ngx_event_openssl.h (+7 -0) 91%
===================================================================
--- vendor/nginx-1.2.1/src/event/ngx_event_openssl.h    2013-01-17 13:42:10 +0900 (cd6d885)
+++ vendor/nginx-1.2.6/src/event/ngx_event_openssl.h    2013-01-17 13:43:24 +0900 (b8061f0)
@@ -120,6 +120,13 @@ ngx_int_t ngx_ssl_set_session(ngx_connection_t *c, ngx_ssl_session_t *session);
 #define ngx_ssl_get_server_conf(ssl_ctx)                                      \
     SSL_CTX_get_ex_data(ssl_ctx, ngx_ssl_server_conf_index)
 
+#define ngx_ssl_verify_error_optional(n)                                      \
+    (n == X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT                              \
+     || n == X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN                             \
+     || n == X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY                     \
+     || n == X509_V_ERR_CERT_UNTRUSTED                                        \
+     || n == X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE)
+
 
 ngx_int_t ngx_ssl_get_protocol(ngx_connection_t *c, ngx_pool_t *pool,
     ngx_str_t *s);

  Renamed: vendor/nginx-1.2.6/src/event/ngx_event_pipe.c (+9 -2) 99%
===================================================================
--- vendor/nginx-1.2.1/src/event/ngx_event_pipe.c    2013-01-17 13:42:10 +0900 (c2c7983)
+++ vendor/nginx-1.2.6/src/event/ngx_event_pipe.c    2013-01-17 13:43:24 +0900 (476d56e)
@@ -946,8 +946,15 @@ ngx_event_pipe_add_free_buf(ngx_event_pipe_t *p, ngx_buf_t *b)
         return NGX_ERROR;
     }
 
-    b->pos = b->start;
-    b->last = b->start;
+    if (p->buf_to_file && b->start == p->buf_to_file->start) {
+        b->pos = p->buf_to_file->last;
+        b->last = p->buf_to_file->last;
+
+    } else {
+        b->pos = b->start;
+        b->last = b->start;
+    }
+
     b->shadow = NULL;
 
     cl->buf = b;

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

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

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

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

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

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.2.6/src/http/modules/ngx_http_dav_module.c (+5 -0) 99%
===================================================================
--- vendor/nginx-1.2.1/src/http/modules/ngx_http_dav_module.c    2013-01-17 13:42:10 +0900 (dbb17ac)
+++ vendor/nginx-1.2.6/src/http/modules/ngx_http_dav_module.c    2013-01-17 13:43:24 +0900 (a97c60e)
@@ -209,6 +209,11 @@ ngx_http_dav_put_handler(ngx_http_request_t *r)
     ngx_ext_rename_file_t     ext;
     ngx_http_dav_loc_conf_t  *dlcf;
 
+    if (r->request_body == NULL || r->request_body->temp_file == NULL) {
+        ngx_http_finalize_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR);
+        return;
+    }
+
     ngx_http_map_uri_to_path(r, &path, &root, 0);
 
     path.len--;

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

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

  Renamed: vendor/nginx-1.2.6/src/http/modules/ngx_http_fastcgi_module.c (+3 -0) 99%
===================================================================
--- vendor/nginx-1.2.1/src/http/modules/ngx_http_fastcgi_module.c    2013-01-17 13:42:10 +0900 (55c3aef)
+++ vendor/nginx-1.2.6/src/http/modules/ngx_http_fastcgi_module.c    2013-01-17 13:43:24 +0900 (e8ff24c)
@@ -1626,6 +1626,9 @@ ngx_http_fastcgi_process_header(ngx_http_request_t *r)
         }
 
         part = ngx_array_push(f->split_parts);
+        if (part == NULL) {
+            return NGX_ERROR;
+        }
 
         part->start = part_start;
         part->end = part_end;

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

  Renamed: vendor/nginx-1.2.6/src/http/modules/ngx_http_geo_module.c (+15 -6) 99%
===================================================================
--- vendor/nginx-1.2.1/src/http/modules/ngx_http_geo_module.c    2013-01-17 13:42:10 +0900 (e792cdb)
+++ vendor/nginx-1.2.6/src/http/modules/ngx_http_geo_module.c    2013-01-17 13:43:24 +0900 (fce87a8)
@@ -145,7 +145,7 @@ typedef struct {
     u_char    GEORNG[6];
     u_char    version;
     u_char    ptr_size;
-    uint32_t  endianess;
+    uint32_t  endianness;
     uint32_t  crc32;
 } ngx_http_geo_header_t;
 
@@ -233,12 +233,21 @@ ngx_http_geo_addr(ngx_http_request_t *r, ngx_http_geo_ctx_t *ctx)
 #if (NGX_HAVE_INET6)
 
     if (addr.sockaddr->sa_family == AF_INET6) {
+        u_char           *p;
+        in_addr_t         inaddr;
         struct in6_addr  *inaddr6;
 
         inaddr6 = &((struct sockaddr_in6 *) addr.sockaddr)->sin6_addr;
 
         if (IN6_IS_ADDR_V4MAPPED(inaddr6)) {
-            return ntohl(*(in_addr_t *) &inaddr6->s6_addr[12]);
+            p = inaddr6->s6_addr;
+
+            inaddr = p[12] << 24;
+            inaddr += p[13] << 16;
+            inaddr += p[14] << 8;
+            inaddr += p[15];
+
+            return inaddr;
         }
     }
 
@@ -400,15 +409,15 @@ ngx_http_geo_block(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
             }
         }
 
+        if (ctx.high.default_value == NULL) {
+            ctx.high.default_value = &ngx_http_variable_null_value;
+        }
+
         geo->u.high = ctx.high;
 
         var->get_handler = ngx_http_geo_range_variable;
         var->data = (uintptr_t) geo;
 
-        if (ctx.high.default_value == NULL) {
-            ctx.high.default_value = &ngx_http_variable_null_value;
-        }
-
         ngx_destroy_pool(ctx.temp_pool);
         ngx_destroy_pool(pool);
 

  Renamed: vendor/nginx-1.2.6/src/http/modules/ngx_http_geoip_module.c (+25 -5) 96%
===================================================================
--- vendor/nginx-1.2.1/src/http/modules/ngx_http_geoip_module.c    2013-01-17 13:42:10 +0900 (abc79cd)
+++ vendor/nginx-1.2.6/src/http/modules/ngx_http_geoip_module.c    2013-01-17 13:43:24 +0900 (7ff4f10)
@@ -28,7 +28,7 @@ typedef struct {
 } ngx_http_geoip_var_t;
 
 
-typedef const char *(*ngx_http_geoip_variable_handler_pt)(GeoIP *, u_long addr);
+typedef char *(*ngx_http_geoip_variable_handler_pt)(GeoIP *, u_long addr);
 
 static u_long ngx_http_geoip_addr(ngx_http_request_t *r,
     ngx_http_geoip_conf_t *gcf);
@@ -226,12 +226,21 @@ ngx_http_geoip_addr(ngx_http_request_t *r, ngx_http_geoip_conf_t *gcf)
 #if (NGX_HAVE_INET6)
 
     if (addr.sockaddr->sa_family == AF_INET6) {
+        u_char           *p;
+        in_addr_t         inaddr;
         struct in6_addr  *inaddr6;
 
         inaddr6 = &((struct sockaddr_in6 *) addr.sockaddr)->sin6_addr;
 
         if (IN6_IS_ADDR_V4MAPPED(inaddr6)) {
-            return ntohl(*(in_addr_t *) &inaddr6->s6_addr[12]);
+            p = inaddr6->s6_addr;
+
+            inaddr = p[12] << 24;
+            inaddr += p[13] << 16;
+            inaddr += p[14] << 8;
+            inaddr += p[15];
+
+            return inaddr;
         }
     }
 
@@ -291,7 +300,8 @@ ngx_http_geoip_org_variable(ngx_http_request_t *r,
     ngx_http_geoip_variable_handler_pt  handler =
         (ngx_http_geoip_variable_handler_pt) data;
 
-    const char             *val;
+    size_t                  len;
+    char                   *val;
     ngx_http_geoip_conf_t  *gcf;
 
     gcf = ngx_http_get_module_main_conf(r, ngx_http_geoip_module);
@@ -306,11 +316,21 @@ ngx_http_geoip_org_variable(ngx_http_request_t *r,
         goto not_found;
     }
 
-    v->len = ngx_strlen(val);
+    len = ngx_strlen(val);
+    v->data = ngx_pnalloc(r->pool, len);
+    if (v->data == NULL) {
+        ngx_free(val);
+        return NGX_ERROR;
+    }
+
+    ngx_memcpy(v->data, val, len);
+
+    v->len = len;
     v->valid = 1;
     v->no_cacheable = 0;
     v->not_found = 0;
-    v->data = (u_char *) val;
+
+    ngx_free(val);
 
     return NGX_OK;
 

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

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

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

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

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

  Renamed: vendor/nginx-1.2.6/src/http/modules/ngx_http_limit_conn_module.c (+6 -2) 99%
===================================================================
--- vendor/nginx-1.2.1/src/http/modules/ngx_http_limit_conn_module.c    2013-01-17 13:42:10 +0900 (c23c046)
+++ vendor/nginx-1.2.6/src/http/modules/ngx_http_limit_conn_module.c    2013-01-17 13:43:24 +0900 (e82ca49)
@@ -238,7 +238,7 @@ ngx_http_limit_conn_handler(ngx_http_request_t *r)
         }
 
         ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
-                       "limit zone: %08XD %d", node->key, lc->conn);
+                       "limit conn: %08XD %d", node->key, lc->conn);
 
         ngx_shmtx_unlock(&shpool->mutex);
 
@@ -358,7 +358,7 @@ ngx_http_limit_conn_cleanup(void *data)
     ngx_shmtx_lock(&shpool->mutex);
 
     ngx_log_debug2(NGX_LOG_DEBUG_HTTP, lccln->shm_zone->shm.log, 0,
-                   "limit zone cleanup: %08XD %d", node->key, lc->conn);
+                   "limit conn cleanup: %08XD %d", node->key, lc->conn);
 
     lc->conn--;
 
@@ -721,6 +721,10 @@ ngx_http_limit_conn(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
     }
 
     limit = ngx_array_push(&lccf->limits);
+    if (limit == NULL) {
+        return NGX_CONF_ERROR;
+    }
+
     limit->conn = n;
     limit->shm_zone = shm_zone;
 

  Renamed: vendor/nginx-1.2.6/src/http/modules/ngx_http_limit_req_module.c (+7 -4) 99%
===================================================================
--- vendor/nginx-1.2.1/src/http/modules/ngx_http_limit_req_module.c    2013-01-17 13:42:10 +0900 (18db715)
+++ vendor/nginx-1.2.6/src/http/modules/ngx_http_limit_req_module.c    2013-01-17 13:43:24 +0900 (31a8b98)
@@ -444,17 +444,17 @@ ngx_http_limit_req_lookup(ngx_http_limit_req_limit_t *limit, ngx_uint_t hash,
 
     node->key = hash;
 
-    ngx_rbtree_insert(&ctx->sh->rbtree, node);
-
     lr = (ngx_http_limit_req_node_t *) &node->color;
 
-    ngx_queue_insert_head(&ctx->sh->queue, &lr->queue);
-
     lr->len = (u_char) len;
     lr->excess = 0;
 
     ngx_memcpy(lr->data, data, len);
 
+    ngx_rbtree_insert(&ctx->sh->rbtree, node);
+
+    ngx_queue_insert_head(&ctx->sh->queue, &lr->queue);
+
     if (account) {
         lr->last = now;
         lr->count = 0;
@@ -937,6 +937,9 @@ ngx_http_limit_req(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
     }
 
     limit = ngx_array_push(&lrcf->limits);
+    if (limit == NULL) {
+        return NGX_CONF_ERROR;
+    }
 
     limit->shm_zone = shm_zone;
     limit->burst = burst * 1000;

  Renamed: vendor/nginx-1.2.6/src/http/modules/ngx_http_log_module.c (+4 -38) 96%
===================================================================
--- vendor/nginx-1.2.1/src/http/modules/ngx_http_log_module.c    2013-01-17 13:42:10 +0900 (2d41285)
+++ vendor/nginx-1.2.6/src/http/modules/ngx_http_log_module.c    2013-01-17 13:43:24 +0900 (0962c84)
@@ -78,10 +78,6 @@ static void ngx_http_log_write(ngx_http_request_t *r, ngx_http_log_t *log,
 static ssize_t ngx_http_log_script_write(ngx_http_request_t *r,
     ngx_http_log_script_t *script, u_char **name, u_char *buf, size_t len);
 
-static u_char *ngx_http_log_connection(ngx_http_request_t *r, u_char *buf,
-    ngx_http_log_op_t *op);
-static u_char *ngx_http_log_connection_requests(ngx_http_request_t *r,
-    u_char *buf, ngx_http_log_op_t *op);
 static u_char *ngx_http_log_pipe(ngx_http_request_t *r, u_char *buf,
     ngx_http_log_op_t *op);
 static u_char *ngx_http_log_time(ngx_http_request_t *r, u_char *buf,
@@ -194,9 +190,6 @@ static ngx_str_t  ngx_http_combined_fmt =
 
 
 static ngx_http_log_var_t  ngx_http_log_vars[] = {
-    { ngx_string("connection"), NGX_ATOMIC_T_LEN, ngx_http_log_connection },
-    { ngx_string("connection_requests"), NGX_INT_T_LEN,
-                          ngx_http_log_connection_requests },
     { ngx_string("pipe"), 1, ngx_http_log_pipe },
     { ngx_string("time_local"), sizeof("28/Sep/1970:12:00:00 +0600") - 1,
                           ngx_http_log_time },
@@ -205,12 +198,10 @@ static ngx_http_log_var_t  ngx_http_log_vars[] = {
     { ngx_string("msec"), NGX_TIME_T_LEN + 4, ngx_http_log_msec },
     { ngx_string("request_time"), NGX_TIME_T_LEN + 4,
                           ngx_http_log_request_time },
-    { ngx_string("status"), 3, ngx_http_log_status },
+    { ngx_string("status"), NGX_INT_T_LEN, ngx_http_log_status },
     { ngx_string("bytes_sent"), NGX_OFF_T_LEN, ngx_http_log_bytes_sent },
     { ngx_string("body_bytes_sent"), NGX_OFF_T_LEN,
                           ngx_http_log_body_bytes_sent },
-    { ngx_string("apache_bytes_sent"), NGX_OFF_T_LEN,
-                          ngx_http_log_body_bytes_sent },
     { ngx_string("request_length"), NGX_SIZE_T_LEN,
                           ngx_http_log_request_length },
 
@@ -218,7 +209,7 @@ static ngx_http_log_var_t  ngx_http_log_vars[] = {
 };
 
 
-ngx_int_t
+static ngx_int_t
 ngx_http_log_handler(ngx_http_request_t *r)
 {
     u_char                   *line, *p;
@@ -502,22 +493,6 @@ ngx_http_log_copy_long(ngx_http_request_t *r, u_char *buf,
 
 
 static u_char *
-ngx_http_log_connection(ngx_http_request_t *r, u_char *buf,
-    ngx_http_log_op_t *op)
-{
-    return ngx_sprintf(buf, "%uA", r->connection->number);
-}
-
-
-static u_char *
-ngx_http_log_connection_requests(ngx_http_request_t *r, u_char *buf,
-    ngx_http_log_op_t *op)
-{
-    return ngx_sprintf(buf, "%ui", r->connection->requests);
-}
-
-
-static u_char *
 ngx_http_log_pipe(ngx_http_request_t *r, u_char *buf, ngx_http_log_op_t *op)
 {
     if (r->pipeline) {
@@ -584,16 +559,13 @@ ngx_http_log_status(ngx_http_request_t *r, u_char *buf, ngx_http_log_op_t *op)
         status = r->headers_out.status;
 
     } else if (r->http_version == NGX_HTTP_VERSION_9) {
-        *buf++ = '0';
-        *buf++ = '0';
-        *buf++ = '9';
-        return buf;
+        status = 9;
 
     } else {
         status = 0;
     }
 
-    return ngx_sprintf(buf, "%ui", status);
+    return ngx_sprintf(buf, "%03ui", status);
 }
 
 
@@ -1146,12 +1118,6 @@ ngx_http_log_compile_format(ngx_conf_t *cf, ngx_array_t *flushes,
                     goto invalid;
                 }
 
-                if (ngx_strncmp(var.data, "apache_bytes_sent", 17) == 0) {
-                    ngx_conf_log_error(NGX_LOG_WARN, cf, 0,
-                        "use \"$body_bytes_sent\" instead of "
-                        "\"$apache_bytes_sent\"");
-                }
-
                 for (v = ngx_http_log_vars; v->name.len; v++) {
 
                     if (v->name.len == var.len

  Renamed: vendor/nginx-1.2.6/src/http/modules/ngx_http_map_module.c (+8 -23) 95%
===================================================================
--- vendor/nginx-1.2.1/src/http/modules/ngx_http_map_module.c    2013-01-17 13:42:10 +0900 (2fe925f)
+++ vendor/nginx-1.2.6/src/http/modules/ngx_http_map_module.c    2013-01-17 13:43:24 +0900 (371737b)
@@ -110,7 +110,6 @@ ngx_http_map_variable(ngx_http_request_t *r, ngx_http_variable_value_t *v,
 {
     ngx_http_map_ctx_t  *map = (ngx_http_map_ctx_t *) data;
 
-    size_t                      len;
     ngx_str_t                   val;
     ngx_http_variable_value_t  *value;
 
@@ -121,10 +120,8 @@ ngx_http_map_variable(ngx_http_request_t *r, ngx_http_variable_value_t *v,
         return NGX_ERROR;
     }
 
-    len = val.len;
-
-    if (len && map->hostnames && val.data[len - 1] == '.') {
-        len--;
+    if (map->hostnames && val.len > 0 && val.data[val.len - 1] == '.') {
+        val.len--;
     }
 
     value = ngx_http_map_find(r, &map->map, &val);
@@ -281,6 +278,8 @@ ngx_http_map_block(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
     map->default_value = ctx.default_value ? ctx.default_value:
                                              &ngx_http_variable_null_value;
 
+    map->hostnames = ctx.hostnames;
+
     hash.key = ngx_hash_key_lc;
     hash.max_size = mcf->hash_max_size;
     hash.bucket_size = mcf->hash_bucket_size;
@@ -370,7 +369,7 @@ static char *
 ngx_http_map(ngx_conf_t *cf, ngx_command_t *dummy, void *conf)
 {
     ngx_int_t                   rc, index;
-    ngx_str_t                  *value, file, name;
+    ngx_str_t                  *value, name;
     ngx_uint_t                  i, key;
     ngx_http_map_conf_ctx_t    *ctx;
     ngx_http_variable_value_t  *var, **vp;
@@ -392,15 +391,7 @@ ngx_http_map(ngx_conf_t *cf, ngx_command_t *dummy, void *conf)
     }
 
     if (ngx_strcmp(value[0].data, "include") == 0) {
-        file = value[1];
-
-        if (ngx_conf_full_name(cf->cycle, &file, 1) != NGX_OK) {
-            return NGX_CONF_ERROR;
-        }
-
-        ngx_log_debug1(NGX_LOG_DEBUG_CORE, cf->log, 0, "include %s", file.data);
-
-        return ngx_conf_parse(cf, &file);
+        return ngx_conf_include(cf, dummy, conf);
     }
 
     if (value[1].data[0] == '$') {
@@ -417,11 +408,12 @@ ngx_http_map(ngx_conf_t *cf, ngx_command_t *dummy, void *conf)
 
         for (i = 0; i < ctx->var_values.nelts; i++) {
             if (index == (ngx_int_t) var[i].data) {
+                var = &var[i];
                 goto found;
             }
         }
 
-        var = ngx_palloc(ctx->keys.pool, sizeof(ngx_http_variable_value_t));
+        var = ngx_array_push(&ctx->var_values);
         if (var == NULL) {
             return NGX_CONF_ERROR;
         }
@@ -432,13 +424,6 @@ ngx_http_map(ngx_conf_t *cf, ngx_command_t *dummy, void *conf)
         var->len = 0;
         var->data = (u_char *) index;
 
-        vp = ngx_array_push(&ctx->var_values);
-        if (vp == NULL) {
-            return NGX_CONF_ERROR;
-        }
-
-        *vp = var;
-
         goto found;
     }
 

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

  Renamed: vendor/nginx-1.2.6/src/http/modules/ngx_http_mp4_module.c (+18 -1) 99%
===================================================================
--- vendor/nginx-1.2.1/src/http/modules/ngx_http_mp4_module.c    2013-01-17 13:42:10 +0900 (2c8cfd1)
+++ vendor/nginx-1.2.6/src/http/modules/ngx_http_mp4_module.c    2013-01-17 13:43:24 +0900 (d3be234)
@@ -1024,6 +1024,10 @@ ngx_http_mp4_read_moov_atom(ngx_http_mp4_file_t *mp4, uint64_t atom_data_size)
                          + NGX_HTTP_MP4_MOOV_BUFFER_EXCESS * no_mdat;
     }
 
+    if (ngx_http_mp4_read(mp4, (size_t) atom_data_size) != NGX_OK) {
+        return NGX_ERROR;
+    }
+
     mp4->trak.elts = &mp4->traks;
     mp4->trak.size = sizeof(ngx_http_mp4_trak_t);
     mp4->trak.nalloc = 2;
@@ -1044,6 +1048,12 @@ ngx_http_mp4_read_moov_atom(ngx_http_mp4_file_t *mp4, uint64_t atom_data_size)
         mp4->buffer_start = mp4->buffer_pos;
         mp4->buffer_size = NGX_HTTP_MP4_MOOV_BUFFER_EXCESS;
 
+        if (mp4->buffer_start + mp4->buffer_size > mp4->buffer_end) {
+            mp4->buffer = NULL;
+            mp4->buffer_pos = NULL;
+            mp4->buffer_end = NULL;
+        }
+
     } else {
         /* skip atoms after moov atom */
         mp4->offset = mp4->end;
@@ -2488,7 +2498,13 @@ found:
 
     ngx_mp4_set_32value(entry->chunk, 1);
 
-    if (trak->chunk_samples) {
+    if (trak->chunk_samples && next_chunk - trak->start_chunk == 2) {
+
+        /* last chunk in the entry */
+
+        ngx_mp4_set_32value(entry->samples, samples - trak->chunk_samples);
+
+    } else if (trak->chunk_samples) {
 
         first = &trak->stsc_chunk_entry;
         ngx_mp4_set_32value(first->chunk, 1);
@@ -2504,6 +2520,7 @@ found:
 
         ngx_mp4_set_32value(entry->chunk, 2);
 
+        entries++;
         atom_size += sizeof(ngx_mp4_stsc_entry_t);
     }
 

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

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

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

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

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

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

  Renamed: vendor/nginx-1.2.6/src/http/modules/ngx_http_rewrite_module.c (+6 -0) 99%
===================================================================
--- vendor/nginx-1.2.1/src/http/modules/ngx_http_rewrite_module.c    2013-01-17 13:42:10 +0900 (74d26e5)
+++ vendor/nginx-1.2.6/src/http/modules/ngx_http_rewrite_module.c    2013-01-17 13:43:24 +0900 (4081f87)
@@ -485,6 +485,12 @@ ngx_http_rewrite_return(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
 
     } else {
 
+        if (ret->status > 999) {
+            ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+                               "invalid return code \"%V\"", &value[1]);
+            return NGX_CONF_ERROR;
+        }
+
         if (cf->args->nelts == 2) {
             return NGX_CONF_OK;
         }

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

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

  Renamed: vendor/nginx-1.2.6/src/http/modules/ngx_http_split_clients_module.c (+7 -0) 96%
===================================================================
--- vendor/nginx-1.2.1/src/http/modules/ngx_http_split_clients_module.c    2013-01-17 13:42:10 +0900 (726269c)
+++ vendor/nginx-1.2.6/src/http/modules/ngx_http_split_clients_module.c    2013-01-17 13:43:24 +0900 (33a2fe7)
@@ -138,6 +138,13 @@ ngx_conf_split_clients_block(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
     }
 
     name = value[2];
+
+    if (name.len < 2 || name.data[0] != '$') {
+        ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+                           "invalid variable name \"%V\"", &name);
+        return NGX_CONF_ERROR;
+    }
+
     name.len--;
     name.data++;
 

  Renamed: vendor/nginx-1.2.6/src/http/modules/ngx_http_ssi_filter_module.c (+1 -0) 99%
===================================================================
--- vendor/nginx-1.2.1/src/http/modules/ngx_http_ssi_filter_module.c    2013-01-17 13:42:10 +0900 (219465a)
+++ vendor/nginx-1.2.6/src/http/modules/ngx_http_ssi_filter_module.c    2013-01-17 13:43:24 +0900 (6c2d0a9)
@@ -1024,6 +1024,7 @@ ngx_http_ssi_parse(ngx_http_request_t *r, ngx_http_ssi_ctx_t *ctx)
         switch (state) {
 
         case ssi_start_state:
+            /* not reached */
             break;
 
         case ssi_tag_state:

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

  Renamed: vendor/nginx-1.2.6/src/http/modules/ngx_http_ssl_module.c (+2 -1) 99%
===================================================================
--- vendor/nginx-1.2.1/src/http/modules/ngx_http_ssl_module.c    2013-01-17 13:42:10 +0900 (d759489)
+++ vendor/nginx-1.2.6/src/http/modules/ngx_http_ssl_module.c    2013-01-17 13:43:24 +0900 (ea8a0da)
@@ -48,6 +48,7 @@ static ngx_conf_enum_t  ngx_http_ssl_verify[] = {
     { ngx_string("off"), 0 },
     { ngx_string("on"), 1 },
     { ngx_string("optional"), 2 },
+    { ngx_string("optional_no_ca"), 3 },
     { ngx_null_string, 0 }
 };
 
@@ -466,7 +467,7 @@ ngx_http_ssl_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child)
 
     if (conf->verify) {
 
-        if (conf->client_certificate.len == 0) {
+        if (conf->client_certificate.len == 0 && conf->verify != 3) {
             ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
                           "no ssl_client_certificate for ssl_client_verify");
             return NGX_CONF_ERROR;

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

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

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

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

  Renamed: vendor/nginx-1.2.6/src/http/modules/ngx_http_upstream_ip_hash_module.c (+44 -17) 82%
===================================================================
--- vendor/nginx-1.2.1/src/http/modules/ngx_http_upstream_ip_hash_module.c    2013-01-17 13:42:10 +0900 (100ea34)
+++ vendor/nginx-1.2.6/src/http/modules/ngx_http_upstream_ip_hash_module.c    2013-01-17 13:43:24 +0900 (89ccc2b)
@@ -16,7 +16,8 @@ typedef struct {
 
     ngx_uint_t                         hash;
 
-    u_char                             addr[3];
+    u_char                             addrlen;
+    u_char                            *addr;
 
     u_char                             tries;
 
@@ -76,7 +77,10 @@ ngx_module_t  ngx_http_upstream_ip_hash_module = {
 };
 
 
-ngx_int_t
+static u_char ngx_http_upstream_ip_hash_pseudo_addr[3];
+
+
+static ngx_int_t
 ngx_http_upstream_init_ip_hash(ngx_conf_t *cf, ngx_http_upstream_srv_conf_t *us)
 {
     if (ngx_http_upstream_init_round_robin(cf, us) != NGX_OK) {
@@ -93,8 +97,10 @@ static ngx_int_t
 ngx_http_upstream_init_ip_hash_peer(ngx_http_request_t *r,
     ngx_http_upstream_srv_conf_t *us)
 {
-    u_char                                 *p;
     struct sockaddr_in                     *sin;
+#if (NGX_HAVE_INET6)
+    struct sockaddr_in6                    *sin6;
+#endif
     ngx_http_upstream_ip_hash_peer_data_t  *iphp;
 
     iphp = ngx_palloc(r->pool, sizeof(ngx_http_upstream_ip_hash_peer_data_t));
@@ -110,20 +116,25 @@ ngx_http_upstream_init_ip_hash_peer(ngx_http_request_t *r,
 
     r->upstream->peer.get = ngx_http_upstream_get_ip_hash_peer;
 
-    /* AF_INET only */
-
-    if (r->connection->sockaddr->sa_family == AF_INET) {
+    switch (r->connection->sockaddr->sa_family) {
 
+    case AF_INET:
         sin = (struct sockaddr_in *) r->connection->sockaddr;
-        p = (u_char *) &sin->sin_addr.s_addr;
-        iphp->addr[0] = p[0];
-        iphp->addr[1] = p[1];
-        iphp->addr[2] = p[2];
-
-    } else {
-        iphp->addr[0] = 0;
-        iphp->addr[1] = 0;
-        iphp->addr[2] = 0;
+        iphp->addr = (u_char *) &sin->sin_addr.s_addr;
+        iphp->addrlen = 3;
+        break;
+
+#if (NGX_HAVE_INET6)
+    case AF_INET6:
+        sin6 = (struct sockaddr_in6 *) r->connection->sockaddr;
+        iphp->addr = (u_char *) &sin6->sin6_addr.s6_addr;
+        iphp->addrlen = 16;
+        break;
+#endif
+
+    default:
+        iphp->addr = ngx_http_upstream_ip_hash_pseudo_addr;
+        iphp->addrlen = 3;
     }
 
     iphp->hash = 89;
@@ -140,6 +151,7 @@ ngx_http_upstream_get_ip_hash_peer(ngx_peer_connection_t *pc, void *data)
     ngx_http_upstream_ip_hash_peer_data_t  *iphp = data;
 
     time_t                        now;
+    ngx_int_t                     w;
     uintptr_t                     m;
     ngx_uint_t                    i, n, p, hash;
     ngx_http_upstream_rr_peer_t  *peer;
@@ -162,11 +174,25 @@ ngx_http_upstream_get_ip_hash_peer(ngx_peer_connection_t *pc, void *data)
 
     for ( ;; ) {
 
-        for (i = 0; i < 3; i++) {
+        for (i = 0; i < iphp->addrlen; i++) {
             hash = (hash * 113 + iphp->addr[i]) % 6271;
         }
 
-        p = hash % iphp->rrp.peers->number;
+        if (!iphp->rrp.peers->weighted) {
+            p = hash % iphp->rrp.peers->number;
+
+        } else {
+            w = hash % iphp->rrp.peers->total_weight;
+
+            for (i = 0; i < iphp->rrp.peers->number; i++) {
+                w -= iphp->rrp.peers->peer[i].weight;
+                if (w < 0) {
+                    break;
+                }
+            }
+
+            p = i;
+        }
 
         n = p / (8 * sizeof(uintptr_t));
         m = (uintptr_t) 1 << p % (8 * sizeof(uintptr_t));
@@ -229,6 +255,7 @@ ngx_http_upstream_ip_hash(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
     uscf->peer.init_upstream = ngx_http_upstream_init_ip_hash;
 
     uscf->flags = NGX_HTTP_UPSTREAM_CREATE
+                  |NGX_HTTP_UPSTREAM_WEIGHT
                   |NGX_HTTP_UPSTREAM_MAX_FAILS
                   |NGX_HTTP_UPSTREAM_FAIL_TIMEOUT
                   |NGX_HTTP_UPSTREAM_DOWN;

  Renamed: vendor/nginx-1.2.6/src/http/modules/ngx_http_upstream_keepalive_module.c (+4 -29) 94%
===================================================================
--- vendor/nginx-1.2.1/src/http/modules/ngx_http_upstream_keepalive_module.c    2013-01-17 13:42:10 +0900 (6fd9ac7)
+++ vendor/nginx-1.2.6/src/http/modules/ngx_http_upstream_keepalive_module.c    2013-01-17 13:43:24 +0900 (d10e3d0)
@@ -12,7 +12,6 @@
 
 typedef struct {
     ngx_uint_t                         max_cached;
-    ngx_uint_t                         single;       /* unsigned:1 */
 
     ngx_queue_t                        cache;
     ngx_queue_t                        free;
@@ -223,36 +222,11 @@ ngx_http_upstream_get_keepalive_peer(ngx_peer_connection_t *pc, void *data)
 
     kp->failed = 0;
 
-    /* single pool of cached connections */
-
-    if (kp->conf->single && !ngx_queue_empty(&kp->conf->cache)) {
-
-        q = ngx_queue_head(&kp->conf->cache);
-
-        item = ngx_queue_data(q, ngx_http_upstream_keepalive_cache_t, queue);
-        c = item->connection;
-
-        ngx_queue_remove(q);
-        ngx_queue_insert_head(&kp->conf->free, q);
-
-        ngx_log_debug1(NGX_LOG_DEBUG_HTTP, pc->log, 0,
-                       "get keepalive peer: using connection %p", c);
-
-        c->idle = 0;
-        c->log = pc->log;
-        c->read->log = pc->log;
-        c->write->log = pc->log;
-        c->pool->log = pc->log;
-
-        pc->connection = c;
-        pc->cached = 1;
-
-        return NGX_DONE;
-    }
+    /* ask balancer */
 
     rc = kp->original_get_peer(pc, kp->data);
 
-    if (kp->conf->single || rc != NGX_OK) {
+    if (rc != NGX_OK) {
         return rc;
     }
 
@@ -552,7 +526,8 @@ ngx_http_upstream_keepalive(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
     for (i = 2; i < cf->args->nelts; i++) {
 
         if (ngx_strcmp(value[i].data, "single") == 0) {
-            kcf->single = 1;
+            ngx_conf_log_error(NGX_LOG_WARN, cf, 0,
+                               "the \"single\" parameter is deprecated");
             continue;
         }
 

  Added: vendor/nginx-1.2.6/src/http/modules/ngx_http_upstream_least_conn_module.c (+402 -0) 100644
===================================================================
--- /dev/null
+++ vendor/nginx-1.2.6/src/http/modules/ngx_http_upstream_least_conn_module.c    2013-01-17 13:43:24 +0900 (21156ae)
@@ -0,0 +1,402 @@
+
+/*
+ * Copyright (C) Maxim Dounin
+ * Copyright (C) Nginx, Inc.
+ */
+
+
+#include <ngx_config.h>
+#include <ngx_core.h>
+#include <ngx_http.h>
+
+
+typedef struct {
+    ngx_uint_t                        *conns;
+} ngx_http_upstream_least_conn_conf_t;
+
+
+typedef struct {
+    /* the round robin data must be first */
+    ngx_http_upstream_rr_peer_data_t   rrp;
+
+    ngx_uint_t                        *conns;
+
+    ngx_event_get_peer_pt              get_rr_peer;
+    ngx_event_free_peer_pt             free_rr_peer;
+} ngx_http_upstream_lc_peer_data_t;
+
+
+static ngx_int_t ngx_http_upstream_init_least_conn_peer(ngx_http_request_t *r,
+    ngx_http_upstream_srv_conf_t *us);
+static ngx_int_t ngx_http_upstream_get_least_conn_peer(
+    ngx_peer_connection_t *pc, void *data);
+static void ngx_http_upstream_free_least_conn_peer(ngx_peer_connection_t *pc,
+    void *data, ngx_uint_t state);
+static void *ngx_http_upstream_least_conn_create_conf(ngx_conf_t *cf);
+static char *ngx_http_upstream_least_conn(ngx_conf_t *cf, ngx_command_t *cmd,
+    void *conf);
+
+
+static ngx_command_t  ngx_http_upstream_least_conn_commands[] = {
+
+    { ngx_string("least_conn"),
+      NGX_HTTP_UPS_CONF|NGX_CONF_NOARGS,
+      ngx_http_upstream_least_conn,
+      0,
+      0,
+      NULL },
+
+      ngx_null_command
+};
+
+
+static ngx_http_module_t  ngx_http_upstream_least_conn_module_ctx = {
+    NULL,                                  /* preconfiguration */
+    NULL,                                  /* postconfiguration */
+
+    NULL,                                  /* create main configuration */
+    NULL,                                  /* init main configuration */
+
+    ngx_http_upstream_least_conn_create_conf, /* create server configuration */
+    NULL,                                  /* merge server configuration */
+
+    NULL,                                  /* create location configuration */
+    NULL                                   /* merge location configuration */
+};
+
+
+ngx_module_t  ngx_http_upstream_least_conn_module = {
+    NGX_MODULE_V1,
+    &ngx_http_upstream_least_conn_module_ctx, /* module context */
+    ngx_http_upstream_least_conn_commands, /* module directives */
+    NGX_HTTP_MODULE,                       /* module type */
+    NULL,                                  /* init master */
+    NULL,                                  /* init module */
+    NULL,                                  /* init process */
+    NULL,                                  /* init thread */
+    NULL,                                  /* exit thread */
+    NULL,                                  /* exit process */
+    NULL,                                  /* exit master */
+    NGX_MODULE_V1_PADDING
+};
+
+
+static ngx_int_t
+ngx_http_upstream_init_least_conn(ngx_conf_t *cf,
+    ngx_http_upstream_srv_conf_t *us)
+{
+    ngx_uint_t                            n;
+    ngx_http_upstream_rr_peers_t         *peers;
+    ngx_http_upstream_least_conn_conf_t  *lcf;
+
+    ngx_log_debug0(NGX_LOG_DEBUG_HTTP, cf->log, 0,
+                   "init least conn");
+
+    if (ngx_http_upstream_init_round_robin(cf, us) != NGX_OK) {
+        return NGX_ERROR;
+    }
+
+    peers = us->peer.data;
+
+    n = peers->number;
+
+    if (peers->next) {
+        n += peers->next->number;
+    }
+
+    lcf = ngx_http_conf_upstream_srv_conf(us,
+                                          ngx_http_upstream_least_conn_module);
+
+    lcf->conns = ngx_pcalloc(cf->pool, sizeof(ngx_uint_t) * n);
+    if (lcf->conns == NULL) {
+        return NGX_ERROR;
+    }
+
+    us->peer.init = ngx_http_upstream_init_least_conn_peer;
+
+    return NGX_OK;
+}
+
+
+static ngx_int_t
+ngx_http_upstream_init_least_conn_peer(ngx_http_request_t *r,
+    ngx_http_upstream_srv_conf_t *us)
+{
+    ngx_http_upstream_lc_peer_data_t     *lcp;
+    ngx_http_upstream_least_conn_conf_t  *lcf;
+
+    ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
+                   "init least conn peer");
+
+    lcf = ngx_http_conf_upstream_srv_conf(us,
+                                          ngx_http_upstream_least_conn_module);
+
+    lcp = ngx_palloc(r->pool, sizeof(ngx_http_upstream_lc_peer_data_t));
+    if (lcp == NULL) {
+        return NGX_ERROR;
+    }
+
+    lcp->conns = lcf->conns;
+
+    r->upstream->peer.data = &lcp->rrp;
+
+    if (ngx_http_upstream_init_round_robin_peer(r, us) != NGX_OK) {
+        return NGX_ERROR;
+    }
+
+    r->upstream->peer.get = ngx_http_upstream_get_least_conn_peer;
+    r->upstream->peer.free = ngx_http_upstream_free_least_conn_peer;
+
+    lcp->get_rr_peer = ngx_http_upstream_get_round_robin_peer;
+    lcp->free_rr_peer = ngx_http_upstream_free_round_robin_peer;
+
+    return NGX_OK;
+}
+
+
+static ngx_int_t
+ngx_http_upstream_get_least_conn_peer(ngx_peer_connection_t *pc, void *data)
+{
+    ngx_http_upstream_lc_peer_data_t  *lcp = data;
+
+    time_t                         now;
+    uintptr_t                      m;
+    ngx_int_t                      rc, total;
+    ngx_uint_t                     i, n, p, many;
+    ngx_http_upstream_rr_peer_t   *peer, *best;
+    ngx_http_upstream_rr_peers_t  *peers;
+
+    ngx_log_debug1(NGX_LOG_DEBUG_HTTP, pc->log, 0,
+                   "get least conn peer, try: %ui", pc->tries);
+
+    if (lcp->rrp.peers->single) {
+        return lcp->get_rr_peer(pc, &lcp->rrp);
+    }
+
+    pc->cached = 0;
+    pc->connection = NULL;
+
+    now = ngx_time();
+
+    peers = lcp->rrp.peers;
+
+    best = NULL;
+    total = 0;
+
+#if (NGX_SUPPRESS_WARN)
+    many = 0;
+    p = 0;
+#endif
+
+    for (i = 0; i < peers->number; i++) {
+
+        n = i / (8 * sizeof(uintptr_t));
+        m = (uintptr_t) 1 << i % (8 * sizeof(uintptr_t));
+
+        if (lcp->rrp.tried[n] & m) {
+            continue;
+        }
+
+        peer = &peers->peer[i];
+
+        if (peer->down) {
+            continue;
+        }
+
+        if (peer->max_fails
+            && peer->fails >= peer->max_fails
+            && now - peer->checked <= peer->fail_timeout)
+        {
+            continue;
+        }
+
+        /*
+         * select peer with least number of connections; if there are
+         * multiple peers with the same number of connections, select
+         * based on round-robin
+         */
+
+        if (best == NULL
+            || lcp->conns[i] * best->weight < lcp->conns[p] * peer->weight)
+        {
+            best = peer;
+            many = 0;
+            p = i;
+
+        } else if (lcp->conns[i] * best->weight
+                   == lcp->conns[p] * peer->weight)
+        {
+            many = 1;
+        }
+    }
+
+    if (best == NULL) {
+        ngx_log_debug0(NGX_LOG_DEBUG_HTTP, pc->log, 0,
+                       "get least conn peer, no peer found");
+
+        goto failed;
+    }
+
+    if (many) {
+        ngx_log_debug0(NGX_LOG_DEBUG_HTTP, pc->log, 0,
+                       "get least conn peer, many");
+
+        for (i = p; i < peers->number; i++) {
+
+            n = i / (8 * sizeof(uintptr_t));
+            m = (uintptr_t) 1 << i % (8 * sizeof(uintptr_t));
+
+            if (lcp->rrp.tried[n] & m) {
+                continue;
+            }
+
+            peer = &peers->peer[i];
+
+            if (peer->down) {
+                continue;
+            }
+
+            if (lcp->conns[i] * best->weight != lcp->conns[p] * peer->weight) {
+                continue;
+            }
+
+            if (peer->max_fails
+                && peer->fails >= peer->max_fails
+                && now - peer->checked <= peer->fail_timeout)
+            {
+                continue;
+            }
+
+            peer->current_weight += peer->effective_weight;
+            total += peer->effective_weight;
+
+            if (peer->effective_weight < peer->weight) {
+                peer->effective_weight++;
+            }
+
+            if (peer->current_weight > best->current_weight) {
+                best = peer;
+                p = i;
+            }
+        }
+    }
+
+    best->current_weight -= total;
+    best->checked = now;
+
+    pc->sockaddr = best->sockaddr;
+    pc->socklen = best->socklen;
+    pc->name = &best->name;
+
+    lcp->rrp.current = p;
+
+    n = p / (8 * sizeof(uintptr_t));
+    m = (uintptr_t) 1 << p % (8 * sizeof(uintptr_t));
+
+    lcp->rrp.tried[n] |= m;
+    lcp->conns[p]++;
+
+    if (pc->tries == 1 && peers->next) {
+        pc->tries += peers->next->number;
+    }
+
+    return NGX_OK;
+
+failed:
+
+    if (peers->next) {
+        ngx_log_debug0(NGX_LOG_DEBUG_HTTP, pc->log, 0,
+                       "get least conn peer, backup servers");
+
+        lcp->conns += peers->number;
+
+        lcp->rrp.peers = peers->next;
+        pc->tries = lcp->rrp.peers->number;
+
+        n = lcp->rrp.peers->number / (8 * sizeof(uintptr_t)) + 1;
+        for (i = 0; i < n; i++) {
+             lcp->rrp.tried[i] = 0;
+        }
+
+        rc = ngx_http_upstream_get_least_conn_peer(pc, lcp);
+
+        if (rc != NGX_BUSY) {
+            return rc;
+        }
+    }
+
+    /* all peers failed, mark them as live for quick recovery */
+
+    for (i = 0; i < peers->number; i++) {
+        peers->peer[i].fails = 0;
+    }
+
+    pc->name = peers->name;
+
+    return NGX_BUSY;
+}
+
+
+static void
+ngx_http_upstream_free_least_conn_peer(ngx_peer_connection_t *pc,
+    void *data, ngx_uint_t state)
+{
+    ngx_http_upstream_lc_peer_data_t  *lcp = data;
+
+    ngx_log_debug2(NGX_LOG_DEBUG_HTTP, pc->log, 0,
+                   "free least conn peer %ui %ui", pc->tries, state);
+
+    if (lcp->rrp.peers->single) {
+        lcp->free_rr_peer(pc, &lcp->rrp, state);
+        return;
+    }
+
+    if (state == 0 && pc->tries == 0) {
+        return;
+    }
+
+    lcp->conns[lcp->rrp.current]--;
+
+    lcp->free_rr_peer(pc, &lcp->rrp, state);
+}
+
+
+static void *
+ngx_http_upstream_least_conn_create_conf(ngx_conf_t *cf)
+{
+    ngx_http_upstream_least_conn_conf_t  *conf;
+
+    conf = ngx_pcalloc(cf->pool,
+                       sizeof(ngx_http_upstream_least_conn_conf_t));
+    if (conf == NULL) {
+        return NULL;
+    }
+
+    /*
+     * set by ngx_pcalloc():
+     *
+     *     conf->conns = NULL;
+     */
+
+    return conf;
+}
+
+
+static char *
+ngx_http_upstream_least_conn(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
+{
+    ngx_http_upstream_srv_conf_t  *uscf;
+
+    uscf = ngx_http_conf_get_module_srv_conf(cf, ngx_http_upstream_module);
+
+    uscf->peer.init_upstream = ngx_http_upstream_init_least_conn;
+
+    uscf->flags = NGX_HTTP_UPSTREAM_CREATE
+                  |NGX_HTTP_UPSTREAM_WEIGHT
+                  |NGX_HTTP_UPSTREAM_MAX_FAILS
+                  |NGX_HTTP_UPSTREAM_FAIL_TIMEOUT
+                  |NGX_HTTP_UPSTREAM_DOWN
+                  |NGX_HTTP_UPSTREAM_BACKUP;
+
+    return NGX_CONF_OK;
+}

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

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

  Renamed: vendor/nginx-1.2.6/src/http/modules/ngx_http_xslt_filter_module.c (+2 -2) 99%
===================================================================
--- vendor/nginx-1.2.1/src/http/modules/ngx_http_xslt_filter_module.c    2013-01-17 13:42:10 +0900 (4309a44)
+++ vendor/nginx-1.2.6/src/http/modules/ngx_http_xslt_filter_module.c    2013-01-17 13:43:24 +0900 (9b0354b)
@@ -810,7 +810,7 @@ ngx_http_xslt_entities(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
 
     file = xmcf->dtd_files.elts;
     for (i = 0; i < xmcf->dtd_files.nelts; i++) {
-        if (ngx_strcmp(file[i].name, &value[1].data) == 0) {
+        if (ngx_strcmp(file[i].name, value[1].data) == 0) {
             xlcf->dtd = file[i].data;
             return NGX_CONF_OK;
         }
@@ -884,7 +884,7 @@ ngx_http_xslt_stylesheet(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
 
     file = xmcf->sheet_files.elts;
     for (i = 0; i < xmcf->sheet_files.nelts; i++) {
-        if (ngx_strcmp(file[i].name, &value[1].data) == 0) {
+        if (ngx_strcmp(file[i].name, value[1].data) == 0) {
             sheet->stylesheet = file[i].data;
             goto found;
         }

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

  Renamed: vendor/nginx-1.2.6/src/http/modules/perl/nginx.pm (+1 -1) 99%
===================================================================
--- vendor/nginx-1.2.1/src/http/modules/perl/nginx.pm    2013-01-17 13:42:10 +0900 (117ffd8)
+++ vendor/nginx-1.2.6/src/http/modules/perl/nginx.pm    2013-01-17 13:43:24 +0900 (0f720d8)
@@ -50,7 +50,7 @@ our @EXPORT = qw(
     HTTP_INSUFFICIENT_STORAGE
 );
 
-our $VERSION = '1.2.1';
+our $VERSION = '1.2.6';
 
 require XSLoader;
 XSLoader::load('nginx', $VERSION);

  Renamed: vendor/nginx-1.2.6/src/http/modules/perl/nginx.xs (+1 -1) 99%
===================================================================
--- vendor/nginx-1.2.1/src/http/modules/perl/nginx.xs    2013-01-17 13:42:10 +0900 (ecd11ff)
+++ vendor/nginx-1.2.6/src/http/modules/perl/nginx.xs    2013-01-17 13:43:24 +0900 (ed97439)
@@ -476,7 +476,7 @@ header_out(r, key, value)
     }
 
     if (header->key.len == sizeof("Content-Encoding") - 1
-        && ngx_strncasecmp(header->key.data, "Content-Encoding",
+        && ngx_strncasecmp(header->key.data, (u_char *) "Content-Encoding",
                            sizeof("Content-Encoding") - 1) == 0)
     {
         r->headers_out.content_encoding = header;

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

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

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

  Renamed: vendor/nginx-1.2.6/src/http/ngx_http.c (+5 -0) 99%
===================================================================
--- vendor/nginx-1.2.1/src/http/ngx_http.c    2013-01-17 13:42:10 +0900 (3e077fb)
+++ vendor/nginx-1.2.6/src/http/ngx_http.c    2013-01-17 13:43:24 +0900 (f1f8a48)
@@ -1613,6 +1613,11 @@ ngx_http_cmp_conf_addrs(const void *one, const void *two)
         return 1;
     }
 
+    if (second->opt.wildcard) {
+        /* a wildcard address must be the last resort, shift it to the end */
+        return -1;
+    }
+
     if (first->opt.bind && !second->opt.bind) {
         /* shift explicit bind()ed addresses to the start */
         return -1;

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

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

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

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

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

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

  Renamed: vendor/nginx-1.2.6/src/http/ngx_http_core_module.c (+14 -12) 99%
===================================================================
--- vendor/nginx-1.2.1/src/http/ngx_http_core_module.c    2013-01-17 13:42:10 +0900 (31832ce)
+++ vendor/nginx-1.2.6/src/http/ngx_http_core_module.c    2013-01-17 13:43:24 +0900 (e02a251)
@@ -222,7 +222,7 @@ static ngx_command_t  ngx_http_core_commands[] = {
       NULL },
 
     { ngx_string("server"),
-      NGX_HTTP_MAIN_CONF|NGX_CONF_BLOCK|NGX_CONF_MULTI|NGX_CONF_NOARGS,
+      NGX_HTTP_MAIN_CONF|NGX_CONF_BLOCK|NGX_CONF_NOARGS,
       ngx_http_core_server,
       0,
       0,
@@ -2588,6 +2588,7 @@ ngx_http_named_location(ngx_http_request_t *r, ngx_str_t *name)
 
             r->internal = 1;
             r->content_handler = NULL;
+            r->uri_changed = 0;
             r->loc_conf = (*clcfp)->loc_conf;
 
             /* clear the modules contexts */
@@ -2732,7 +2733,15 @@ ngx_http_get_forwarded_addr(ngx_http_request_t *r, ngx_addr_t *addr,
 
         if (IN6_IS_ADDR_V4MAPPED(inaddr6)) {
             family = AF_INET;
-            inaddr = *(in_addr_t *) &inaddr6->s6_addr[12];
+
+            p = inaddr6->s6_addr;
+
+            inaddr = p[12] << 24;
+            inaddr += p[13] << 16;
+            inaddr += p[14] << 8;
+            inaddr += p[15];
+
+            inaddr = htonl(inaddr);
         }
     }
 #endif
@@ -3192,7 +3201,7 @@ ngx_http_core_type(ngx_conf_t *cf, ngx_command_t *dummy, void *conf)
 {
     ngx_http_core_loc_conf_t *clcf = conf;
 
-    ngx_str_t       *value, *content_type, *old, file;
+    ngx_str_t       *value, *content_type, *old;
     ngx_uint_t       i, n, hash;
     ngx_hash_key_t  *type;
 
@@ -3205,15 +3214,8 @@ ngx_http_core_type(ngx_conf_t *cf, ngx_command_t *dummy, void *conf)
                                " in \"include\" directive");
             return NGX_CONF_ERROR;
         }
-        file = value[1];
-
-        if (ngx_conf_full_name(cf->cycle, &file, 1) != NGX_OK) {
-            return NGX_CONF_ERROR;
-        }
-
-        ngx_log_debug1(NGX_LOG_DEBUG_CORE, cf->log, 0, "include %s", file.data);
 
-        return ngx_conf_parse(cf, &file);
+        return ngx_conf_include(cf, dummy, conf);
     }
 
     content_type = ngx_palloc(cf->pool, sizeof(ngx_str_t));
@@ -4662,7 +4664,7 @@ ngx_http_core_try_files(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
 
         code = ngx_atoi(tf[i - 1].name.data + 1, tf[i - 1].name.len - 2);
 
-        if (code == NGX_ERROR) {
+        if (code == NGX_ERROR || code > 999) {
             ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
                                "invalid code \"%*s\"",
                                tf[i - 1].name.len - 1, tf[i - 1].name.data);

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

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

  Renamed: vendor/nginx-1.2.6/src/http/ngx_http_header_filter_module.c (+3 -3) 99%
===================================================================
--- vendor/nginx-1.2.1/src/http/ngx_http_header_filter_module.c    2013-01-17 13:42:10 +0900 (8a6080f)
+++ vendor/nginx-1.2.6/src/http/ngx_http_header_filter_module.c    2013-01-17 13:43:24 +0900 (e3efbba)
@@ -112,7 +112,7 @@ static ngx_str_t ngx_http_status_lines[] = {
 #define NGX_HTTP_OFF_5XX   (NGX_HTTP_LAST_4XX - 400 + NGX_HTTP_OFF_4XX)
 
     ngx_string("500 Internal Server Error"),
-    ngx_string("501 Method Not Implemented"),
+    ngx_string("501 Not Implemented"),
     ngx_string("502 Bad Gateway"),
     ngx_string("503 Service Temporarily Unavailable"),
     ngx_string("504 Gateway Time-out"),
@@ -395,7 +395,7 @@ ngx_http_header_filter(ngx_http_request_t *r)
         }
 
     } else {
-        len += sizeof("Connection: closed" CRLF) - 1;
+        len += sizeof("Connection: close" CRLF) - 1;
     }
 
 #if (NGX_HTTP_GZIP)
@@ -445,7 +445,7 @@ ngx_http_header_filter(ngx_http_request_t *r)
         b->last = ngx_copy(b->last, status_line->data, status_line->len);
 
     } else {
-        b->last = ngx_sprintf(b->last, "%ui", status);
+        b->last = ngx_sprintf(b->last, "%03ui", status);
     }
     *b->last++ = CR; *b->last++ = LF;
 

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

  Renamed: vendor/nginx-1.2.6/src/http/ngx_http_parse_time.c (+1 -0) 99%
===================================================================
--- vendor/nginx-1.2.1/src/http/ngx_http_parse_time.c    2013-01-17 13:42:10 +0900 (3801df2)
+++ vendor/nginx-1.2.6/src/http/ngx_http_parse_time.c    2013-01-17 13:43:24 +0900 (985af31)
@@ -7,6 +7,7 @@
 
 #include <ngx_config.h>
 #include <ngx_core.h>
+#include <ngx_http.h>
 
 
 static ngx_uint_t  mday[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

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

  Renamed: vendor/nginx-1.2.6/src/http/ngx_http_request.c (+23 -10) 99%
===================================================================
--- vendor/nginx-1.2.1/src/http/ngx_http_request.c    2013-01-17 13:42:10 +0900 (b187713)
+++ vendor/nginx-1.2.6/src/http/ngx_http_request.c    2013-01-17 13:43:24 +0900 (ee00fd3)
@@ -138,7 +138,7 @@ ngx_http_header_t  ngx_http_headers_in[] = {
     { ngx_string("Keep-Alive"), offsetof(ngx_http_headers_in_t, keep_alive),
                  ngx_http_process_header_line },
 
-#if (NGX_HTTP_PROXY || NGX_HTTP_REALIP || NGX_HTTP_GEO)
+#if (NGX_HTTP_X_FORWARDED_FOR)
     { ngx_string("X-Forwarded-For"),
                  offsetof(ngx_http_headers_in_t, x_forwarded_for),
                  ngx_http_process_header_line },
@@ -747,6 +747,7 @@ ngx_http_process_request_line(ngx_event_t *rev)
 
             r->request_line.len = r->request_end - r->request_start;
             r->request_line.data = r->request_start;
+            r->request_length = r->header_in->pos - r->request_start;
 
 
             if (r->args_start) {
@@ -1056,6 +1057,8 @@ ngx_http_process_request_headers(ngx_event_t *rev)
 
         if (rc == NGX_OK) {
 
+            r->request_length += r->header_in->pos - r->header_name_start;
+
             if (r->invalid_header && cscf->ignore_invalid_headers) {
 
                 /* there was error while a header line parsing */
@@ -1119,7 +1122,7 @@ ngx_http_process_request_headers(ngx_event_t *rev)
             ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
                            "http header done");
 
-            r->request_length += r->header_in->pos - r->header_in->start;
+            r->request_length += r->header_in->pos - r->header_name_start;
 
             r->http_state = NGX_HTTP_PROCESS_REQUEST_STATE;
 
@@ -1226,8 +1229,6 @@ ngx_http_alloc_large_header_buffer(ngx_http_request_t *r,
 
         /* the client fills up the buffer with "\r\n" */
 
-        r->request_length += r->header_in->end - r->header_in->start;
-
         r->header_in->pos = r->header_in->start;
         r->header_in->last = r->header_in->start;
 
@@ -1287,8 +1288,6 @@ ngx_http_alloc_large_header_buffer(ngx_http_request_t *r,
          * to relocate the parser header pointers
          */
 
-        r->request_length += r->header_in->end - r->header_in->start;
-
         r->header_in = b;
 
         return NGX_OK;
@@ -1297,8 +1296,6 @@ ngx_http_alloc_large_header_buffer(ngx_http_request_t *r,
     ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
                    "http large header copy: %d", r->header_in->pos - old);
 
-    r->request_length += old - r->header_in->start;
-
     new = b->start;
 
     ngx_memcpy(new, old, r->header_in->pos - old);
@@ -1637,7 +1634,9 @@ ngx_http_process_request(ngx_http_request_t *r)
         if (sscf->verify) {
             rc = SSL_get_verify_result(c->ssl->connection);
 
-            if (rc != X509_V_OK) {
+            if (rc != X509_V_OK
+                && (sscf->verify != 3 || !ngx_ssl_verify_error_optional(rc)))
+            {
                 ngx_log_error(NGX_LOG_INFO, c->log, 0,
                               "client SSL certificate verify error: (%l:%s)",
                               rc, X509_verify_cert_error_string(rc));
@@ -1826,7 +1825,7 @@ ngx_http_find_virtual_server(ngx_http_request_t *r, u_char *host, size_t len)
 
 #endif
 
-    return NGX_OK;
+    return NGX_DECLINED;
 
 found:
 
@@ -2746,6 +2745,20 @@ ngx_http_keepalive_handler(ngx_event_t *rev)
             ngx_http_close_connection(c);
         }
 
+        /*
+         * Like ngx_http_set_keepalive() we are trying to not hold
+         * c->buffer's memory for a keepalive connection.
+         */
+
+        if (ngx_pfree(c->pool, b->start) == NGX_OK) {
+
+            /*
+             * the special note that c->buffer's memory was freed
+             */
+
+            b->pos = NULL;
+        }
+
         return;
     }
 

  Renamed: vendor/nginx-1.2.6/src/http/ngx_http_request.h (+8 -1) 99%
===================================================================
--- vendor/nginx-1.2.1/src/http/ngx_http_request.h    2013-01-17 13:42:10 +0900 (70ca609)
+++ vendor/nginx-1.2.6/src/http/ngx_http_request.h    2013-01-17 13:43:24 +0900 (c2651a8)
@@ -137,6 +137,13 @@
 #define NGX_HTTP_COPY_BUFFERED             0x04
 
 
+#if (NGX_HTTP_PROXY || NGX_HTTP_REALIP || NGX_HTTP_GEO)
+#ifndef NGX_HTTP_X_FORWARDED_FOR
+#define NGX_HTTP_X_FORWARDED_FOR           1
+#endif
+#endif
+
+
 typedef enum {
     NGX_HTTP_INITING_REQUEST_STATE = 0,
     NGX_HTTP_READING_REQUEST_STATE,
@@ -192,7 +199,7 @@ typedef struct {
 
     ngx_table_elt_t                  *keep_alive;
 
-#if (NGX_HTTP_PROXY || NGX_HTTP_REALIP || NGX_HTTP_GEO)
+#if (NGX_HTTP_X_FORWARDED_FOR)
     ngx_table_elt_t                  *x_forwarded_for;
 #endif
 

  Renamed: vendor/nginx-1.2.6/src/http/ngx_http_request_body.c (+51 -42) 91%
===================================================================
--- vendor/nginx-1.2.1/src/http/ngx_http_request_body.c    2013-01-17 13:42:10 +0900 (bddd7c5)
+++ vendor/nginx-1.2.6/src/http/ngx_http_request_body.c    2013-01-17 13:43:24 +0900 (3c69d05)
@@ -31,9 +31,9 @@ ngx_http_read_client_request_body(ngx_http_request_t *r,
 {
     size_t                     preread;
     ssize_t                    size;
+    ngx_int_t                  rc;
     ngx_buf_t                 *b;
     ngx_chain_t               *cl, **next;
-    ngx_temp_file_t           *tf;
     ngx_http_request_body_t   *rb;
     ngx_http_core_loc_conf_t  *clcf;
 
@@ -45,12 +45,14 @@ ngx_http_read_client_request_body(ngx_http_request_t *r,
     }
 
     if (ngx_http_test_expect(r) != NGX_OK) {
-        return NGX_HTTP_INTERNAL_SERVER_ERROR;
+        rc = NGX_HTTP_INTERNAL_SERVER_ERROR;
+        goto done;
     }
 
     rb = ngx_pcalloc(r->pool, sizeof(ngx_http_request_body_t));
     if (rb == NULL) {
-        return NGX_HTTP_INTERNAL_SERVER_ERROR;
+        rc = NGX_HTTP_INTERNAL_SERVER_ERROR;
+        goto done;
     }
 
     r->request_body = rb;
@@ -65,31 +67,9 @@ ngx_http_read_client_request_body(ngx_http_request_t *r,
     if (r->headers_in.content_length_n == 0) {
 
         if (r->request_body_in_file_only) {
-            tf = ngx_pcalloc(r->pool, sizeof(ngx_temp_file_t));
-            if (tf == NULL) {
-                return NGX_HTTP_INTERNAL_SERVER_ERROR;
-            }
-
-            tf->file.fd = NGX_INVALID_FILE;
-            tf->file.log = r->connection->log;
-            tf->path = clcf->client_body_temp_path;
-            tf->pool = r->pool;
-            tf->warn = "a client request body is buffered to a temporary file";
-            tf->log_level = r->request_body_file_log_level;
-            tf->persistent = r->request_body_in_persistent_file;
-            tf->clean = r->request_body_in_clean_file;
-
-            if (r->request_body_file_group_access) {
-                tf->access = 0660;
-            }
-
-            rb->temp_file = tf;
-
-            if (ngx_create_temp_file(&tf->file, tf->path, tf->pool,
-                                     tf->persistent, tf->clean, tf->access)
-                != NGX_OK)
-            {
-                return NGX_HTTP_INTERNAL_SERVER_ERROR;
+            if (ngx_http_write_request_body(r, NULL) != NGX_OK) {
+                rc = NGX_HTTP_INTERNAL_SERVER_ERROR;
+                goto done;
             }
         }
 
@@ -119,7 +99,8 @@ ngx_http_read_client_request_body(ngx_http_request_t *r,
 
         b = ngx_calloc_buf(r->pool);
         if (b == NULL) {
-            return NGX_HTTP_INTERNAL_SERVER_ERROR;
+            rc = NGX_HTTP_INTERNAL_SERVER_ERROR;
+            goto done;
         }
 
         b->temporary = 1;
@@ -130,7 +111,8 @@ ngx_http_read_client_request_body(ngx_http_request_t *r,
 
         rb->bufs = ngx_alloc_chain_link(r->pool);
         if (rb->bufs == NULL) {
-            return NGX_HTTP_INTERNAL_SERVER_ERROR;
+            rc = NGX_HTTP_INTERNAL_SERVER_ERROR;
+            goto done;
         }
 
         rb->bufs->buf = b;
@@ -148,7 +130,8 @@ ngx_http_read_client_request_body(ngx_http_request_t *r,
 
             if (r->request_body_in_file_only) {
                 if (ngx_http_write_request_body(r, rb->bufs) != NGX_OK) {
-                    return NGX_HTTP_INTERNAL_SERVER_ERROR;
+                    rc = NGX_HTTP_INTERNAL_SERVER_ERROR;
+                    goto done;
                 }
             }
 
@@ -175,7 +158,8 @@ ngx_http_read_client_request_body(ngx_http_request_t *r,
 
             r->read_event_handler = ngx_http_read_client_request_body_handler;
 
-            return ngx_http_do_read_client_request_body(r);
+            rc = ngx_http_do_read_client_request_body(r);
+            goto done;
         }
 
         next = &rb->bufs->next;
@@ -205,12 +189,14 @@ ngx_http_read_client_request_body(ngx_http_request_t *r,
 
     rb->buf = ngx_create_temp_buf(r->pool, size);
     if (rb->buf == NULL) {
-        return NGX_HTTP_INTERNAL_SERVER_ERROR;
+        rc = NGX_HTTP_INTERNAL_SERVER_ERROR;
+        goto done;
     }
 
     cl = ngx_alloc_chain_link(r->pool);
     if (cl == NULL) {
-        return NGX_HTTP_INTERNAL_SERVER_ERROR;
+        rc = NGX_HTTP_INTERNAL_SERVER_ERROR;
+        goto done;
     }
 
     cl->buf = rb->buf;
@@ -235,7 +221,15 @@ ngx_http_read_client_request_body(ngx_http_request_t *r,
 
     r->read_event_handler = ngx_http_read_client_request_body_handler;
 
-    return ngx_http_do_read_client_request_body(r);
+    rc = ngx_http_do_read_client_request_body(r);
+
+done:
+
+    if (rc >= NGX_HTTP_SPECIAL_RESPONSE) {
+        r->main->count--;
+    }
+
+    return rc;
 }
 
 
@@ -419,6 +413,19 @@ ngx_http_write_request_body(ngx_http_request_t *r, ngx_chain_t *body)
         }
 
         rb->temp_file = tf;
+
+        if (body == NULL) {
+            /* empty body with r->request_body_in_file_only */
+
+            if (ngx_create_temp_file(&tf->file, tf->path, tf->pool,
+                                     tf->persistent, tf->clean, tf->access)
+                != NGX_OK)
+            {
+                return NGX_ERROR;
+            }
+
+            return NGX_OK;
+        }
     }
 
     n = ngx_write_chain_to_temp_file(rb->temp_file, body);
@@ -475,19 +482,21 @@ ngx_http_discard_request_body(ngx_http_request_t *r)
         }
     }
 
+    if (ngx_http_read_discarded_request_body(r) == NGX_OK) {
+        r->lingering_close = 0;
+        return NGX_OK;
+    }
+
+    /* == NGX_AGAIN */
+
     r->read_event_handler = ngx_http_discarded_request_body_handler;
 
     if (ngx_handle_read_event(rev, 0) != NGX_OK) {
         return NGX_HTTP_INTERNAL_SERVER_ERROR;
     }
 
-    if (ngx_http_read_discarded_request_body(r) == NGX_OK) {
-        r->lingering_close = 0;
-
-    } else {
-        r->count++;
-        r->discard_body = 1;
-    }
+    r->count++;
+    r->discard_body = 1;
 
     return NGX_OK;
 }

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

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

  Renamed: vendor/nginx-1.2.6/src/http/ngx_http_special_response.c (+3 -2) 99%
===================================================================
--- vendor/nginx-1.2.1/src/http/ngx_http_special_response.c    2013-01-17 13:42:10 +0900 (77b3dd1)
+++ vendor/nginx-1.2.6/src/http/ngx_http_special_response.c    2013-01-17 13:43:24 +0900 (be495f9)
@@ -260,9 +260,9 @@ static char ngx_http_error_500_page[] =
 
 static char ngx_http_error_501_page[] =
 "<html>" CRLF
-"<head><title>501 Method Not Implemented</title></head>" CRLF
+"<head><title>501 Not Implemented</title></head>" CRLF
 "<body bgcolor=\"white\">" CRLF
-"<center><h1>501 Method Not Implemented</h1></center>" CRLF
+"<center><h1>501 Not Implemented</h1></center>" CRLF
 ;
 
 
@@ -384,6 +384,7 @@ ngx_http_special_response_handler(ngx_http_request_t *r, ngx_int_t error)
             case NGX_HTTPS_CERT_ERROR:
             case NGX_HTTPS_NO_CERT:
             case NGX_HTTP_INTERNAL_SERVER_ERROR:
+            case NGX_HTTP_NOT_IMPLEMENTED:
                 r->keepalive = 0;
         }
     }

  Renamed: vendor/nginx-1.2.6/src/http/ngx_http_upstream.c (+31 -9) 99%
===================================================================
--- vendor/nginx-1.2.1/src/http/ngx_http_upstream.c    2013-01-17 13:42:10 +0900 (70a4e16)
+++ vendor/nginx-1.2.6/src/http/ngx_http_upstream.c    2013-01-17 13:43:24 +0900 (703017f)
@@ -1809,9 +1809,16 @@ ngx_http_upstream_test_connect(ngx_connection_t *c)
 #if (NGX_HAVE_KQUEUE)
 
     if (ngx_event_flags & NGX_USE_KQUEUE_EVENT)  {
-        if (c->write->pending_eof) {
+        if (c->write->pending_eof || c->read->pending_eof) {
+            if (c->write->pending_eof) {
+                err = c->write->kq_errno;
+
+            } else {
+                err = c->read->kq_errno;
+            }
+
             c->log->action = "connecting to upstream";
-            (void) ngx_connection_error(c, c->write->kq_errno,
+            (void) ngx_connection_error(c, err,
                                     "kevent() reported that connect() failed");
             return NGX_ERROR;
         }
@@ -2287,6 +2294,7 @@ ngx_http_upstream_send_response(ngx_http_request_t *r, ngx_http_upstream_t *u)
             return;
         }
 
+        p->buf_to_file->start = u->buffer.start;
         p->buf_to_file->pos = u->buffer.start;
         p->buf_to_file->last = u->buffer.pos;
         p->buf_to_file->temporary = 1;
@@ -3677,6 +3685,7 @@ static ngx_int_t
 ngx_http_upstream_rewrite_set_cookie(ngx_http_request_t *r, ngx_table_elt_t *h,
     ngx_uint_t offset)
 {
+    ngx_int_t         rc;
     ngx_table_elt_t  *ho;
 
     ho = ngx_list_push(&r->headers_out.headers);
@@ -3687,7 +3696,20 @@ ngx_http_upstream_rewrite_set_cookie(ngx_http_request_t *r, ngx_table_elt_t *h,
     *ho = *h;
 
     if (r->upstream->rewrite_cookie) {
-        return r->upstream->rewrite_cookie(r, ho);
+        rc = r->upstream->rewrite_cookie(r, ho);
+
+        if (rc == NGX_DECLINED) {
+            return NGX_OK;
+        }
+
+#if (NGX_DEBUG)
+        if (rc == NGX_OK) {
+            ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
+                           "rewritten cookie: \"%V\"", &ho->value);
+        }
+#endif
+
+        return rc;
     }
 
     return NGX_OK;
@@ -4408,18 +4430,18 @@ ngx_http_upstream_add(ngx_conf_t *cf, ngx_url_t *u, ngx_uint_t flags)
         uscf->servers = ngx_array_create(cf->pool, 1,
                                          sizeof(ngx_http_upstream_server_t));
         if (uscf->servers == NULL) {
-            return NGX_CONF_ERROR;
+            return NULL;
         }
 
         us = ngx_array_push(uscf->servers);
         if (us == NULL) {
-            return NGX_CONF_ERROR;
+            return NULL;
         }
 
         ngx_memzero(us, sizeof(ngx_http_upstream_server_t));
 
         us->addrs = u->addrs;
-        us->naddrs = u->naddrs;
+        us->naddrs = 1;
     }
 
     uscfp = ngx_array_push(&umcf->upstreams);
@@ -4527,6 +4549,9 @@ ngx_http_upstream_hide_headers_hash(ngx_conf_t *cf,
     if (conf->hide_headers == NGX_CONF_UNSET_PTR
         && conf->pass_headers == NGX_CONF_UNSET_PTR)
     {
+        conf->hide_headers = prev->hide_headers;
+        conf->pass_headers = prev->pass_headers;
+
         conf->hide_headers_hash = prev->hide_headers_hash;
 
         if (conf->hide_headers_hash.buckets
@@ -4538,9 +4563,6 @@ ngx_http_upstream_hide_headers_hash(ngx_conf_t *cf,
             return NGX_OK;
         }
 
-        conf->hide_headers = prev->hide_headers;
-        conf->pass_headers = prev->pass_headers;
-
     } else {
         if (conf->hide_headers == NGX_CONF_UNSET_PTR) {
             conf->hide_headers = prev->hide_headers;

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

  Renamed: vendor/nginx-1.2.6/src/http/ngx_http_upstream_round_robin.c (+15 -1) 97%
===================================================================
--- vendor/nginx-1.2.1/src/http/ngx_http_upstream_round_robin.c    2013-01-17 13:42:10 +0900 (214de7b)
+++ vendor/nginx-1.2.6/src/http/ngx_http_upstream_round_robin.c    2013-01-17 13:43:24 +0900 (4b78cff)
@@ -30,7 +30,7 @@ ngx_http_upstream_init_round_robin(ngx_conf_t *cf,
     ngx_http_upstream_srv_conf_t *us)
 {
     ngx_url_t                      u;
-    ngx_uint_t                     i, j, n;
+    ngx_uint_t                     i, j, n, w;
     ngx_http_upstream_server_t    *server;
     ngx_http_upstream_rr_peers_t  *peers, *backup;
 
@@ -40,6 +40,7 @@ ngx_http_upstream_init_round_robin(ngx_conf_t *cf,
         server = us->servers->elts;
 
         n = 0;
+        w = 0;
 
         for (i = 0; i < us->servers->nelts; i++) {
             if (server[i].backup) {
@@ -47,6 +48,7 @@ ngx_http_upstream_init_round_robin(ngx_conf_t *cf,
             }
 
             n += server[i].naddrs;
+            w += server[i].naddrs * server[i].weight;
         }
 
         if (n == 0) {
@@ -64,6 +66,8 @@ ngx_http_upstream_init_round_robin(ngx_conf_t *cf,
 
         peers->single = (n == 1);
         peers->number = n;
+        peers->weighted = (w != n);
+        peers->total_weight = w;
         peers->name = &us->host;
 
         n = 0;
@@ -96,6 +100,7 @@ ngx_http_upstream_init_round_robin(ngx_conf_t *cf,
         /* backup servers */
 
         n = 0;
+        w = 0;
 
         for (i = 0; i < us->servers->nelts; i++) {
             if (!server[i].backup) {
@@ -103,6 +108,7 @@ ngx_http_upstream_init_round_robin(ngx_conf_t *cf,
             }
 
             n += server[i].naddrs;
+            w += server[i].naddrs * server[i].weight;
         }
 
         if (n == 0) {
@@ -118,6 +124,8 @@ ngx_http_upstream_init_round_robin(ngx_conf_t *cf,
         peers->single = 0;
         backup->single = 0;
         backup->number = n;
+        backup->weighted = (w != n);
+        backup->total_weight = w;
         backup->name = &us->host;
 
         n = 0;
@@ -185,6 +193,8 @@ ngx_http_upstream_init_round_robin(ngx_conf_t *cf,
 
     peers->single = (n == 1);
     peers->number = n;
+    peers->weighted = 0;
+    peers->total_weight = n;
     peers->name = &us->host;
 
     for (i = 0; i < u.naddrs; i++) {
@@ -420,6 +430,10 @@ ngx_http_upstream_get_round_robin_peer(ngx_peer_connection_t *pc, void *data)
     if (rrp->peers->single) {
         peer = &rrp->peers->peer[0];
 
+        if (peer->down) {
+            goto failed;
+        }
+
     } else {
 
         /* there are several peers */

  Renamed: vendor/nginx-1.2.6/src/http/ngx_http_upstream_round_robin.h (+5 -1) 94%
===================================================================
--- vendor/nginx-1.2.1/src/http/ngx_http_upstream_round_robin.h    2013-01-17 13:42:10 +0900 (4de3cae)
+++ vendor/nginx-1.2.6/src/http/ngx_http_upstream_round_robin.h    2013-01-17 13:43:24 +0900 (3f8cbf8)
@@ -41,13 +41,17 @@ typedef struct {
 typedef struct ngx_http_upstream_rr_peers_s  ngx_http_upstream_rr_peers_t;
 
 struct ngx_http_upstream_rr_peers_s {
-    ngx_uint_t                      single;        /* unsigned  single:1; */
     ngx_uint_t                      number;
     ngx_uint_t                      last_cached;
 
  /* ngx_mutex_t                    *mutex; */
     ngx_connection_t              **cached;
 
+    ngx_uint_t                      total_weight;
+
+    unsigned                        single:1;
+    unsigned                        weighted:1;
+
     ngx_str_t                      *name;
 
     ngx_http_upstream_rr_peers_t   *next;

  Renamed: vendor/nginx-1.2.6/src/http/ngx_http_variables.c (+204 -8) 91%
===================================================================
--- vendor/nginx-1.2.1/src/http/ngx_http_variables.c    2013-01-17 13:42:10 +0900 (949cef9)
+++ vendor/nginx-1.2.6/src/http/ngx_http_variables.c    2013-01-17 13:43:24 +0900 (298064a)
@@ -69,6 +69,8 @@ static ngx_int_t ngx_http_variable_request_method(ngx_http_request_t *r,
     ngx_http_variable_value_t *v, uintptr_t data);
 static ngx_int_t ngx_http_variable_remote_user(ngx_http_request_t *r,
     ngx_http_variable_value_t *v, uintptr_t data);
+static ngx_int_t ngx_http_variable_bytes_sent(ngx_http_request_t *r,
+    ngx_http_variable_value_t *v, uintptr_t data);
 static ngx_int_t ngx_http_variable_body_bytes_sent(ngx_http_request_t *r,
     ngx_http_variable_value_t *v, uintptr_t data);
 static ngx_int_t ngx_http_variable_request_completion(ngx_http_request_t *r,
@@ -77,6 +79,10 @@ static ngx_int_t ngx_http_variable_request_body(ngx_http_request_t *r,
     ngx_http_variable_value_t *v, uintptr_t data);
 static ngx_int_t ngx_http_variable_request_body_file(ngx_http_request_t *r,
     ngx_http_variable_value_t *v, uintptr_t data);
+static ngx_int_t ngx_http_variable_request_time(ngx_http_request_t *r,
+    ngx_http_variable_value_t *v, uintptr_t data);
+static ngx_int_t ngx_http_variable_status(ngx_http_request_t *r,
+    ngx_http_variable_value_t *v, uintptr_t data);
 
 static ngx_int_t ngx_http_variable_sent_content_type(ngx_http_request_t *r,
     ngx_http_variable_value_t *v, uintptr_t data);
@@ -93,12 +99,19 @@ static ngx_int_t ngx_http_variable_sent_keep_alive(ngx_http_request_t *r,
 static ngx_int_t ngx_http_variable_sent_transfer_encoding(ngx_http_request_t *r,
     ngx_http_variable_value_t *v, uintptr_t data);
 
+static ngx_int_t ngx_http_variable_connection(ngx_http_request_t *r,
+    ngx_http_variable_value_t *v, uintptr_t data);
+static ngx_int_t ngx_http_variable_connection_requests(ngx_http_request_t *r,
+    ngx_http_variable_value_t *v, uintptr_t data);
+
 static ngx_int_t ngx_http_variable_nginx_version(ngx_http_request_t *r,
     ngx_http_variable_value_t *v, uintptr_t data);
 static ngx_int_t ngx_http_variable_hostname(ngx_http_request_t *r,
     ngx_http_variable_value_t *v, uintptr_t data);
 static ngx_int_t ngx_http_variable_pid(ngx_http_request_t *r,
     ngx_http_variable_value_t *v, uintptr_t data);
+static ngx_int_t ngx_http_variable_msec(ngx_http_request_t *r,
+    ngx_http_variable_value_t *v, uintptr_t data);
 
 /*
  * TODO:
@@ -132,7 +145,7 @@ static ngx_http_variable_t  ngx_http_core_variables[] = {
       offsetof(ngx_http_request_t, headers_in.via), 0, 0 },
 #endif
 
-#if (NGX_HTTP_PROXY || NGX_HTTP_REALIP)
+#if (NGX_HTTP_X_FORWARDED_FOR)
     { ngx_string("http_x_forwarded_for"), NULL, ngx_http_variable_header,
       offsetof(ngx_http_request_t, headers_in.x_forwarded_for), 0, 0 },
 #endif
@@ -210,6 +223,9 @@ static ngx_http_variable_t  ngx_http_core_variables[] = {
 
     { ngx_string("remote_user"), NULL, ngx_http_variable_remote_user, 0, 0, 0 },
 
+    { ngx_string("bytes_sent"), NULL, ngx_http_variable_bytes_sent,
+      0, 0, 0 },
+
     { ngx_string("body_bytes_sent"), NULL, ngx_http_variable_body_bytes_sent,
       0, 0, 0 },
 
@@ -225,6 +241,13 @@ static ngx_http_variable_t  ngx_http_core_variables[] = {
       ngx_http_variable_request_body_file,
       0, 0, 0 },
 
+    { ngx_string("request_time"), NULL, ngx_http_variable_request_time,
+      0, NGX_HTTP_VAR_NOCACHEABLE, 0 },
+
+    { ngx_string("status"), NULL,
+      ngx_http_variable_status, 0,
+      NGX_HTTP_VAR_NOCACHEABLE, 0 },
+
     { ngx_string("sent_http_content_type"), NULL,
       ngx_http_variable_sent_content_type, 0, 0, 0 },
 
@@ -254,6 +277,12 @@ static ngx_http_variable_t  ngx_http_core_variables[] = {
       offsetof(ngx_http_request_t, limit_rate),
       NGX_HTTP_VAR_CHANGEABLE|NGX_HTTP_VAR_NOCACHEABLE, 0 },
 
+    { ngx_string("connection"), NULL,
+      ngx_http_variable_connection, 0, 0, 0 },
+
+    { ngx_string("connection_requests"), NULL,
+      ngx_http_variable_connection_requests, 0, 0, 0 },
+
     { ngx_string("nginx_version"), NULL, ngx_http_variable_nginx_version,
       0, 0, 0 },
 
@@ -263,6 +292,9 @@ static ngx_http_variable_t  ngx_http_core_variables[] = {
     { ngx_string("pid"), NULL, ngx_http_variable_pid,
       0, 0, 0 },
 
+    { ngx_string("msec"), NULL, ngx_http_variable_msec,
+      0, NGX_HTTP_VAR_NOCACHEABLE, 0 },
+
 #if (NGX_HAVE_TCP_INFO)
     { ngx_string("tcpinfo_rtt"), NULL, ngx_http_variable_tcpinfo,
       0, NGX_HTTP_VAR_NOCACHEABLE, 0 },
@@ -1428,6 +1460,27 @@ ngx_http_variable_remote_user(ngx_http_request_t *r,
 
 
 static ngx_int_t
+ngx_http_variable_bytes_sent(ngx_http_request_t *r,
+    ngx_http_variable_value_t *v, uintptr_t data)
+{
+    u_char  *p;
+
+    p = ngx_pnalloc(r->pool, NGX_OFF_T_LEN);
+    if (p == NULL) {
+        return NGX_ERROR;
+    }
+
+    v->len = ngx_sprintf(p, "%O", r->connection->sent) - p;
+    v->valid = 1;
+    v->no_cacheable = 0;
+    v->not_found = 0;
+    v->data = p;
+
+    return NGX_OK;
+}
+
+
+static ngx_int_t
 ngx_http_variable_body_bytes_sent(ngx_http_request_t *r,
     ngx_http_variable_value_t *v, uintptr_t data)
 {
@@ -1456,6 +1509,39 @@ ngx_http_variable_body_bytes_sent(ngx_http_request_t *r,
 
 
 static ngx_int_t
+ngx_http_variable_status(ngx_http_request_t *r,
+    ngx_http_variable_value_t *v, uintptr_t data)
+{
+    ngx_uint_t  status;
+
+    v->data = ngx_pnalloc(r->pool, NGX_INT_T_LEN);
+    if (v->data == NULL) {
+        return NGX_ERROR;
+    }
+
+    if (r->err_status) {
+        status = r->err_status;
+
+    } else if (r->headers_out.status) {
+        status = r->headers_out.status;
+
+    } else if (r->http_version == NGX_HTTP_VERSION_9) {
+        status = 9;
+
+    } else {
+        status = 0;
+    }
+
+    v->len = ngx_sprintf(v->data, "%03ui", status) - v->data;
+    v->valid = 1;
+    v->no_cacheable = 0;
+    v->not_found = 0;
+
+    return NGX_OK;
+}
+
+
+static ngx_int_t
 ngx_http_variable_sent_content_type(ngx_http_request_t *r,
     ngx_http_variable_value_t *v, uintptr_t data)
 {
@@ -1681,7 +1767,7 @@ ngx_http_variable_request_body(ngx_http_request_t *r,
 {
     u_char       *p;
     size_t        len;
-    ngx_buf_t    *buf, *next;
+    ngx_buf_t    *buf;
     ngx_chain_t  *cl;
 
     if (r->request_body == NULL
@@ -1706,8 +1792,13 @@ ngx_http_variable_request_body(ngx_http_request_t *r,
         return NGX_OK;
     }
 
-    next = cl->next->buf;
-    len = (buf->last - buf->pos) + (next->last - next->pos);
+    len = buf->last - buf->pos;
+    cl = cl->next;
+
+    for ( /* void */ ; cl; cl = cl->next) {
+        buf = cl->buf;
+        len += buf->last - buf->pos;
+    }
 
     p = ngx_pnalloc(r->pool, len);
     if (p == NULL) {
@@ -1715,9 +1806,12 @@ ngx_http_variable_request_body(ngx_http_request_t *r,
     }
 
     v->data = p;
+    cl = r->request_body->bufs;
 
-    p = ngx_cpymem(p, buf->pos, buf->last - buf->pos);
-    ngx_memcpy(p, next->pos, next->last - next->pos);
+    for ( /* void */ ; cl; cl = cl->next) {
+        buf = cl->buf;
+        p = ngx_cpymem(p, buf->pos, buf->last - buf->pos);
+    }
 
     v->len = len;
     v->valid = 1;
@@ -1749,6 +1843,77 @@ ngx_http_variable_request_body_file(ngx_http_request_t *r,
 
 
 static ngx_int_t
+ngx_http_variable_request_time(ngx_http_request_t *r,
+    ngx_http_variable_value_t *v, uintptr_t data)
+{
+    u_char          *p;
+    ngx_time_t      *tp;
+    ngx_msec_int_t   ms;
+
+    p = ngx_pnalloc(r->pool, NGX_TIME_T_LEN + 4);
+    if (p == NULL) {
+        return NGX_ERROR;
+    }
+
+    tp = ngx_timeofday();
+
+    ms = (ngx_msec_int_t)
+             ((tp->sec - r->start_sec) * 1000 + (tp->msec - r->start_msec));
+    ms = ngx_max(ms, 0);
+
+    v->len = ngx_sprintf(p, "%T.%03M", ms / 1000, ms % 1000) - p;
+    v->valid = 1;
+    v->no_cacheable = 0;
+    v->not_found = 0;
+    v->data = p;
+
+    return NGX_OK;
+}
+
+
+static ngx_int_t
+ngx_http_variable_connection(ngx_http_request_t *r,
+    ngx_http_variable_value_t *v, uintptr_t data)
+{
+    u_char  *p;
+
+    p = ngx_pnalloc(r->pool, NGX_ATOMIC_T_LEN);
+    if (p == NULL) {
+        return NGX_ERROR;
+    }
+
+    v->len = ngx_sprintf(p, "%uA", r->connection->number) - p;
+    v->valid = 1;
+    v->no_cacheable = 0;
+    v->not_found = 0;
+    v->data = p;
+
+    return NGX_OK;
+}
+
+
+static ngx_int_t
+ngx_http_variable_connection_requests(ngx_http_request_t *r,
+    ngx_http_variable_value_t *v, uintptr_t data)
+{
+    u_char  *p;
+
+    p = ngx_pnalloc(r->pool, NGX_INT_T_LEN);
+    if (p == NULL) {
+        return NGX_ERROR;
+    }
+
+    v->len = ngx_sprintf(p, "%ui", r->connection->requests) - p;
+    v->valid = 1;
+    v->no_cacheable = 0;
+    v->not_found = 0;
+    v->data = p;
+
+    return NGX_OK;
+}
+
+
+static ngx_int_t
 ngx_http_variable_nginx_version(ngx_http_request_t *r,
     ngx_http_variable_value_t *v, uintptr_t data)
 {
@@ -1797,6 +1962,30 @@ ngx_http_variable_pid(ngx_http_request_t *r,
 }
 
 
+static ngx_int_t
+ngx_http_variable_msec(ngx_http_request_t *r,
+    ngx_http_variable_value_t *v, uintptr_t data)
+{
+    u_char      *p;
+    ngx_time_t  *tp;
+
+    p = ngx_pnalloc(r->pool, NGX_TIME_T_LEN + 4);
+    if (p == NULL) {
+        return NGX_ERROR;
+    }
+
+    tp = ngx_timeofday();
+
+    v->len = ngx_sprintf(p, "%T.%03M", tp->sec, tp->msec) - p;
+    v->valid = 1;
+    v->no_cacheable = 0;
+    v->not_found = 0;
+    v->data = p;
+
+    return NGX_OK;
+}
+
+
 void *
 ngx_http_map_find(ngx_http_request_t *r, ngx_http_map_t *map, ngx_str_t *match)
 {
@@ -2016,7 +2205,7 @@ ngx_int_t
 ngx_http_variables_add_core_vars(ngx_conf_t *cf)
 {
     ngx_int_t                   rc;
-    ngx_http_variable_t        *v;
+    ngx_http_variable_t        *cv, *v;
     ngx_http_core_main_conf_t  *cmcf;
 
     cmcf = ngx_http_conf_get_module_main_conf(cf, ngx_http_core_module);
@@ -2036,7 +2225,14 @@ ngx_http_variables_add_core_vars(ngx_conf_t *cf)
         return NGX_ERROR;
     }
 
-    for (v = ngx_http_core_variables; v->name.len; v++) {
+    for (cv = ngx_http_core_variables; cv->name.len; cv++) {
+        v = ngx_palloc(cf->pool, sizeof(ngx_http_variable_t));
+        if (v == NULL) {
+            return NGX_ERROR;
+        }
+
+        *v = *cv;
+
         rc = ngx_hash_add_key(cmcf->variables_keys, &v->name, v,
                               NGX_HASH_READONLY_KEY);
 

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

  Renamed: vendor/nginx-1.2.6/src/http/ngx_http_write_filter_module.c (+7 -11) 97%
===================================================================
--- vendor/nginx-1.2.1/src/http/ngx_http_write_filter_module.c    2013-01-17 13:42:10 +0900 (72b1f9b)
+++ vendor/nginx-1.2.6/src/http/ngx_http_write_filter_module.c    2013-01-17 13:43:24 +0900 (fd44bc6)
@@ -185,18 +185,14 @@ ngx_http_write_filter(ngx_http_request_t *r, ngx_chain_t *in)
     }
 
     if (size == 0 && !(c->buffered & NGX_LOWLEVEL_BUFFERED)) {
-        if (last) {
-            r->out = NULL;
-            c->buffered &= ~NGX_HTTP_WRITE_BUFFERED;
-
-            return NGX_OK;
-        }
-
-        if (flush) {
-            do {
-                r->out = r->out->next;
-            } while (r->out);
+        if (last || flush) {
+            for (cl = r->out; cl; /* void */) {
+                ln = cl;
+                cl = cl->next;
+                ngx_free_chain(r->pool, ln);
+            }
 
+            r->out = NULL;
             c->buffered &= ~NGX_HTTP_WRITE_BUFFERED;
 
             return NGX_OK;

  Renamed: vendor/nginx-1.2.6/src/mail/ngx_mail.c (+11 -0) 98%
===================================================================
--- vendor/nginx-1.2.1/src/mail/ngx_mail.c    2013-01-17 13:42:10 +0900 (49ec2e0)
+++ vendor/nginx-1.2.6/src/mail/ngx_mail.c    2013-01-17 13:43:24 +0900 (3812e15)
@@ -263,6 +263,12 @@ ngx_mail_add_ports(ngx_conf_t *cf, ngx_array_t *ports,
         break;
 #endif
 
+#if (NGX_HAVE_UNIX_DOMAIN)
+    case AF_UNIX:
+        p = 0;
+        break;
+#endif
+
     default: /* AF_INET */
         sin = (struct sockaddr_in *) sa;
         p = sin->sin_port;
@@ -539,6 +545,11 @@ ngx_mail_cmp_conf_addrs(const void *one, const void *two)
         return 1;
     }
 
+    if (second->wildcard) {
+        /* a wildcard must be the last resort, shift it to the end */
+        return -1;
+    }
+
     if (first->bind && !second->bind) {
         /* shift explicit bind()ed addresses to the start */
         return -1;

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

  Renamed: vendor/nginx-1.2.6/src/mail/ngx_mail_auth_http_module.c (+1 -1) 99%
===================================================================
--- vendor/nginx-1.2.1/src/mail/ngx_mail_auth_http_module.c    2013-01-17 13:42:10 +0900 (c23c4ba)
+++ vendor/nginx-1.2.6/src/mail/ngx_mail_auth_http_module.c    2013-01-17 13:43:24 +0900 (d2bd4ad)
@@ -1332,7 +1332,7 @@ ngx_mail_auth_http_merge_conf(ngx_conf_t *cf, void *parent, void *child)
 
         if (conf->peer == NULL) {
             ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
-                          "no \"http_auth\" is defined for server in %s:%ui",
+                          "no \"auth_http\" is defined for server in %s:%ui",
                           conf->file, conf->line);
 
             return NGX_CONF_ERROR;

  Renamed: vendor/nginx-1.2.6/src/mail/ngx_mail_core_module.c (+22 -12) 95%
===================================================================
--- vendor/nginx-1.2.1/src/mail/ngx_mail_core_module.c    2013-01-17 13:42:10 +0900 (f79913b)
+++ vendor/nginx-1.2.6/src/mail/ngx_mail_core_module.c    2013-01-17 13:43:24 +0900 (6509b98)
@@ -340,6 +340,14 @@ ngx_mail_core_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
             break;
 #endif
 
+#if (NGX_HAVE_UNIX_DOMAIN)
+        case AF_UNIX:
+            off = offsetof(struct sockaddr_un, sun_path);
+            len = sizeof(((struct sockaddr_un *) sa)->sun_path);
+            port = 0;
+            break;
+#endif
+
         default: /* AF_INET */
             off = offsetof(struct sockaddr_in, sin_addr);
             len = 4;
@@ -374,21 +382,23 @@ ngx_mail_core_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
     ls->wildcard = u.wildcard;
     ls->ctx = cf->ctx;
 
-    for (m = 0; ngx_modules[m]; m++) {
-        if (ngx_modules[m]->type != NGX_MAIL_MODULE) {
-            continue;
-        }
+    if (cscf->protocol == NULL) {
+        for (m = 0; ngx_modules[m]; m++) {
+            if (ngx_modules[m]->type != NGX_MAIL_MODULE) {
+                continue;
+            }
 
-        module = ngx_modules[m]->ctx;
+            module = ngx_modules[m]->ctx;
 
-        if (module->protocol == NULL) {
-            continue;
-        }
+            if (module->protocol == NULL) {
+                continue;
+            }
 
-        for (i = 0; module->protocol->port[i]; i++) {
-            if (module->protocol->port[i] == u.port) {
-                cscf->protocol = module->protocol;
-                break;
+            for (i = 0; module->protocol->port[i]; i++) {
+                if (module->protocol->port[i] == u.port) {
+                    cscf->protocol = module->protocol;
+                    break;
+                }
             }
         }
     }

  Renamed: vendor/nginx-1.2.6/src/mail/ngx_mail_handler.c (+0 -2) 99%
===================================================================
--- vendor/nginx-1.2.1/src/mail/ngx_mail_handler.c    2013-01-17 13:42:10 +0900 (a1c4464)
+++ vendor/nginx-1.2.6/src/mail/ngx_mail_handler.c    2013-01-17 13:43:24 +0900 (ae955f9)
@@ -38,8 +38,6 @@ ngx_mail_init_connection(ngx_connection_t *c)
 
     /* find the server configuration for the address:port */
 
-    /* AF_INET only */
-
     port = c->listening->servers;
 
     if (port->naddrs > 1) {

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

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

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

  Renamed: vendor/nginx-1.2.6/src/mail/ngx_mail_parse.c (+3 -0) 99%
===================================================================
--- vendor/nginx-1.2.1/src/mail/ngx_mail_parse.c    2013-01-17 13:42:10 +0900 (ae0f7e3)
+++ vendor/nginx-1.2.6/src/mail/ngx_mail_parse.c    2013-01-17 13:43:24 +0900 (eb16d5b)
@@ -9,6 +9,9 @@
 #include <ngx_core.h>
 #include <ngx_event.h>
 #include <ngx_mail.h>
+#include <ngx_mail_pop3_module.h>
+#include <ngx_mail_imap_module.h>
+#include <ngx_mail_smtp_module.h>
 
 
 ngx_int_t

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

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

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.2.6/src/misc/ngx_cpp_test_module.cpp (+2 -0) 92%
===================================================================
--- vendor/nginx-1.2.1/src/misc/ngx_cpp_test_module.cpp    2013-01-17 13:42:10 +0900 (8f87dcd)
+++ vendor/nginx-1.2.6/src/misc/ngx_cpp_test_module.cpp    2013-01-17 13:43:24 +0900 (3cbc0a8)
@@ -20,6 +20,8 @@ extern "C" {
 // #include <string>
 
 
+void ngx_cpp_test_handler(void *data);
+
 void
 ngx_cpp_test_handler(void *data)
 {

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.2.6/src/os/unix/ngx_atomic.h (+2 -0) 99%
===================================================================
--- vendor/nginx-1.2.1/src/os/unix/ngx_atomic.h    2013-01-17 13:42:10 +0900 (104ac37)
+++ vendor/nginx-1.2.6/src/os/unix/ngx_atomic.h    2013-01-17 13:43:24 +0900 (417cd86)
@@ -48,7 +48,9 @@ typedef volatile ngx_atomic_uint_t  ngx_atomic_t;
 #include <libkern/OSAtomic.h>
 
 /* "bool" conflicts with perl's CORE/handy.h */
+#if 0
 #undef bool
+#endif
 
 
 #define NGX_HAVE_ATOMIC_OPS  1

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.2.6/src/os/unix/ngx_errno.c (+1 -1) 99%
===================================================================
--- vendor/nginx-1.2.1/src/os/unix/ngx_errno.c    2013-01-17 13:42:10 +0900 (75176c4)
+++ vendor/nginx-1.2.6/src/os/unix/ngx_errno.c    2013-01-17 13:43:24 +0900 (e787b23)
@@ -42,7 +42,7 @@ ngx_strerror(ngx_err_t err, u_char *errstr, size_t size)
 }
 
 
-ngx_uint_t
+ngx_int_t
 ngx_strerror_init(void)
 {
     char       *msg;

  Renamed: vendor/nginx-1.2.6/src/os/unix/ngx_errno.h (+1 -1) 98%
===================================================================
--- vendor/nginx-1.2.1/src/os/unix/ngx_errno.h    2013-01-17 13:42:10 +0900 (2912dea)
+++ vendor/nginx-1.2.6/src/os/unix/ngx_errno.h    2013-01-17 13:43:24 +0900 (125087e)
@@ -69,7 +69,7 @@ typedef int               ngx_err_t;
 
 
 u_char *ngx_strerror(ngx_err_t err, u_char *errstr, size_t size);
-ngx_uint_t ngx_strerror_init(void);
+ngx_int_t ngx_strerror_init(void);
 
 
 #endif /* _NGX_ERRNO_H_INCLUDED_ */

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

  Renamed: vendor/nginx-1.2.6/src/os/unix/ngx_files.c (+8 -10) 97%
===================================================================
--- vendor/nginx-1.2.1/src/os/unix/ngx_files.c    2013-01-17 13:42:10 +0900 (ca54581)
+++ vendor/nginx-1.2.6/src/os/unix/ngx_files.c    2013-01-17 13:43:24 +0900 (4fdf884)
@@ -139,7 +139,7 @@ ngx_open_tempfile(u_char *name, ngx_uint_t persistent, ngx_uint_t access)
               access ? access : 0600);
 
     if (fd != -1 && !persistent) {
-        unlink((const char *) name);
+        (void) unlink((const char *) name);
     }
 
     return fd;
@@ -241,8 +241,12 @@ ngx_write_chain_to_file(ngx_file_t *file, ngx_chain_t *cl, off_t offset,
             return NGX_ERROR;
         }
 
+        ngx_log_debug2(NGX_LOG_DEBUG_CORE, file->log, 0,
+                       "writev: %d, %z", file->fd, n);
+
         file->sys_offset += n;
         file->offset += n;
+        offset += n;
         total += n;
 
     } while (cl);
@@ -413,9 +417,7 @@ ngx_trylock_fd(ngx_fd_t fd)
 {
     struct flock  fl;
 
-    fl.l_start = 0;
-    fl.l_len = 0;
-    fl.l_pid = 0;
+    ngx_memzero(&fl, sizeof(struct flock));
     fl.l_type = F_WRLCK;
     fl.l_whence = SEEK_SET;
 
@@ -432,9 +434,7 @@ ngx_lock_fd(ngx_fd_t fd)
 {
     struct flock  fl;
 
-    fl.l_start = 0;
-    fl.l_len = 0;
-    fl.l_pid = 0;
+    ngx_memzero(&fl, sizeof(struct flock));
     fl.l_type = F_WRLCK;
     fl.l_whence = SEEK_SET;
 
@@ -451,9 +451,7 @@ ngx_unlock_fd(ngx_fd_t fd)
 {
     struct flock  fl;
 
-    fl.l_start = 0;
-    fl.l_len = 0;
-    fl.l_pid = 0;
+    ngx_memzero(&fl, sizeof(struct flock));
     fl.l_type = F_UNLCK;
     fl.l_whence = SEEK_SET;
 

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

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

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

  Renamed: vendor/nginx-1.2.6/src/os/unix/ngx_freebsd_init.c (+2 -2) 98%
===================================================================
--- vendor/nginx-1.2.1/src/os/unix/ngx_freebsd_init.c    2013-01-17 13:42:10 +0900 (57af44a)
+++ vendor/nginx-1.2.6/src/os/unix/ngx_freebsd_init.c    2013-01-17 13:43:24 +0900 (aeeceaf)
@@ -76,9 +76,9 @@ ngx_debug_init()
 {
 #if (NGX_DEBUG_MALLOC)
 
-#if __FreeBSD_version >= 500014
+#if __FreeBSD_version >= 500014 && __FreeBSD_version < 1000011
     _malloc_options = "J";
-#else
+#elif __FreeBSD_version < 500014
     malloc_options = "J";
 #endif
 

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

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

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

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

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

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

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.2.6/src/os/unix/ngx_posix_config.h (+1 -0) 98%
===================================================================
--- vendor/nginx-1.2.1/src/os/unix/ngx_posix_config.h    2013-01-17 13:42:10 +0900 (4d432a7)
+++ vendor/nginx-1.2.6/src/os/unix/ngx_posix_config.h    2013-01-17 13:43:24 +0900 (4cf90cc)
@@ -12,6 +12,7 @@
 #if (NGX_HPUX)
 #define _XOPEN_SOURCE
 #define _XOPEN_SOURCE_EXTENDED  1
+#define _HPUX_ALT_XOPEN_SOCKET_API
 #endif
 
 

  Renamed: vendor/nginx-1.2.6/src/os/unix/ngx_posix_init.c (+4 -0) 99%
===================================================================
--- vendor/nginx-1.2.1/src/os/unix/ngx_posix_init.c    2013-01-17 13:42:10 +0900 (eea65a9)
+++ vendor/nginx-1.2.6/src/os/unix/ngx_posix_init.c    2013-01-17 13:43:24 +0900 (58e6f76)
@@ -98,6 +98,8 @@ ngx_os_status(ngx_log_t *log)
 }
 
 
+#if 0
+
 ngx_int_t
 ngx_posix_post_conf_init(ngx_log_t *log)
 {
@@ -122,3 +124,5 @@ ngx_posix_post_conf_init(ngx_log_t *log)
 
     return NGX_OK;
 }
+
+#endif

  Renamed: vendor/nginx-1.2.6/src/os/unix/ngx_process.c (+0 -4) 99%
===================================================================
--- vendor/nginx-1.2.1/src/os/unix/ngx_process.c    2013-01-17 13:42:10 +0900 (5713ca8)
+++ vendor/nginx-1.2.6/src/os/unix/ngx_process.c    2013-01-17 13:43:24 +0900 (4ef3582)
@@ -474,8 +474,6 @@ ngx_process_get_status(void)
                 return;
             }
 
-#if (NGX_SOLARIS || NGX_FREEBSD)
-
             /*
              * Solaris always calls the signal handler for each exited process
              * despite waitpid() may be already called for this process.
@@ -491,8 +489,6 @@ ngx_process_get_status(void)
                 return;
             }
 
-#endif
-
             ngx_log_error(NGX_LOG_ALERT, ngx_cycle->log, err,
                           "waitpid() failed");
             return;

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

  Renamed: vendor/nginx-1.2.6/src/os/unix/ngx_process_cycle.c (+34 -21) 96%
===================================================================
--- vendor/nginx-1.2.1/src/os/unix/ngx_process_cycle.c    2013-01-17 13:42:10 +0900 (82cf8e6)
+++ vendor/nginx-1.2.6/src/os/unix/ngx_process_cycle.c    2013-01-17 13:43:24 +0900 (c9b0266)
@@ -20,7 +20,7 @@ static void ngx_signal_worker_processes(ngx_cycle_t *cycle, int signo);
 static ngx_uint_t ngx_reap_children(ngx_cycle_t *cycle);
 static void ngx_master_process_exit(ngx_cycle_t *cycle);
 static void ngx_worker_process_cycle(ngx_cycle_t *cycle, void *data);
-static void ngx_worker_process_init(ngx_cycle_t *cycle, ngx_uint_t priority);
+static void ngx_worker_process_init(ngx_cycle_t *cycle, ngx_int_t worker);
 static void ngx_worker_process_exit(ngx_cycle_t *cycle);
 static void ngx_channel_handler(ngx_event_t *ev);
 #if (NGX_THREADS)
@@ -62,7 +62,6 @@ ngx_int_t              ngx_threads_n;
 #endif
 
 
-uint64_t       cpu_affinity;
 static u_char  master_process[] = "master process";
 
 
@@ -360,10 +359,8 @@ ngx_start_worker_processes(ngx_cycle_t *cycle, ngx_int_t n, ngx_int_t type)
 
     for (i = 0; i < n; i++) {
 
-        cpu_affinity = ngx_get_cpu_affinity(i);
-
-        ngx_spawn_process(cycle, ngx_worker_process_cycle, NULL,
-                          "worker process", type);
+        ngx_spawn_process(cycle, ngx_worker_process_cycle,
+                          (void *) (intptr_t) i, "worker process", type);
 
         ch.pid = ngx_processes[ngx_process_slot].pid;
         ch.slot = ngx_process_slot;
@@ -384,8 +381,8 @@ ngx_start_cache_manager_processes(ngx_cycle_t *cycle, ngx_uint_t respawn)
     manager = 0;
     loader = 0;
 
-    path = ngx_cycle->pathes.elts;
-    for (i = 0; i < ngx_cycle->pathes.nelts; i++) {
+    path = ngx_cycle->paths.elts;
+    for (i = 0; i < ngx_cycle->paths.nelts; i++) {
 
         if (path[i]->manager) {
             manager = 1;
@@ -711,6 +708,8 @@ ngx_master_process_exit(ngx_cycle_t *cycle)
     ngx_exit_log.file = &ngx_exit_log_file;
 
     ngx_exit_cycle.log = &ngx_exit_log;
+    ngx_exit_cycle.files = ngx_cycle->files;
+    ngx_exit_cycle.files_n = ngx_cycle->files_n;
     ngx_cycle = &ngx_exit_cycle;
 
     ngx_destroy_pool(cycle->pool);
@@ -722,12 +721,14 @@ ngx_master_process_exit(ngx_cycle_t *cycle)
 static void
 ngx_worker_process_cycle(ngx_cycle_t *cycle, void *data)
 {
+    ngx_int_t worker = (intptr_t) data;
+
     ngx_uint_t         i;
     ngx_connection_t  *c;
 
     ngx_process = NGX_PROCESS_WORKER;
 
-    ngx_worker_process_init(cycle, 1);
+    ngx_worker_process_init(cycle, worker);
 
     ngx_setproctitle("worker process");
 
@@ -833,9 +834,10 @@ ngx_worker_process_cycle(ngx_cycle_t *cycle, void *data)
 
 
 static void
-ngx_worker_process_init(ngx_cycle_t *cycle, ngx_uint_t priority)
+ngx_worker_process_init(ngx_cycle_t *cycle, ngx_int_t worker)
 {
     sigset_t          set;
+    uint64_t          cpu_affinity;
     ngx_int_t         n;
     ngx_uint_t        i;
     struct rlimit     rlmt;
@@ -849,7 +851,7 @@ ngx_worker_process_init(ngx_cycle_t *cycle, ngx_uint_t priority)
 
     ccf = (ngx_core_conf_t *) ngx_get_conf(cycle->conf_ctx, ngx_core_module);
 
-    if (priority && ccf->priority != 0) {
+    if (worker >= 0 && ccf->priority != 0) {
         if (setpriority(PRIO_PROCESS, 0, ccf->priority) == -1) {
             ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno,
                           "setpriority(%d) failed", ccf->priority);
@@ -913,8 +915,12 @@ ngx_worker_process_init(ngx_cycle_t *cycle, ngx_uint_t priority)
         }
     }
 
-    if (cpu_affinity) {
-        ngx_setaffinity(cpu_affinity, cycle->log);
+    if (worker >= 0) {
+        cpu_affinity = ngx_get_cpu_affinity(worker);
+
+        if (cpu_affinity) {
+            ngx_setaffinity(cpu_affinity, cycle->log);
+        }
     }
 
 #if (NGX_HAVE_PR_SET_DUMPABLE)
@@ -1054,6 +1060,8 @@ ngx_worker_process_exit(ngx_cycle_t *cycle)
     ngx_exit_log.file = &ngx_exit_log_file;
 
     ngx_exit_cycle.log = &ngx_exit_log;
+    ngx_exit_cycle.files = ngx_cycle->files;
+    ngx_exit_cycle.files_n = ngx_cycle->files_n;
     ngx_cycle = &ngx_exit_cycle;
 
     ngx_destroy_pool(cycle->pool);
@@ -1288,14 +1296,19 @@ ngx_cache_manager_process_cycle(ngx_cycle_t *cycle, void *data)
     void         *ident[4];
     ngx_event_t   ev;
 
-    cycle->connection_n = 512;
-
+    /*
+     * Set correct process type since closing listening Unix domain socket
+     * in a master process also removes the Unix domain socket file.
+     */
     ngx_process = NGX_PROCESS_HELPER;
 
-    ngx_worker_process_init(cycle, 0);
-
     ngx_close_listening_sockets(cycle);
 
+    /* Set a moderate number of connections for a helper process. */
+    cycle->connection_n = 512;
+
+    ngx_worker_process_init(cycle, -1);
+
     ngx_memzero(&ev, sizeof(ngx_event_t));
     ev.handler = ctx->handler;
     ev.data = ident;
@@ -1335,8 +1348,8 @@ ngx_cache_manager_process_handler(ngx_event_t *ev)
 
     next = 60 * 60;
 
-    path = ngx_cycle->pathes.elts;
-    for (i = 0; i < ngx_cycle->pathes.nelts; i++) {
+    path = ngx_cycle->paths.elts;
+    for (i = 0; i < ngx_cycle->paths.nelts; i++) {
 
         if (path[i]->manager) {
             n = path[i]->manager(path[i]->data);
@@ -1364,8 +1377,8 @@ ngx_cache_loader_process_handler(ngx_event_t *ev)
 
     cycle = (ngx_cycle_t *) ngx_cycle;
 
-    path = cycle->pathes.elts;
-    for (i = 0; i < cycle->pathes.nelts; i++) {
+    path = cycle->paths.elts;
+    for (i = 0; i < cycle->paths.nelts; i++) {
 
         if (ngx_terminate || ngx_quit) {
             break;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.2.6/src/os/unix/ngx_solaris_sendfilev_chain.c (+3 -0) 98%
===================================================================
--- vendor/nginx-1.2.1/src/os/unix/ngx_solaris_sendfilev_chain.c    2013-01-17 13:42:10 +0900 (f800c15)
+++ vendor/nginx-1.2.6/src/os/unix/ngx_solaris_sendfilev_chain.c    2013-01-17 13:43:24 +0900 (520eaaa)
@@ -29,6 +29,9 @@ static ssize_t sendfilev(int fd, const struct sendfilevec *vec,
     return -1;
 }
 
+ngx_chain_t *ngx_solaris_sendfilev_chain(ngx_connection_t *c, ngx_chain_t *in,
+    off_t limit);
+
 #endif
 
 

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

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

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

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

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

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

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

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

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

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

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

  Renamed: vendor/nginx-1.2.6/src/os/unix/rfork_thread.S (+0 -0) 100%
===================================================================




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