Allow the complex value to be defined as an empty string.
This makes conversion from strings to complex values possible without the loss of functionality.
This commit is contained in:
parent
161822f728
commit
ee7305607c
8 changed files with 14 additions and 18 deletions
|
@ -117,7 +117,7 @@ ngx_http_auth_basic_handler(ngx_http_request_t *r)
|
|||
|
||||
alcf = ngx_http_get_module_loc_conf(r, ngx_http_auth_basic_module);
|
||||
|
||||
if (alcf->realm.len == 0 || alcf->user_file.value.len == 0) {
|
||||
if (alcf->realm.len == 0 || alcf->user_file.value.data == NULL) {
|
||||
return NGX_DECLINED;
|
||||
}
|
||||
|
||||
|
@ -390,7 +390,7 @@ ngx_http_auth_basic_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
|
|||
conf->realm = prev->realm;
|
||||
}
|
||||
|
||||
if (conf->user_file.value.len == 0) {
|
||||
if (conf->user_file.value.data == NULL) {
|
||||
conf->user_file = prev->user_file;
|
||||
}
|
||||
|
||||
|
@ -456,7 +456,7 @@ ngx_http_auth_basic_user_file(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
|||
ngx_str_t *value;
|
||||
ngx_http_compile_complex_value_t ccv;
|
||||
|
||||
if (alcf->user_file.value.len) {
|
||||
if (alcf->user_file.value.data) {
|
||||
return "is duplicate";
|
||||
}
|
||||
|
||||
|
|
|
@ -3014,7 +3014,7 @@ ngx_http_fastcgi_cache_key(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
|||
|
||||
value = cf->args->elts;
|
||||
|
||||
if (flcf->cache_key.value.len) {
|
||||
if (flcf->cache_key.value.data) {
|
||||
return "is duplicate";
|
||||
}
|
||||
|
||||
|
|
|
@ -837,7 +837,7 @@ ngx_http_proxy_create_key(ngx_http_request_t *r)
|
|||
return NGX_ERROR;
|
||||
}
|
||||
|
||||
if (plcf->cache_key.value.len) {
|
||||
if (plcf->cache_key.value.data) {
|
||||
|
||||
if (ngx_http_complex_value(r, &plcf->cache_key, key) != NGX_OK) {
|
||||
return NGX_ERROR;
|
||||
|
@ -3651,7 +3651,7 @@ ngx_http_proxy_cache_key(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
|||
|
||||
value = cf->args->elts;
|
||||
|
||||
if (plcf->cache_key.value.len) {
|
||||
if (plcf->cache_key.value.data) {
|
||||
return "is duplicate";
|
||||
}
|
||||
|
||||
|
|
|
@ -1771,7 +1771,7 @@ ngx_http_scgi_cache_key(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
|||
|
||||
value = cf->args->elts;
|
||||
|
||||
if (scf->cache_key.value.len) {
|
||||
if (scf->cache_key.value.data) {
|
||||
return "is duplicate";
|
||||
}
|
||||
|
||||
|
|
|
@ -628,7 +628,7 @@ ngx_http_sub_filter(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
|||
ngx_str_t *value;
|
||||
ngx_http_compile_complex_value_t ccv;
|
||||
|
||||
if (slcf->match.len) {
|
||||
if (slcf->match.data) {
|
||||
return "is duplicate";
|
||||
}
|
||||
|
||||
|
@ -688,7 +688,7 @@ ngx_http_sub_merge_conf(ngx_conf_t *cf, void *parent, void *child)
|
|||
ngx_conf_merge_value(conf->once, prev->once, 1);
|
||||
ngx_conf_merge_str_value(conf->match, prev->match, "");
|
||||
|
||||
if (conf->value.value.len == 0) {
|
||||
if (conf->value.value.data == NULL) {
|
||||
conf->value = prev->value;
|
||||
}
|
||||
|
||||
|
|
|
@ -1807,7 +1807,7 @@ ngx_http_uwsgi_cache_key(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
|||
|
||||
value = cf->args->elts;
|
||||
|
||||
if (uwcf->cache_key.value.len) {
|
||||
if (uwcf->cache_key.value.data) {
|
||||
return "is duplicate";
|
||||
}
|
||||
|
||||
|
|
|
@ -4593,7 +4593,7 @@ ngx_http_core_error_page(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
|||
|
||||
ngx_str_null(&args);
|
||||
|
||||
if (cv.lengths == NULL && uri.data[0] == '/') {
|
||||
if (cv.lengths == NULL && uri.len && uri.data[0] == '/') {
|
||||
p = (u_char *) ngx_strchr(uri.data, '?');
|
||||
|
||||
if (p) {
|
||||
|
|
|
@ -114,11 +114,6 @@ ngx_http_compile_complex_value(ngx_http_compile_complex_value_t *ccv)
|
|||
|
||||
v = ccv->value;
|
||||
|
||||
if (v->len == 0) {
|
||||
ngx_conf_log_error(NGX_LOG_EMERG, ccv->cf, 0, "empty parameter");
|
||||
return NGX_ERROR;
|
||||
}
|
||||
|
||||
nv = 0;
|
||||
nc = 0;
|
||||
|
||||
|
@ -133,8 +128,9 @@ ngx_http_compile_complex_value(ngx_http_compile_complex_value_t *ccv)
|
|||
}
|
||||
}
|
||||
|
||||
if (v->data[0] != '$' && (ccv->conf_prefix || ccv->root_prefix)) {
|
||||
|
||||
if ((v->len == 0 || v->data[0] != '$')
|
||||
&& (ccv->conf_prefix || ccv->root_prefix))
|
||||
{
|
||||
if (ngx_conf_full_name(ccv->cf->cycle, v, ccv->conf_prefix) != NGX_OK) {
|
||||
return NGX_ERROR;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue