nginx-0.1.23-RELEASE import

    *) Feature: the ngx_http_ssi_filter_module and the ssi,
       ssi_silent_errors, and ssi_min_file_chunk directives. The 'echo
       var="HTTP_..." default=""' and 'echo var="REMOTE_ADDR"' commands are
       supported.

    *) Feature: the %request_time log parameter.

    *) Feature: if the request has no the "Host" header line, then the
       "proxy_preserve_host" directive set this header line to the first
       server name of the "server_name" directive.

    *) Bugfix: nginx could not be built on platforms different from i386,
       amd64, sparc, and ppc; the bug had appeared in 0.1.22.

    *) Bugfix: the ngx_http_autoindex_module now shows the information not
       about the symlink, but about file or directory it points to.

    *) Bugfix: the %apache_length parameter logged the negative length of
       the response header if the no response was transferred to a client.
diff --git a/src/os/unix/ngx_files.h b/src/os/unix/ngx_files.h
index be9cebe..57f53eb 100644
--- a/src/os/unix/ngx_files.h
+++ b/src/os/unix/ngx_files.h
@@ -18,7 +18,7 @@
 
 
 #define ngx_open_file(name, access, create)                                 \
-                                 open((const char *) name, access|create, 0644)
+    open((const char *) name, access|create, 0644)
 #define ngx_open_file_n          "open()"
 
 #define NGX_FILE_RDONLY          O_RDONLY
@@ -46,10 +46,10 @@
 
 
 ssize_t ngx_write_file(ngx_file_t *file, u_char *buf, size_t size,
-                       off_t offset);
+    off_t offset);
 
 ssize_t ngx_write_chain_to_file(ngx_file_t *file, ngx_chain_t *ce,
-                                off_t offset, ngx_pool_t *pool);
+    off_t offset, ngx_pool_t *pool);
 
 
 #define ngx_rename_file          rename
@@ -86,7 +86,7 @@
 
 
 #define ngx_read_dir(d)                                                      \
-                           (((d)->de = readdir((d)->dir)) ? NGX_OK : NGX_ERROR)
+    (((d)->de = readdir((d)->dir)) ? NGX_OK : NGX_ERROR)
 #define ngx_read_dir_n           "readdir()"
 
 
@@ -104,10 +104,13 @@
 #else
 #define ngx_de_namelen(dir)      ngx_strlen((dir)->de->d_name)
 #endif
-#define ngx_de_info(name, dir)   lstat((const char *) name, &(dir)->info)
+#define ngx_de_info(name, dir)   stat((const char *) name, &(dir)->info)
 #define ngx_de_info_n            "stat()"
+#define ngx_de_link_info(name, dir)  lstat((const char *) name, &(dir)->info)
+#define ngx_de_link_info_n       "lstat()"
 #define ngx_de_is_dir(dir)       (S_ISDIR((dir)->info.st_mode))
 #define ngx_de_is_file(dir)      (S_ISREG((dir)->info.st_mode))
+#define ngx_de_is_link(dir)      (S_ISLNK((dir)->info.st_mode))
 #define ngx_de_size(dir)         (dir)->info.st_size
 #define ngx_de_mtime(dir)        (dir)->info.st_mtime