nginx-0.3.10-RELEASE import

    *) Change: the "valid_referers" directive and the "$invalid_referer"
       variable were moved to the new ngx_http_referer_module from the
       ngx_http_rewrite_module.

    *) Change: the "$apache_bytes_sent" variable name was changed to
       "$body_bytes_sent".

    *) Feature: the "$sent_http_..." variables.

    *) Feature: the "if" directive supports the "=" and "!=" operations.

    *) Feature: the "proxy_pass" directive supports the HTTPS protocol.

    *) Feature: the "proxy_set_body" directive.

    *) Feature: the "post_action" directive.

    *) Feature: the ngx_http_empty_gif_module.

    *) Feature: the "worker_cpu_affinity" directive for Linux.

    *) Bugfix: the "rewrite" directive did not unescape URI part in
       redirect, now it is unescaped except the %00-%25 and %7F-%FF
       characters.

    *) Bugfix: nginx could not be built by the icc 9.0 compiler.

    *) Bugfix: if the SSI was enabled for zero size static file, then the
       chunked response was encoded incorrectly.
diff --git a/auto/cc/gcc b/auto/cc/gcc
index 17bb138..6f1a953 100644
--- a/auto/cc/gcc
+++ b/auto/cc/gcc
@@ -19,7 +19,7 @@
 
 CC_TEST_FLAGS="-pipe"
 
-ngx_feature="gcc -pipe switch" 
+ngx_feature="gcc -pipe switch"
 ngx_feature_name=
 ngx_feature_run=no
 ngx_feature_incs=
@@ -125,7 +125,7 @@
 CFLAGS="$CFLAGS ${NGX_GCC_OPT:-O} -W"
 
 CFLAGS="$CFLAGS -Wall -Wpointer-arith"
-#CFLAGS="$CFLAGS -Wconversion" 
+#CFLAGS="$CFLAGS -Wconversion"
 #CFLAGS="$CFLAGS -Winline"
 
 
diff --git a/auto/cc/icc b/auto/cc/icc
index 6af9713..16cb2bb 100644
--- a/auto/cc/icc
+++ b/auto/cc/icc
@@ -106,7 +106,7 @@
 
 case "$NGX_ICC_VER" in
     9.*)
-        # "cc" clobber ignored, warnings for Liunx's htons()
+        # "cc" clobber ignored, warnings for Liunx's htonl()/htons()
         CFLAGS="$CFLAGS -wd1469"
         # explicit conversion of a 64-bit integral type to a smaller
         # integral type
@@ -114,19 +114,11 @@
         # conversion from pointer to same-sized integral type,
         # warning on offsetof()
         CFLAGS="$CFLAGS -wd1684"
-
-        # STUB
-        # non-POD class type passed through ellipsis, Linux only ?
-        CFLAGS="$CFLAGS -wd1595"
     ;;
 
     8.*)
-        # "cc" clobber ignored, warnings for Liunx's htons()
+        # "cc" clobber ignored, warnings for Liunx's htonl()/htons()
         CFLAGS="$CFLAGS -wd1469"
-
-        # STUB
-        # non-POD class type passed through ellipsis, Linux only ?
-        CFLAGS="$CFLAGS -wd1595"
     ;;
 
     *)
diff --git a/auto/cc/name b/auto/cc/name
index 7202aaa..aa3440c 100644
--- a/auto/cc/name
+++ b/auto/cc/name
@@ -5,7 +5,7 @@
 echo $ngx_n "checking for C compiler ...$ngx_c"
 
 
-if [ $CC = cl ]; then
+if [ "$CC" = cl ]; then
     if `$NGX_WINE $CC -v 2>&1 \
         | grep '^Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13' \
           2>&1 >/dev/null`; then
@@ -19,12 +19,12 @@
     fi
 
 else
-if [ $CC = wcl386 ]; then
+if [ "$CC" = wcl386 ]; then
     NGX_CC_NAME=owc
     echo " Open Watcom C compiler"
 
 else
-if [ $CC = bcc32 ]; then
+if [ "$CC" = bcc32 ]; then
     NGX_CC_NAME=bcc
     echo " Borland C++ compiler"
 
diff --git a/auto/cc/owc b/auto/cc/owc
index c2ab8f7..c8088d2 100644
--- a/auto/cc/owc
+++ b/auto/cc/owc
@@ -8,7 +8,7 @@
 
 # maximize speed
 CFLAGS="$CFLAGS -ot"
-# reorder instructions for best pipeline usage 
+# reorder instructions for best pipeline usage
 CFLAGS="$CFLAGS -op"
 # inline intrinsic functions
 CFLAGS="$CFLAGS -oi"
@@ -24,7 +24,7 @@
         CPU_OPT="-5r"
         # stack-based arguments passing conventions
         #CPU_OPT="-5s"
