nginx-0.0.1-2003-01-09-08:36:00 import
diff --git a/src/http/modules/ngx_http_index_handler.c b/src/http/modules/ngx_http_index_handler.c
index a858237..7b0a33f 100644
--- a/src/http/modules/ngx_http_index_handler.c
+++ b/src/http/modules/ngx_http_index_handler.c
@@ -9,11 +9,12 @@
#include <ngx_http.h>
#include <ngx_http_config.h>
+#include <ngx_http_core_module.h>
#include <ngx_http_index_handler.h>
static void *ngx_http_index_create_conf(ngx_pool_t *pool);
-static void *ngx_http_index_merge_conf(ngx_pool_t *p,
+static char *ngx_http_index_merge_conf(ngx_pool_t *p,
void *parent, void *child);
static char *ngx_http_index_set_index(ngx_conf_t *cf, ngx_command_t *cmd,
char *conf);
@@ -50,6 +51,7 @@
ngx_module_t ngx_http_index_module = {
+ 0, /* module index */
&ngx_http_index_module_ctx, /* module context */
ngx_http_index_commands, /* module directives */
NGX_HTTP_MODULE_TYPE, /* module type */
@@ -65,18 +67,23 @@
ngx_err_t err;
ngx_fd_t fd;
- ngx_http_index_conf_t *cf;
+ ngx_http_index_conf_t *cf;
+ ngx_http_core_loc_conf_t *core_cf;
cf = (ngx_http_index_conf_t *)
ngx_http_get_module_loc_conf(r, ngx_http_index_module_ctx);
+ core_cf = (ngx_http_core_loc_conf_t *)
+ ngx_http_get_module_loc_conf(r, ngx_http_core_module_ctx);
+
ngx_test_null(name,
ngx_palloc(r->pool,
- r->server->doc_root_len + r->uri.len
+ core_cf->doc_root.len + r->uri.len
+ cf->max_index_len),
NGX_HTTP_INTERNAL_SERVER_ERROR);
- loc.data = ngx_cpystrn(name, r->server->doc_root, r->server->doc_root_len);
+ loc.data = ngx_cpystrn(name, core_cf->doc_root.data,
+ core_cf->doc_root.len + 1);
file = ngx_cpystrn(loc.data, r->uri.data, r->uri.len + 1);
index = (ngx_str_t *) cf->indices->elts;
@@ -101,7 +108,7 @@
return NGX_HTTP_INTERNAL_SERVER_ERROR;
}
- r->file.name.len = r->server->doc_root_len + r->uri.len + index[i].len;
+ r->file.name.len = core_cf->doc_root.len + r->uri.len + index[i].len;
r->file.name.data = name;
r->file.fd = fd;
@@ -117,17 +124,34 @@
{
ngx_http_index_conf_t *conf;
- ngx_test_null(conf, ngx_pcalloc(pool, sizeof(ngx_http_index_conf_t)), NULL);
+ ngx_test_null(conf, ngx_pcalloc(pool, sizeof(ngx_http_index_conf_t)),
+ NGX_CONF_ERROR);
ngx_test_null(conf->indices,
ngx_create_array(pool, sizeof(ngx_str_t), 3),
- NULL);
+ NGX_CONF_ERROR);
return conf;
}
-static void *ngx_http_index_merge_conf(ngx_pool_t *p, void *parent, void *child)
+static char *ngx_http_index_merge_conf(ngx_pool_t *p, void *parent, void *child)
+{
+ ngx_http_index_conf_t *prev = (ngx_http_index_conf_t *) parent;
+ ngx_http_index_conf_t *conf = (ngx_http_index_conf_t *) child;
+ ngx_str_t *index;
+
+ ngx_test_null(index, ngx_push_array(conf->indices), NGX_CONF_ERROR);
+ index->len = sizeof(NGX_HTTP_INDEX) - 1;
+ index->data = NGX_HTTP_INDEX;
+ conf->max_index_len = sizeof(NGX_HTTP_INDEX);
+
+ return NULL;
+}
+
+
+#if 0
+static char *ngx_http_index_merge_conf(ngx_pool_t *p, void *parent, void *child)
{
ngx_http_index_conf_t *prev = (ngx_http_index_conf_t *) parent;
ngx_http_index_conf_t *conf = (ngx_http_index_conf_t *) child;
@@ -146,7 +170,7 @@
return conf;
}
-
+#endif
static char *ngx_http_index_set_index(ngx_conf_t *cf, ngx_command_t *cmd,
char *conf)