XFS on Linux does not set dirent.d_type,
therefore fallback to stat() if dirent.d_type is not set,
this fixes slash after directory name in ngx_http_autoindex_module;
the issue has been introduced in r2235
Igor Sysoev
11 years ago
199 | 199 |
|
200 | 200 |
#if (NGX_HAVE_D_TYPE)
|
201 | 201 |
|
|
202 |
#if (NGX_LINUX)
|
|
203 |
|
|
204 |
/* XFS on Linux does not set dirent.d_type */
|
|
205 |
|
|
206 |
#define ngx_de_is_dir(dir) \
|
|
207 |
(((dir)->type) ? ((dir)->type == DT_DIR) : (S_ISDIR((dir)->info.st_mode)))
|
|
208 |
#define ngx_de_is_file(dir) \
|
|
209 |
(((dir)->type) ? ((dir)->type == DT_REG) : (S_ISREG((dir)->info.st_mode)))
|
|
210 |
#define ngx_de_is_link(dir) \
|
|
211 |
(((dir)->type) ? ((dir)->type == DT_LINK) : (S_ISLNK((dir)->info.st_mode)))
|
|
212 |
|
|
213 |
#else
|
|
214 |
|
202 | 215 |
#define ngx_de_is_dir(dir) ((dir)->type == DT_DIR)
|
203 | 216 |
#define ngx_de_is_file(dir) ((dir)->type == DT_REG)
|
204 | 217 |
#define ngx_de_is_link(dir) ((dir)->type == DT_LINK)
|
|
218 |
|
|
219 |
#endif /* NGX_LINUX */
|
205 | 220 |
|
206 | 221 |
#else
|
207 | 222 |
|