autoindex on XFS
Igor Sysoev
is at rambler-co.ru
Thu Mar 5 00:34:46 MSK 2009
Патч показывает слэш после имени каталога на XFS при автоиндексе.
--
Игорь Сысоев
http://sysoev.ru
-------------- next part --------------
Index: src/os/unix/ngx_files.c
===================================================================
--- src/os/unix/ngx_files.c (revision 1824)
+++ src/os/unix/ngx_files.c (working copy)
@@ -249,11 +249,6 @@
}
dir->valid_info = 0;
-#if (NGX_HAVE_D_TYPE)
- dir->valid_type = 1;
-#else
- dir->valid_type = 0;
-#endif
return NGX_OK;
}
@@ -267,6 +262,9 @@
if (dir->de) {
#if (NGX_HAVE_D_TYPE)
dir->type = dir->de->d_type;
+ dir->valid_type = dir->type ? 1 : 0;
+#else
+ dir->valid_type = 0;
#endif
return NGX_OK;
}
Index: src/os/unix/ngx_files.h
===================================================================
--- src/os/unix/ngx_files.h (revision 1824)
+++ src/os/unix/ngx_files.h (working copy)
@@ -200,10 +200,25 @@
#if (NGX_HAVE_D_TYPE)
+#if (NGX_LINUX)
+
+/* XFS on Linux does not set dirent.d_type */
+
+#define ngx_de_is_dir(dir) \
+ (((dir)->type) ? ((dir)->type == DT_DIR) : (S_ISDIR((dir)->info.st_mode)))
+#define ngx_de_is_file(dir) \
+ (((dir)->type) ? ((dir)->type == DT_REG) : (S_ISREG((dir)->info.st_mode)))
+#define ngx_de_is_link(dir) \
+ (((dir)->type) ? ((dir)->type == DT_LINK) : (S_ISLNK((dir)->info.st_mode)))
+
+#else
+
#define ngx_de_is_dir(dir) ((dir)->type == DT_DIR)
#define ngx_de_is_file(dir) ((dir)->type == DT_REG)
#define ngx_de_is_link(dir) ((dir)->type == DT_LINK)
+#endif /* NGX_LINUX */
+
#else
#define ngx_de_is_dir(dir) (S_ISDIR((dir)->info.st_mode))
More information about the nginx-ru
mailing list