diff src/http/modules/ngx_http_auth_basic_module.c @ 7831:bdd4d89370a7

Changed complex value slots to use NGX_CONF_UNSET_PTR. With this change, it is now possible to use ngx_conf_merge_ptr_value() to merge complex values. This change follows much earlier changes in ngx_conf_merge_ptr_value() and ngx_conf_set_str_array_slot() in 1452:cd586e963db0 (0.6.10) and 1701:40d004d95d88 (0.6.22), and the change in ngx_conf_set_keyval_slot() (7728:485dba3e2a01, 1.19.4). To preserve compatibility with existing 3rd party modules, both NULL and NGX_CONF_UNSET_PTR are accepted for now.
author Maxim Dounin <mdounin@mdounin.ru>
date Thu, 06 May 2021 02:22:03 +0300
parents 0cb942c1c1aa
children be82e72c9af8
line wrap: on
line diff
--- a/src/http/modules/ngx_http_auth_basic_module.c
+++ b/src/http/modules/ngx_http_auth_basic_module.c
@@ -357,6 +357,8 @@ ngx_http_auth_basic_create_loc_conf(ngx_
         return NULL;
     }
 
+    conf->realm = NGX_CONF_UNSET_PTR;
+
     return conf;
 }
 
@@ -367,9 +369,7 @@ ngx_http_auth_basic_merge_loc_conf(ngx_c
     ngx_http_auth_basic_loc_conf_t  *prev = parent;
     ngx_http_auth_basic_loc_conf_t  *conf = child;
 
-    if (conf->realm == NULL) {
-        conf->realm = prev->realm;
-    }
+    ngx_conf_merge_ptr_value(conf->realm, prev->realm, NULL);
 
     if (conf->user_file.value.data == NULL) {
         conf->user_file = prev->user_file;