nginx-0.3.16-RELEASE import

    *) Feature: the ngx_http_map_module.

    *) Feature: the "types_hash_max_size" and "types_hash_bucket_size"
       directives.

    *) Feature: the "ssi_value_length" directive.

    *) Feature: the "worker_rlimit_core" directive.

    *) Workaround: the connection number in logs was always 1 if nginx was
       built by the icc 8.1 or 9.0 compilers with optimization for
       Pentium 4.

    *) Bugfix: the "config timefmt" SSI command set incorrect time format.

    *) Bugfix: nginx did not close connection to IMAP/POP3 backend for the
       SSL connections; the bug had appeared in 0.3.13.
       Thanks to Rob Mueller.

    *) Bugfix: segmentation fault may occurred in at SSL shutdown; the bug
       had appeared in 0.3.13.
diff --git a/auto/cc/gcc b/auto/cc/gcc
index 9e0e52d..5c5f61c 100644
--- a/auto/cc/gcc
+++ b/auto/cc/gcc
@@ -58,26 +58,31 @@
     pentium)
         # optimize for Pentium and Athlon
         CPU_OPT="-march=pentium"
+        NGX_CPU_CACHE_LINE=32
     ;;
 
     pentiumpro | pentium3)
         # optimize for Pentium Pro, Pentium II and Pentium III
         CPU_OPT="-march=pentiumpro"
+        NGX_CPU_CACHE_LINE=32
     ;;
 
     pentium4)
         # optimize for Pentium 4, gcc 3.x
         CPU_OPT="-march=pentium4"
+        NGX_CPU_CACHE_LINE=128
     ;;
 
     athlon)
         # optimize for Athlon, gcc 3.x
         CPU_OPT="-march=athlon"
+        NGX_CPU_CACHE_LINE=64
     ;;
 
     opteron)
         # optimize for Opteron, gcc 3.x
         CPU_OPT="-march=opteron"
+        NGX_CPU_CACHE_LINE=64
     ;;
 
     sparc32)
@@ -85,6 +90,7 @@
         CPU_OPT="-m32"
         CORE_LINK="$CORE_LINK -m32"
         CC_AUX_FLAGS="$CC_AUX_FLAGS -m32"
+        NGX_CPU_CACHE_LINE=64
     ;;
 
     sparc64)
@@ -92,6 +98,7 @@
         CPU_OPT="-m64"
         CORE_LINK="$CORE_LINK -m64"
         CC_AUX_FLAGS="$CC_AUX_FLAGS -m64"
+        NGX_CPU_CACHE_LINE=64
     ;;
 
 esac
diff --git a/auto/cc/icc b/auto/cc/icc
index 16cb2bb..1a4111b 100644
--- a/auto/cc/icc
+++ b/auto/cc/icc
@@ -2,7 +2,7 @@
 # Copyright (C) Igor Sysoev
 
 
-# Intel C++ compiler 7.1, 8.0, 8.1
+# Intel C++ compiler 7.1, 8.0, 8.1, 9.0
 
 NGX_ICC_VER=`$CC -V 2>&1 | grep 'Version' 2>&1 \
                          | sed -e 's/^.* Version \(.*\)   Build.*$/\1/'`
diff --git a/auto/modules b/auto/modules
index 5940b28..392094e 100644
--- a/auto/modules
+++ b/auto/modules
@@ -160,6 +160,12 @@
     HTTP_SRCS="$HTTP_SRCS $HTTP_GEO_SRCS"
 fi
 
+if [ $HTTP_MAP = YES ]; then
+    have=NGX_HTTP_MAP . auto/have
+    HTTP_MODULES="$HTTP_MODULES $HTTP_MAP_MODULE"
+    HTTP_SRCS="$HTTP_SRCS $HTTP_MAP_SRCS"
+fi
+
 if [ $HTTP_REFERER = YES ]; then
     HTTP_MODULES="$HTTP_MODULES $HTTP_REFERER_MODULE"
     HTTP_SRCS="$HTTP_SRCS $HTTP_REFERER_SRCS"
diff --git a/auto/options b/auto/options
index 6c249b1..da00edf 100644
--- a/auto/options
+++ b/auto/options
@@ -57,6 +57,7 @@
 HTTP_AUTOINDEX=YES
 HTTP_STATUS=NO
 HTTP_GEO=YES
+HTTP_MAP=YES
 HTTP_REFERER=YES
 HTTP_REWRITE=YES
 HTTP_PROXY=YES
@@ -89,6 +90,8 @@
 ZLIB_OPT=
 ZLIB_ASM=NO
 
+NGX_CPU_CACHE_LINE=
+
 
 for option
 do
@@ -139,6 +142,7 @@
         --without-http_autoindex_module) HTTP_AUTOINDEX=NO          ;;
         --without-http_status_module)    HTTP_STATUS=NO             ;;
         --without-http_geo_module)       HTTP_GEO=NO                ;;
+        --without-http_map_module)       HTTP_MAP=NO                ;;
         --without-http_referer_module)   HTTP_REFERER=NO            ;;
         --without-http_rewrite_module)   HTTP_REWRITE=NO            ;;
         --without-http_proxy_module)     HTTP_PROXY=NO              ;;
diff --git a/auto/os/conf b/auto/os/conf
index f4ba388..0ddbacb 100644
--- a/auto/os/conf
+++ b/auto/os/conf
@@ -59,12 +59,36 @@
 
 case "$NGX_MACHINE" in
 
-    i386 | i686 | i86pc | amd64)
+    i386 | i686 | i86pc)
         have=NGX_HAVE_NONALIGNED . auto/have
+        NGX_MACH_CACHE_LINE=32
     ;;
 
-    sun4u | sparc | sparc64 | ia64 )
+    amd64)
+        have=NGX_HAVE_NONALIGNED . auto/have
+        NGX_MACH_CACHE_LINE=64
+    ;;
+
+    sun4u | sparc | sparc64)
         have=NGX_ALIGNMENT value=16 . auto/define
+        # TODO
+        NGX_MACH_CACHE_LINE=64
+    ;;
+
+    ia64 )
+        have=NGX_ALIGNMENT value=16 . auto/define
+        # TODO
+        NGX_MACH_CACHE_LINE=64
+    ;;
+
+    *)
+        NGX_MACH_CACHE_LINE=32
     ;;
 
 esac
+
+if test -z "$NGX_CPU_CACHE_LINE"; then
+    NGX_CPU_CACHE_LINE=$NGX_MACH_CACHE_LINE
+fi
+
+have=NGX_CPU_CACHE_LINE value=$NGX_CPU_CACHE_LINE . auto/define
diff --git a/auto/sources b/auto/sources
index 0b9245d..b598083 100644
--- a/auto/sources
+++ b/auto/sources
@@ -334,6 +334,10 @@
 HTTP_GEO_SRCS=src/http/modules/ngx_http_geo_module.c
 
 
+HTTP_MAP_MODULE=ngx_http_map_module
+HTTP_MAP_SRCS=src/http/modules/ngx_http_map_module.c
+
+
 HTTP_REFERER_MODULE=ngx_http_referer_module
 HTTP_REFERER_SRCS=src/http/modules/ngx_http_referer_module.c