Mercurial > hg > nginx
changeset 3585:3031b5931864 stable-0.7
merge r3460:
allow HTTPS referers
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 07 Jun 2010 10:15:21 +0000 |
parents | 771d28b86077 |
children | 2d21e02fc01d |
files | src/http/modules/ngx_http_referer_module.c |
diffstat | 1 files changed, 18 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/src/http/modules/ngx_http_referer_module.c Mon Jun 07 10:14:11 2010 +0000 +++ b/src/http/modules/ngx_http_referer_module.c Mon Jun 07 10:15:21 2010 +0000 @@ -124,18 +124,27 @@ len = r->headers_in.referer->value.len; ref = r->headers_in.referer->value.data; - if (len < sizeof("http://i.ru") - 1 - || (ngx_strncasecmp(ref, (u_char *) "http://", 7) != 0)) - { - if (rlcf->blocked_referer) { - goto valid; + if (len >= sizeof("http://i.ru") - 1) { + last = ref + len; + + if (ngx_strncasecmp(ref, (u_char *) "http://", 7) == 0) { + ref += 7; + goto valid_scheme; + + } else if (ngx_strncasecmp(ref, (u_char *) "https://", 8) == 0) { + ref += 8; + goto valid_scheme; } - - goto invalid; } - last = ref + len; - ref += 7; + if (rlcf->blocked_referer) { + goto valid; + } + + goto invalid; + +valid_scheme: + i = 0; key = 0;