diff options
author | Igor Sysoev <igor@sysoev.ru> | 2007-12-27 15:31:36 +0000 |
---|---|---|
committer | Jonathan Kolb <jon@b0g.us> | 2007-12-27 15:31:36 +0000 |
commit | 37acebc32d2a50b11537edd920af3721b93a1ecc (patch) | |
tree | 5338ea420eec0818d8e123a91973ee90308693f5 /src/core/ngx_string.c | |
parent | 73cd30361418f277067c128cedee4990aa72840b (diff) | |
download | nginx-0.6.23.tar.gz |
Changes with nginx 0.6.23 27 Dec 2007v0.6.23
*) Change: the "off" parameter in the "ssl_session_cache" directive;
now this is default parameter.
*) Change: the "open_file_cache_retest" directive was renamed to the
"open_file_cache_valid".
*) Feature: the "open_file_cache_min_uses" directive.
*) Feature: the ngx_http_gzip_static_module.
*) Feature: the "gzip_disable" directive.
*) Feature: the "memcached_pass" directive may be used inside the "if"
block.
*) Bugfix: a segmentation fault occurred in worker process, if the
"memcached_pass" and "if" directives were used in the same location.
*) Bugfix: if a "satisfy_any on" directive was used and not all access
and auth modules directives were set, then other given access and
auth directives were not tested;
*) Bugfix: regex parameters in a "valid_referers" directive were not
inherited from previous level.
*) Bugfix: a "post_action" directive did run if a request was completed
with 499 status code.
*) Bugfix: optimization of 16K buffer usage in a SSL connection.
Thanks to Ben Maurer.
*) Bugfix: the STARTTLS in SMTP mode did not work.
Thanks to Oleg Motienko.
*) Bugfix: in HTTPS mode requests might fail with the "bad write retry"
error; bug appeared in 0.5.13.
Diffstat (limited to 'src/core/ngx_string.c')
-rw-r--r-- | src/core/ngx_string.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/core/ngx_string.c b/src/core/ngx_string.c index f878c559f..d9a5480da 100644 --- a/src/core/ngx_string.c +++ b/src/core/ngx_string.c @@ -63,6 +63,7 @@ ngx_pstrdup(ngx_pool_t *pool, ngx_str_t *src) * %V ngx_str_t * * %v ngx_variable_value_t * * %s null-terminated string + * %*s length and string * %Z '\0' * %N '\n' * %c char @@ -112,7 +113,7 @@ ngx_vsnprintf(u_char *buf, size_t max, const char *fmt, va_list args) * but icc issues the warning */ int d; - size_t len; + size_t len, slen; uint32_t ui32; int64_t i64; uint64_t ui64; @@ -146,6 +147,7 @@ ngx_vsnprintf(u_char *buf, size_t max, const char *fmt, va_list args) sign = 1; hexadecimal = 0; max_width = 0; + slen = 0; p = temp + NGX_INT64_LEN; @@ -179,6 +181,11 @@ ngx_vsnprintf(u_char *buf, size_t max, const char *fmt, va_list args) fmt++; continue; + case '*': + slen = va_arg(args, u_int); + fmt++; + continue; + default: break; } @@ -214,9 +221,15 @@ ngx_vsnprintf(u_char *buf, size_t max, const char *fmt, va_list args) case 's': p = va_arg(args, u_char *); - while (*p && buf < last) { - *buf++ = *p++; + if (slen == 0) { + while (*p && buf < last) { + *buf++ = *p++; + } + + } else { + buf = ngx_cpymem(buf, p, slen); } + fmt++; continue; |