mirror of
https://github.com/nginx/nginx.git
synced 2025-07-29 17:26:15 +08:00
Merge of r4828: "include" with wildcards in map and types blocks.
The "include" directive should be able to include multiple files if given a filename mask. Fixed this to work for "include" directives inside the "map" or "types" blocks. The "include" directive inside the "geo" block is still not fixed.
This commit is contained in:
parent
892410148f
commit
adceda60bd
@ -12,7 +12,6 @@
|
||||
|
||||
static ngx_int_t ngx_conf_handler(ngx_conf_t *cf, ngx_int_t last);
|
||||
static ngx_int_t ngx_conf_read_token(ngx_conf_t *cf);
|
||||
static char *ngx_conf_include(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);
|
||||
static ngx_int_t ngx_conf_test_full_name(ngx_str_t *name);
|
||||
static void ngx_conf_flush_files(ngx_cycle_t *cycle);
|
||||
|
||||
@ -731,7 +730,7 @@ ngx_conf_read_token(ngx_conf_t *cf)
|
||||
}
|
||||
|
||||
|
||||
static char *
|
||||
char *
|
||||
ngx_conf_include(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
||||
{
|
||||
char *rv;
|
||||
|
@ -317,6 +317,7 @@ char *ngx_conf_check_num_bounds(ngx_conf_t *cf, void *post, void *data);
|
||||
|
||||
char *ngx_conf_param(ngx_conf_t *cf);
|
||||
char *ngx_conf_parse(ngx_conf_t *cf, ngx_str_t *filename);
|
||||
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,
|
||||
|
@ -369,7 +369,7 @@ static char *
|
||||
ngx_http_map(ngx_conf_t *cf, ngx_command_t *dummy, void *conf)
|
||||
{
|
||||
ngx_int_t rc, index;
|
||||
ngx_str_t *value, file, name;
|
||||
ngx_str_t *value, name;
|
||||
ngx_uint_t i, key;
|
||||
ngx_http_map_conf_ctx_t *ctx;
|
||||
ngx_http_variable_value_t *var, **vp;
|
||||
@ -391,15 +391,7 @@ ngx_http_map(ngx_conf_t *cf, ngx_command_t *dummy, void *conf)
|
||||
}
|
||||
|
||||
if (ngx_strcmp(value[0].data, "include") == 0) {
|
||||
file = value[1];
|
||||
|
||||
if (ngx_conf_full_name(cf->cycle, &file, 1) != NGX_OK) {
|
||||
return NGX_CONF_ERROR;
|
||||
}
|
||||
|
||||
ngx_log_debug1(NGX_LOG_DEBUG_CORE, cf->log, 0, "include %s", file.data);
|
||||
|
||||
return ngx_conf_parse(cf, &file);
|
||||
return ngx_conf_include(cf, dummy, conf);
|
||||
}
|
||||
|
||||
if (value[1].data[0] == '$') {
|
||||
|
@ -3193,7 +3193,7 @@ ngx_http_core_type(ngx_conf_t *cf, ngx_command_t *dummy, void *conf)
|
||||
{
|
||||
ngx_http_core_loc_conf_t *clcf = conf;
|
||||
|
||||
ngx_str_t *value, *content_type, *old, file;
|
||||
ngx_str_t *value, *content_type, *old;
|
||||
ngx_uint_t i, n, hash;
|
||||
ngx_hash_key_t *type;
|
||||
|
||||
@ -3206,15 +3206,8 @@ ngx_http_core_type(ngx_conf_t *cf, ngx_command_t *dummy, void *conf)
|
||||
" in \"include\" directive");
|
||||
return NGX_CONF_ERROR;
|
||||
}
|
||||
file = value[1];
|
||||
|
||||
if (ngx_conf_full_name(cf->cycle, &file, 1) != NGX_OK) {
|
||||
return NGX_CONF_ERROR;
|
||||
}
|
||||
|
||||
ngx_log_debug1(NGX_LOG_DEBUG_CORE, cf->log, 0, "include %s", file.data);
|
||||
|
||||
return ngx_conf_parse(cf, &file);
|
||||
return ngx_conf_include(cf, dummy, conf);
|
||||
}
|
||||
|
||||
content_type = ngx_palloc(cf->pool, sizeof(ngx_str_t));
|
||||
|
Loading…
Reference in New Issue
Block a user