]> git.kaiwu.me - nginx.git/commitdiff
nginx-0.1.9-RELEASE import release-0.1.9
authorIgor Sysoev <igor@sysoev.ru>
Thu, 25 Nov 2004 16:17:31 +0000 (16:17 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Thu, 25 Nov 2004 16:17:31 +0000 (16:17 +0000)
    *) Bugfix: the proxied request was sent without arguments if the
       request contains "//", "/./", "/../" or "%XX".

    *) Bugfix: the large compressed responses may be transferred not
       completely.

    *) Bugfix: the files bigger than 2G was not transferred on Linux that
       does not support sendfile64().

    *) Bugfix: while the build configuration on Linux the
       --with-poll_module parameter was required; the bug had appeared in
       0.1.8.

97 files changed:
auto/cc/bcc
auto/cc/conf
auto/cc/icc
auto/cc/msvc
auto/cc/owc
auto/configure
auto/endianess
auto/feature
auto/func [deleted file]
auto/init
auto/install
auto/lib/md5/conf
auto/lib/md5/make
auto/lib/openssl/conf
auto/lib/openssl/make
auto/lib/pcre/conf
auto/lib/pcre/make
auto/lib/zlib/conf
auto/lib/zlib/make
auto/make
auto/modules
auto/options
auto/os/conf
auto/os/freebsd
auto/os/linux
auto/os/solaris
auto/os/win32
auto/summary
auto/threads
auto/unix
docs/xml/nginx/changes.xml
src/core/nginx.c
src/core/nginx.h
src/core/ngx_buf.c
src/core/ngx_config.h
src/core/ngx_connection.h
src/core/ngx_output_chain.c
src/core/ngx_times.c
src/event/modules/ngx_aio_module.c
src/event/modules/ngx_devpoll_module.c
src/event/modules/ngx_epoll_module.c
src/event/modules/ngx_kqueue_module.c
src/event/modules/ngx_rtsig_module.c
src/event/modules/ngx_select_module.c
src/event/ngx_event.c
src/event/ngx_event.h
src/event/ngx_event_openssl.c
src/event/ngx_event_openssl.h
src/event/ngx_event_pipe.c
src/event/ngx_event_posted.c
src/http/modules/ngx_http_gzip_filter.c
src/http/modules/ngx_http_index_handler.c
src/http/modules/proxy/ngx_http_proxy_cache.c
src/http/modules/proxy/ngx_http_proxy_handler.c
src/http/modules/proxy/ngx_http_proxy_handler.h
src/http/modules/proxy/ngx_http_proxy_upstream.c
src/http/ngx_http_cache.c
src/http/ngx_http_cache.h
src/http/ngx_http_core_module.c
src/http/ngx_http_file_cache.c
src/http/ngx_http_parse.c
src/http/ngx_http_request.c
src/http/ngx_http_request.h
src/os/unix/ngx_aio_read.c
src/os/unix/ngx_aio_write.c
src/os/unix/ngx_alloc.c
src/os/unix/ngx_alloc.h
src/os/unix/ngx_channel.c
src/os/unix/ngx_errno.c
src/os/unix/ngx_errno.h
src/os/unix/ngx_files.c
src/os/unix/ngx_freebsd_config.h
src/os/unix/ngx_freebsd_init.c
src/os/unix/ngx_freebsd_rfork_thread.c
src/os/unix/ngx_freebsd_sendfile_chain.c
src/os/unix/ngx_linux_config.h
src/os/unix/ngx_linux_init.c
src/os/unix/ngx_linux_sendfile_chain.c
src/os/unix/ngx_os.h
src/os/unix/ngx_posix_config.h
src/os/unix/ngx_posix_init.c
src/os/unix/ngx_process_cycle.c
src/os/unix/ngx_readv_chain.c
src/os/unix/ngx_recv.c
src/os/unix/ngx_send.c
src/os/unix/ngx_shared.c
src/os/unix/ngx_socket.c
src/os/unix/ngx_socket.h
src/os/unix/ngx_solaris_config.h
src/os/unix/ngx_solaris_init.c
src/os/unix/ngx_thread.h
src/os/unix/ngx_time.c
src/os/unix/ngx_time.h
src/os/unix/ngx_writev_chain.c
src/os/win32/ngx_os.h
src/os/win32/ngx_time.h
src/os/win32/ngx_win32_config.h

index a76b68f709616b878a10caeaaafa8d06f9d127e7..4b881292456f970ec7412e97af61eca8f02578d2 100644 (file)
@@ -34,10 +34,10 @@ CFLAGS="$CFLAGS -q"
 
 
 # precompiled headers
-CORE_DEPS="$CORE_DEPS $OBJS/ngx_config.csm"
-NGX_PCH="$OBJS/ngx_config.csm"
-NGX_BUILD_PCH="-H=$OBJS/ngx_config.csm"
-NGX_USE_PCH="-Hu -H=$OBJS/ngx_config.csm"
+CORE_DEPS="$CORE_DEPS $NGX_OBJS/ngx_config.csm"
+NGX_PCH="$NGX_OBJS/ngx_config.csm"
+NGX_BUILD_PCH="-H=$NGX_OBJS/ngx_config.csm"
+NGX_USE_PCH="-Hu -H=$NGX_OBJS/ngx_config.csm"
 
 
 # Win32 GUI mode application
@@ -45,11 +45,11 @@ LINK="\$(CC) -laa"
 
 
 # the resource file
-NGX_RES="$OBJS/nginx.res"
-NGX_RCC="brcc32 -fo$OBJS/nginx.res \$(CORE_INCS) $NGX_WIN32_RC"
+NGX_RES="$NGX_OBJS/nginx.res"
+NGX_RCC="brcc32 -fo$NGX_OBJS/nginx.res \$(CORE_INCS) $NGX_WIN32_RC"
 # the pragma allows to link the resource file using bcc32 and
 # to avoid the direct ilink32 calling and the c0w32.obj's WinMain/main problem
-NGX_PRAGMA="#pragma resource \"$OBJS/nginx.res\""
+NGX_PRAGMA="#pragma resource \"$NGX_OBJS/nginx.res\""
 
 
 ngx_include_opt="-I"
index c1f577e4ef8b88d64334622cbdc47610661e6cea..0a5db9e3401c130b8c4d3940979690cae336471a 100644 (file)
@@ -92,11 +92,11 @@ fi
 CFLAGS="$CFLAGS $NGX_CC_OPT"
 
 
-if [ "$PLATFORM" != win32 ]; then
+if [ "$NGX_PLATFORM" != win32 ]; then
 
     if test -n "$NGX_LD_OPT"; then
         ngx_feature=--with-ld-opt=\"$NGX_LD_OPT\"
-        ngx_feature_name="DUMMY"
+        ngx_feature_name=
         ngx_feature_run=no
         ngx_feature_incs=
         ngx_feature_libs=
@@ -111,7 +111,7 @@ if [ "$PLATFORM" != win32 ]; then
     fi
 
     ngx_feature="gcc variadic macros"
-    ngx_feature_name="HAVE_GCC_VARIADIC_MACROS"
+    ngx_feature_name="NGX_HAVE_GCC_VARIADIC_MACROS"
     ngx_feature_run=yes
     ngx_feature_incs="#include <stdio.h>
 #define var(dummy, args...)  sprintf(args)"
@@ -123,7 +123,7 @@ if [ "$PLATFORM" != win32 ]; then
 
 
     ngx_feature="C99 variadic macros"
-    ngx_feature_name="HAVE_C99_VARIADIC_MACROS"
+    ngx_feature_name="NGX_HAVE_C99_VARIADIC_MACROS"
     ngx_feature_run=yes
     ngx_feature_incs="#include <stdio.h>
 #define var(dummy, ...) sprintf(__VA_ARGS__)"
@@ -135,7 +135,7 @@ if [ "$PLATFORM" != win32 ]; then
 
 
 #    ngx_feature="inline"
-#    ngx_feature_name="DUMMY"
+#    ngx_feature_name=
 #    ngx_feature_run=no
 #    ngx_feature_incs="int inline f(void) { return 1 }"
 #    ngx_feature_libs=
index 89c6f3500730a737faa55278e694df9f34c66ab2..a32eec45918d0baa6e48eca14cea7fca771d2af6 100644 (file)
@@ -18,7 +18,7 @@ CFLAGS="$CFLAGS -Ob2"
 IPO="-ipo -ipo_obj"
 CFLAGS="$CFLAGS $IPO"
 CORE_LINK="$CORE_LINK $IPO"
-CORE_LINK="$CORE_LINK -opt_report_file=$OBJS/opt_report_file"
+CORE_LINK="$CORE_LINK -opt_report_file=$NGX_OBJS/opt_report_file"
 
 case $CPU in
     pentium)
index 8272cac9acec584b2b0b5ad7f933a151f61d057c..0fa1a2c7e95291c527899a792571e737eb04e6be 100644 (file)
@@ -77,15 +77,15 @@ CORE_LINK="$CORE_LINK -debug -debugtype:coff"
 
 # precompiled headers
 if [ $NGX_CC_NAME != msvc7 ]; then
-    CORE_DEPS="$CORE_DEPS $OBJS/ngx_config.pch"
-    NGX_PCH="$OBJS/ngx_config.pch"
-    NGX_BUILD_PCH="-Ycngx_config.h -Fp$OBJS/ngx_config.pch"
-    NGX_USE_PCH="-Yungx_config.h -Fp$OBJS/ngx_config.pch"
+    CORE_DEPS="$CORE_DEPS $NGX_OBJS/ngx_config.pch"
+    NGX_PCH="$NGX_OBJS/ngx_config.pch"
+    NGX_BUILD_PCH="-Ycngx_config.h -Fp$NGX_OBJS/ngx_config.pch"
+    NGX_USE_PCH="-Yungx_config.h -Fp$NGX_OBJS/ngx_config.pch"
 fi
 
 
 # the resource file
-NGX_RES="$OBJS/nginx.res"
+NGX_RES="$NGX_OBJS/nginx.res"
 NGX_RCC="rc -fo$NGX_RES \$(CORE_INCS) $NGX_WIN32_RC"
 CORE_LINK="$NGX_RES $CORE_LINK"
 
index 789ffadae394fd30c851ecc8da74a436c9b4745e..88ffdb1f8d74e1d67f3c57179e27675fe0781b0b 100644 (file)
@@ -63,10 +63,10 @@ CFLAGS="$CFLAGS -zq"
 
 
 # the precompiled headers 
-CORE_DEPS="$CORE_DEPS $OBJS/ngx_config.pch"
-NGX_PCH="$OBJS/ngx_config.pch"
-NGX_BUILD_PCH="-fhq=$OBJS/ngx_config.pch"
-NGX_USE_PCH="-fh=$OBJS/ngx_config.pch"
+CORE_DEPS="$CORE_DEPS $NGX_OBJS/ngx_config.pch"
+NGX_PCH="$NGX_OBJS/ngx_config.pch"
+NGX_BUILD_PCH="-fhq=$NGX_OBJS/ngx_config.pch"
+NGX_USE_PCH="-fh=$NGX_OBJS/ngx_config.pch"
 
 
 LINK="\$(CC)"
@@ -76,7 +76,8 @@ CORE_LINK="$CORE_LINK -l=nt_win"
 
 
 # the resource file
-NGX_RCC="wrc \$(CORE_INCS) -fo=$OBJS/nginx.res $NGX_WIN32_RC $OBJS/nginx.exe"
+NGX_RCC="wrc \$(CORE_INCS) -fo=$NGX_OBJS/nginx.res "
+NGX_RCC="$NGX_RCC $NGX_WIN32_RC $NGX_OBJS/nginx.exe"
 
 
 ngx_include_opt="-i="
index d5cc7e032b86a779510f0a9c3588b66515046f0d..0cd17eae528ff63b49f24111094a54e28aa2d60b 100755 (executable)
@@ -7,26 +7,26 @@
 . auto/init
 . auto/sources
 
-test -d $OBJS || mkdir $OBJS
+test -d $NGX_OBJS || mkdir $NGX_OBJS
 
 echo > $NGX_AUTO_HEADERS_H
 echo > $NGX_AUTO_CONFIG_H
 echo > $NGX_AUTOCONF_ERR
 
 
-if [ $DEBUG = YES ]; then
+if [ $NGX_DEBUG = YES ]; then
     have=NGX_DEBUG . auto/have
 fi
 
 
-if [ "$PLATFORM" != win32 ]; then
+if [ "$NGX_PLATFORM" != win32 ]; then
     . auto/headers
 fi
 
 . auto/cc/conf
 . auto/os/conf
 
-if [ "$PLATFORM" != win32 ]; then
+if [ "$NGX_PLATFORM" != win32 ]; then
     . auto/threads
 fi
 
@@ -37,21 +37,21 @@ fi
 . auto/lib/make
 . auto/install
 
-if [ "$PLATFORM" != win32 ]; then
+if [ "$NGX_PLATFORM" != win32 ]; then
     . auto/unix
 fi
 
 # STUB
 . auto/stubs
 
-have=NGX_PREFIX value="\"$PREFIX/\"" . auto/define
-have=NGX_SBIN_PATH value="\"$SBIN_PATH\"" . auto/define
-have=NGX_CONF_PATH value="\"$CONF_PATH\"" . auto/define
-have=NGX_PID_PATH value="\"$PID_PATH\"" . auto/define
-if [ ".$ERROR_LOG_PATH" != "." ]; then
-    have=NGX_ERROR_LOG_PATH value="\"$ERROR_LOG_PATH\"" . auto/define
+have=NGX_PREFIX value="\"$NGX_PREFIX/\"" . auto/define
+have=NGX_SBIN_PATH value="\"$NGX_SBIN_PATH\"" . auto/define
+have=NGX_CONF_PATH value="\"$NGX_CONF_PATH\"" . auto/define
+have=NGX_PID_PATH value="\"$NGX_PID_PATH\"" . auto/define
+if test -n "$NGX_ERROR_LOG_PATH"; then
+    have=NGX_ERROR_LOG_PATH value="\"$NGX_ERROR_LOG_PATH\"" . auto/define
 fi
-have=NGX_HTTP_LOG_PATH value="\"$HTTP_LOG_PATH\"" . auto/define
+have=NGX_HTTP_LOG_PATH value="\"$NGX_HTTP_LOG_PATH\"" . auto/define
 
 have=NGX_USER value="\"$NGX_USER\"" . auto/define
 have=NGX_GROUP value="\"$NGX_GROUP\"" . auto/define
index 640b46592a18a2f333f8145f80f24c98a87683ac..578dd4513acedd5c341b6c8d7f4a4215cd2dc375 100644 (file)
@@ -25,7 +25,7 @@ eval "${CC} -o $NGX_AUTOTEST $NGX_AUTOTEST.c >> $NGX_ERR 2>&1"
 if [ -x $NGX_AUTOTEST ]; then
     if $NGX_AUTOTEST 2>&1 > /dev/null; then
         echo " little endianess"
-        have=HAVE_LITTLE_ENDIAN . auto/have
+        have=NGX_HAVE_LITTLE_ENDIAN . auto/have
     else
         echo " big endianess"
     fi
index 410f5398f371522825458b0630c3ea369b601117..0fbbe84ba9e254e7a96c1f12b96f554e1d29cb87 100644 (file)
@@ -14,9 +14,7 @@ END
 ngx_found=no
 
 if test -n "$ngx_feature_name"; then
-    ngx_have_feature=`echo NGX_$ngx_feature_name | tr '[a-z]' '[A-Z]'`
-    # STUB
-    ngx_have_feature0=`echo HAVE_$ngx_feature_name | tr '[a-z]' '[A-Z]'`
+    ngx_have_feature=`echo $ngx_feature_name | tr '[a-z]' '[A-Z]'`
 fi
 
 cat << END > $NGX_AUTOTEST.c
@@ -51,11 +49,6 @@ if [ -x $NGX_AUTOTEST ]; then
                have=$ngx_have_feature . auto/have
            fi
 
-           #STUB
-           if test -n "$ngx_feature_name"; then
-               have=$ngx_have_feature0 . auto/have
-           fi
-
        else
            echo " found but is not working"
        fi
@@ -68,11 +61,6 @@ if [ -x $NGX_AUTOTEST ]; then
            have=$ngx_have_feature . auto/have
        fi
 
-       #STUB
-       if test -n "$ngx_feature_name"; then
-           have=$ngx_have_feature0 . auto/have
-       fi
-
     fi
 
 else
