Mercurial > hg > nginx-vendor-0-7
view src/os/unix/ngx_errno.c @ 504:706fef7f4dcc NGINX_0_7_64
nginx 0.7.64
*) Security: now SSL/TLS renegotiation is disabled.
Thanks to Maxim Dounin.
*) Bugfix: nginx sent gzipped responses to clients those do not support
gzip, if "gzip_static on" and "gzip_vary off"; the bug had appeared
in 0.7.63.
*) Bugfix: if names .domain.tld, .sub.domain.tld, and .domain-some.tld
were defined, then the name .sub.domain.tld was matched by
.domain.tld.
*) Bugfix: segmentation fault and infinite looping in resolver.
*) Bugfix: in resolver.
Thanks to Artem Bokhan.
*) Bugfix: resolver cache poisoning.
Thanks to Matthew Dempsky.
*) Bugfix: memory leak in resolver.
Thanks to Matthew Dempsky.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 16 Nov 2009 00:00:00 +0300 |
parents | 88d3e895bdf9 |
children |
line wrap: on
line source
/* * Copyright (C) Igor Sysoev */ #include <ngx_config.h> #include <ngx_core.h> #if (NGX_HAVE_STRERROR_R) u_char * ngx_strerror_r(int err, u_char *errstr, size_t size) { if (size == 0) { return errstr; } errstr[0] = '\0'; strerror_r(err, (char *) errstr, size); while (*errstr && size) { errstr++; size--; } return errstr; } #elif (NGX_HAVE_GNU_STRERROR_R) /* Linux strerror_r() */ u_char * ngx_strerror_r(int err, u_char *errstr, size_t size) { char *str; if (size == 0) { return errstr; } errstr[0] = '\0'; str = strerror_r(err, (char *) errstr, size); if (str != (char *) errstr) { return ngx_cpystrn(errstr, (u_char *) str, size); } while (*errstr && size) { errstr++; size--; } return errstr; } #endif