Mercurial > hg > nginx-mail
comparison src/http/modules/ngx_http_referer_module.c @ 607:da3c99095432 NGINX_0_8_34
nginx 0.8.34
*) Bugfix: nginx did not support all ciphers and digests used in client
certificates.
Thanks to Innocenty Enikeew.
*) Bugfix: nginx cached incorrectly FastCGI responses if there was
large stderr output before response.
*) Bugfix: nginx did not support HTTPS referrers.
*) Bugfix: nginx/Windows might not find file if path in configuration
was given in other character case; the bug had appeared in 0.8.34.
*) Bugfix: the $date_local variable has an incorrect value, if the "%s"
format was used.
Thanks to Maxim Dounin.
*) Bugfix: if ssl_session_cache was not set or was set to "none", then
during client certificate verify the error "session id context
uninitialized" might occur; the bug had appeared in 0.7.1.
*) Bugfix: a geo range returned default value if the range included two
or more /16 networks and did not begin at /16 network boundary.
*) Bugfix: a block used in a "stub" parameter of an "include" SSI
directive was output with "text/plain" MIME type.
*) Bugfix: $r->sleep() did not work; the bug had appeared in 0.8.11.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Wed, 03 Mar 2010 00:00:00 +0300 |
parents | e19e5f542878 |
children | 8246d8a2c2be |
comparison
equal
deleted
inserted
replaced
606:66adffc35a46 | 607:da3c99095432 |
---|---|
122 } | 122 } |
123 | 123 |
124 len = r->headers_in.referer->value.len; | 124 len = r->headers_in.referer->value.len; |
125 ref = r->headers_in.referer->value.data; | 125 ref = r->headers_in.referer->value.data; |
126 | 126 |
127 if (len < sizeof("http://i.ru") - 1 | 127 if (len >= sizeof("http://i.ru") - 1) { |
128 || (ngx_strncasecmp(ref, (u_char *) "http://", 7) != 0)) | 128 last = ref + len; |
129 { | 129 |
130 if (rlcf->blocked_referer) { | 130 if (ngx_strncasecmp(ref, (u_char *) "http://", 7) == 0) { |
131 goto valid; | 131 ref += 7; |
132 } | 132 goto valid_scheme; |
133 | 133 |
134 goto invalid; | 134 } else if (ngx_strncasecmp(ref, (u_char *) "https://", 8) == 0) { |
135 } | 135 ref += 8; |
136 | 136 goto valid_scheme; |
137 last = ref + len; | 137 } |
138 ref += 7; | 138 } |
139 | |
140 if (rlcf->blocked_referer) { | |
141 goto valid; | |
142 } | |
143 | |
144 goto invalid; | |
145 | |
146 valid_scheme: | |
147 | |
139 i = 0; | 148 i = 0; |
140 key = 0; | 149 key = 0; |
141 | 150 |
142 for (p = ref; p < last; p++) { | 151 for (p = ref; p < last; p++) { |
143 if (*p == '/' || *p == ':') { | 152 if (*p == '/' || *p == ':') { |