nginx-0.1.35-RELEASE import

    *) Feature: the "working_directory" directive.

    *) Feature: the "port_in_redirect" directive.

    *) Bugfix: the segmentation fault was occurred if the backend response
       header was in several packets; the bug had appeared in 0.1.29.

    *) Bugfix: if more than 10 servers were configured or some server did
       not use the "listen" directive, then the segmentation fault was
       occurred on the start.

    *) Bugfix: the segmentation fault might occur if the response was
       bigger than the temporary file.

    *) Bugfix: nginx returned the 400 response on requests like
       "GET http://www.domain.com/uri HTTP/1.0"; the bug had appeared in
       0.1.28.
diff --git a/auto/cc/gcc b/auto/cc/gcc
index 2e5906a..c5db858 100644
--- a/auto/cc/gcc
+++ b/auto/cc/gcc
@@ -4,7 +4,7 @@
 
 # gcc 2.7.2.3, 2.8.1, 2.95.4, egcs-1.1.2
 #     3.0.4, 3.1.1, 3.2.3, 3.3.2, 3.3.3, 3.3.4, 3.4.0, 3.4.2
-#     4.0.0
+#     4.0.0, 4.0.1, 4.1.0
 
 
 NGX_GCC_VER=`$CC -v 2>&1 | grep 'gcc version' 2>&1 \
@@ -57,6 +57,11 @@
         CPU_OPT="-march=pentium4"
     ;;
 
+    athlon)
+        # optimize for Athlon, gcc 3.x
+        CPU_OPT="-march=athlon"
+    ;;
+
     opteron)
         # optimize for Opteron, gcc 3.x
         CPU_OPT="-march=opteron"
diff --git a/auto/cc/icc b/auto/cc/icc
index a0f676e..1c59c55 100644
--- a/auto/cc/icc
+++ b/auto/cc/icc
@@ -4,6 +4,12 @@
 
 # Intel C++ compiler 7.1, 8.0, 8.1
 
+NGX_ICC_VER=`$CC -V 2>&1 | grep 'Version' 2>&1 \
+                         | sed -e 's/^.* Version \(.*\)   Build.*$/\1/'`
+
+echo " + icc version: $NGX_ICC_VER"
+
+
 # optimizations
 
 CFLAGS="$CFLAGS -O"
@@ -72,8 +78,6 @@
 CFLAGS="$CFLAGS -wd810"
 # parameter was never referenced
 CFLAGS="$CFLAGS -wd869"
-# "cc" clobber ignored, warnings for Liunx's htons()
-CFLAGS="$CFLAGS -wd1469"
 
 # STUB
 # enumerated type mixed with another type
@@ -86,8 +90,20 @@
 CFLAGS="$CFLAGS -wd1418"
 # external declaration in primary source file
 CFLAGS="$CFLAGS -wd1419"
-# non-POD class type passed through ellipsis
-CFLAGS="$CFLAGS -wd1595"
+
+case "$NGX_ICC_VER" in
+    8.*)
+        # "cc" clobber ignored, warnings for Liunx's htons()
+        CFLAGS="$CFLAGS -wd1469"
+
+        # STUB
+        # non-POD class type passed through ellipsis
+        CFLAGS="$CFLAGS -wd1595"
+    ;;
+
+    *)
+    ;;
+esac
 
 # stop on warning
 CFLAGS="$CFLAGS -Werror"
diff --git a/auto/modules b/auto/modules
index b032f05..dccb7a7 100644
--- a/auto/modules
+++ b/auto/modules
@@ -51,6 +51,12 @@
 fi
 
 
+if [ $HTTP != YES ]; then
+    have=NGX_CRYPT . auto/nohave
+    CRYPT_LIB=
+fi
+
+
 if [ $HTTP_SSI = YES ]; then
     HTTP_POSTPONE=YES
 fi
@@ -219,10 +225,14 @@
 fi
 
 
-IMAP_MODULES=$IMAP_MODULE
-
 if [ $IMAP = YES ]; then
     modules="$modules $IMAP_MODULES"
+
+    modules="$modules $IMAP_AUTH_HTTP_MODULE"
+    IMAP_SRCS="$IMAP_SRCS $IMAP_AUTH_HTTP_SRCS"
+
+    modules="$modules $IMAP_PROXY_MODULE"
+    IMAP_SRCS="$IMAP_SRCS $IMAP_PROXY_SRCS"
 fi
 
 
diff --git a/auto/sources b/auto/sources
index e597f97..05889f3 100644
--- a/auto/sources
+++ b/auto/sources
@@ -339,8 +339,15 @@
 
 IMAP_DEPS="src/imap/ngx_imap.h"
 
-IMAP_MODULE=ngx_imap_module
+IMAP_MODULES="ngx_imap_module ngx_imap_core_module"
+
 IMAP_SRCS="src/imap/ngx_imap.c \
+           src/imap/ngx_imap_core_module.c \
            src/imap/ngx_imap_handler.c \
-           src/imap/ngx_imap_parse.c \
-           src/imap/ngx_imap_proxy.c"
+           src/imap/ngx_imap_parse.c"
+
+IMAP_AUTH_HTTP_MODULE="ngx_imap_auth_http_module"
+IMAP_AUTH_HTTP_SRCS="src/imap/ngx_imap_auth_http_module.c"
+
+IMAP_PROXY_MODULE="ngx_imap_proxy_module"
+IMAP_PROXY_SRCS="src/imap/ngx_imap_proxy_module.c"