diff options
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/nginx.c | 6 | ||||
-rw-r--r-- | src/core/ngx_conf_file.c | 21 | ||||
-rw-r--r-- | src/core/ngx_conf_file.h | 3 | ||||
-rw-r--r-- | src/core/ngx_file.c | 2 | ||||
-rw-r--r-- | src/core/ngx_file.h | 2 | ||||
-rw-r--r-- | src/core/ngx_log.c | 2 |
6 files changed, 23 insertions, 13 deletions
diff --git a/src/core/nginx.c b/src/core/nginx.c index b758775e3..27cb80f85 100644 --- a/src/core/nginx.c +++ b/src/core/nginx.c @@ -656,7 +656,7 @@ ngx_getopt(ngx_cycle_t *cycle, int argc, char *const *argv) cycle->conf_file.data = (u_char *) NGX_CONF_PATH; } - if (ngx_conf_full_name(cycle, &cycle->conf_file) == NGX_ERROR) { + if (ngx_conf_full_name(cycle, &cycle->conf_file, 1) == NGX_ERROR) { return NGX_ERROR; } @@ -826,7 +826,7 @@ ngx_core_module_init_conf(ngx_cycle_t *cycle, void *conf) ccf->pid.data = (u_char *) NGX_PID_PATH; } - if (ngx_conf_full_name(cycle, &ccf->pid) == NGX_ERROR) { + if (ngx_conf_full_name(cycle, &ccf->pid, 0) == NGX_ERROR) { return NGX_CONF_ERROR; } @@ -846,7 +846,7 @@ ngx_core_module_init_conf(ngx_cycle_t *cycle, void *conf) ccf->lock_file.data = (u_char *) NGX_LOCK_PATH; } - if (ngx_conf_full_name(cycle, &ccf->lock_file) == NGX_ERROR) { + if (ngx_conf_full_name(cycle, &ccf->lock_file, 0) == NGX_ERROR) { return NGX_CONF_ERROR; } diff --git a/src/core/ngx_conf_file.c b/src/core/ngx_conf_file.c index a68192fe0..514d55bad 100644 --- a/src/core/ngx_conf_file.c +++ b/src/core/ngx_conf_file.c @@ -641,7 +641,7 @@ ngx_conf_include(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) ngx_log_debug1(NGX_LOG_DEBUG_CORE, cf->log, 0, "include %s", file.data); - if (ngx_conf_full_name(cf->cycle, &file) == NGX_ERROR) { + if (ngx_conf_full_name(cf->cycle, &file, 1) == NGX_ERROR) { return NGX_CONF_ERROR; } @@ -681,9 +681,10 @@ ngx_conf_include(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) ngx_int_t -ngx_conf_full_name(ngx_cycle_t *cycle, ngx_str_t *name) +ngx_conf_full_name(ngx_cycle_t *cycle, ngx_str_t *name, ngx_uint_t conf_prefix) { - u_char *p; + size_t len; + u_char *p, *prefix; ngx_str_t old; if (name->data[0] == '/') { @@ -704,14 +705,22 @@ ngx_conf_full_name(ngx_cycle_t *cycle, ngx_str_t *name) old = *name; - name->len = cycle->root.len + old.len; + if (conf_prefix) { + len = sizeof(NGX_CONF_PREFIX) - 1; + prefix = (u_char *) NGX_CONF_PREFIX; + } else { + len = cycle->root.len; + prefix = cycle->root.data; + } + + name->len = len + old.len; name->data = ngx_palloc(cycle->pool, name->len + 1); if (name->data == NULL) { return NGX_ERROR; } - p = ngx_cpymem(name->data, cycle->root.data, cycle->root.len), + p = ngx_cpymem(name->data, prefix, len); ngx_cpystrn(p, old.data, old.len + 1); return NGX_OK; @@ -734,7 +743,7 @@ ngx_conf_open_file(ngx_cycle_t *cycle, ngx_str_t *name) if (name) { full = *name; - if (ngx_conf_full_name(cycle, &full) == NGX_ERROR) { + if (ngx_conf_full_name(cycle, &full, 0) == NGX_ERROR) { return NULL; } diff --git a/src/core/ngx_conf_file.h b/src/core/ngx_conf_file.h index 7d5112919..2e91d0b8c 100644 --- a/src/core/ngx_conf_file.h +++ b/src/core/ngx_conf_file.h @@ -320,7 +320,8 @@ char *ngx_conf_check_num_bounds(ngx_conf_t *cf, void *post, void *data); char *ngx_conf_parse(ngx_conf_t *cf, ngx_str_t *filename); -ngx_int_t ngx_conf_full_name(ngx_cycle_t *cycle, ngx_str_t *name); +ngx_int_t ngx_conf_full_name(ngx_cycle_t *cycle, ngx_str_t *name, + ngx_uint_t conf_prefix); ngx_open_file_t *ngx_conf_open_file(ngx_cycle_t *cycle, ngx_str_t *name); void ngx_cdecl ngx_conf_log_error(ngx_uint_t level, ngx_conf_t *cf, ngx_err_t err, char *fmt, ...); diff --git a/src/core/ngx_file.c b/src/core/ngx_file.c index fcb8ff080..f85578623 100644 --- a/src/core/ngx_file.c +++ b/src/core/ngx_file.c @@ -260,7 +260,7 @@ ngx_conf_set_path_slot(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) path->name.len--; } - if (ngx_conf_full_name(cf->cycle, &path->name) == NGX_ERROR) { + if (ngx_conf_full_name(cf->cycle, &path->name, 0) == NGX_ERROR) { return NULL; } diff --git a/src/core/ngx_file.h b/src/core/ngx_file.h index 0f819a1b8..063b0fb83 100644 --- a/src/core/ngx_file.h +++ b/src/core/ngx_file.h @@ -109,7 +109,7 @@ char *ngx_conf_set_access_slot(ngx_conf_t *cf, ngx_command_t *cmd, void *conf); curr->name.len = sizeof(path) - 1; \ curr->name.data = (u_char *) path; \ \ - if (ngx_conf_full_name(cf->cycle, &curr->name) == NGX_ERROR) { \ + if (ngx_conf_full_name(cf->cycle, &curr->name, 0) == NGX_ERROR) { \ return NGX_CONF_ERROR; \ } \ \ diff --git a/src/core/ngx_log.c b/src/core/ngx_log.c index 349ae7681..1059acf43 100644 --- a/src/core/ngx_log.c +++ b/src/core/ngx_log.c @@ -333,7 +333,7 @@ ngx_set_error_log(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) } else { cf->cycle->new_log->file->name = value[1]; - if (ngx_conf_full_name(cf->cycle, &cf->cycle->new_log->file->name) + if (ngx_conf_full_name(cf->cycle, &cf->cycle->new_log->file->name, 0) == NGX_ERROR) { return NGX_CONF_ERROR; |