diff --git a/auto/func b/auto/func
deleted file mode 100644 (file)
index 970d634..0000000
--- a/auto/func
+++ /dev/null
@@ -1,43 +0,0 @@
-
-# Copyright (C) Igor Sysoev
-
-
-echo $ngx_n "checking for $ngx_func ..." $ngx_c
-echo >> $NGX_ERR
-echo "checking for $ngx_func" >> $NGX_ERR
-
-ngx_found=no
-
-func=`echo $ngx_func | sed -e 's/()$//' | tr '[a-z]' '[A-Z]'`
-
-cat << END > $NGX_AUTOTEST.c
-
-#include <sys/types.h>
-$NGX_UNISTD_H
-$ngx_func_inc
-
-int main() {
-    $ngx_func_test;
-    return 0;
-}
-
-END
-
-test="$CC_WARN $CC_TEST_FLAGS -o $NGX_AUTOTEST $NGX_AUTOTEST.c $ngx_func_libs"
-eval "$test >> $NGX_ERR 2>&1"
-
-if [ -x $NGX_AUTOTEST ]; then
-    echo " found"
-    have=HAVE_$func . auto/have
-    ngx_found=yes
-
-else
-    echo " not found"
-    echo "---------" >> $NGX_ERR
-    cat $NGX_AUTOTEST.c >> $NGX_ERR
-    echo "---------" >> $NGX_ERR
-    echo $test >> $NGX_ERR
-    echo "---------" >> $NGX_ERR
-fi
-
-rm $NGX_AUTOTEST*
index 080cc28c1dc362a15ba404d9ecc1077e9fc2e820..0b33c3bc2b7e44717758e093260de85c9cc9c66b 100644 (file)
--- a/auto/init
+++ b/auto/init
@@ -12,9 +12,8 @@ NGX_AUTOTEST=$NGX_OBJS/autotest
 NGX_AUTOCONF_ERR=$NGX_OBJS/autoconf.err
 
 # STUBs
-OBJS=$NGX_OBJS
-NGX_ERR=$OBJS/autoconf.err
-MAKEFILE=$OBJS/Makefile
+NGX_ERR=$NGX_OBJS/autoconf.err
+MAKEFILE=$NGX_OBJS/Makefile
 
 
 NGX_PCH=
@@ -54,9 +53,9 @@ clean:
        rm -rf Makefile $NGX_OBJS
 
 upgrade:
-       $SBIN_PATH -t
-       kill -USR2 \`cat $PID_PATH\`
+       $NGX_SBIN_PATH -t
+       kill -USR2 \`cat $NGX_PID_PATH\`
        sleep 1
-       test -f $PID_PATH.newbin
-       kill -WINCH \`cat $PID_PATH\`
+       test -f $NGX_PID_PATH.newbin
+       kill -WINCH \`cat $NGX_PID_PATH\`
 END
index bae092b723c3def694da568e11c13e36e8a533f8..7a26d040d36bb838063a4271569d39962e26a11b 100644 (file)
@@ -2,40 +2,40 @@
 # Copyright (C) Igor Sysoev
 
 
-cat << END                                                        >> $MAKEFILE
+cat << END                                                    >> $NGX_MAKEFILE
 
 install:
-       test -d $PREFIX || mkdir -p $PREFIX
+       test -d $NGX_PREFIX || mkdir -p $NGX_PREFIX
 
-       test -d `dirname $SBIN_PATH` || mkdir -p `dirname $SBIN_PATH`
-       test ! -f $SBIN_PATH || mv $SBIN_PATH $SBIN_PATH.old
-       cp $OBJS/nginx $SBIN_PATH
+       test -d `dirname $NGX_SBIN_PATH` || mkdir -p `dirname $NGX_SBIN_PATH`
+       test ! -f $NGX_SBIN_PATH || mv $NGX_SBIN_PATH $NGX_SBIN_PATH.old
+       cp $NGX_OBJS/nginx $NGX_SBIN_PATH
 
-       test -d `dirname $CONF_PATH` || mkdir -p `dirname $CONF_PATH`
+       test -d `dirname $NGX_CONF_PATH` || mkdir -p `dirname $NGX_CONF_PATH`
 
-       cp conf/koi-win `dirname $CONF_PATH`
+       cp conf/koi-win `dirname $NGX_CONF_PATH`
 
-       test -f `dirname $CONF_PATH`/mime.types || \
-               cp conf/mime.types `dirname $CONF_PATH`/mime.types
-       cp conf/mime.types `dirname $CONF_PATH`/mime.types.default
+       test -f `dirname $NGX_CONF_PATH`/mime.types || \
+               cp conf/mime.types `dirname $NGX_CONF_PATH`/mime.types
+       cp conf/mime.types `dirname $NGX_CONF_PATH`/mime.types.default
 
-       test -f $CONF_PATH || cp conf/nginx.conf $CONF_PATH
-       cp conf/nginx.conf `dirname $CONF_PATH`/nginx.conf.default
+       test -f $NGX_CONF_PATH || cp conf/nginx.conf $NGX_CONF_PATH
+       cp conf/nginx.conf `dirname $NGX_CONF_PATH`/nginx.conf.default
 
-       test -d `dirname $PID_PATH` || mkdir -p `dirname $PID_PATH`
+       test -d `dirname $NGX_PID_PATH` || mkdir -p `dirname $NGX_PID_PATH`
 
-       test -d `dirname $HTTP_LOG_PATH` || mkdir -p `dirname $HTTP_LOG_PATH`
+       test -d `dirname $NGX_HTTP_LOG_PATH` || \
+               mkdir -p `dirname $NGX_HTTP_LOG_PATH`
 
-       test -d $PREFIX/html || cp -r html $PREFIX
-
-       #test -d $PREFIX/temp || mkdir -p $PREFIX/temp
+       test -d $NGX_PREFIX/html || cp -r html $NGX_PREFIX
 END
 
 
-if [ ".$ERROR_LOG_PATH" != "." ]; then
-    cat << END                                                    >> $MAKEFILE
+if test -n "$NGX_ERROR_LOG_PATH"; then
+    cat << END                                                >> $NGX_MAKEFILE
 
-       test -d `dirname $ERROR_LOG_PATH` || mkdir -p `dirname $ERROR_LOG_PATH`
+       test -d `dirname $NGX_ERROR_LOG_PATH` || \
+               mkdir -p `dirname $NGX_ERROR_LOG_PATH`
 END
 
 fi
index 27fd641271cbaa5b06c12f40ab5cc72dcce8f137..812242352ac96808efa9316064061b7741474ac7 100644 (file)
@@ -7,7 +7,7 @@ if [ $MD5 != NONE ]; then
     if grep MD5_Init $MD5/md5.h >/dev/null; then
         # OpenSSL md5
         OPENSSL_MD5=YES
-        have=HAVE_OPENSSL_MD5 . auto/have
+        have=NGX_HAVE_OPENSSL_MD5 . auto/have
     else
         # rsaref md5
         OPENSSL_MD5=NO
@@ -43,13 +43,13 @@ if [ $MD5 != NONE ]; then
 
 else
 
-    if [ $PLATFORM != win32 ]; then
+    if [ $NGX_PLATFORM != win32 ]; then
         MD5=NO
 
         # Solaris 8/9
 
         ngx_feature="rsaref md5 library"
-        ngx_feature_name="rsaref_md5"
+        ngx_feature_name=
         ngx_feature_run=no
         ngx_feature_incs="#include <md5.h>"
         ngx_feature_libs="-lmd5"
@@ -66,7 +66,7 @@ else
             # FreeBSD
 
             ngx_feature="rsaref md library"
-            ngx_feature_name="rsaref_md5"
+            ngx_feature_name=
             ngx_feature_run=no
             ngx_feature_incs="#include <md5.h>"
             ngx_feature_libs="-lmd"
@@ -87,7 +87,7 @@ else
                # OpenSSL crypto library
 
                ngx_feature="OpenSSL md5 crypto library"
-               ngx_feature_name="OpenSSL_md5"
+               ngx_feature_name="NGX_OPENSSL_MD5"
                ngx_feature_run=no
                ngx_feature_incs="#include <openssl/md5.h>"
                ngx_feature_libs="-lcrypto"
@@ -98,7 +98,7 @@ else
 
 
         if [ $ngx_found = yes ]; then
-            have=HAVE_OPENSSL_MD5_H . auto/have
+            have=NGX_HAVE_OPENSSL_MD5_H . auto/have
             CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
             MD5=YES
             MD5_LIB=crypto
index 5dfddfa23281b156cabc45c830eeae57965d9b7a..b333d4dfe8bf039f5c762a5ec16bc200057d5fae 100644 (file)
@@ -25,7 +25,7 @@ esac
 done=NO
 
 
-case $PLATFORM in
+case $NGX_PLATFORM in
 
     win32)
         cp auto/lib/md5/$ngx_makefile $MD5
index 8ef4f3af9e57cc9bc3ea1471fb7e7f11adf283e9..0a70f33214ea7317b9e0027e42772fe01dfc9e10 100644 (file)
@@ -18,11 +18,11 @@ if [ $OPENSSL != NONE ]; then
 
 else
 
-    if [ $PLATFORM != win32 ]; then
+    if [ $NGX_PLATFORM != win32 ]; then
         OPENSSL=NO
 
         ngx_feature="OpenSSL library"
-        ngx_feature_name="OpenSSL"
+        ngx_feature_name="NGX_OPENSSL"
         ngx_feature_run=no
         ngx_feature_incs="#include <openssl/ssl.h>"
         ngx_feature_libs="-lssl -lcrypto"
@@ -30,7 +30,6 @@ else
         . auto/feature
 
         if [ $ngx_found = yes ]; then
-            have=NGX_OPENSSL . auto/have
             CORE_DEPS="$CORE_DEPS $OPENSSL_DEPS"
             CORE_SRCS="$CORE_SRCS $OPENSSL_SRCS"
             CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
index 5e931cbbe0736ce4d66ab84342945f81749940a4..28ab00364256fe2f724679861422dd720548e1a9 100644 (file)
@@ -2,7 +2,7 @@
 # Copyright (C) Igor Sysoev
 
 
-case $PLATFORM in
+case $NGX_PLATFORM in
     *)
         echo "$OPENSSL/libssl.a:"                                 >> $MAKEFILE
         echo " cd $OPENSSL \\"                                   >> $MAKEFILE
index cf26be27a218aa6c741c2cd86e9af7f1c2f6e2ba..168acbaa22525c9ecb48477e879ff23d5dc8bd96 100644 (file)
@@ -42,14 +42,14 @@ if [ $PCRE != NONE ]; then
 
 else
 
-    if [ $PLATFORM != win32 ]; then
+    if [ $NGX_PLATFORM != win32 ]; then
         PCRE=NO
 
         # FreeBSD PCRE port requires --with-cc-opt="-I /usr/local/include"
         #                            --with-ld-opt="-L /usr/local/lib"
         
         ngx_feature="PCRE library"
-        ngx_feature_name="PCRE"
+        ngx_feature_name="NGX_PCRE"
         ngx_feature_run=no
         ngx_feature_incs="#include <pcre.h>"
         ngx_feature_libs="-lpcre"
index a60fedb2d3b3c940a30fe79e2e66e19dbaf5788c..27d774bb52aa0a97297193f2c575aff156e4fdca 100644 (file)
@@ -22,7 +22,7 @@ case "$NGX_CC_NAME" in
 esac
 
 
-case $PLATFORM in
+case $NGX_PLATFORM in
 
     win32)
         cp auto/lib/pcre/patch.pcre.in $PCRE
index 797a2d3092d61acbb7db45b7477380cab2bc85fe..8edd3f371e0a7a404c10b22bed3ab00e355261ce 100644 (file)
@@ -37,13 +37,13 @@ if [ $ZLIB != NONE ]; then
 
 else
 
-    if [ $PLATFORM != win32 ]; then
+    if [ $NGX_PLATFORM != win32 ]; then
         ZLIB=NO
 
         # FreeBSD, Solaris, Linux
 
         ngx_feature="zlib library"
-        ngx_feature_name="zlib"
+        ngx_feature_name=
         ngx_feature_run=no
         ngx_feature_incs="#include <zlib.h>"
         ngx_feature_libs="-lz"
index 2e5ea84202bb2c3c80f34cd714b8f2427fc47efc..1884b502630c37841694c952d727c589a66d3be5 100644 (file)
@@ -26,7 +26,7 @@ esac
 done=NO
 
 
-case $PLATFORM in
+case $NGX_PLATFORM in
 
     win32)
         cp auto/lib/zlib/$ngx_makefile $ZLIB
index 55f36c90f788d0bb6ffc59f1f322605241e4a9e4..9b6e4bea2a05432d78c7ef62369ac023526ef749 100644 (file)
--- a/auto/make
+++ b/auto/make
@@ -2,10 +2,11 @@
 # Copyright (C) Igor Sysoev
 
 
-mkdir -p $OBJS/src/core $OBJS/src/event $OBJS/src/event/modules \
-         $OBJS/src/os/unix $OBJS/src/os/win32 \
-         $OBJS/src/http $OBJS/src/http/modules $OBJS/src/http/modules/proxy \
-         $OBJS/src/imap
+mkdir -p $NGX_OBJS/src/core $NGX_OBJS/src/event $NGX_OBJS/src/event/modules \
+         $NGX_OBJS/src/os/unix $NGX_OBJS/src/os/win32 \
+         $NGX_OBJS/src/http $NGX_OBJS/src/http/modules \
+        $NGX_OBJS/src/http/modules/proxy \
+         $NGX_OBJS/src/imap
 
 
 ngx_objs_dir=$NGX_OBJS$ngx_regex_dirsep
@@ -33,7 +34,7 @@ fi
 
 # ALL_INCS, required by OpenWatcom C precompiled headers
 
-ngx_incs=`echo $CORE_INCS $OBJS $HTTP_INCS $IMAP_INCS\
+ngx_incs=`echo $CORE_INCS $NGX_OBJS $HTTP_INCS $IMAP_INCS\
     | sed -e "s/  *\([^ ][^ ]*\)/$ngx_regex_cont$ngx_include_opt\1/g" \
           -e "s/\//$ngx_regex_dirsep/g"`
 
@@ -53,7 +54,7 @@ ngx_deps=`echo $CORE_DEPS $NGX_AUTO_CONFIG_H $NGX_PCH \
     | sed -e "s/  *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \
           -e "s/\//$ngx_regex_dirsep/g"`
 
-ngx_incs=`echo $CORE_INCS $OBJS \
+ngx_incs=`echo $CORE_INCS $NGX_OBJS \
     | sed -e "s/  *\([^ ][^ ]*\)/$ngx_regex_cont$ngx_include_opt\1/g" \
           -e "s/\//$ngx_regex_dirsep/g"`
 
@@ -287,13 +288,13 @@ fi
 # the precompiled headers
 
 if test -n "$NGX_PCH"; then
-    echo "#include <ngx_config.h>" > $OBJS/ngx_pch.c
+    echo "#include <ngx_config.h>" > $NGX_OBJS/ngx_pch.c
 
-    ngx_pch="src/core/ngx_config.h $OS_CONFIG $OBJS/ngx_auto_config.h"
+    ngx_pch="src/core/ngx_config.h $OS_CONFIG $NGX_OBJS/ngx_auto_config.h"
     ngx_pch=`echo "$NGX_PCH:   $ngx_pch" | sed -e "s/\//$ngx_regex_dirsep/g"`
 
     ngx_src="\$(CC) \$(CFLAGS) $NGX_BUILD_PCH $ngx_compile_opt \$(ALL_INCS)"
-    ngx_src="$ngx_src $ngx_objout$OBJS/ngx_pch.obj $OBJS/ngx_pch.c"
+    ngx_src="$ngx_src $ngx_objout$NGX_OBJS/ngx_pch.obj $NGX_OBJS/ngx_pch.c"
     ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"`
 
     cat << END                                                >> $NGX_MAKEFILE
index e9a42e362d28378eadbe8067cc352219fc68a7e1..f02e803378a06ad540852ad7ffdf7fe4920d6b51 100644 (file)
@@ -7,7 +7,7 @@ if [ $EVENT_SELECT = NO -a $EVENT_FOUND = NO ]; then
 fi
 
 if [ $EVENT_SELECT = YES ]; then
-    have=HAVE_SELECT . auto/have
+    have=NGX_HAVE_SELECT . auto/have
     CORE_SRCS="$CORE_SRCS $SELECT_SRCS"
     EVENT_MODULES="$EVENT_MODULES $SELECT_MODULE"
 fi
@@ -18,29 +18,29 @@ if [ $EVENT_POLL = NO -a $EVENT_FOUND = NO ]; then
 fi
 
 if [ $EVENT_POLL = YES ]; then
-    have=HAVE_POLL . auto/have
+    have=NGX_HAVE_POLL . auto/have
     CORE_SRCS="$CORE_SRCS $POLL_SRCS"
     EVENT_MODULES="$EVENT_MODULES $POLL_MODULE"
 fi
 
 
-if [ $TEST_BUILD_DEVPOLL = YES ]; then
-    have=HAVE_DEVPOLL . auto/have
-    have=TEST_BUILD_DEVPOLL . auto/have
+if [ $NGX_TEST_BUILD_DEVPOLL = YES ]; then
+    have=NGX_HAVE_DEVPOLL . auto/have
+    have=NGX_TEST_BUILD_DEVPOLL . auto/have
     EVENT_MODULES="$EVENT_MODULES $DEVPOLL_MODULE"
     CORE_SRCS="$CORE_SRCS $DEVPOLL_SRCS"
 fi
 
-if [ $TEST_BUILD_EPOLL = YES ]; then
-    have=HAVE_EPOLL . auto/have
-    have=TEST_BUILD_EPOLL . auto/have
+if [ $NGX_TEST_BUILD_EPOLL = YES ]; then
+    have=NGX_HAVE_EPOLL . auto/have
+    have=NGX_TEST_BUILD_EPOLL . auto/have
     EVENT_MODULES="$EVENT_MODULES $EPOLL_MODULE"
     CORE_SRCS="$CORE_SRCS $EPOLL_SRCS"
 fi
 
