Backed out f1a91825730a and 7094bd12c1ff. While ngx_get_full_name() might have a bit more descriptive arguments, the ngx_conf_full_name() is generally easier to use when parsing configuration and limits exposure of cycle->prefix / cycle->conf_prefix details.
diff --git a/src/core/nginx.c b/src/core/nginx.c index 9cabac1..4cc8082 100644 --- a/src/core/nginx.c +++ b/src/core/nginx.c
@@ -897,9 +897,7 @@ ngx_str_set(&cycle->conf_file, NGX_CONF_PATH); } - if (ngx_get_full_name(cycle->pool, &cycle->prefix, &cycle->conf_file) - != NGX_OK) - { + if (ngx_conf_full_name(cycle, &cycle->conf_file, 0) != NGX_OK) { return NGX_ERROR; } @@ -1015,7 +1013,7 @@ ngx_str_set(&ccf->pid, NGX_PID_PATH); } - if (ngx_get_full_name(cycle->pool, &cycle->prefix, &ccf->pid) != NGX_OK) { + if (ngx_conf_full_name(cycle, &ccf->pid, 0) != NGX_OK) { return NGX_CONF_ERROR; } @@ -1063,9 +1061,7 @@ ngx_str_set(&ccf->lock_file, NGX_LOCK_PATH); } - if (ngx_get_full_name(cycle->pool, &cycle->prefix, &ccf->lock_file) - != NGX_OK) - { + if (ngx_conf_full_name(cycle, &ccf->lock_file, 0) != NGX_OK) { return NGX_CONF_ERROR; }
diff --git a/src/core/ngx_conf_file.c b/src/core/ngx_conf_file.c index afa27d7..6cfb5d5 100644 --- a/src/core/ngx_conf_file.c +++ b/src/core/ngx_conf_file.c
@@ -747,7 +747,7 @@ ngx_log_debug1(NGX_LOG_DEBUG_CORE, cf->log, 0, "include %s", file.data); - if (ngx_get_full_name(cf->pool, &cf->cycle->conf_prefix, &file) != NGX_OK) { + if (ngx_conf_full_name(cf->cycle, &file, 1) != NGX_OK) { return NGX_CONF_ERROR; } @@ -797,6 +797,16 @@ } +ngx_int_t +ngx_conf_full_name(ngx_cycle_t *cycle, ngx_str_t *name, ngx_uint_t conf_prefix) +{ + return ngx_get_full_name(cycle->pool, + conf_prefix ? &cycle->conf_prefix: + &cycle->prefix, + name); +} + + ngx_open_file_t * ngx_conf_open_file(ngx_cycle_t *cycle, ngx_str_t *name) { @@ -812,7 +822,7 @@ if (name->len) { full = *name; - if (ngx_get_full_name(cycle->pool, &cycle->prefix, &full) != NGX_OK) { + if (ngx_conf_full_name(cycle, &full, 0) != NGX_OK) { return NULL; }
diff --git a/src/core/ngx_conf_file.h b/src/core/ngx_conf_file.h index f0a12d4..d73a6c8 100644 --- a/src/core/ngx_conf_file.h +++ b/src/core/ngx_conf_file.h
@@ -311,6 +311,8 @@ char *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_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, const char *fmt, ...);
diff --git a/src/core/ngx_file.c b/src/core/ngx_file.c index 049b876..28e8871 100644 --- a/src/core/ngx_file.c +++ b/src/core/ngx_file.c
@@ -355,9 +355,7 @@ path->name.len--; } - if (ngx_get_full_name(cf->pool, &cf->cycle->prefix, &path->name) - != NGX_OK) - { + if (ngx_conf_full_name(cf->cycle, &path->name, 0) != NGX_OK) { return NULL; } @@ -411,9 +409,7 @@ (*path)->name = init->name; - if (ngx_get_full_name(cf->pool, &cf->cycle->prefix, &(*path)->name) - != NGX_OK) - { + if (ngx_conf_full_name(cf->cycle, &(*path)->name, 0) != NGX_OK) { return NGX_CONF_ERROR; }
diff --git a/src/event/ngx_event_openssl.c b/src/event/ngx_event_openssl.c index 1459eea..50746e7 100644 --- a/src/event/ngx_event_openssl.c +++ b/src/event/ngx_event_openssl.c
@@ -240,7 +240,7 @@ X509 *x509; u_long n; - if (ngx_get_full_name(cf->pool, &cf->cycle->conf_prefix, cert) != NGX_OK) { + if (ngx_conf_full_name(cf->cycle, cert, 1) != NGX_OK) { return NGX_ERROR; } @@ -319,7 +319,7 @@ BIO_free(bio); - if (ngx_get_full_name(cf->pool, &cf->cycle->conf_prefix, key) != NGX_OK) { + if (ngx_conf_full_name(cf->cycle, key, 1) != NGX_OK) { return NGX_ERROR; } @@ -350,7 +350,7 @@ return NGX_OK; } - if (ngx_get_full_name(cf->pool, &cf->cycle->conf_prefix, cert) != NGX_OK) { + if (ngx_conf_full_name(cf->cycle, cert, 1) != NGX_OK) { return NGX_ERROR; } @@ -394,7 +394,7 @@ return NGX_OK; } - if (ngx_get_full_name(cf->pool, &cf->cycle->conf_prefix, cert) != NGX_OK) { + if (ngx_conf_full_name(cf->cycle, cert, 1) != NGX_OK) { return NGX_ERROR; } @@ -421,7 +421,7 @@ return NGX_OK; } - if (ngx_get_full_name(cf->pool, &cf->cycle->conf_prefix, crl) != NGX_OK) { + if (ngx_conf_full_name(cf->cycle, crl, 1) != NGX_OK) { return NGX_ERROR; } @@ -587,7 +587,7 @@ return NGX_OK; } - if (ngx_get_full_name(cf->pool, &cf->cycle->conf_prefix, file) != NGX_OK) { + if (ngx_conf_full_name(cf->cycle, file, 1) != NGX_OK) { return NGX_ERROR; }
diff --git a/src/event/ngx_event_openssl_stapling.c b/src/event/ngx_event_openssl_stapling.c index f02eab6..7707614 100644 --- a/src/event/ngx_event_openssl_stapling.c +++ b/src/event/ngx_event_openssl_stapling.c
@@ -197,7 +197,7 @@ staple = SSL_CTX_get_ex_data(ssl->ctx, ngx_ssl_stapling_index); - if (ngx_get_full_name(cf->pool, &cf->cycle->conf_prefix, file) != NGX_OK) { + if (ngx_conf_full_name(cf->cycle, file, 1) != NGX_OK) { return NGX_ERROR; }
diff --git a/src/http/modules/ngx_http_geo_module.c b/src/http/modules/ngx_http_geo_module.c index 711871b..34c3b19 100644 --- a/src/http/modules/ngx_http_geo_module.c +++ b/src/http/modules/ngx_http_geo_module.c
@@ -1327,7 +1327,7 @@ ngx_sprintf(file.data, "%V.bin%Z", name); - if (ngx_get_full_name(cf->pool, &cf->cycle->conf_prefix, &file) != NGX_OK) { + if (ngx_conf_full_name(cf->cycle, &file, 1) != NGX_OK) { return NGX_CONF_ERROR; }
diff --git a/src/http/modules/ngx_http_log_module.c b/src/http/modules/ngx_http_log_module.c index 505ae3b..aa6a3fc 100644 --- a/src/http/modules/ngx_http_log_module.c +++ b/src/http/modules/ngx_http_log_module.c
@@ -1134,9 +1134,7 @@ } } else { - if (ngx_get_full_name(cf->pool, &cf->cycle->prefix, &value[1]) - != NGX_OK) - { + if (ngx_conf_full_name(cf->cycle, &value[1], 0) != NGX_OK) { return NGX_CONF_ERROR; }
diff --git a/src/http/modules/ngx_http_xslt_filter_module.c b/src/http/modules/ngx_http_xslt_filter_module.c index 6bf3828..9e85693 100644 --- a/src/http/modules/ngx_http_xslt_filter_module.c +++ b/src/http/modules/ngx_http_xslt_filter_module.c
@@ -892,7 +892,7 @@ ngx_memzero(sheet, sizeof(ngx_http_xslt_sheet_t)); - if (ngx_get_full_name(cf->pool, &cf->cycle->prefix, &value[1]) != NGX_OK) { + if (ngx_conf_full_name(cf->cycle, &value[1], 0) != NGX_OK) { return NGX_CONF_ERROR; }
diff --git a/src/http/modules/perl/ngx_http_perl_module.c b/src/http/modules/perl/ngx_http_perl_module.c index a8a4184..90e32e8 100644 --- a/src/http/modules/perl/ngx_http_perl_module.c +++ b/src/http/modules/perl/ngx_http_perl_module.c
@@ -485,9 +485,7 @@ if (pmcf->modules != NGX_CONF_UNSET_PTR) { m = pmcf->modules->elts; for (i = 0; i < pmcf->modules->nelts; i++) { - if (ngx_get_full_name(cf->pool, &cf->cycle->prefix, &m[i]) - != NGX_OK) - { + if (ngx_conf_full_name(cf->cycle, &m[i], 0) != NGX_OK) { return NGX_CONF_ERROR; } }
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c index 5273fe3..ffe7fb4 100644 --- a/src/http/ngx_http_core_module.c +++ b/src/http/ngx_http_core_module.c
@@ -3686,9 +3686,7 @@ if (prev->root.data == NULL) { ngx_str_set(&conf->root, "html"); - if (ngx_get_full_name(cf->pool, &cf->cycle->prefix, &conf->root) - != NGX_OK) - { + if (ngx_conf_full_name(cf->cycle, &conf->root, 0) != NGX_OK) { return NGX_CONF_ERROR; } } @@ -4430,9 +4428,7 @@ } if (clcf->root.data[0] != '$') { - if (ngx_get_full_name(cf->pool, &cf->cycle->prefix, &clcf->root) - != NGX_OK) - { + if (ngx_conf_full_name(cf->cycle, &clcf->root, 0) != NGX_OK) { return NGX_CONF_ERROR; } }
diff --git a/src/http/ngx_http_file_cache.c b/src/http/ngx_http_file_cache.c index 0b90c41..eacca59 100644 --- a/src/http/ngx_http_file_cache.c +++ b/src/http/ngx_http_file_cache.c
@@ -1626,9 +1626,7 @@ cache->path->name.len--; } - if (ngx_get_full_name(cf->pool, &cf->cycle->prefix, &cache->path->name) - != NGX_OK) - { + if (ngx_conf_full_name(cf->cycle, &cache->path->name, 0) != NGX_OK) { return NGX_CONF_ERROR; }
diff --git a/src/http/ngx_http_script.c b/src/http/ngx_http_script.c index 7af48ee..1da793b 100644 --- a/src/http/ngx_http_script.c +++ b/src/http/ngx_http_script.c
@@ -131,12 +131,7 @@ if ((v->len == 0 || v->data[0] != '$') && (ccv->conf_prefix || ccv->root_prefix)) { - if (ngx_get_full_name(ccv->cf->pool, - ccv->conf_prefix ? &ccv->cf->cycle->conf_prefix: - &ccv->cf->cycle->prefix, - v) - != NGX_OK) - { + if (ngx_conf_full_name(ccv->cf->cycle, v, ccv->conf_prefix) != NGX_OK) { return NGX_ERROR; }