aboutsummaryrefslogtreecommitdiff
path: root/src/http/ngx_http_core.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/http/ngx_http_core.c')
-rw-r--r--src/http/ngx_http_core.c335
1 files changed, 0 insertions, 335 deletions
diff --git a/src/http/ngx_http_core.c b/src/http/ngx_http_core.c
deleted file mode 100644
index 30d8329df..000000000
--- a/src/http/ngx_http_core.c
+++ /dev/null
@@ -1,335 +0,0 @@
-
-#include <ngx_config.h>
-
-#include <ngx_core.h>
-#include <ngx_conf_file.h>
-
-#include <ngx_http.h>
-#include <ngx_http_core.h>
-#include <ngx_http_config.h>
-
-/* STUB */
-int ngx_http_static_handler(ngx_http_request_t *r);
-int ngx_http_index_handler(ngx_http_request_t *r);
-int ngx_http_proxy_handler(ngx_http_request_t *r);
-/**/
-
-static void *ngx_http_core_create_srv_conf(ngx_pool_t *pool);
-static void *ngx_http_core_create_loc_conf(ngx_pool_t *pool);
-static int ngx_http_core_translate_handler(ngx_http_request_t *r);
-
-
-int (*ngx_http_top_header_filter) (ngx_http_request_t *r);
-
-int ngx_http_max_module;
-
-#if 0
-static ngx_command_t ngx_http_core_commands[] = {
-
- {ngx_string("send_timeout"),
- NGX_CONF_TAKE1,
- ngx_conf_set_time_slot,
- NGX_HTTP_LOC_CONF,
- offsetof(ngx_http_core_loc_conf_t, send_timeout)},
-
- {ngx_string(""), 0, NULL, 0, 0}
-};
-#endif
-
-ngx_http_module_t ngx_http_core_module_ctx = {
- NGX_HTTP_MODULE,
-
- ngx_http_core_create_srv_conf, /* create server config */
- NULL, /* init server config */
- ngx_http_core_create_loc_conf, /* create location config */
- NULL, /* merge location config */
-
- ngx_http_core_translate_handler, /* translate handler */
-
- NULL, /* output header filter */
- NULL, /* next output header filter */
- NULL, /* output body filter */
- NULL, /* next output body filter */
-};
-
-#if 0
-ngx_module_t ngx_http_core_module = {
- &ngx_http_core_module_ctx, /* module context */
- ngx_http_core_commands, /* module directives */
- NGX_HTTP_MODULE_TYPE, /* module type */
- NULL /* init module */
-};
-#endif
-
-int ngx_http_handler(ngx_http_request_t *r)
-{
- int rc, i;
- ngx_http_module_t *module;
-
- r->connection->unexpected_eof = 0;
- r->lingering_close = 1;
- r->keepalive = 0;
-
-#if 0
- r->filter = NGX_HTTP_FILTER_NEED_IN_MEMORY;
-#endif
-
- /* run translation phase */
- for (i = 0; ngx_modules[i]; i++) {
- if (ngx_modules[i]->type != NGX_HTTP_MODULE_TYPE) {
- continue;
- }
-
- module = (ngx_http_module_t *) ngx_modules[i]->ctx;
- if (module->translate_handler == NULL) {
- continue;
- }
-
- rc = module->translate_handler(r);
- if (rc == NGX_OK) {
- break;
- }
-
- if (rc >= NGX_HTTP_SPECIAL_RESPONSE) {
- return ngx_http_special_response(r, rc);
- }
- }
-
- rc = r->handler(r);
-
- if (rc >= NGX_HTTP_SPECIAL_RESPONSE) {
- return ngx_http_special_response(r, rc);
- }
-
- return rc;
-}
-
-
-static int ngx_http_core_translate_handler(ngx_http_request_t *r)
-{
- char *loc, *last;
- ngx_err_t err;
- ngx_table_elt_t *h;
-
- /* TODO: find location conf */
-
- if (r->uri.data[r->uri.len - 1] == '/') {
- /* TODO: find index handler */
- /* STUB */ r->handler = ngx_http_index_handler;
-
- return NGX_OK;
- }
-
- r->file.name.len = r->server->doc_root_len + r->uri.len + 2;
-
- ngx_test_null(r->file.name.data,
- ngx_palloc(r->pool, r->file.name.len + 1),
- NGX_HTTP_INTERNAL_SERVER_ERROR);
-
- loc = ngx_cpystrn(r->file.name.data, r->server->doc_root,
- r->server->doc_root_len);
- last = ngx_cpystrn(loc, r->uri.data, r->uri.len + 1);
-
- ngx_log_debug(r->connection->log, "HTTP filename: '%s'" _
- r->file.name.data);
-
-#if (WIN9X)
-
- /* There is no way to open file or directory in Win9X with
- one syscall: Win9X has not FILE_FLAG_BACKUP_SEMANTICS flag.
- so we need to check its type before opening */
-
-#if 0 /* OLD: ngx_file_type() is to be removed */
- if (ngx_file_type(r->file.name.data, &r->file.info) == -1) {
-#endif
-
- r->file.info.dwFileAttributes = GetFileAttributes(r->file.name.data);
- if (r->file.info.dwFileAttributes == INVALID_FILE_ATTRIBUTES) {
- err = ngx_errno;
- ngx_log_error(NGX_LOG_ERR, r->connection->log, err,
- "ngx_http_core_translate_handler: "
- ngx_file_type_n " %s failed", r->file.name.data);
-
- if (err == ERROR_FILE_NOT_FOUND) {
- return NGX_HTTP_NOT_FOUND;
- } else if (err == ERROR_PATH_NOT_FOUND) {
- return NGX_HTTP_NOT_FOUND;
- } else {
- return NGX_HTTP_INTERNAL_SERVER_ERROR;
- }
- }
-
-#else
-
- if (r->file.fd == NGX_INVALID_FILE) {
- r->file.fd = ngx_open_file(r->file.name.data, NGX_FILE_RDONLY);
- }
-
- if (r->file.fd == NGX_INVALID_FILE) {
- err = ngx_errno;
- ngx_log_error(NGX_LOG_ERR, r->connection->log, ngx_errno,
- "ngx_http_core_handler: "
- ngx_open_file_n " %s failed", r->file.name.data);
-
- if (err == NGX_ENOENT) {
- return NGX_HTTP_NOT_FOUND;
- } else {
- return NGX_HTTP_INTERNAL_SERVER_ERROR;
- }
- }
-
- if (!r->file.info_valid) {
- if (ngx_stat_fd(r->file.fd, &r->file.info) == NGX_FILE_ERROR) {
- ngx_log_error(NGX_LOG_ERR, r->connection->log, ngx_errno,
- "ngx_http_core_handler: "
- ngx_stat_fd_n " %s failed", r->file.name.data);
-
- if (ngx_close_file(r->file.fd) == NGX_FILE_ERROR) {
- ngx_log_error(NGX_LOG_ERR, r->connection->log, ngx_errno,
- "ngx_http_core_handler: "
- ngx_close_file_n " %s failed", r->file.name.data);
- }
-
- return NGX_HTTP_INTERNAL_SERVER_ERROR;
- }
-
- r->file.info_valid = 1;
- }
-#endif
-
- if (ngx_is_dir(r->file.info)) {
- ngx_log_debug(r->connection->log, "HTTP DIR: '%s'" _ r->file.name.data);
-
-#if !(WIN9X)
- if (ngx_close_file(r->file.fd) == NGX_FILE_ERROR) {
- ngx_log_error(NGX_LOG_ERR, r->connection->log, ngx_errno,
- "ngx_http_core_handler: "
- ngx_close_file_n " %s failed", r->file.name.data);
- }
-#endif
-
- /* BROKEN: need to include server name */
-
- ngx_test_null(h, ngx_push_table(r->headers_out.headers),
- NGX_HTTP_INTERNAL_SERVER_ERROR);
-
- *last++ = '/';
- *last = '\0';
- h->key.len = 8;
- h->key.data = "Location" ;
- h->value.len = last - loc;
- h->value.data = loc;
- r->headers_out.location = h;
-
- return NGX_HTTP_MOVED_PERMANENTLY;
- }
-
- /* TODO: r->handler = loc_conf->default_handler; */
- /* STUB */ r->handler = ngx_http_static_handler;
-
- return NGX_OK;
-}
-
-
-int ngx_http_send_header(ngx_http_request_t *r)
-{
- return (*ngx_http_top_header_filter)(r);
-}
-
-
-int ngx_http_redirect(ngx_http_request_t *r, int redirect)
-{
- /* STUB */
-
- /* log request */
-
- return ngx_http_close_request(r);
-}
-
-
-int ngx_http_error(ngx_http_request_t *r, int error)
-{
- /* STUB */
- ngx_log_debug(r->connection->log, "http error: %d" _ error);
-
- /* log request */
-
- ngx_http_special_response(r, error);
- return ngx_http_close_request(r);
-}
-
-
-int ngx_http_close_request(ngx_http_request_t *r)
-{
- ngx_log_debug(r->connection->log, "CLOSE#: %d" _ r->file.fd);
-
- ngx_http_log_handler(r);
-
- ngx_assert((r->file.fd != NGX_INVALID_FILE), /* void */ ; ,
- r->connection->log, "file already closed");
-
- if (r->file.fd != NGX_INVALID_FILE) {
- if (ngx_close_file(r->file.fd) == NGX_FILE_ERROR) {
- ngx_log_error(NGX_LOG_ERR, r->connection->log, ngx_errno,
- ngx_close_file_n " failed");
- }
- }
-
-/*
- if (r->logging)
- ngx_http_log_request(r);
-*/
-
- ngx_destroy_pool(r->pool);
-
- ngx_log_debug(r->connection->log, "http close");
-
- ngx_del_timer(r->connection->read);
- ngx_del_timer(r->connection->write);
-
- return NGX_DONE;
-}
-
-
-int ngx_http_internal_redirect(ngx_http_request_t *r, ngx_str_t uri)
-{
- ngx_log_debug(r->connection->log, "internal redirect: '%s'" _ uri.data);
-
- r->uri.len = uri.len;
- r->uri.data = uri.data;
-
- /* NEEDED ? */
- r->uri_start = uri.data;
- r->uri_end = uri.data + uri.len;
- /**/
-
- return ngx_http_handler(r);
-}
-
-
-static void *ngx_http_core_create_srv_conf(ngx_pool_t *pool)
-{
- ngx_http_core_srv_conf_t *conf;
-
- ngx_test_null(conf,
- ngx_pcalloc(pool, sizeof(ngx_http_core_srv_conf_t)),
- NULL);
-
- return conf;
-}
-
-static void *ngx_http_core_create_loc_conf(ngx_pool_t *pool)
-{
- ngx_http_core_loc_conf_t *conf;
-
- ngx_test_null(conf,
- ngx_pcalloc(pool, sizeof(ngx_http_core_loc_conf_t)),
- NULL);
-
- conf->send_timeout = 10;
-/*
- conf->send_timeout = NGX_CONF_UNSET;
-*/
-
- return conf;
-}