-if [ $TEST_BUILD_RTSIG = YES ]; then
-    have=HAVE_RTSIG . auto/have
-    have=TEST_BUILD_RTSIG . auto/have
+if [ $NGX_TEST_BUILD_RTSIG = YES ]; then
+    have=NGX_HAVE_RTSIG . auto/have
+    have=NGX_TEST_BUILD_RTSIG . auto/have
     EVENT_MODULES="$EVENT_MODULES $RTSIG_MODULE"
     CORE_SRCS="$CORE_SRCS $RTSIG_SRCS"
 fi
@@ -135,8 +135,11 @@ if [ $HTTP_PROXY = YES ]; then
     HTTP_SRCS="$HTTP_SRCS $HTTP_PROXY_SRCS"
 fi
 
-if [ -r $OBJS/auto ]; then
-    . $OBJS/auto
+# STUB
+#HTTP_SRCS="$HTTP_SRCS $HTPP_FILE_CACHE_SRCS"
+
+if [ -r $NGX_OBJS/auto ]; then
+    . $NGX_OBJS/auto
 fi
 
 modules="$CORE_MODULES $EVENT_MODULES"
index 06488c8252b41dbf407dc067de37bbc4f63ceb64..266ea31155b8bc5643a9b0f878c8a72bb7f985e9 100644 (file)
@@ -4,29 +4,29 @@
 
 help=no
 
-PREFIX=
-SBIN_PATH=
-CONF_PATH=
-ERROR_LOG_PATH=
-PID_PATH=
+NGX_PREFIX=
+NGX_SBIN_PATH=
+NGX_CONF_PATH=
+NGX_ERROR_LOG_PATH=
+NGX_PID_PATH=
 NGX_USER=
 NGX_GROUP=
-HTTP_LOG_PATH=
+NGX_HTTP_LOG_PATH=
 
 CC=${CC:-gcc}
 CPP=
 NGX_OBJS=objs
 
-DEBUG=NO
+NGX_DEBUG=NO
 NGX_CC_OPT=
 NGX_LD_OPT=
 CPU=NO
 
-TEST_BUILD_DEVPOLL=NO
-TEST_BUILD_EPOLL=NO
-TEST_BUILD_RTSIG=NO
+NGX_TEST_BUILD_DEVPOLL=NO
+NGX_TEST_BUILD_EPOLL=NO
+NGX_TEST_BUILD_RTSIG=NO
 
-PLATFORM=
+NGX_PLATFORM=
 NGX_WINE=
 
 EVENT_FOUND=NO
@@ -52,7 +52,7 @@ HTTP_PROXY=YES
 
 IMAP=NO
 
-MODULES=
+NGX_MODULES=
 
 USE_PCRE=NO
 PCRE=NONE
@@ -82,15 +82,15 @@ do
     case "$option" in
         --help)                          help=yes                   ;;
 
-        --prefix=*)                      PREFIX="$value"            ;;
-        --sbin-path=*)                   SBIN_PATH="$value"         ;;
-        --conf-path=*)                   CONF_PATH="$value"         ;;
-        --error-log-path=*)              ERROR_LOG_PATH="$value"    ;;
-        --pid-path=*)                    PID_PATH="$value"          ;;
+        --prefix=*)                      NGX_PREFIX="$value"        ;;
+        --sbin-path=*)                   NGX_SBIN_PATH="$value"     ;;
+        --conf-path=*)                   NGX_CONF_PATH="$value"     ;;
+        --error-log-path=*)              NGX_ERROR_LOG_PATH="$value";;
+        --pid-path=*)                    NGX_PID_PATH="$value"      ;;
         --user=*)                        NGX_USER="$value"          ;;
         --group=*)                       NGX_GROUP="$value"         ;;
 
-        --crossbuild=*)                  PLATFORM="$value"          ;;
+        --crossbuild=*)                  NGX_PLATFORM="$value"      ;;
 
         --builddir=*)                    NGX_OBJS="$value"          ;;
 
@@ -105,7 +105,7 @@ do
         --with-threads)                  USE_THREADS="pthreads"     ;;
 
         --without-http)                  HTTP=NO                    ;;
-        --http-log-path=*)               HTTP_LOG_PATH="$value"     ;;
+        --http-log-path=*)               NGX_HTTP_LOG_PATH="$value" ;;
 
         --with-http_ssl_module)          HTTP_SSL=YES               ;;
         --without-http_charset_module)   HTTP_CHARSET=NO            ;;
@@ -127,7 +127,7 @@ do
         --with-cc-opt=*)                 NGX_CC_OPT="$value"        ;;
         --with-ld-opt=*)                 NGX_LD_OPT="$value"        ;;
         --with-cpu-opt=*)                CPU="$value"               ;;
-        --with-debug)                    DEBUG=YES                  ;;
+        --with-debug)                    NGX_DEBUG=YES              ;;
 
         --without-pcre)                  USE_PCRE=DISABLED          ;;
         --with-pcre=*)                   PCRE="$value"              ;;
@@ -143,9 +143,9 @@ do
         --with-zlib-opt=*)               ZLIB_OPT="$value"          ;;
         --with-zlib-asm=*)               ZLIB_ASM="$value"          ;;
 
-        --test-build-devpoll)            TEST_BUILD_DEVPOLL=YES     ;;
-        --test-build-epoll)              TEST_BUILD_EPOLL=YES       ;;
-        --test-build-rtsig)              TEST_BUILD_RTSIG=YES       ;;
+        --test-build-devpoll)            NGX_TEST_BUILD_DEVPOLL=YES ;;
+        --test-build-epoll)              NGX_TEST_BUILD_EPOLL=YES   ;;
+        --test-build-rtsig)              NGX_TEST_BUILD_RTSIG=YES   ;;
 
         *)
             echo "$0: error: invalid option \"$option\""
@@ -202,13 +202,13 @@ if [ $HTTP = NO ]; then
 fi
 
 
-if [ ".$PLATFORM" = ".win32" ]; then
+if [ ".$NGX_PLATFORM" = ".win32" ]; then
     NGX_WINE=$WINE
 fi
 
 
-if test -z "$PREFIX"; then
-    PREFIX=/usr/local/nginx
+if test -z "$NGX_PREFIX"; then
+    NGX_PREFIX=/usr/local/nginx
 fi
 
 
@@ -217,75 +217,75 @@ if test -z "$NGX_GROUP"; then
 fi
 
 
-case ".$SBIN_PATH" in
+case ".$NGX_SBIN_PATH" in
     ./*)
     ;;
 
     .)
-        SBIN_PATH=$PREFIX/sbin/nginx
+        NGX_SBIN_PATH=$NGX_PREFIX/sbin/nginx
     ;;
 
     *)
-        SBIN_PATH=$PREFIX/$SBIN_PATH
+        NGX_SBIN_PATH=$NGX_PREFIX/$NGX_SBIN_PATH
     ;;
 esac
 
 
-case ".$CONF_PATH" in
+case ".$NGX_CONF_PATH" in
     ./*)
     ;;
 
     .)
-        CONF_PATH=$PREFIX/conf/nginx.conf
+        NGX_CONF_PATH=$NGX_PREFIX/conf/nginx.conf
     ;;
 
     *)
-        CONF_PATH=$PREFIX/$CONF_PATH
+        NGX_CONF_PATH=$NGX_PREFIX/$NGX_CONF_PATH
     ;;
 esac
 
 
-case ".$PID_PATH" in
+case ".$NGX_PID_PATH" in
     ./*)
     ;;
 
     .)
-        PID_PATH=$PREFIX/logs/nginx.pid
+        NGX_PID_PATH=$NGX_PREFIX/logs/nginx.pid
     ;;
 
     *)
-        PID_PATH=$PREFIX/$PID_PATH
+        NGX_PID_PATH=$NGX_PREFIX/$NGX_PID_PATH
     ;;
 esac
 
 
-case ".$ERROR_LOG_PATH" in
+case ".$NGX_ERROR_LOG_PATH" in
     ./*)
     ;;
 
     .)
-        ERROR_LOG_PATH=$PREFIX/logs/error.log
+        NGX_ERROR_LOG_PATH=$NGX_PREFIX/logs/error.log
     ;;
 
     .stderr)
-        ERROR_LOG_PATH=
+        NGX_ERROR_LOG_PATH=
     ;;
 
     *)
-        ERROR_LOG_PATH=$PREFIX/$ERROR_LOG_PATH
+        NGX_ERROR_LOG_PATH=$NGX_PREFIX/$NGX_ERROR_LOG_PATH
     ;;
 esac
 
 
-case ".$HTTP_LOG_PATH" in
+case ".$NGX_HTTP_LOG_PATH" in
     ./*)
     ;;
 
     .)
-        HTTP_LOG_PATH=$PREFIX/logs/access.log
+        NGX_HTTP_LOG_PATH=$NGX_PREFIX/logs/access.log
     ;;
 
     *)
-        HTTP_LOG_PATH=$PREFIX/$HTTP_LOG_PATH
+        NGX_HTTP_LOG_PATH=$NGX_PREFIX/$NGX_HTTP_LOG_PATH
     ;;
 esac
index 5dcf400da47fa93bee06ab015a79bf976535c30f..568b718d2593e1dc1cb2b6c38972dde2c1ba0379 100644 (file)
@@ -2,7 +2,7 @@
 # Copyright (C) Igor Sysoev
 
 
-if [ ".$PLATFORM" = "." ]; then
+if test -z "$NGX_PLATFORM"; then
     echo "checking for OS"
 
     SYSTEM=`uname -s 2>/dev/null`
@@ -11,12 +11,12 @@ if [ ".$PLATFORM" = "." ]; then
 
     echo " + $SYSTEM $RELEASE $MACHINE"
 
-    PLATFORM="$SYSTEM:$RELEASE:$MACHINE";
+    NGX_PLATFORM="$SYSTEM:$RELEASE:$MACHINE";
 else
-    echo "building for $PLATFORM"
+    echo "building for $NGX_PLATFORM"
 fi
 
-case $PLATFORM in
+case $NGX_PLATFORM in
 
     FreeBSD:* | DragonFly:*)
         . auto/os/freebsd
@@ -43,7 +43,7 @@ case $PLATFORM in
 esac
 
 
-if [ $PLATFORM != win32 ]; then
+if [ $NGX_PLATFORM != win32 ]; then
 
     if test -z "$NGX_USER"; then
         NGX_USER=nobody
@@ -52,7 +52,7 @@ if [ $PLATFORM != win32 ]; then
 
 
     ngx_feature="/dev/poll"
-    ngx_feature_name="devpoll"
+    ngx_feature_name="NGX_HAVE_DEVPOLL"
     ngx_feature_run=no
     ngx_feature_incs="#include <sys/devpoll.h>"
     ngx_feature_libs=
@@ -65,7 +65,6 @@ if [ $PLATFORM != win32 ]; then
     . auto/feature
 
     if [ $ngx_found = yes ]; then
-        have=HAVE_DEVPOLL . auto/have
         CORE_SRCS="$CORE_SRCS $DEVPOLL_SRCS"
         EVENT_MODULES="$EVENT_MODULES $DEVPOLL_MODULE"
         EVENT_FOUND=YES
@@ -74,7 +73,7 @@ if [ $PLATFORM != win32 ]; then
 
     if test -z "$NGX_KQUEUE_CHECKED"; then
         ngx_feature="kqueue"
-        ngx_feature_name="kqueue"
+        ngx_feature_name="NGX_HAVE_KQUEUE"
         ngx_feature_run=no
         ngx_feature_incs="#include <sys/event.h>"
         ngx_feature_libs=
@@ -83,14 +82,13 @@ if [ $PLATFORM != win32 ]; then
 
         if [ $ngx_found = yes ]; then
 
-            have=HAVE_KQUEUE . auto/have
-            have=HAVE_CLEAR_EVENT . auto/have
+            have=NGX_HAVE_CLEAR_EVENT . auto/have
             EVENT_MODULES="$EVENT_MODULES $KQUEUE_MODULE"
             CORE_SRCS="$CORE_SRCS $KQUEUE_SRCS"
             EVENT_FOUND=YES
 
             ngx_feature="kqueue's NOTE_LOWAT"
-            ngx_feature_name="HAVE_LOWAT_EVENT"
+            ngx_feature_name="NGX_HAVE_LOWAT_EVENT"
             ngx_feature_run=no
             ngx_feature_incs="#include <sys/event.h>"
             ngx_feature_libs=
index ba2e188057da3882569fe6ae4b83a905724e75fe..e35b933af79707383f7f4d8a6e11a81b7875561a 100644 (file)
@@ -45,7 +45,7 @@ fi
 if [ $osreldate -gt 300007 ]; then
     echo " + using sendfile()"
 
-    have=HAVE_SENDFILE . auto/have
+    have=NGX_HAVE_SENDFILE . auto/have
     CORE_SRCS="$CORE_SRCS $FREEBSD_SENDFILE_SRCS"
 fi
 
@@ -57,8 +57,8 @@ if [ \( $osreldate -lt 500000 -a $osreldate -ge 410000 \) \
 then
     echo " + using kqueue"
 
-    have=HAVE_KQUEUE . auto/have
-    have=HAVE_CLEAR_EVENT . auto/have
+    have=NGX_HAVE_KQUEUE . auto/have
+    have=NGX_HAVE_CLEAR_EVENT . auto/have
     EVENT_MODULES="$EVENT_MODULES $KQUEUE_MODULE"
     CORE_SRCS="$CORE_SRCS $KQUEUE_SRCS"
     EVENT_FOUND=YES
@@ -73,7 +73,7 @@ if [ \( $version -lt 500000 -a $version -ge 430000 \) \
      -o $version -ge 500018 ]
 then
     echo " + using kqueue's NOTE_LOWAT"
-    have=HAVE_LOWAT_EVENT . auto/have
+    have=NGX_HAVE_LOWAT_EVENT . auto/have
 fi
 
 
@@ -85,7 +85,7 @@ if [ $USE_THREADS = "rfork" ]; then
 #
 #    if [ $version -gt 460101 ]; then
 #        echo " + kqueue's EVFILT_SIGNAL is safe"
-#        have=HAVE_SAFE_EVFILT_SIGNAL . auto/have
+#        have=NGX_HAVE_SAFE_EVFILT_SIGNAL . auto/have
 #    else
 #        echo "$0: error: the kqueue's EVFILT_SIGNAL is unsafe on this"
 #        echo "FreeBSD version, so --with-threads=rfork could not be used"
@@ -100,7 +100,7 @@ if [ $EVENT_AIO = YES ]; then
     if [ \( $version -lt 500000 -a $version -ge 430000 \) \
          -o $version -ge 500014 ]
     then
-        have=HAVE_AIO . auto/have
+        have=NGX_HAVE_AIO . auto/have
         EVENT_MODULES="$EVENT_MODULES $AIO_MODULE"
         CORE_SRCS="$CORE_SRCS $AIO_SRCS"
     else
index e4cbd6d03dc667eb1c1b54beed61c2609002b136..687377b6e365ebb1ff7cbe3ce1de5ab3716c61bd 100644 (file)
@@ -37,7 +37,8 @@ version=`grep "#define LINUX_VERSION_CODE" /usr/include/linux/version.h \
 
 if [ $version -ge 131609 -o $EVENT_RTSIG = YES ]; then
     echo " + using rt signals"
-    have=HAVE_RTSIG . auto/have
+    have=NGX_HAVE_RTSIG . auto/have
+    have=NGX_HAVE_POLL . auto/have
     EVENT_MODULES="$EVENT_MODULES $RTSIG_MODULE"
     CORE_SRCS="$CORE_SRCS $RTSIG_SRCS"
     EVENT_FOUND=YES
@@ -47,7 +48,7 @@ fi
 # epoll, EPOLLET version
 
 ngx_feature="epoll"
-ngx_feature_name="epoll"
+ngx_feature_name="NGX_HAVE_EPOLL"
 ngx_feature_run=no
 ngx_feature_incs="#include <sys/epoll.h>"
 ngx_feature_libs=
@@ -60,8 +61,7 @@ ngx_feature_test="int efd = 0, fd = 1, n;
 . auto/feature
 
 if [ $ngx_found = yes ]; then
-    have=HAVE_EPOLL . auto/have
-    have=HAVE_CLEAR_EVENT . auto/have
+    have=NGX_HAVE_CLEAR_EVENT . auto/have
     CORE_SRCS="$CORE_SRCS $EPOLL_SRCS"
     EVENT_MODULES="$EVENT_MODULES $EPOLL_MODULE"
     EVENT_FOUND=YES
@@ -72,7 +72,7 @@ fi
 
 CC_AUX_FLAGS="-D_GNU_SOURCE"
 ngx_feature="sendfile()"
-ngx_feature_name="sendfile"
+ngx_feature_name="NGX_HAVE_SENDFILE"
 ngx_feature_run=no
 ngx_feature_incs="#include <sys/sendfile.h>"
 ngx_feature_libs=
@@ -90,7 +90,7 @@ fi
 
 CC_AUX_FLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
 ngx_feature="sendfile64()"
-ngx_feature_name="HAVE_SENDFILE64"
+ngx_feature_name="NGX_HAVE_SENDFILE64"
 ngx_feature_run=no
 ngx_feature_incs="#include <sys/sendfile.h>"
 ngx_feature_libs=
@@ -105,7 +105,7 @@ ngx_include="sys/prctl.h"; . auto/include
 # prctl(PR_SET_DUMPABLE)
 
 ngx_feature="prctl(PR_SET_DUMPABLE)"
-ngx_feature_name="HAVE_PR_SET_DUMPABLE"
+ngx_feature_name="NGX_HAVE_PR_SET_DUMPABLE"
 ngx_feature_run=yes
 ngx_feature_incs="#include <sys/prctl.h>"
 ngx_feature_libs=
index 62708cd1070de2b71ce04a67c27fb9e8caa66567..723ad84c3b2d14f88bdac3f6e8c36d020eefa9b5 100644 (file)
@@ -23,7 +23,7 @@ ngx_spacer=
 CC_AUX_FLAGS="-D_FILE_OFFSET_BITS=64 -lrt"
 
 
-case $PLATFORM in
+case $NGX_PLATFORM in
 
     *:sun4u)
         # "-mcpu=v9" enables the "casa" assembler instruction
@@ -43,7 +43,7 @@ fi
 
 
 ngx_feature="sendfilev()"
-ngx_feature_name="sendfile"
+ngx_feature_name="NGX_HAVE_SENDFILE"
 ngx_feature_run=no
 ngx_feature_incs="#include <sys/sendfile.h>"
 ngx_feature_libs="-lsendfile"
@@ -54,7 +54,6 @@ ngx_feature_test="int fd = 1; sendfilevec_t vec[1];
 
 
 if [ $ngx_found = yes ]; then
-    have=HAVE_SENDFILE . auto/have
     CORE_SRCS="$CORE_SRCS $SOLARIS_SENDFILEV_SRCS"
     CORE_LIBS="$CORE_LIBS -lsendfile"
 fi
index dfbb246c8aa3ca1a096dd6d6b4064d1a223fb893..5567535c25e4e00e07e064c904f05162f789a1d8 100644 (file)
@@ -26,5 +26,5 @@ if [ $EVENT_SELECT = NO ]; then
     EVENT_MODULES="$EVENT_MODULES $SELECT_MODULE"
 fi
 
-have=HAVE_AIO . auto/have
-have=HAVE_IOCP . auto/have
+have=NGX_HAVE_AIO . auto/have
+have=NGX_HAVE_IOCP . auto/have
index b8fb81d8db89aade37b00b850650d74503ead57b..39a159983d0ae581a1e4dd5bf8a43e08652c1758 100644 (file)
@@ -95,14 +95,14 @@ END
 fi
 
 
-echo "  nginx path prefix: $PREFIX"
-echo "  nginx binary file: $SBIN_PATH"
-echo "  nginx configuration file: $CONF_PATH"
-echo "  nginx pid file: $PID_PATH"
-if [ ".$ERROR_LOG_PATH" != "." ]; then
-    echo "  nginx error log file: $ERROR_LOG_PATH"
+echo "  nginx path prefix: $NGX_PREFIX"
+echo "  nginx binary file: $NGX_SBIN_PATH"
+echo "  nginx configuration file: $NGX_CONF_PATH"
+echo "  nginx pid file: $NGX_PID_PATH"
+if test -n "$NGX_ERROR_LOG_PATH"; then
+    echo "  nginx error log file: $NGX_ERROR_LOG_PATH"
 else
     echo "  nginx logs errors to stderr"
 fi
-echo "  nginx http access log file: $HTTP_LOG_PATH"
+echo "  nginx http access log file: $NGX_HTTP_LOG_PATH"
 echo
index a12eed3344dab4e8b077db01c1324c5f8d589c20..da030369afbccfbcfc09155d0ab9cdb5282d644e 100644 (file)
@@ -9,7 +9,7 @@ case $USE_THREADS in
         CORE_DEPS="$CORE_DEPS $FREEBSD_RFORK_DEPS"
         CORE_SRCS="$CORE_SRCS $FREEBSD_RFORK_SRCS"
 
-        case $PLATFORM in
+        case $NGX_PLATFORM in
             *:i386)
                 if [ \( $version -gt 500000 -a $version -lt 501000 \) \
                      -o $version -lt 491000 ]
@@ -42,7 +42,7 @@ case $USE_THREADS in
     ;;
 
     libc_r)
-        case $PLATFORM in
+        case $NGX_PLATFORM in
             FreeBSD:[34]*)
                 have=NGX_THREADS . auto/have
                 CFLAGS="$CFLAGS -pthread"
index f0e7f2e9db3e1046ee26a833b7339db1f5f32057..7cd1dfe7191c9de21afaaed464d15a8829592cbe 100755 (executable)
--- a/auto/unix
+++ b/auto/unix
@@ -74,7 +74,7 @@ ngx_param=TIME_T_LEN; ngx_value=$ngx_max_len; . auto/types/value
 
 
 ngx_feature="setproctitle()"
-ngx_feature_name="HAVE_SETPROCTITLE"
+ngx_feature_name="NGX_HAVE_SETPROCTITLE"
 ngx_feature_run=no
 ngx_feature_incs=
 ngx_feature_libs=
@@ -83,7 +83,7 @@ ngx_feature_test="setproctitle(\"test\");"
 
 
 ngx_feature="pread()"
-ngx_feature_name="pread"
+ngx_feature_name="NGX_HAVE_PREAD"
 ngx_feature_run=no
 ngx_feature_incs=
 ngx_feature_libs=
@@ -92,7 +92,7 @@ ngx_feature_test="char buf[1]; ssize_t n; n = pread(0, buf, 1, 0)"
 
 
 ngx_feature="pwrite()"
-ngx_feature_name="pwrite"
+ngx_feature_name="NGX_HAVE_PWRITE"
 ngx_feature_run=no
 ngx_feature_incs=
 ngx_feature_libs=
@@ -101,7 +101,7 @@ ngx_feature_test="char buf[1]; ssize_t n; n = pwrite(1, buf, 1, 0)"
 
 
 ngx_feature="strerror_r()"
-ngx_feature_name="strerror_r"
+ngx_feature_name="NGX_HAVE_STRERROR_R"
 ngx_feature_run=yes
 ngx_feature_incs="#include <string.h>"
 ngx_feature_libs=
@@ -113,7 +113,7 @@ ngx_feature_test="char buf[32]; int n; n = strerror_r(1, buf, 32);
 # GNU style strerror_r() returns not length, but pointer
 
 ngx_feature="gnu style strerror_r()"
-ngx_feature_name="gnu_strerror_r"
+ngx_feature_name="NGX_HAVE_GNU_STRERROR_R"
 ngx_feature_run=yes
 ngx_feature_incs="#include <string.h>"
 ngx_feature_libs=
@@ -123,7 +123,7 @@ ngx_feature_test="char buf[32]; int n; n = strerror_r(1, buf, 32);
 
 
 ngx_feature="localtime_r()"
-ngx_feature_name="localtime_r"
+ngx_feature_name="NGX_HAVE_LOCALTIME_R"
 ngx_feature_run=no
 ngx_feature_incs="#include <time.h>"
 ngx_feature_libs=
@@ -132,7 +132,7 @@ ngx_feature_test="struct tm t; time_t c=0; localtime_r(&c, &t)"
 
 
 ngx_feature="posix_memalign()"
-ngx_feature_name="posix_memalign"
+ngx_feature_name="NGX_HAVE_POSIX_MEMALIGN"
 ngx_feature_run=no
 ngx_feature_incs="#include <stdlib.h>"
 ngx_feature_libs=
@@ -141,7 +141,7 @@ ngx_feature_test="void *p; int n; n = posix_memalign(&p, 4096, 4096)"
 
 
 ngx_feature="memalign()"
-ngx_feature_name="memalign"
+ngx_feature_name="NGX_HAVE_MEMALIGN"
 ngx_feature_run=no
 ngx_feature_incs="#include <stdlib.h>"
 ngx_feature_libs=
@@ -150,7 +150,7 @@ ngx_feature_test="void *p; p = memalign(4096, 4096)"
 
 
 ngx_feature="sched_yield()"
-ngx_feature_name="HAVE_SCHED_YIELD"
+ngx_feature_name="NGX_HAVE_SCHED_YIELD"
 ngx_feature_run=no
 ngx_feature_incs="#include <sched.h>"
 ngx_feature_libs=
@@ -159,7 +159,7 @@ ngx_feature_test="sched_yield()"
 
 
 ngx_feature="mmap(MAP_ANON|MAP_SHARED)"
-ngx_feature_name="MAP_ANON"
+ngx_feature_name="NGX_HAVE_MAP_ANON"
 ngx_feature_run=yes
 ngx_feature_incs="#include <sys/mman.h>"
 ngx_feature_libs=
@@ -171,7 +171,7 @@ ngx_feature_test="void *p;
 
 
 ngx_feature='mmap("/dev/zero", MAP_SHARED)'
-ngx_feature_name="MAP_DEVZERO"
+ngx_feature_name="NGX_HAVE_MAP_DEVZERO"
 ngx_feature_run=yes
 ngx_feature_incs="#include <sys/mman.h>
 #include <sys/stat.h>
@@ -185,7 +185,7 @@ ngx_feature_test='void *p; int  fd;
 
 
 ngx_feature="System V shared memory"
-ngx_feature_name="SYSVSHM"
+ngx_feature_name="NGX_HAVE_SYSVSHM"
 ngx_feature_run=yes
 ngx_feature_incs="#include <sys/ipc.h>
 #include <sys/shm.h>"
@@ -198,7 +198,7 @@ ngx_feature_test="int  id;
 
 
 ngx_feature="struct msghdr.msg_control"
-ngx_feature_name="msghdr_msg_control"
+ngx_feature_name="NGX_HAVE_MSGHDR_MSG_CONTROL"
 ngx_feature_run=no
 ngx_feature_incs="#include <sys/socket.h>"
 ngx_feature_libs=
@@ -207,7 +207,7 @@ ngx_feature_test="struct msghdr  msg; msg.msg_control = NULL"
 
 
 ngx_feature="ioctl(FIONBIO)"
-ngx_feature_name="FIONBIO"
+ngx_feature_name="NGX_HAVE_FIONBIO"
 ngx_feature_run=no
 ngx_feature_incs="#include <sys/ioctl.h>
 $NGX_INCLUDE_SYS_FILIO_H"
@@ -217,7 +217,7 @@ ngx_feature_test="int i; i = FIONBIO"
 
 
 ngx_feature="struct tm.tm_gmtoff"
-ngx_feature_name="gmtoff"
+ngx_feature_name="NGX_HAVE_GMTOFF"
 ngx_feature_run=no
 ngx_feature_incs="#include <time.h>"
 ngx_feature_libs=
index 43fda8804e72f22de8a28cccddfa2c48f9ddedc9..f460dbbacfa7c2aab32a4fbd0c2aadc84d89089a 100644 (file)
@@ -6,6 +6,54 @@
             title="nginx">
 
 
+<changes ver="0.1.9" date="25.11.2004">
+
+<change type="bugfix">
+<para lang="ru">
+ÅÓÌÉ × ÚÁÐÒÏÓÅ ÅÓÔØ "//", "/./", "/../" ÉÌÉ "%XX", ÔÏ ÐÒÏËÓÉÒÕÅÍÙÊ
+ÚÁÐÒÏÓ ÐÅÒÅÄÁ×ÁÌÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÏ×.
+</para>
+<para lang="en">
+the proxied request was sent without arguments if the request contains
+"//", "/./", "/../" or "%XX".
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+ÐÒÉ ÓÖÁÔÉÉ ÂÏÌØÛÉÈ ÏÔ×ÅÔÏ× ÉÎÏÇÄÁ ÏÎÉ ÐÅÒÅÄÁ×ÁÌÉÓØ ÎÅ ÐÏÌÎÏÓÔØÀ.
+</para>
+<para lang="en">
+the large compressed responses may be transferred not completely.
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+ÎÅ ÐÅÒÅÄÁ×ÁÌÉÓØ ÆÁÊÌÙ ÂÏÌØÛÅ 2G ÎÁ Linux, ÎÅÐÏÄÄÅÒÖÉ×ÁÀÝÅÍ sendfile64().
+</para>
+<para lang="en">
+the files bigger than 2G was not transferred on Linux that does not support
+sendfile64().
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+ÎÁ Linux ÐÒÉ ËÏÎÆÉÇÕÒÁÃÉÉ ÓÂÏÒËÉ ÎÕÖÎÏ ÂÙÌÏ ÏÂÑÚÁÔÅÌØÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ
+ÐÁÒÁÍÅÔÒ --with-poll_module;
+ÏÛÉÂËÁ ÐÏÑ×ÉÌÁÓØ × 0.1.8.
+</para>
+<para lang="en">
+while the build configuration on Linux the --with-poll_module parameter
+was required;
+bug appeared in 0.1.8.
+</para>
+</change>
+
+</changes>
+
+
 <changes ver="0.1.8" date="20.11.2004">
 
 <change type="bugfix">
index 53ac666cd37e192d336fe60655efd09b8027c061..887fc79973498566af2d18b62c8a66796e329016 100644 (file)
@@ -112,7 +112,7 @@ ngx_uint_t  ngx_max_module;
 
 
 
-int main(int argc, char *const *argv, char *const *envp)
+int main(int argc, char *const *argv)
 {
     ngx_int_t         i;
     ngx_log_t        *log;
index 5f2339b6fac7fb4912c873a44c1cead100df5c2c..d737d6b6357a053451a08282f342f4cb0f262b0e 100644 (file)
@@ -8,7 +8,7 @@
 #define _NGINX_H_INCLUDED_
 
 
-#define NGINX_VER          "nginx/0.1.8"
+#define NGINX_VER          "nginx/0.1.9"
 
 #define NGINX_VAR          "NGINX"
 #define NGX_NEWPID_EXT     ".newbin"
index 7d379890fc8ffcd642dba874a0328967226751a5..dedf4444e7fa3cf80f077d19e7525e4f0b758e67 100644 (file)
@@ -140,7 +140,7 @@ void ngx_chain_update_chains(ngx_chain_t **free, ngx_chain_t **busy,
             break;
         }
 
-#if (HAVE_WRITE_ZEROCOPY)
+#if (NGX_HAVE_WRITE_ZEROCOPY)
         if ((*busy)->buf->zerocopy_busy) {
             break;
         }
index 43fd985a208d17698d83a1ecf41ac8328ff61e52..916b1b514b30d2e7fb558abf92a562665e2db983 100644 (file)
 #include <ngx_auto_headers.h>
 
 
+#if ((__GNU__ == 2) && (__GNUC_MINOR__ < 8))
+#define NGX_MAX_UINT32_VALUE  0xffffffffLL
+#else
+#define NGX_MAX_UINT32_VALUE  0xffffffff
+#endif
+
+
 #if defined __DragonFly__ && !defined __FreeBSD__
 #define __FreeBSD__        4
 #define __FreeBSD_version  480101
@@ -127,12 +134,5 @@ typedef long               ngx_flag_t;
 #define NGX_MAXHOSTNAMELEN MAXHOSTNAMELEN
 */
 
-#if ((__GNU__ == 2) && (__GNUC_MINOR__ < 8))
-#define NGX_MAX_UINT32_VALUE  0xffffffffLL
-#else
-#define NGX_MAX_UINT32_VALUE  0xffffffff
-#endif
-
-
 
 #endif /* _NGX_CONFIG_H_INCLUDED_ */
