comparison src/http/ngx_http_core_module.c @ 46:f84a648211f4

nginx-0.0.1-2003-01-10-20:45:47 import
author Igor Sysoev <igor@sysoev.ru>
date Fri, 10 Jan 2003 17:45:47 +0000
parents f1ee46c036a4
children d81326c3b21b
comparison
equal deleted inserted replaced
45:f1ee46c036a4 46:f84a648211f4
204 err = ngx_errno; 204 err = ngx_errno;
205 ngx_log_error(NGX_LOG_ERR, r->connection->log, err, 205 ngx_log_error(NGX_LOG_ERR, r->connection->log, err,
206 "ngx_http_core_translate_handler: " 206 "ngx_http_core_translate_handler: "
207 ngx_file_type_n " %s failed", r->file.name.data); 207 ngx_file_type_n " %s failed", r->file.name.data);
208 208
209 if (err == ERROR_FILE_NOT_FOUND) { 209 if (err == NGX_ENOENT) {
210 return NGX_HTTP_NOT_FOUND; 210 return NGX_HTTP_NOT_FOUND;
211
211 } else if (err == ERROR_PATH_NOT_FOUND) { 212 } else if (err == ERROR_PATH_NOT_FOUND) {
212 return NGX_HTTP_NOT_FOUND; 213 return NGX_HTTP_NOT_FOUND;
214
215 } else if (err == NGX_EACCESS) {
216 return NGX_HTTP_FORBIDDEN;
217
213 } else { 218 } else {
214 return NGX_HTTP_INTERNAL_SERVER_ERROR; 219 return NGX_HTTP_INTERNAL_SERVER_ERROR;
215 } 220 }
216 } 221 }
217 222
234 return NGX_HTTP_NOT_FOUND; 239 return NGX_HTTP_NOT_FOUND;
235 #else 240 #else
236 } else if (err == NGX_ENOTDIR) { 241 } else if (err == NGX_ENOTDIR) {
237 return NGX_HTTP_NOT_FOUND; 242 return NGX_HTTP_NOT_FOUND;
238 #endif 243 #endif
244 } else if (err == NGX_EACCESS) {
245 return NGX_HTTP_FORBIDDEN;
246
239 } else { 247 } else {
240 return NGX_HTTP_INTERNAL_SERVER_ERROR; 248 return NGX_HTTP_INTERNAL_SERVER_ERROR;
241 } 249 }
242 } 250 }
243 251
294 } 302 }
295 303
296 304
297 static int ngx_http_core_index_handler(ngx_http_request_t *r) 305 static int ngx_http_core_index_handler(ngx_http_request_t *r)
298 { 306 {
299 int i, rc; 307 int i, rc;
300 ngx_err_t err;
301 ngx_http_handler_pt *h; 308 ngx_http_handler_pt *h;
302 309
303 h = (ngx_http_handler_pt *) ngx_http_index_handlers.elts; 310 h = (ngx_http_handler_pt *) ngx_http_index_handlers.elts;
304 for (i = 0; i < ngx_http_index_handlers.nelts; i++) { 311 for (i = 0; i < ngx_http_index_handlers.nelts; i++) {
305 rc = h[i](r); 312 rc = h[i](r);
307 if (rc != NGX_DECLINED) { 314 if (rc != NGX_DECLINED) {
308 return rc; 315 return rc;
309 } 316 }
310 } 317 }
311 318
312 #if (WIN32) 319 return NGX_HTTP_FORBIDDEN;
313
314 if (r->path_not_found) {
315 return NGX_HTTP_NOT_FOUND;
316
317 } else {
318 return NGX_HTTP_FORBIDDEN;
319 }
320
321 #else
322
323 if (r->path_not_found) {
324 return NGX_HTTP_NOT_FOUND;
325 }
326
327 r->path.data[r->path.len] = '\0';
328 if (stat(r->path.data, &r->file.info) == -1) {
329
330 err = ngx_errno;
331 if (err == NGX_ENOENT) {
332 return NGX_HTTP_NOT_FOUND;
333 }
334
335 ngx_log_error(NGX_LOG_ERR, r->connection->log, err,
336 "ngx_http_core_index_handler: "
337 "stat() %s failed", r->path.data);
338
339 return NGX_HTTP_INTERNAL_SERVER_ERROR;
340 }
341
342 if (ngx_is_dir(r->file.info)) {
343 return NGX_HTTP_FORBIDDEN;
344
345 } else {
346 return NGX_HTTP_NOT_FOUND;
347 }
348
349 #endif
350 } 320 }
351 321
352 322
353 int ngx_http_send_header(ngx_http_request_t *r) 323 int ngx_http_send_header(ngx_http_request_t *r)
354 { 324 {