Mercurial > hg > nginx-ranges
diff src/http/modules/ngx_http_auth_basic_module.c @ 130:82d695e3d662 NGINX_0_3_12
nginx 0.3.12
*) Security: if nginx was built with the ngx_http_realip_module and the
"satisfy_any on" directive was used, then access and authorization
directives did not work. The ngx_http_realip_module was not built
and is not built by default.
*) Change: the "$time_gmt" variable name was changed to "$time_local".
*) Change: the "proxy_header_buffer_size" and
"fastcgi_header_buffer_size" directives was renamed to the
"proxy_buffer_size" and "fastcgi_buffer_size" directives.
*) Feature: the ngx_http_memcached_module.
*) Feature: the "proxy_buffering" directive.
*) Bugfix: the changes in accept mutex handling when the "rtsig" method
was used; bug appeared in 0.3.0.
*) Bugfix: if the client sent the "Transfer-Encoding: chunked" header
line, then nginx returns the 411 error.
*) Bugfix: if the "auth_basic" directive was inherited from the http
level, then the realm in the "WWW-Authenticate" header line was
without the "Basic realm" text.
*) Bugfix: if the "combined" format was explicitly specified in the
"access_log" directive, then the empty lines was written to the log;
bug appeared in 0.3.8.
*) Bugfix: nginx did not run on the sparc platform under any OS except
Solaris.
*) Bugfix: now it is not necessary to place space between the quoted
string and closing bracket in the "if" directive.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Sat, 26 Nov 2005 00:00:00 +0300 |
parents | 71c46860eb55 |
children | 91372f004adf |
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 @@ -332,32 +332,10 @@ 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; - size_t len; - u_char *realm, *p; - - if (conf->realm.data) { - if (conf->realm.len) { - len = sizeof("Basic realm=\"") - 1 + conf->realm.len + 1; - - realm = ngx_palloc(cf->pool, len); - if (realm == NULL) { - return NGX_CONF_ERROR; - } - - p = ngx_cpymem(realm, "Basic realm=\"", - sizeof("Basic realm=\"") - 1); - p = ngx_cpymem(p, conf->realm.data, conf->realm.len); - *p = '"'; - - conf->realm.len = len; - conf->realm.data = realm; - } - - } else { + if (conf->realm.data == NULL) { conf->realm = prev->realm; } - if (conf->user_file.data) { if (ngx_conf_full_name(cf->cycle, &conf->user_file) != NGX_OK) { return NGX_CONF_ERROR; @@ -395,10 +373,27 @@ ngx_http_auth_basic(ngx_conf_t *cf, void { ngx_str_t *realm = data; + size_t len; + u_char *basic, *p; + if (ngx_strcmp(realm->data, "off") == 0) { realm->len = 0; realm->data = (u_char *) ""; } + len = sizeof("Basic realm=\"") - 1 + realm->len + 1; + + basic = ngx_palloc(cf->pool, len); + if (basic == NULL) { + return NGX_CONF_ERROR; + } + + p = ngx_cpymem(basic, "Basic realm=\"", sizeof("Basic realm=\"") - 1); + p = ngx_cpymem(p, realm->data, realm->len); + *p = '"'; + + realm->len = len; + realm->data = basic; + return NGX_CONF_OK; }