index e2257ac6cfdac8551e820dd274bdd36e77152031..40f19a8d85da2893acd3fd041936f4df5b041916 100644 (file)
@@ -48,7 +48,7 @@ typedef struct {
     unsigned          nonblocking_accept:1;
     unsigned          nonblocking:1;
     unsigned          shared:1;    /* shared between threads or processes */
-#if (HAVE_DEFERRED_ACCEPT)
+#if (NGX_HAVE_DEFERRED_ACCEPT)
     unsigned          deferred_accept:1;
 #endif
 
@@ -101,7 +101,7 @@ struct ngx_connection_s {
     ngx_ssl_t          *ssl;
 #endif
 
-#if (HAVE_IOCP)
+#if (NGX_HAVE_IOCP)
     struct sockaddr    *local_sockaddr;
     socklen_t           local_socklen;
 #endif
@@ -122,7 +122,7 @@ struct ngx_connection_s {
     unsigned            tcp_nodelay:1;
     signed              tcp_nopush:2;
 
-#if (HAVE_IOCP)
+#if (NGX_HAVE_IOCP)
     unsigned            accept_context_updated:1;
 #endif
 
index d2fbf12fb06382c3179eba84dd3c7d9c67c33102..1c367ccad5848e81a982e62ec61ac07752b3d512 100644 (file)
@@ -9,11 +9,18 @@
 #include <ngx_event.h>
 
 
-#define NGX_NONE      1
+#if 0
+#define NGX_SENDFILE_LIMIT  4096
+#endif
+
+
+#define NGX_NONE            1
 
 
 static ngx_inline ngx_int_t
     ngx_output_chain_need_to_copy(ngx_output_chain_ctx_t *ctx, ngx_buf_t *buf);
+static ngx_int_t ngx_output_chain_add_copy(ngx_pool_t *pool,
+                                          ngx_chain_t **chain, ngx_chain_t *in);
 static ngx_int_t ngx_output_chain_copy_buf(ngx_buf_t *dst, ngx_buf_t *src,
                                            ngx_uint_t sendfile);
 
@@ -26,17 +33,20 @@ ngx_int_t ngx_output_chain(ngx_output_chain_ctx_t *ctx, ngx_chain_t *in)
 
     if (ctx->in == NULL && ctx->busy == NULL) {
 
-       /*
-        * the short path for the case when the ctx->in and ctx->busy chains
-        * are empty, the incoming chain is empty too or has the single buf
-        * that does not require the copy
-        */
+        /*
+         * the short path for the case when the ctx->in and ctx->busy chains
+         * are empty, the incoming chain is empty too or has the single buf
+         * that does not require the copy
+         */
 
         if (in == NULL) {
             return ctx->output_filter(ctx->filter_ctx, in);
         }
 
         if (in->next == NULL
+#if (NGX_SENDFILE_LIMIT)
+            && !(in->buf->in_file && in->buf->file_last > NGX_SENDFILE_LIMIT)
+#endif
             && (!ngx_output_chain_need_to_copy(ctx, in->buf)))
         {
             return ctx->output_filter(ctx->filter_ctx, in);
@@ -46,7 +56,7 @@ ngx_int_t ngx_output_chain(ngx_output_chain_ctx_t *ctx, ngx_chain_t *in)
     /* add the incoming buf to the chain ctx->in */
 
     if (in) {
-        if (ngx_chain_add_copy(ctx->pool, &ctx->in, in) == NGX_ERROR) {
+        if (ngx_output_chain_add_copy(ctx->pool, &ctx->in, in) == NGX_ERROR) {
             return NGX_ERROR;
         }
     }
@@ -191,11 +201,23 @@ ngx_int_t ngx_output_chain(ngx_output_chain_ctx_t *ctx, ngx_chain_t *in)
 static ngx_inline ngx_int_t
     ngx_output_chain_need_to_copy(ngx_output_chain_ctx_t *ctx, ngx_buf_t *buf)
 {
+    ngx_uint_t  sendfile;
+
     if (ngx_buf_special(buf)) {
         return 0;
     }
 
-    if (!ctx->sendfile) {
+    sendfile = ctx->sendfile;
+
+#if (NGX_SENDFILE_LIMIT)
+
+    if (buf->in_file && buf->file_pos >= NGX_SENDFILE_LIMIT) {
+        sendfile = 0;
+    }
+
+#endif
+
+    if (!sendfile) {
 
         if (!ngx_buf_in_memory(buf)) {
             return 1;
@@ -216,6 +238,71 @@ static ngx_inline ngx_int_t
 }
 
 
+static ngx_int_t ngx_output_chain_add_copy(ngx_pool_t *pool,
+                                           ngx_chain_t **chain, ngx_chain_t *in)
+{
+    ngx_chain_t  *cl, **ll;
+#if (NGX_SENDFILE_LIMIT)
+    ngx_buf_t    *b, *buf;
+#endif
+
+    ll = chain;
+
+    for (cl = *chain; cl; cl = cl->next) {
+        ll = &cl->next;
+    }
+
+    while (in) {
+
+        if (!(cl = ngx_alloc_chain_link(pool))) {
+            return NGX_ERROR;
+        }
+
+#if (NGX_SENDFILE_LIMIT)
+
+        buf = in->buf;
+
+        if (buf->in_file
+            && buf->file_pos < NGX_SENDFILE_LIMIT
+            && buf->file_last > NGX_SENDFILE_LIMIT)
+        {
+            if (!(b = ngx_calloc_buf(pool))) {
+                return NGX_ERROR;
+            }
+
+            ngx_memcpy(b, buf, sizeof(ngx_buf_t));
+
+            if (ngx_buf_in_memory(buf)) {
+                buf->pos += (ssize_t) (NGX_SENDFILE_LIMIT - buf->file_pos);
+                b->last = buf->pos;
+            }
+
+            buf->file_pos = NGX_SENDFILE_LIMIT;
+            b->file_last = NGX_SENDFILE_LIMIT;
+
+            cl->buf = b;
+
+        } else {
+            cl->buf = buf;
+            in = in->next;
+        }
+
+#else
+        cl->buf = in->buf;
+        in = in->next;
+
+#endif
+
+        *ll = cl;
+        ll = &cl->next;
+    }
+
+    *ll = NULL;
+
+    return NGX_OK;
+}
+
+
 static ngx_int_t ngx_output_chain_copy_buf(ngx_buf_t *dst, ngx_buf_t *src,
                                            ngx_uint_t sendfile)
 {
@@ -228,6 +315,14 @@ static ngx_int_t ngx_output_chain_copy_buf(ngx_buf_t *dst, ngx_buf_t *src,
         size = dst->end - dst->pos;
     }
 
+#if (NGX_SENDFILE_LIMIT)
+
+    if (src->in_file && src->file_pos >= NGX_SENDFILE_LIMIT) {
+        sendfile = 0;
+    }
+
+#endif
+
     if (ngx_buf_in_memory(src)) {
         ngx_memcpy(dst->pos, src->pos, size);
         src->pos += size;
index f06d644769c87cb85938dd34c7ac75a82ec75412..5ca235ccfb54b9af141a3a7d1d5237a8a3455028 100644 (file)
@@ -162,12 +162,12 @@ void ngx_time_update(time_t s)
     ngx_cached_http_time.data = p;
 
 
-#if (HAVE_GETTIMEZONE)
+#if (NGX_HAVE_GETTIMEZONE)
 
     ngx_gmtoff = ngx_gettimezone();
     ngx_gmtime(s + ngx_gmtoff * 60, &tm);
 
-#elif (HAVE_GMTOFF)
+#elif (NGX_HAVE_GMTOFF)
 
     ngx_localtime(&tm);
     ngx_gmtoff = tm.ngx_tm_gmtoff / 60;
index 398c5710220a7898bd02a330ba7f5a4993af9734..bdd31cf9ceea27cd7ab2a45bc63db0ccf953bed9 100644 (file)
@@ -9,7 +9,7 @@
 #include <ngx_event.h>
 #include <ngx_aio.h>
 
-#if (HAVE_KQUEUE)
+#if (NGX_HAVE_KQUEUE)
 #include <ngx_kqueue_module.h>
 #endif
 
@@ -27,7 +27,7 @@ ngx_os_io_t ngx_os_aio = {
     ngx_aio_read_chain,
     ngx_aio_write,
     ngx_aio_write_chain,
-    NGX_HAVE_ZEROCOPY
+    0
 };
 
 
@@ -64,7 +64,7 @@ ngx_module_t  ngx_aio_module = {
 
 
 
-#if (HAVE_KQUEUE)
+#if (NGX_HAVE_KQUEUE)
 
 static int ngx_aio_init(ngx_cycle_t *cycle)
 {
@@ -152,7 +152,7 @@ static int ngx_aio_process_events(ngx_cycle_t *cycle)
     return ngx_kqueue_module_ctx.actions.process_events(cycle);
 }
 
-#endif /* HAVE_KQUEUE */
+#endif /* NGX_HAVE_KQUEUE */
 
 
 #if 0
index 663e2bfef655a2341b463ea0fb9d553fb758bae9..1a48ceccf0eb52b75bdfd9b543c8e103ac703c2b 100644 (file)
@@ -9,7 +9,7 @@
 #include <ngx_event.h>
 
 
-#if (TEST_BUILD_DEVPOLL)
+#if (NGX_TEST_BUILD_DEVPOLL)
 
 /* Solaris declarations */
 
index 8096932ec712aca70aa5b4a98c0b30cc63829b4e..a2eeab08d32afae162fc00684dccd54fa316fc61 100644 (file)
@@ -9,7 +9,7 @@
 #include <ngx_event.h>
 
 
-#if (TEST_BUILD_EPOLL)
+#if (NGX_TEST_BUILD_EPOLL)
 
 /* epoll declarations */
 
@@ -168,7 +168,7 @@ static int ngx_epoll_init(ngx_cycle_t *cycle)
 
     ngx_event_actions = ngx_epoll_module_ctx.actions;
 
-#if (HAVE_CLEAR_EVENT)
+#if (NGX_HAVE_CLEAR_EVENT)
     ngx_event_flags = NGX_USE_CLEAR_EVENT
 #else
     ngx_event_flags = NGX_USE_LEVEL_EVENT
index e0fae6f939957a0780b18017e1993e1ecf3d381d..49c22a9826c04b15f8a0bb5f91e7183f6bab73e9 100644 (file)
@@ -189,7 +189,7 @@ static ngx_int_t ngx_kqueue_init(ngx_cycle_t *cycle)
     ngx_event_actions = ngx_kqueue_module_ctx.actions;
 
     ngx_event_flags = NGX_USE_ONESHOT_EVENT
-#if (HAVE_CLEAR_EVENT)
+#if (NGX_HAVE_CLEAR_EVENT)
                      |NGX_USE_CLEAR_EVENT
 #else
                      |NGX_USE_LEVEL_EVENT
index 3c0ea95113582f2ff4b36d42f6cf5077084fc89b..d017f05bdf21f14e2f1d81409dbf51c6d2777daf 100644 (file)
@@ -9,7 +9,7 @@
 #include <ngx_event.h>
 
 
-#if (TEST_BUILD_RTSIG)
+#if (NGX_TEST_BUILD_RTSIG)
 
 #define F_SETSIG       10
 #define SIGRTMIN       33
@@ -217,7 +217,7 @@ static ngx_int_t ngx_rtsig_add_connection(ngx_connection_t *c)
         return NGX_ERROR;
     }
 
-#if (HAVE_ONESIGFD)
+#if (NGX_HAVE_ONESIGFD)
     if (fcntl(c->fd, F_SETAUXFL, O_ONESIGFD) == -1) {
         ngx_log_error(NGX_LOG_ALERT, c->log, ngx_errno,
                       "fcntl(F_SETAUXFL) failed");
index 14e6f81a3f4103e6e3d9b4b7f8ce847c695cf9ea..0554ee95f9f61d5561a1dc90256db27817a811ea 100644 (file)
@@ -258,7 +258,7 @@ static ngx_int_t ngx_select_process_events(ngx_cycle_t *cycle)
     ngx_connection_t         *c;
     ngx_epoch_msec_t          delta;
     struct timeval            tv, *tp;
-#if (HAVE_SELECT_CHANGE_TIMEOUT)
+#if (NGX_HAVE_SELECT_CHANGE_TIMEOUT)
     static ngx_epoch_msec_t   deltas = 0;
 #endif
 
@@ -362,7 +362,7 @@ static ngx_int_t ngx_select_process_events(ngx_cycle_t *cycle)
         err = 0;
     }
 
-#if (HAVE_SELECT_CHANGE_TIMEOUT)
+#if (NGX_HAVE_SELECT_CHANGE_TIMEOUT)
 
     if (timer != NGX_TIMER_INFINITE) {
         delta = timer - (tv.tv_sec * 1000 + tv.tv_usec / 1000);
@@ -403,7 +403,7 @@ static ngx_int_t ngx_select_process_events(ngx_cycle_t *cycle)
         }
     }
 
-#else /* !(HAVE_SELECT_CHANGE_TIMEOUT) */
+#else /* !(NGX_HAVE_SELECT_CHANGE_TIMEOUT) */
 
     ngx_gettimeofday(&tv);
     ngx_time_update(tv.tv_sec);
@@ -427,7 +427,7 @@ static ngx_int_t ngx_select_process_events(ngx_cycle_t *cycle)
         }
     }
 
-#endif /* HAVE_SELECT_CHANGE_TIMEOUT */
+#endif /* NGX_HAVE_SELECT_CHANGE_TIMEOUT */
 
     ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
                    "select ready %d", ready);
index b3bf530a3befad0247aba5e79cbdc474cc648998..bd451bc652b253137d6a0728da04c39fe9e2439b 100644 (file)
@@ -371,7 +371,7 @@ static ngx_int_t ngx_event_process_init(ngx_cycle_t *cycle)
 
         rev->accept = 1;
 
-#if (HAVE_DEFERRED_ACCEPT)
+#if (NGX_HAVE_DEFERRED_ACCEPT)
         rev->deferred_accept = s[i].deferred_accept;
 #endif
 
@@ -719,7 +719,7 @@ static char *ngx_event_init_conf(ngx_cycle_t *cycle, void *conf)
     rtsig = 0;
     fd = 0;
 
-#if (HAVE_EPOLL) && !(TEST_BUILD_EPOLL)
+#if (NGX_HAVE_EPOLL) && !(NGX_TEST_BUILD_EPOLL)
 
     fd = epoll_create(100);
 
@@ -735,7 +735,7 @@ static char *ngx_event_init_conf(ngx_cycle_t *cycle, void *conf)
 
 #endif
 
-#if (HAVE_RTSIG)
+#if (NGX_HAVE_RTSIG)
 
     if (module == NULL) {
         connections = DEFAULT_CONNECTIONS;
@@ -745,21 +745,21 @@ static char *ngx_event_init_conf(ngx_cycle_t *cycle, void *conf)
 
 #endif
 
-#if (HAVE_DEVPOLL)
+#if (NGX_HAVE_DEVPOLL)
 
     connections = DEFAULT_CONNECTIONS;
     module = &ngx_devpoll_module;
 
 #endif
 
-#if (HAVE_KQUEUE)
+#if (NGX_HAVE_KQUEUE)
 
     connections = DEFAULT_CONNECTIONS;
     module = &ngx_kqueue_module;
 
 #endif
 
-#if (HAVE_SELECT)
+#if (NGX_HAVE_SELECT)
 
     if (module == NULL) {
 
index 44728e38122ccc4a7f487222cd7a63ee8ada5f17..d156a639390c035e8b2b23e5f2c83e6b66e7cc49 100644 (file)
@@ -15,7 +15,7 @@
 #define NGX_INVALID_INDEX  0xd0d0d0d0
 
 
-#if (HAVE_IOCP)
+#if (NGX_HAVE_IOCP)
 
 typedef struct {
     WSAOVERLAPPED    ovlp;
@@ -86,7 +86,7 @@ struct ngx_event_s {
     unsigned         accept_context_updated:1;
 #endif
 
-#if (HAVE_KQUEUE)
+#if (NGX_HAVE_KQUEUE)
     unsigned         kq_vnode:1;
 
     /* the pending errno reported by kqueue */
@@ -107,7 +107,7 @@ struct ngx_event_s {
      *   accept:     1 if accept many, 0 otherwise
      */
 
-#if (HAVE_KQUEUE) || (HAVE_IOCP)
+#if (NGX_HAVE_KQUEUE) || (NGX_HAVE_IOCP)
     int              available;
 #else
     unsigned         available:1;
@@ -117,9 +117,9 @@ struct ngx_event_s {
     ngx_event_handler_pt  event_handler;
 
 
-#if (HAVE_AIO)
+#if (NGX_HAVE_AIO)
 
-#if (HAVE_IOCP)
+#if (NGX_HAVE_IOCP)
     ngx_event_ovlp_t ovlp;
 #else
     struct aiocb     aiocb;
@@ -154,12 +154,12 @@ struct ngx_event_s {
     unsigned         posted_timedout:1;
     unsigned         posted_eof:1;
 
-#if (HAVE_KQUEUE)
+#if (NGX_HAVE_KQUEUE)
     /* the pending errno reported by kqueue */
     int              posted_errno;
 #endif
 
-#if (HAVE_KQUEUE) || (HAVE_IOCP)
+#if (NGX_HAVE_KQUEUE) || (NGX_HAVE_IOCP)
     int              posted_available;
 #else
     unsigned         posted_available:1;
@@ -272,7 +272,7 @@ extern ngx_event_actions_t   ngx_event_actions;
 
 /*
  * Need to add socket or handle only once - i/o completion port.
- * It also requires HAVE_AIO and NGX_USE_AIO_EVENT to be set.
+ * It also requires NGX_HAVE_AIO and NGX_USE_AIO_EVENT to be set.
  */
 #define NGX_USE_IOCP_EVENT       0x00000200
 
@@ -296,7 +296,7 @@ extern ngx_event_actions_t   ngx_event_actions;
 #define NGX_VNODE_EVENT    0
 
 
-#if (HAVE_KQUEUE)
+#if (NGX_HAVE_KQUEUE)
 
 #define NGX_READ_EVENT     EVFILT_READ
 #define NGX_WRITE_EVENT    EVFILT_WRITE
@@ -325,7 +325,7 @@ extern ngx_event_actions_t   ngx_event_actions;
 #define NGX_DISABLE_EVENT  EV_DISABLE
 
 
-#elif (HAVE_DEVPOLL)
+#elif (NGX_HAVE_DEVPOLL)
 
 #define NGX_READ_EVENT     POLLIN
 #define NGX_WRITE_EVENT    POLLOUT
@@ -334,7 +334,7 @@ extern ngx_event_actions_t   ngx_event_actions;
 #define NGX_ONESHOT_EVENT  1
 
 
-#elif (HAVE_EPOLL)
+#elif (NGX_HAVE_EPOLL)
 
 #define NGX_READ_EVENT     EPOLLIN
 #define NGX_WRITE_EVENT    EPOLLOUT
@@ -347,7 +347,7 @@ extern ngx_event_actions_t   ngx_event_actions;
 #endif
 
 
-#elif (HAVE_POLL)
+#elif (NGX_HAVE_POLL)
 
 #define NGX_READ_EVENT     POLLIN
 #define NGX_WRITE_EVENT    POLLOUT
@@ -364,10 +364,10 @@ extern ngx_event_actions_t   ngx_event_actions;
 #define NGX_LEVEL_EVENT    0
 #define NGX_ONESHOT_EVENT  1
 
-#endif /* HAVE_KQUEUE */
+#endif /* NGX_HAVE_KQUEUE */
 
 
-#if (HAVE_IOCP)
+#if (NGX_HAVE_IOCP)
 #define NGX_IOCP_ACCEPT      0
 #define NGX_IOCP_IO          1
 #define NGX_IOCP_CONNECT     2
index b5c5b7256267bbd8989872b2c691dcb1b9d0703b..294f3b4cedb3ea79ee81974f85322de066321f79 100644 (file)
@@ -9,7 +9,7 @@
 #include <ngx_event.h>
 
 
-static ngx_int_t ngx_ssl_write(ngx_connection_t *c, u_char *data, size_t size);
+static ssize_t ngx_ssl_write(ngx_connection_t *c, u_char *data, size_t size);
 
 
 ngx_int_t ngx_ssl_init(ngx_log_t *log)
@@ -58,7 +58,7 @@ ngx_int_t ngx_ssl_create_session(ngx_ssl_ctx_t *ssl_ctx, ngx_connection_t *c,
 }
 
 
-ngx_int_t ngx_ssl_recv(ngx_connection_t *c, u_char *buf, size_t size)
+ssize_t ngx_ssl_recv(ngx_connection_t *c, u_char *buf, size_t size)
 {
     int         n, sslerr;
     ngx_err_t   err;
@@ -239,7 +239,7 @@ ngx_chain_t *ngx_ssl_send_chain(ngx_connection_t *c, ngx_chain_t *in,
 }
 
 
-static ngx_int_t ngx_ssl_write(ngx_connection_t *c, u_char *data, size_t size)
+static ssize_t ngx_ssl_write(ngx_connection_t *c, u_char *data, size_t size)
 {
     int         n, sslerr;
     ngx_err_t   err;
index 69d8d12880df4fd05b64decc01bff837b2e9a928..dbdb5f7b32674210985864e280c7e2b4c584c550 100644 (file)
@@ -41,7 +41,7 @@ ngx_int_t ngx_ssl_create_session(ngx_ssl_ctx_t *ctx, ngx_connection_t *c,
 
 #define ngx_ssl_handshake(c)     NGX_OK
 
-ngx_int_t ngx_ssl_recv(ngx_connection_t *c, u_char *buf, size_t size);
+ssize_t ngx_ssl_recv(ngx_connection_t *c, u_char *buf, size_t size);
 ngx_chain_t *ngx_ssl_send_chain(ngx_connection_t *c, ngx_chain_t *in,
                                 off_t limit);
 ngx_int_t ngx_ssl_shutdown(ngx_connection_t *c);
index a2edc7129eb9a6a15f5e66d9bd28c0a46873ef76..3ca8a0cf3bac95290c8e806960401d65c5aff436 100644 (file)
@@ -132,7 +132,7 @@ ngx_int_t ngx_event_pipe_read_upstream(ngx_event_pipe_t *p)
                 p->upstream_eof = 1;
                 p->read = 1;
 
-#if (HAVE_KQUEUE)
+#if (NGX_HAVE_KQUEUE)
                 if (p->upstream->read->kq_errno) {
                     p->upstream->read->error = 1;
                     p->upstream_error = 1;
index aed07faa3e7a046b6cfe39d363423d6b93b1060a..a99a434cb4aa10e22fcce102c64e2f48b259ea60 100644 (file)
@@ -120,7 +120,7 @@ ngx_int_t ngx_event_thread_process_posted(ngx_cycle_t *cycle)
             ev->ready |= ev->posted_ready;
             ev->timedout |= ev->posted_timedout;
             ev->pending_eof |= ev->posted_eof;
-#if (HAVE_KQUEUE)
+#if (NGX_HAVE_KQUEUE)
             ev->kq_errno |= ev->posted_errno;
 #endif
             if (ev->posted_available) {
@@ -130,7 +130,7 @@ ngx_int_t ngx_event_thread_process_posted(ngx_cycle_t *cycle)
             ev->posted_ready = 0;
             ev->posted_timedout = 0;
             ev->posted_eof = 0;
-#if (HAVE_KQUEUE)
+#if (NGX_HAVE_KQUEUE)
             ev->posted_errno = 0;
 #endif
             ev->posted_available = 0;
index f8980af520bf67db29c138c74f2a232653573ca2..b093d582febbff4ff7d22dfca1e42d2e912787b6 100644 (file)
@@ -237,14 +237,14 @@ static ngx_http_log_op_name_t ngx_http_gzip_log_fmt_ops[] = {
 
 static u_char  gzheader[10] = { 0x1f, 0x8b, Z_DEFLATED, 0, 0, 0, 0, 0, 0, 3 };
 
-#if (HAVE_LITTLE_ENDIAN)
+#if (NGX_HAVE_LITTLE_ENDIAN)
 
 struct gztrailer {
     uint32_t  crc32;
     uint32_t  zlen;
 };
 
-#else /* HAVE_BIG_ENDIAN */
+#else /* NGX_HAVE_BIG_ENDIAN */
 
 struct gztrailer {
     u_char  crc32[4];
@@ -437,7 +437,8 @@ static ngx_int_t ngx_http_gzip_proxied(ngx_http_request_t *r,
 static ngx_int_t ngx_http_gzip_body_filter(ngx_http_request_t *r,
                                            ngx_chain_t *in)
 {
-    int                    rc, wbits, memlevel, last;
+    int                    rc, wbits, memlevel;
+    ngx_int_t              last;
     struct gztrailer      *trailer;
     ngx_buf_t             *b;
     ngx_chain_t           *cl;
@@ -469,7 +470,7 @@ static ngx_int_t ngx_http_gzip_body_filter(ngx_http_request_t *r,
         /*
          * We preallocate a memory for zlib in one buffer (200K-400K), this
          * dicreases a number of malloc() and free() calls and also probably
-         * dicreases a number of syscalls (sbrk() or so).
+         * dicreases a number of syscalls (sbrk() and so on).
          * Besides we free this memory as soon as the gzipping will complete
          * and do not wait while a whole response will be sent to a client.
          *
@@ -512,8 +513,19 @@ static ngx_int_t ngx_http_gzip_body_filter(ngx_http_request_t *r,
         }
         cl->buf = b;
         cl->next = NULL;
-        ctx->out = cl;
-        ctx->last_out = &cl->next;
+
+        /*
+         * We pass the gzheader to the next filter now to avoid its linking
+         * to the ctx->busy chain.  zlib does not usually output the compressed
+         * data in the initial iterations, so the gzheader that was linked
+         * to the ctx->busy chain would be flushed by ngx_http_write_filter().
+         */
+
+        if (ngx_http_next_body_filter(r, cl) == NGX_ERROR) {
+            return ngx_http_gzip_error(ctx);
+        }
+
+        ctx->last_out = &ctx->out;
 
         ctx->crc32 = crc32(0L, Z_NULL, 0);
         ctx->flush = Z_NO_FLUSH;
@@ -727,7 +739,7 @@ static ngx_int_t ngx_http_gzip_body_filter(ngx_http_request_t *r,
                     b->last += 8;
                 }
 
-#if (HAVE_LITTLE_ENDIAN)
+#if (NGX_HAVE_LITTLE_ENDIAN)
                 trailer->crc32 = ctx->crc32;
                 trailer->zlen = ctx->zin;
 #else
@@ -763,7 +775,7 @@ static ngx_int_t ngx_http_gzip_body_filter(ngx_http_request_t *r,
             }
         }
 
-        if (last == NGX_AGAIN) {
+        if (last == NGX_AGAIN && !ctx->done) {
             return NGX_AGAIN;
         }
 
@@ -881,7 +893,9 @@ static int ngx_http_gzip_error(ngx_http_gzip_ctx_t *ctx)
 {
     deflateEnd(&ctx->zstream);
 
-    ngx_pfree(ctx->request->pool, ctx->preallocated);
+    if (ctx->preallocated) {
+        ngx_pfree(ctx->request->pool, ctx->preallocated);
+    }
 
     ctx->zstream.avail_in = 0;
     ctx->zstream.avail_out = 0;
index 013f62b4639c27c136bc392bafed1cf8dd43ebe1..3386953bd8253582961dda55abe3f2caa7d71f66 100644 (file)
 
 
 typedef struct {
-    ngx_array_t             indices;
-    size_t                  max_index_len;
-    ngx_http_cache_hash_t  *index_cache;
+    ngx_array_t              indices;
+    size_t                   max_index_len;
+    ngx_http_cache_hash_t   *index_cache;
 } ngx_http_index_loc_conf_t;
 
 
 typedef struct {
-    ngx_uint_t         index;
-    u_char            *last;
-    ngx_str_t          path;
-    ngx_str_t          redirect;
-    ngx_http_cache_t  *cache;
-    unsigned           tested:1;
+    ngx_uint_t               index;
+    u_char                  *last;
+    ngx_str_t                path;
+    ngx_str_t                redirect;
+    ngx_http_cache_entry_t  *cache;
+    ngx_uint_t               tested; /* unsigned  tested:1 */
 } ngx_http_index_ctx_t;
 
 
index f0b56f5482debcd8aa18478c87a1e2f8d175bdba..86b8424c6cad957112e3a931cead298215ac355e 100644 (file)
@@ -297,7 +297,7 @@ void ngx_http_proxy_cache_busy_lock(ngx_http_proxy_ctx_t *p)
 
     if (rc == NGX_AGAIN) {
 
-        if ((ngx_event_flags & (NGX_USE_CLEAR_EVENT|NGX_HAVE_KQUEUE_EVENT))
+        if ((ngx_event_flags & (NGX_USE_CLEAR_EVENT|NGX_USE_KQUEUE_EVENT))
             && !p->request->connection->write->active)
         {
             /*
index c0a8cf3d9fe4ab79e5b107937a1fa87d2c4298bb..425a1a6afe8f3361e6099d09fe36384753738a67 100644 (file)
@@ -414,7 +414,7 @@ void ngx_http_proxy_check_broken_connection(ngx_event_t *ev)
     ngx_log_debug1(NGX_LOG_DEBUG_HTTP, ev->log, 0,
                    "http proxy check client, write event:%d", ev->write);
 
-#if (HAVE_KQUEUE)
+#if (NGX_HAVE_KQUEUE)
 
     if (ngx_event_flags & NGX_USE_KQUEUE_EVENT) {
 
@@ -563,9 +563,9 @@ void ngx_http_proxy_busy_lock_handler(ngx_event_t *rev)
      */
 
 #if 0
-#if (HAVE_KQUEUE)
+#if (NGX_HAVE_KQUEUE)
 
-    if ((ngx_event_flags & NGX_HAVE_KQUEUE_EVENT) && rev->kq_eof) {
+    if ((ngx_event_flags & NGX_USE_KQUEUE_EVENT) && rev->kq_eof) {
         ngx_http_busy_unlock(p->lcf->busy_lock, &p->busy_lock);
 
         ngx_del_timer(rev);
@@ -1400,7 +1400,7 @@ static char *ngx_http_proxy_lowat_check(ngx_conf_t *cf, void *post, void *data)
         return NGX_CONF_ERROR;
     }
 
-#elif !(HAVE_SO_SNDLOWAT)
+#elif !(NGX_HAVE_SO_SNDLOWAT)
 
     ngx_conf_log_error(NGX_LOG_WARN, cf, 0,
                        "\"proxy_send_lowat\" is not supported, ignored");
index 094ee3bd1cfa3b79fb1b59e547de15dc15877a35..8ab88ad549e4034edb576fd3172dd794d2333926 100644 (file)
@@ -142,7 +142,7 @@ typedef struct {
 
 
 typedef struct {
-    ngx_http_cache_ctx_t             ctx;
+    ngx_http_cache_t                 ctx;
     ngx_uint_t                       status;
     ngx_str_t                        status_line;
 
index 0852a426fb426886453a7c1f46d27683bca4d23d..23d40c493c109eae0031d5f8237fa468f5ae1830 100644 (file)
@@ -782,7 +782,7 @@ static void ngx_http_proxy_send_request(ngx_http_proxy_ctx_t *p)
     ngx_log_debug0(NGX_LOG_DEBUG_HTTP, c->log, 0,
                    "http proxy send request");
 
-#if (HAVE_KQUEUE)
+#if (NGX_HAVE_KQUEUE)
 
     if ((ngx_event_flags & NGX_USE_KQUEUE_EVENT)
         && !p->request_sent
@@ -1287,8 +1287,8 @@ static void ngx_http_proxy_send_response(ngx_http_proxy_ctx_t *p)
         header->length = r->headers_out.content_length_n;
         p->cache->ctx.length = r->headers_out.content_length_n;
 
-        header->key_len = p->cache->ctx.key.len;
-        ngx_memcpy(&header->key, p->cache->ctx.key.data, header->key_len);
+        header->key_len = p->cache->ctx.key0.len;
+        ngx_memcpy(&header->key, p->cache->ctx.key0.data, header->key_len);
         header->key[header->key_len] = LF;
     }
 
index 22572a58b3f20334fc6a2be58c85cba42750bf5d..abdeae9894152733e6db077725fb4963035bb326 100644 (file)
@@ -63,7 +63,7 @@ ngx_http_cache_t *ngx_http_cache_get(ngx_http_cache_hash_t *hash,
 
             c[i].refs++;
 
-            if ((!(c[i].notify && (ngx_event_flags & NGX_HAVE_KQUEUE_EVENT)))
+            if ((!(c[i].notify && (ngx_event_flags & NGX_USE_KQUEUE_EVENT)))
                 && (ngx_cached_time - c[i].updated >= hash->update))
             {
                 c[i].expired = 1;
index 40f4852dd730f81e25ebc33053444759a6564aa8..aa6690265cb7735c0fc55e78e872181c64cc32a7 100644 (file)
 
 
 /*
- * The 7 uses before an allocation.
+ * The 3 bits allows the 7 uses before the cache entry allocation.
  * We can use maximum 7 bits, i.e up to the 127 uses.
  */
 #define NGX_HTTP_CACHE_LAZY_ALLOCATION_BITS  3
 
+
 typedef struct {
     uint32_t         crc;
     ngx_str_t        key;
@@ -45,7 +46,7 @@ typedef struct {
         off_t        size;
         ngx_str_t    value;
     } data;
-} ngx_http_cache_t;
+} ngx_http_cache_entry_t;
 
 
 typedef struct {
@@ -62,7 +63,7 @@ typedef struct {
 #define NGX_HTTP_CACHE_NELTS  4
 
 typedef struct {
-    ngx_http_cache_t         *elts;
+    ngx_http_cache_entry_t   *elts;
     size_t                    hash;
     size_t                    nelts;
     time_t                    life;
@@ -76,9 +77,9 @@ typedef struct {
 
 typedef struct {
     ngx_http_cache_hash_t    *hash;
-    ngx_http_cache_t         *cache;
+    ngx_http_cache_entry_t   *cache;
     ngx_file_t                file;
-    ngx_str_t                 key;
+    ngx_array_t               key;
     uint32_t                  crc;
     u_char                    md5[16];
     ngx_path_t               *path;
@@ -90,7 +91,10 @@ typedef struct {
     ssize_t                   header_size;
     size_t                    file_start;
     ngx_log_t                *log;
-} ngx_http_cache_ctx_t;
+
+    /* STUB */
+    ngx_str_t                 key0;
+} ngx_http_cache_t;
 
 
 
@@ -99,6 +103,8 @@ typedef struct {
 #define NGX_HTTP_CACHE_THE_SAME  3
 
 
+#if 0
+
 ngx_http_cache_t *ngx_http_cache_get(ngx_http_cache_hash_t *cache,
                                      ngx_http_cleanup_t *cleanup,
                                      ngx_str_t *key, uint32_t *crc);
@@ -127,5 +133,7 @@ int ngx_garbage_collector_http_cache_handler(ngx_gc_t *gc, ngx_str_t *name,
 
 char *ngx_http_set_cache_slot(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);
 
+#endif
+
 
 #endif /* _NGX_HTTP_CACHE_H_INCLUDED_ */
index c764b2a00f3bb22e830cee6e5edbf3caf84e85dd..c4cb8b9f0d132f691aea29546e3c98b01c926d2a 100644 (file)
@@ -1828,7 +1828,7 @@ static char *ngx_http_lowat_check(ngx_conf_t *cf, void *post, void *data)
         return NGX_CONF_ERROR;
     }
 
-#elif !(HAVE_SO_SNDLOWAT)
+#elif !(NGX_HAVE_SO_SNDLOWAT)
 
     ngx_conf_log_error(NGX_LOG_WARN, cf, 0,
                        "\"send_lowat\" is not supported, ignored");
index 8f920d240dc1d38a123375db481e00bba6ce4509..1b258c943327048c9919ed27ac883ab23c4de884 100644 (file)
@@ -9,19 +9,20 @@
 #include <ngx_http.h>
 
 
-#if (HAVE_OPENSSL_MD5_H)
+#if (NGX_HAVE_OPENSSL_MD5_H)
 #include <openssl/md5.h>
 #else
 #include <md5.h>
 #endif
 
-#if (HAVE_OPENSSL_MD5)
+#if (NGX_OPENSSL_MD5)
 #define  MD5Init    MD5_Init
 #define  MD5Update  MD5_Update
 #define  MD5Final   MD5_Final
 #endif
 
 
+#if 0
 
 int ngx_http_cache_get_file(ngx_http_request_t *r, ngx_http_cache_ctx_t *ctx)
 {
@@ -237,3 +238,5 @@ int ngx_garbage_collector_http_cache_handler(ngx_gc_t *gc, ngx_str_t *name,
 
     return NGX_OK;
 }
+
+#endif
index bfe5efb170cf9694506e165f33d12c8913ec3c6f..a4e7d80451d26726ae15f9d0ba39a73b880a4007 100644 (file)
@@ -686,7 +686,7 @@ ngx_int_t ngx_http_parse_complex_uri(ngx_http_request_t *r)
 
     ch = *p++;
 
-    while (p < r->uri_start + r->uri.len + 1 && r->args_start == NULL) {
+    while (p < r->uri_end && r->args_start == NULL) {
 
         /*
          * we use "ch = *p++" inside the cycle but this operation is safe
index a2cf1a025f960082bd1e7ec6500ca9d503cf72b7..b6013fcea999bab0dee51e19fda55cbc8e04d84d 100644 (file)
@@ -532,6 +532,7 @@ static void ngx_http_process_request_line(ngx_event_t *rev)
                 r->uri.len = r->uri_end - r->uri_start;
             }
 
+
             if (r->complex_uri || r->quoted_uri) {
 
                 if (!(r->uri.data = ngx_palloc(r->pool, r->uri.len + 1))) {
@@ -557,6 +558,7 @@ static void ngx_http_process_request_line(ngx_event_t *rev)
                 r->uri.data = r->uri_start;
             }
 
+
             r->unparsed_uri.len = r->uri_end - r->uri_start;
             r->unparsed_uri.data = r->uri_start;
 
@@ -1751,7 +1753,7 @@ static void ngx_http_keepalive_handler(ngx_event_t *rev)
 
     ctx = (ngx_http_log_ctx_t *) rev->log->data;
 
-#if (HAVE_KQUEUE)
+#if (NGX_HAVE_KQUEUE)
 
     if (ngx_event_flags & NGX_USE_KQUEUE_EVENT) {
         if (rev->pending_eof) {
index 31b1187b0c6e1efa877ed129b92516ea299c8379..141daa1b808fb822b37c5935cdb35169d79b1156 100644 (file)
@@ -220,7 +220,7 @@ struct ngx_http_cleanup_s {
 
         struct {
             ngx_http_cache_hash_t   *hash;
-            ngx_http_cache_t        *cache;
+            ngx_http_cache_entry_t  *cache;
         } cache;
     } data;
 
@@ -254,7 +254,7 @@ struct ngx_http_request_s {
     void                    **srv_conf;
     void                    **loc_conf;
 
-    ngx_http_cache_t         *cache;
+    ngx_http_cache_entry_t   *cache;
 
     ngx_file_t                file;
 
index d011054121e3502bc93e749d07342d59e0cb9981..2a66eb83c3fc57e36be276982221cb29dbdccb7e 100644 (file)
@@ -9,7 +9,7 @@
 #include <ngx_event.h>
 #include <ngx_aio.h>
 
-#if (HAVE_KQUEUE)
+#if (NGX_HAVE_KQUEUE)
 #include <ngx_kqueue_module.h>
 #endif
 
@@ -46,7 +46,7 @@ ssize_t ngx_aio_read(ngx_connection_t *c, u_char *buf, size_t size)
         rev->aiocb.aio_buf = buf;
         rev->aiocb.aio_nbytes = size;
 
-#if (HAVE_KQUEUE)
+#if (NGX_HAVE_KQUEUE)
         rev->aiocb.aio_sigevent.sigev_notify_kqueue = ngx_kqueue;
         rev->aiocb.aio_sigevent.sigev_notify = SIGEV_KEVENT;
         rev->aiocb.aio_sigevent.sigev_value.sigval_ptr = rev;
index f102ba338c09fa262c031751ebb56c829055c893..1d8c1aacdc921d988f181d1a32bf70dcf9e7998c 100644 (file)
@@ -9,7 +9,7 @@
 #include <ngx_event.h>
 #include <ngx_aio.h>
 
-#if (HAVE_KQUEUE)
+#if (NGX_HAVE_KQUEUE)
 #include <ngx_kqueue_module.h>
 #endif
 
@@ -43,7 +43,7 @@ ssize_t ngx_aio_write(ngx_connection_t *c, u_char *buf, size_t size)
         wev->aiocb.aio_buf = buf;
         wev->aiocb.aio_nbytes = size;
 
-#if (HAVE_KQUEUE)
+#if (NGX_HAVE_KQUEUE)
         wev->aiocb.aio_sigevent.sigev_notify_kqueue = ngx_kqueue;
         wev->aiocb.aio_sigevent.sigev_notify = SIGEV_KEVENT;
         wev->aiocb.aio_sigevent.sigev_value.sigval_ptr = wev;
index 7ec4f87c32ace0af7803ddedc87c767734f04a87..258a10fa95ea383a5d38bd7a97b10ced78c5b67f 100644 (file)
@@ -40,7 +40,7 @@ void *ngx_calloc(size_t size, ngx_log_t *log)
 }
 
 
-#if (HAVE_POSIX_MEMALIGN)
+#if (NGX_HAVE_POSIX_MEMALIGN)
 
 void *ngx_memalign(size_t alignment, size_t size, ngx_log_t *log)
 {
@@ -58,7 +58,7 @@ void *ngx_memalign(size_t alignment, size_t size, ngx_log_t *log)
     return p;
 }
 
-#elif (HAVE_MEMALIGN)
+#elif (NGX_HAVE_MEMALIGN)
 
 void *ngx_memalign(size_t alignment, size_t size, ngx_log_t *log)
 {
index 0084c2c543264a2aa4c37d23c7b76735ba6c8ae5..66562a1914b8dba8ba8edbd6074bba6e0a25544c 100644 (file)
@@ -25,7 +25,7 @@ void *ngx_calloc(size_t size, ngx_log_t *log);
  * allocations bigger than page size at the page boundary.
  */
 
-#if (HAVE_POSIX_MEMALIGN || HAVE_MEMALIGN)
+#if (NGX_HAVE_POSIX_MEMALIGN || NGX_HAVE_MEMALIGN)
 
 void *ngx_memalign(size_t alignment, size_t size, ngx_log_t *log);
 
index 0bfbd0de61d5d99560489b70f209d83c99c9211c..b1b36c5b3a363a0c31ba5a752e41528322c08bfc 100644 (file)
@@ -17,7 +17,7 @@ ngx_int_t ngx_write_channel(ngx_socket_t s, ngx_channel_t *ch, size_t size,
     struct iovec        iov[1];
     struct msghdr       msg;
 
-#if (HAVE_MSGHDR_MSG_CONTROL)
+#if (NGX_HAVE_MSGHDR_MSG_CONTROL)
 
     union {
         struct cmsghdr  cm;
@@ -83,7 +83,7 @@ ngx_int_t ngx_read_channel(ngx_socket_t s, ngx_channel_t *ch, size_t size,
     struct iovec        iov[1];
     struct msghdr       msg;
 
-#if (HAVE_MSGHDR_MSG_CONTROL)
+#if (NGX_HAVE_MSGHDR_MSG_CONTROL)
     union {
         struct cmsghdr  cm;
         char            space[CMSG_SPACE(sizeof(int))];
@@ -100,7 +100,7 @@ ngx_int_t ngx_read_channel(ngx_socket_t s, ngx_channel_t *ch, size_t size,
     msg.msg_iov = iov;
     msg.msg_iovlen = 1;
 
-#if (HAVE_MSGHDR_MSG_CONTROL)
+#if (NGX_HAVE_MSGHDR_MSG_CONTROL)
     msg.msg_control = (caddr_t) &cmsg;
     msg.msg_controllen = sizeof(cmsg);
 #else
@@ -131,7 +131,7 @@ ngx_int_t ngx_read_channel(ngx_socket_t s, ngx_channel_t *ch, size_t size,
         return NGX_ERROR;
     }
 
-#if (HAVE_MSGHDR_MSG_CONTROL)
+#if (NGX_HAVE_MSGHDR_MSG_CONTROL)
 
     if (ch->command == NGX_CMD_OPEN_CHANNEL) {
 
index ced0eafcb41d9f038f3f3a7017871cc31ea67c55..607b361d98e7a2cfa9089ed44fd2e24d0bcd3bfb 100644 (file)
@@ -8,7 +8,7 @@
 #include <ngx_core.h>
 
 
-#if (NGX_STRERROR_R)
+#if (NGX_HAVE_STRERROR_R)
 
 u_char *ngx_strerror_r(int err, u_char *errstr, size_t size)
 {
@@ -28,7 +28,7 @@ u_char *ngx_strerror_r(int err, u_char *errstr, size_t size)
     return errstr;
 }
 
-#elif (NGX_GNU_STRERROR_R)
+#elif (NGX_HAVE_GNU_STRERROR_R)
 
 /* Linux strerror_r() */
 
index e87ec5f6fadf53b48d4db17a17d952266a55e25a..c1c5801d3ae0dfc13bf66945516ed08684836a97 100644 (file)
@@ -46,7 +46,7 @@ typedef int               ngx_err_t;
 #define ngx_set_socket_errno(err)  errno = err
 
 
-#if (HAVE_STRERROR_R || HAVE_GNU_STRERROR_R)
+#if (NGX_HAVE_STRERROR_R || NGX_HAVE_GNU_STRERROR_R)
 
 u_char *ngx_strerror_r(int err, u_char *errstr, size_t size);
 
index 52aa9b62afb552d1e5452abe21b4c45ad25e6255..e67b2cac77ac965b767cefd45c2562548d68f0ea 100644 (file)
@@ -15,7 +15,7 @@ ssize_t ngx_read_file(ngx_file_t *file, u_char *buf, size_t size, off_t offset)
     ngx_log_debug4(NGX_LOG_DEBUG_CORE, file->log, 0,
                    "read: %d, %p, %uz, %O", file->fd, buf, size, offset);
 
-#if (NGX_PREAD)
+#if (NGX_HAVE_PREAD)
 
     n = pread(file->fd, buf, size, offset);
 
@@ -60,7 +60,7 @@ ssize_t ngx_write_file(ngx_file_t *file, u_char *buf, size_t size, off_t offset)
     ngx_log_debug4(NGX_LOG_DEBUG_CORE, file->log, 0,
                    "write: %d, %p, %uz, %O", file->fd, buf, size, offset);
 
-#if (NGX_PWRITE)
+#if (NGX_HAVE_PWRITE)
 
     n = pwrite(file->fd, buf, size, offset);
 
index 7f3b286c32c96e6df36cef57a16862d9281e6683..35bf1f5024cc19c0103e36b05ddf1035716abad7 100644 (file)
 #include <ngx_auto_config.h>
 
 
-#if (HAVE_POLL)
+#if (NGX_HAVE_POLL)
 #include <poll.h>
 #endif
 
 
-#if (HAVE_AIO)
+#if (NGX_HAVE_AIO)
 #include <aio.h>
 #endif
 
 
-#if (HAVE_KQUEUE)
+#if (NGX_HAVE_KQUEUE)
 #include <sys/event.h>
 #endif
 
 
-#if defined SO_ACCEPTFILTER && !defined HAVE_DEFERRED_ACCEPT
-#define HAVE_DEFERRED_ACCEPT  1
+#if defined SO_ACCEPTFILTER && !defined NGX_HAVE_DEFERRED_ACCEPT
+#define NGX_HAVE_DEFERRED_ACCEPT  1
 #endif
 
 
@@ -91,8 +91,8 @@ pid_t rfork_thread(int flags, void *stack, int (*func)(void *arg), void *arg);
 #endif
 
 
-#ifndef HAVE_INHERITED_NONBLOCK
-#define HAVE_INHERITED_NONBLOCK  1
+#ifndef NGX_HAVE_INHERITED_NONBLOCK
+#define NGX_HAVE_INHERITED_NONBLOCK  1
 #endif
 
 
index faf8e9f1e2546f553b8f685e543fa0d149cbeead..b76dc0cb91f4917ea0b6c7185054a9b2cd555b36 100644 (file)
@@ -30,7 +30,7 @@ ngx_os_io_t ngx_os_io = {
     ngx_unix_recv,
     ngx_readv_chain,
     ngx_unix_send,
-#if (HAVE_SENDFILE)
+#if (NGX_HAVE_SENDFILE)
     ngx_freebsd_sendfile_chain,
     NGX_IO_SENDFILE
 #else
@@ -128,7 +128,7 @@ ngx_int_t ngx_os_init(ngx_log_t *log)
     version = ngx_freebsd_kern_osreldate;
 
 
-#if (HAVE_SENDFILE)
+#if (NGX_HAVE_SENDFILE)
 
     /*
      * The determination of the sendfile() "nbytes bug" is complex enough.
@@ -161,7 +161,7 @@ ngx_int_t ngx_os_init(ngx_log_t *log)
 
 #endif
 
-#endif /* HAVE_SENDFILE */
+#endif /* NGX_HAVE_SENDFILE */
 
 
     if ((version < 500000 && version >= 440003) || version >= 500017) {
index b64325bcd6cd8de363c6e6aefca24e31fd5e0ad4..5dfd46807b21fbb47306c29d4d112d6d020056a6 100644 (file)
@@ -381,7 +381,7 @@ ngx_int_t ngx_mutex_dolock(ngx_mutex_t *m, ngx_int_t try)
                 return NGX_AGAIN;
             }
 
-            if (ngx_freebsd_hw_ncpu > 1 && tries++ < 1000) {
+            if (ngx_ncpu > 1 && tries++ < 1000) {
 
                 /* the spinlock is used only on the SMP system */
 
@@ -581,7 +581,7 @@ ngx_cond_t *ngx_cond_init(ngx_log_t *log)
     }
 
     cv->signo = NGX_CV_SIGNAL;
-    cv->tid = 0;
+    cv->tid = -1;
     cv->log = log;
     cv->kq = -1;
 
@@ -640,6 +640,8 @@ ngx_int_t ngx_cond_wait(ngx_cond_t *cv, ngx_mutex_t *m)
             ngx_log_error(NGX_LOG_ALERT, cv->log, ngx_errno, "kevent() failed");
             return NGX_ERROR;
         }
+
+        cv->tid = ngx_thread_self();
     }
 
     if (ngx_mutex_unlock(m) == NGX_ERROR) {
@@ -714,6 +716,10 @@ ngx_int_t ngx_cond_signal(ngx_cond_t *cv)
                    "cv %p to signal %P %d",
                    cv, cv->tid, cv->signo);
 
+    if (cv->tid == -1) {
+        return NGX_OK;
+    }
+
     if (kill(cv->tid, cv->signo) == -1) {
 
         err = ngx_errno;
index 192a1a1ee42fa2a2a79d47cf4aa2411e6828aea1..f86e1c0d771379fa88b334bd41c0efe0df9c9322 100644 (file)
@@ -55,7 +55,7 @@ ngx_chain_t *ngx_freebsd_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in,
         return in;
     }
 
-#if (HAVE_KQUEUE)
+#if (NGX_HAVE_KQUEUE)
 
     if ((ngx_event_flags & NGX_USE_KQUEUE_EVENT) && wev->pending_eof) {
         ngx_log_error(NGX_LOG_INFO, c->log, wev->kq_errno,
index 57ee5057ea51eb2f162e277e3d63357092844c50..620b59d8c3bef67d24afbb999367c0b8f5379315 100644 (file)
 #include <sys/prctl.h>
 #endif
 
+
 #if (NGX_HAVE_SENDFILE64)
 #include <sys/sendfile.h>
 #else
 extern ssize_t sendfile(int s, int fd, int32_t *offset, size_t size);
+#define NGX_SENDFILE_LIMIT  (NGX_MAX_UINT32_VALUE + 1)
 #endif
 
 
-#if (HAVE_POLL)
+#if (NGX_HAVE_POLL)
 #include <poll.h>
 #endif
 
 
-#if (HAVE_EPOLL)
+#if (NGX_HAVE_EPOLL)
 #include <sys/epoll.h>
-#endif /* HAVE_EPOLL */
+#endif
 
 
-#if defined TCP_DEFER_ACCEPT && !defined HAVE_DEFERRED_ACCEPT
-#define HAVE_DEFERRED_ACCEPT  1
+#if defined TCP_DEFER_ACCEPT && !defined NGX_HAVE_DEFERRED_ACCEPT
+#define NGX_HAVE_DEFERRED_ACCEPT  1
 #endif
 
 
-#ifndef HAVE_INHERITED_NONBLOCK
-#define HAVE_INHERITED_NONBLOCK  0
+#ifndef NGX_HAVE_INHERITED_NONBLOCK
+#define NGX_HAVE_INHERITED_NONBLOCK  0
 #endif
 
 
-#ifndef HAVE_SELECT_CHANGE_TIMEOUT
-#define HAVE_SELECT_CHANGE_TIMEOUT   1
+#ifndef NGX_HAVE_SELECT_CHANGE_TIMEOUT
+#define NGX_HAVE_SELECT_CHANGE_TIMEOUT   1
 #endif
 
 #ifndef NGX_SETPROCTITLE_USES_ENV
index 397d342f0fd2cbfb125b727636005eb0e42d04a9..9c1c84758a5ef79cf0f49065b47e076764b8edea 100644 (file)
@@ -18,7 +18,7 @@ ngx_os_io_t ngx_os_io = {
     ngx_unix_recv,
     ngx_readv_chain,
     ngx_unix_send,
-#if (HAVE_SENDFILE)
+#if (NGX_HAVE_SENDFILE)
     ngx_linux_sendfile_chain,
     NGX_IO_SENDFILE
 #else
index ad40f55d9b67a8fc0b8c06602589a068b4233d47..bcf9d4c76f8a7c80efb804ea986b5c659be7e6bf 100644 (file)
@@ -13,7 +13,7 @@
  * On Linux up to 2.4.21 sendfile() (syscall #187) works with 32-bit
  * offsets only and the including <sys/sendfile.h> breaks the compiling
  * if off_t is 64 bit wide.  So we use own sendfile() definition where offset
- * parameter is int32_t and use sendfile() with the file parts below 2G.
+ * parameter is int32_t and use sendfile() for the file parts below 2G only.
  *
  * Linux 2.4.21 has a new sendfile64() syscall #239.
  */
index dc9f7a80375c263d0f347a6fb45195d823da14f9..ee91df3361a299eca3f993b8b49d4b71c2db7346 100644 (file)
 #define NGX_IO_SENDFILE    1
 #define NGX_IO_ZEROCOPY    2
 
-#if (HAVE_SENDFILE)
-#define NGX_HAVE_SENDFILE  NGX_IO_SENDFILE
-#else
-#define NGX_HAVE_SENDFILE  0
-#endif
-
-#if (HAVE_ZEROCOPY)
-#define NGX_HAVE_ZEROCOPY  NGX_IO_ZEROCOPY
-#else
-#define NGX_HAVE_ZEROCOPY  0
-#endif
-
 
 typedef ssize_t (*ngx_recv_pt)(ngx_connection_t *c, u_char *buf, size_t size);
 typedef ssize_t (*ngx_recv_chain_pt)(ngx_connection_t *c, ngx_chain_t *in);
index b187236e9adc8dc72e2d6f16aa5dff5c41681ad9..f9c91a4bfa4bdffc79a6ef8be39f80bfaa841087 100644 (file)
 #include <ngx_auto_config.h>
 
 
-#if (HAVE_POLL)
+#if (NGX_HAVE_POLL)
 #include <poll.h>
 #endif
 
 
-#if (HAVE_KQUEUE)
+#if (NGX_HAVE_KQUEUE)
 #include <sys/event.h>
 #endif
 
 
-#if (HAVE_DEVPOLL)
+#if (NGX_HAVE_DEVPOLL)
 #include <sys/ioctl.h>
 #include <sys/devpoll.h>
 #endif
index 19d65a489d396317c7ec380d2696caf1c5463c5a..56be0cefb4a459af142155ef46442331c12bea06 100644 (file)
@@ -121,7 +121,7 @@ ngx_int_t ngx_posix_init(ngx_log_t *log)
 
     ngx_max_sockets = rlmt.rlim_cur;
 
-#if (HAVE_INHERITED_NONBLOCK)
+#if (NGX_HAVE_INHERITED_NONBLOCK)
     ngx_inherited_nonblocking = 1;
 #else
     ngx_inherited_nonblocking = 0;
index 37b2ef193bbd75a2b90407e14f70594f73e8b7d6..3d1c51bc0676855742d1fe042b1f27102a5c1e08 100644 (file)
@@ -607,6 +607,10 @@ static void ngx_master_exit(ngx_cycle_t *cycle)
 
 static void ngx_worker_process_cycle(ngx_cycle_t *cycle, void *data)
 {
+    ngx_int_t          n;
+    ngx_err_t          err;
+    ngx_core_conf_t   *ccf;
+
     ngx_worker_process_init(cycle);
 
     ngx_setproctitle("worker process");
@@ -618,6 +622,8 @@ static void ngx_worker_process_cycle(ngx_cycle_t *cycle, void *data)
         exit(2);
     }
 
+    ccf = (ngx_core_conf_t *) ngx_get_conf(cycle->conf_ctx, ngx_core_module);
+
     if (ngx_threads_n) {
         if (ngx_init_threads(ngx_threads_n,
                                    ccf->thread_stack_size, cycle) == NGX_ERROR)
@@ -914,10 +920,9 @@ static void ngx_wakeup_worker_threads(ngx_cycle_t *cycle)
 
         for (i = 0; i < ngx_threads_n; i++) {
             if (ngx_threads[i].state < NGX_THREAD_EXIT) {
-                ngx_cond_signal(ngx_threads[i].cv);
-
-                if (ngx_threads[i].cv->tid == (ngx_tid_t) -1) {
+                if (ngx_cond_signal(ngx_threads[i].cv) == NGX_ERROR) {
                     ngx_threads[i].state = NGX_THREAD_DONE;
+
                 } else {
                     live = 1;
                 }
@@ -955,8 +960,6 @@ static void *ngx_worker_thread_cycle(void *data)
     ngx_core_tls_t   *tls;
     ngx_cycle_t      *cycle;
 
-    thr->cv->tid = ngx_thread_self();
-
     cycle = (ngx_cycle_t *) ngx_cycle;
 
     sigemptyset(&set);
index 2db998a862199fce11bd7f262415d0f27b407dd9..7c57b7abe457dbef9af4777f839767c70d8a3102 100644 (file)
@@ -9,7 +9,7 @@
 #include <ngx_event.h>
 
 
-#if (HAVE_KQUEUE)
+#if (NGX_HAVE_KQUEUE)
 
 ssize_t ngx_readv_chain(ngx_connection_t *c, ngx_chain_t *chain)
 {
@@ -136,7 +136,7 @@ ssize_t ngx_readv_chain(ngx_connection_t *c, ngx_chain_t *chain)
     return n;
 }
 
-#else /* ! NAVE_KQUEUE */
+#else /* ! NGX_HAVE_KQUEUE */
 
 ssize_t ngx_readv_chain(ngx_connection_t *c, ngx_chain_t *chain)
 {
@@ -216,4 +216,4 @@ ssize_t ngx_readv_chain(ngx_connection_t *c, ngx_chain_t *chain)
     return n;
 }
 
-#endif /* NAVE_KQUEUE */
+#endif /* NGX_HAVE_KQUEUE */
index d58ca9e3d7dad3bac71442d9b8bd73427a5d31ef..369be661aaa0a4d97364ac26d6afbf2e99b859bb 100644 (file)
@@ -9,7 +9,7 @@
 #include <ngx_event.h>
 
 
-#if (HAVE_KQUEUE)
+#if (NGX_HAVE_KQUEUE)
 
 ssize_t ngx_unix_recv(ngx_connection_t *c, u_char *buf, size_t size)
 {
@@ -115,7 +115,7 @@ ssize_t ngx_unix_recv(ngx_connection_t *c, u_char *buf, size_t size)
     return n;
 }
 
-#else /* ! NAVE_KQUEUE */
+#else /* ! NGX_HAVE_KQUEUE */
 
 ssize_t ngx_unix_recv(ngx_connection_t *c, u_char *buf, size_t size)
 {
@@ -170,4 +170,4 @@ ssize_t ngx_unix_recv(ngx_connection_t *c, u_char *buf, size_t size)
     return n;
 }
 
-#endif /* NAVE_KQUEUE */
+#endif /* NGX_HAVE_KQUEUE */
index ff501c30a19b129d43c688c67fd2f656103e6d99..ecd136265f421bfa79abaa5b9f73228019c9f70f 100644 (file)
@@ -17,7 +17,7 @@ ssize_t ngx_unix_send(ngx_connection_t *c, u_char *buf, size_t size)
 
     wev = c->write;
 
-#if (HAVE_KQUEUE)
+#if (NGX_HAVE_KQUEUE)
 
     if ((ngx_event_flags & NGX_USE_KQUEUE_EVENT) && wev->pending_eof) {
         ngx_log_error(NGX_LOG_INFO, c->log, wev->kq_errno,
index 0edc8cbe103ade1612cd48599bc9e419e3e96c57..80b5f601f7053f4ee82b23f3212bdde578dba9cf 100644 (file)
@@ -8,7 +8,7 @@
 #include <ngx_core.h>
 
 
-#if (HAVE_MAP_ANON)
+#if (NGX_HAVE_MAP_ANON)
 
 void *ngx_create_shared_memory(size_t size, ngx_log_t *log)
 {
@@ -25,7 +25,7 @@ void *ngx_create_shared_memory(size_t size, ngx_log_t *log)
     return p;
 }
 
-#elif (HAVE_MAP_DEVZERO)
+#elif (NGX_HAVE_MAP_DEVZERO)
 
 void *ngx_create_shared_memory(size_t size, ngx_log_t *log)
 {
@@ -56,7 +56,7 @@ void *ngx_create_shared_memory(size_t size, ngx_log_t *log)
     return p;
 }
 
-#elif (HAVE_SYSVSHM)
+#elif (NGX_HAVE_SYSVSHM)
 
 #include <sys/ipc.h>
 #include <sys/shm.h>
index da936b2fb264fae2c8bb88f38fb451f7c6e97ee3..523f1f4ce3dd3373d716db994a7c0a9709b69327 100644 (file)
@@ -20,7 +20,7 @@
  */
 
 
-#if (HAVE_FIONBIO)
+#if (NGX_HAVE_FIONBIO)
 
 int ngx_nonblocking(ngx_socket_t s)
 {
index 4dcf924e0198296618ac8fa15d2d8396f3f58afa..b381967e6c07c7cf4a190c64d8ec775b189a536c 100644 (file)
@@ -19,7 +19,7 @@ typedef int  ngx_socket_t;
 #define ngx_socket_n        "socket()"
 
 
-#if (HAVE_FIONBIO)
+#if (NGX_HAVE_FIONBIO)
 
 int ngx_nonblocking(ngx_socket_t s);
 int ngx_blocking(ngx_socket_t s);
index 8f1841793fda5b09053c704e421a0abcf0d6778c..452850c0f6199934b47d3c1a3bdeb0f820727d94 100644 (file)
 #include <ngx_auto_config.h>
 
 
-#if (HAVE_POLL)
+#if (NGX_HAVE_POLL)
 #include <poll.h>
 #endif
 
 
-#if (HAVE_SENDFILE)
+#if (NGX_HAVE_SENDFILE)
 #include <sys/sendfile.h>
 #endif
 
 
-#if (HAVE_AIO)
+#if (NGX_HAVE_AIO)
 #include <aio.h>
 #endif
 
 
-#if (HAVE_DEVPOLL)
+#if (NGX_HAVE_DEVPOLL)
 #include <sys/ioctl.h>
 #include <sys/devpoll.h>
 #endif
 
 
-#ifndef HAVE_INHERITED_NONBLOCK
-#define HAVE_INHERITED_NONBLOCK  1
+#ifndef NGX_HAVE_INHERITED_NONBLOCK
+#define NGX_HAVE_INHERITED_NONBLOCK  1
 #endif
 
 
-#ifndef HAVE_SO_SNDLOWAT
+#ifndef NGX_HAVE_SO_SNDLOWAT
 /* setsockopt(SO_SNDLOWAT) returns error "Option not supported by protocol" */
-#define HAVE_SO_SNDLOWAT         0
+#define NGX_HAVE_SO_SNDLOWAT         0
 #endif
 
 
index c671197e01fae49e8c9ebd354fffdd4afae90dc0..03072edada6091a917eec80e97e9b3edded972ee 100644 (file)
@@ -17,7 +17,7 @@ ngx_os_io_t ngx_os_io = {
     ngx_unix_recv,
     ngx_readv_chain,
     ngx_unix_send,
-#if (HAVE_SENDFILE)
+#if (NGX_HAVE_SENDFILE)
     ngx_solaris_sendfilev_chain,
     NGX_IO_SENDFILE
 #else
index ac7cfad43fc042f7eee2bc33ad2c1d06bc16cb57..e630b356ee3171fac8496f3fc2631b7a3403346c 100644 (file)
@@ -53,7 +53,6 @@ typedef struct {
 
 typedef struct {
     pthread_cond_t    cond;
-    ngx_tid_t         tid;
     ngx_log_t        *log;
 } ngx_cond_t;
 
index c4389503a44ce0522876c6c8e1474d1bff6bfe73..20ec4644bbf43492021d2af4622da78bf0d8348c 100644 (file)
@@ -10,7 +10,7 @@
 
 void ngx_localtime(ngx_tm_t *tm)
 {
-#if (HAVE_LOCALTIME_R)
+#if (NGX_HAVE_LOCALTIME_R)
     time_t     now;
 
     now = ngx_time();
index a6acf59e35c306d7fe558d74bef5b247df3dfc7b..f257325d02057bf4aab46966f2f8d6321cd112af 100644 (file)
@@ -36,7 +36,7 @@ typedef struct tm      ngx_tm_t;
 #define ngx_tm_wday_t  int
 
 
-#if (HAVE_GMTOFF)
+#if (NGX_HAVE_GMTOFF)
 #define ngx_tm_gmtoff  tm_gmtoff
 #define ngx_tm_zone    tm_zone
 #endif
index e3893226dd8b4bda07d84c107cda2a4f6a1e99fc..2af64699b8227002a8d0110f02c9b4c0cc3b11e1 100644 (file)
@@ -30,7 +30,7 @@ ngx_chain_t *ngx_writev_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit)
         return in;
     }
 
-#if (HAVE_KQUEUE)
+#if (NGX_HAVE_KQUEUE)
 
     if ((ngx_event_flags & NGX_USE_KQUEUE_EVENT) && wev->pending_eof) {
         ngx_log_error(NGX_LOG_INFO, c->log, wev->kq_errno,
index c27f8a80aaa4dd402530b97352471023ebaa7d79..6d720fa58b380fd18bc02a037585364f0552a123 100644 (file)
 #define NGX_IO_SENDFILE    1
 #define NGX_IO_ZEROCOPY    2
 
-#if (HAVE_SENDFILE)
-#define NGX_HAVE_SENDFILE  NGX_IO_SENDFILE
-#else
-#define NGX_HAVE_SENDFILE  0
-#endif
-
-#if (HAVE_ZEROCOPY)
-#define NGX_HAVE_ZEROCOPY  NGX_IO_ZEROCOPY
-#else
-#define NGX_HAVE_ZEROCOPY  0
-#endif
-
 
 typedef ssize_t (*ngx_recv_pt)(ngx_connection_t *c, u_char *buf, size_t size);
 typedef ssize_t (*ngx_recv_chain_pt)(ngx_connection_t *c, ngx_chain_t *in);
index 665976d88174f3c6cf55296bfb79690669138b99..4cb98419476761e6643a121f574ae727c7b3285c 100644 (file)
@@ -39,7 +39,7 @@ typedef FILETIME       ngx_mtime_t;
 
 #define ngx_msleep       Sleep
 
-#define HAVE_GETTIMEZONE  1
+#define NGX_HAVE_GETTIMEZONE  1
 
 ngx_int_t ngx_gettimezone(void);
 void ngx_gettimeofday(struct timeval *tp);
index e7d3086e8401e0dd07add57e5747515e4a8a6a4c..c7703c29e13eef106b21707e3f06ed0d2c4a834f 100644 (file)
@@ -115,37 +115,31 @@ typedef uint32_t          ngx_atomic_t;
 
 
 #define TIME_T_LEN        sizeof("-2147483648") - 1
+#define OFF_T_MAX_VALUE   9223372036854775807
+#define NGX_HAVE_LITTLE_ENDIAN  1
 
-
-#define NGX_WIN_NT        200000
+#define NGX_THREADS       1
 
 
-#define NGX_THREADS       1
+#define NGX_WIN_NT        200000
 
 
-#ifndef HAVE_INHERITED_NONBLOCK
-#define HAVE_INHERITED_NONBLOCK  1
+#ifndef NGX_HAVE_INHERITED_NONBLOCK
+#define NGX_HAVE_INHERITED_NONBLOCK  1
 #endif
 
-#ifndef HAVE_WIN32_TRANSMITPACKETS
-#define HAVE_WIN32_TRANSMITPACKETS  1
-#define HAVE_WIN32_TRANSMITFILE     0
+#ifndef NGX_HAVE_WIN32_TRANSMITPACKETS
+#define NGX_HAVE_WIN32_TRANSMITPACKETS  1
+#define NGX_HAVE_WIN32_TRANSMITFILE     0
 #endif
 
-#ifndef HAVE_WIN32_TRANSMITFILE
-#define HAVE_WIN32_TRANSMITFILE  1
+#ifndef NGX_HAVE_WIN32_TRANSMITFILE
+#define NGX_HAVE_WIN32_TRANSMITFILE  1
 #endif
 
-#if (HAVE_WIN32_TRANSMITPACKETS) || (HAVE_WIN32_TRANSMITFILE)
-#define HAVE_SENDFILE  1
+#if (NGX_HAVE_WIN32_TRANSMITPACKETS) || (NGX_HAVE_WIN32_TRANSMITFILE)
+#define NGX_HAVE_SENDFILE  1
 #endif
 
 
-#define OFF_T_MAX_VALUE  9223372036854775807
-
-
-/* STUB */
-#define HAVE_LITTLE_ENDIAN  1
-
-
 #endif /* _NGX_WIN32_CONFIG_H_INCLUDED_ */