Mercurial > hg > nginx
diff src/http/ngx_http_event.c @ 2:ffffe1499bce
nginx-0.0.1-2002-08-16-19:27:03 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Fri, 16 Aug 2002 15:27:03 +0000 |
parents | d220029ac7f3 |
children | 34a521b1a148 |
line wrap: on
line diff
--- a/src/http/ngx_http_event.c +++ b/src/http/ngx_http_event.c @@ -180,6 +180,78 @@ static int ngx_process_http_request_head static int ngx_process_http_request(ngx_http_request_t *r) { + int err; + char *name, *loc, *file; + + ngx_log_debug(r->connection->log, "HTTP request"); + + if (*(r->uri_end - 1) == '/') { + r->handler = NGX_HTTP_DIRECTORY_HANDLER; + return NGX_OK; + } + + /* 20 bytes is spare space for some index name, i.e. index.html */ + r->filename_len = r->uri_end - r->uri_start + r->server->doc_root_len + 20; + + ngx_test_null(r->filename, + ngx_palloc(r->pool, r->filename_len), + ngx_http_error(r, NGX_HTTP_INTERNAL_SERVER_ERROR)); + + r->location = ngx_cpystrn(r->filename, r->server->doc_root, + r->server->doc_root_len); + file = ngx_cpystrn(r->location, r->uri_start, + r->uri_end - r->uri_start + 1); + + ngx_log_debug(r->connection->log, "HTTP filename: '%s'" _ r->filename); + +} +#if 0 + + if (ngx_stat(r->filename, &r->stat) == -1) { + err = ngx_errno; + ngx_log_error(GX_LOG_ERR, r->connection->log, err, + "ngx_process_http_request: " + ngx_stat_n " %s failed", r->filename); + + if (err == NGX_ENOENT) + return ngx_http_error(r, NGX_HTTP_NOT_FOUND); + else + return ngx_http_error(r, NGX_HTTP_INTERNAL_SERVER_ERROR); + } + + if (ngx_is_dir(r->stat)) { + *file++ = '/'; + *file = '\0'; + r->headers_out->location = r->location; + return ngx_http_redirect(r, NGX_HTTP_MOVED_PERMANENTLY); + } + + r->stat_valid = 1; + r->handler = NGX_HTTP_STATIC_HANDLER; + return NGX_OK; +} + +static int ngx_http_handler(ngx_http_request_t *r, int handler) +{ + if (handler == NGX_HTTP_STATIC_HANDLER) + return ngx_http_static_handler(r); + + elsif (handler == NGX_HTTP_DIRECTORY_HANDLER) + return ngx_http_index_handler(r); + + return ngx_http_error(r, NGX_HTTP_INTERNAL_SERVER_ERROR); +} +#endif + +static int ngx_http_redirect(ngx_http_request_t *r, int redirect) +{ + /* STUB */ + return -1; +} + +static int ngx_http_error(ngx_http_request_t *r, int error) +{ + /* STUB */ return -1; }