-    ;; 
+    ;;
 
     pentiumpro)
         # optimize for Pentium Pro, Pentium II and Pentium III
@@ -63,7 +63,7 @@
 #have=NGX_HAVE_C99_VARIADIC_MACROS . auto/have
 
 
-# the precompiled headers 
+# the precompiled headers
 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"
diff --git a/auto/endianess b/auto/endianess
index 578dd45..db6420d 100644
--- a/auto/endianess
+++ b/auto/endianess
@@ -20,7 +20,10 @@
 
 END
 
-eval "${CC} -o $NGX_AUTOTEST $NGX_AUTOTEST.c >> $NGX_ERR 2>&1"
+ngx_test="$CC $CC_TEST_FLAGS $CC_WARN $CC_AUX_FLAGS \
+          -o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs"
+
+eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1"
 
 if [ -x $NGX_AUTOTEST ]; then
     if $NGX_AUTOTEST 2>&1 > /dev/null; then
diff --git a/auto/include b/auto/include
index 7ed3086..7a098d9 100644
--- a/auto/include
+++ b/auto/include
@@ -43,7 +43,7 @@
 
     eval "NGX_INCLUDE_$ngx_name='#include <$ngx_include>'"
 
-    #STUB 
+    #STUB
     eval "NGX_$ngx_name='#include <$ngx_include>'"
 
 else
diff --git a/auto/lib/openssl/conf b/auto/lib/openssl/conf
index 0370fe0..3356689 100644
--- a/auto/lib/openssl/conf
+++ b/auto/lib/openssl/conf
@@ -8,6 +8,7 @@
     case "$CC" in
         *)
             have=NGX_OPENSSL . auto/have
+            have=NGX_SSL . auto/have
             LINK_DEPS="$LINK_DEPS $OPENSSL/libssl.a $OPENSSL/libcrypto.a"
             CORE_LIBS="$CORE_LIBS $OPENSSL/libssl.a $OPENSSL/libcrypto.a"
         ;;
@@ -34,6 +35,7 @@
         . auto/feature
 
         if [ $ngx_found = yes ]; then
+            have=NGX_SSL . auto/have
             CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
             OPENSSL=YES
 
diff --git a/auto/lib/pcre/conf b/auto/lib/pcre/conf
index 946b26e..460325c 100644
--- a/auto/lib/pcre/conf
+++ b/auto/lib/pcre/conf
@@ -66,7 +66,7 @@
 
         # 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="NGX_PCRE"
         ngx_feature_run=no
diff --git a/auto/modules b/auto/modules
index 26b1087..c94b6e5 100644
--- a/auto/modules
+++ b/auto/modules
@@ -65,6 +65,9 @@
 #     ngx_http_autoindex_module
 #     ngx_http_index_module
 #
+#     ngx_http_access_module
+#     ngx_http_realip_module
+#
 #
 # the filter order is important
 #     ngx_http_write_filter
@@ -157,6 +160,11 @@
     HTTP_SRCS="$HTTP_SRCS $HTTP_GEO_SRCS"
 fi
 
+if [ $HTTP_REFERER = YES ]; then
+    HTTP_MODULES="$HTTP_MODULES $HTTP_REFERER_MODULE"
+    HTTP_SRCS="$HTTP_SRCS $HTTP_REFERER_SRCS"
+fi
+
 if [ $HTTP_REWRITE = YES -a $USE_PCRE != DISABLED ]; then
     have=NGX_HTTP_REWRITE . auto/have
     USE_PCRE=YES
@@ -186,6 +194,11 @@
     HTTP_SRCS="$HTTP_SRCS $HTTP_FASTCGI_SRCS"
 fi
 
+if [ $HTTP_EMPTY_GIF = YES ]; then
+    HTTP_MODULES="$HTTP_MODULES $HTTP_EMPTY_GIF_MODULE"
+    HTTP_SRCS="$HTTP_SRCS $HTTP_EMPTY_GIF_SRCS"
+fi
+
 # STUB
 #USE_MD5=YES
 #HTTP_SRCS="$HTTP_SRCS $HTPP_CACHE_SRCS"
@@ -243,6 +256,7 @@
 if [ $HTTP = YES ]; then
     modules="$modules $HTTP_MODULES $HTTP_FILTER_MODULES \
              $HTTP_HEADERS_FILTER_MODULE \
+             $HTTP_AUX_FILTER_MODULES \
              $HTTP_COPY_FILTER_MODULE \
              $HTTP_RANGE_BODY_FILTER_MODULE \
              $HTTP_NOT_MODIFIED_FILTER_MODULE"
diff --git a/auto/options b/auto/options
index 35c7ad3..2dccb73 100644
--- a/auto/options
+++ b/auto/options
@@ -57,9 +57,11 @@
 HTTP_AUTOINDEX=YES
 HTTP_STATUS=NO
 HTTP_GEO=YES
