Mercurial > hg > nginx
comparison src/os/unix/ngx_files.c @ 2550:5e87ddb4764f
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
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Fri, 06 Mar 2009 13:01:21 +0000 |
parents | 1adec90a0e46 |
children | ceef364208c8 |
comparison
equal
deleted
inserted
replaced
2549:2d34fba7cf06 | 2550:5e87ddb4764f |
---|---|
247 if (dir->dir == NULL) { | 247 if (dir->dir == NULL) { |
248 return NGX_ERROR; | 248 return NGX_ERROR; |
249 } | 249 } |
250 | 250 |
251 dir->valid_info = 0; | 251 dir->valid_info = 0; |
252 #if (NGX_HAVE_D_TYPE) | |
253 dir->valid_type = 1; | |
254 #else | |
255 dir->valid_type = 0; | |
256 #endif | |
257 | 252 |
258 return NGX_OK; | 253 return NGX_OK; |
259 } | 254 } |
260 | 255 |
261 | 256 |
265 dir->de = readdir(dir->dir); | 260 dir->de = readdir(dir->dir); |
266 | 261 |
267 if (dir->de) { | 262 if (dir->de) { |
268 #if (NGX_HAVE_D_TYPE) | 263 #if (NGX_HAVE_D_TYPE) |
269 dir->type = dir->de->d_type; | 264 dir->type = dir->de->d_type; |
265 dir->valid_type = dir->type ? 1 : 0; | |
266 #else | |
267 dir->valid_type = 0; | |
270 #endif | 268 #endif |
271 return NGX_OK; | 269 return NGX_OK; |
272 } | 270 } |
273 | 271 |
274 return NGX_ERROR; | 272 return NGX_ERROR; |