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% ===================================================================