+HTTP_REFERER=YES
 HTTP_REWRITE=YES
 HTTP_PROXY=YES
 HTTP_FASTCGI=YES
+HTTP_EMPTY_GIF=YES
 
 # STUB
 HTTP_STUB_STATUS=NO
@@ -136,9 +138,11 @@
         --without-http_autoindex_module) HTTP_AUTOINDEX=NO          ;;
         --without-http_status_module)    HTTP_STATUS=NO             ;;
         --without-http_geo_module)       HTTP_GEO=NO                ;;
+        --without-http_referer)          HTTP_REFERER=NO            ;;
         --without-http_rewrite_module)   HTTP_REWRITE=NO            ;;
         --without-http_proxy_module)     HTTP_PROXY=NO              ;;
         --without-http_fastcgi_module)   HTTP_FASTCGI=NO            ;;
+        --without-http_epmty_gif_module) HTTP_EMPTY_GIF=NO          ;;
 
         # STUB
         --with-http_stub_status_module)  HTTP_STUB_STATUS=YES       ;;
diff --git a/auto/os/features b/auto/os/features
index 3ec9110..848e483 100644
--- a/auto/os/features
+++ b/auto/os/features
@@ -14,7 +14,7 @@
         if grep nogroup /etc/group 2>&1 >/dev/null; then
             echo "checking for nogroup group ... found"
             NGX_GROUP=nogroup
-        else 
+        else
             echo "checking for nogroup group ... not found"
             NGX_GROUP=nobody
         fi
@@ -23,7 +23,7 @@
 else
     NGX_GROUP=$NGX_USER
 fi
-    
+
 
 ngx_feature="poll()"
 ngx_feature_name=
@@ -31,17 +31,17 @@
 ngx_feature_incs="#include <poll.h>"
 ngx_feature_libs=
 ngx_feature_test="int  n, dp; struct pollfd  pl;
-                  dp = 0; 
+                  dp = 0;
                   pl.fd = 0;
                   pl.events = 0;
                   pl.revents = 0;
                   n = poll(&pl, 1, 0)"
 . auto/feature
-    
+
 if [ $ngx_found = no ]; then
     EVENT_POLL=NONE
 fi
-    
+
 
 ngx_feature="/dev/poll"
 ngx_feature_name="NGX_HAVE_DEVPOLL"
diff --git a/auto/os/linux b/auto/os/linux
index c31f848..6354bed 100644
--- a/auto/os/linux
+++ b/auto/os/linux
@@ -100,3 +100,15 @@
 ngx_feature_libs=
 ngx_feature_test="if (prctl(PR_SET_DUMPABLE, 1, 0, 0, 0) == -1) return 1"
 . auto/feature
+
+
+# sched_setaffinity()
+
+ngx_feature="sched_setaffinity()"
+ngx_feature_name="NGX_HAVE_SCHED_SETAFFINITY"
+ngx_feature_run=no
+ngx_feature_incs="#include <sched.h>"
+ngx_feature_libs=
+ngx_feature_test="long mask = 0;
+                  sched_setaffinity(0, 32, &mask)"
+. auto/feature
diff --git a/auto/sources b/auto/sources
index 8aa596c..c4316d7 100644
--- a/auto/sources
+++ b/auto/sources
@@ -334,6 +334,10 @@
 HTTP_GEO_SRCS=src/http/modules/ngx_http_geo_module.c
 
 
+HTTP_REFERER_MODULE=ngx_http_referer_module
+HTTP_REFERER_SRCS=src/http/modules/ngx_http_referer_module.c
+
+
 HTTP_REWRITE_MODULE=ngx_http_rewrite_module
 HTTP_REWRITE_SRCS=src/http/modules/ngx_http_rewrite_module.c
 
@@ -351,6 +355,10 @@
 HTTP_FASTCGI_SRCS=src/http/modules/ngx_http_fastcgi_module.c
 
 
+HTTP_EMPTY_GIF_MODULE=ngx_http_empty_gif_module
+HTTP_EMPTY_GIF_SRCS=src/http/modules/ngx_http_empty_gif_module.c
+
+
 IMAP_INCS="src/imap"
 
 IMAP_DEPS="src/imap/ngx_imap.h"
diff --git a/auto/types/sizeof b/auto/types/sizeof
index a7094e4..796aed1 100644
--- a/auto/types/sizeof
+++ b/auto/types/sizeof
@@ -31,7 +31,9 @@
 END
 
 
-ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS -o $NGX_AUTOTEST $NGX_AUTOTEST.c"
+ngx_test="$CC $CC_TEST_FLAGS $CC_WARN $CC_AUX_FLAGS \
+          -o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs"
+
 eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1"