diff options
author | Igor Sysoev <igor@sysoev.ru> | 2010-06-04 15:37:49 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2010-06-04 15:37:49 +0000 |
commit | 04e1156d2e5c3caeb2966f80810733ced2548fcc (patch) | |
tree | a7c2d24260c9109a103299220176bd6f484e69a1 /src/http/ngx_http_request.c | |
parent | 1f07392c425f3c715d7b2e705e51e29462d4f9cf (diff) | |
download | nginx-04e1156d2e5c3caeb2966f80810733ced2548fcc.tar.gz nginx-04e1156d2e5c3caeb2966f80810733ced2548fcc.zip |
test default NTFS stream "::$DATA"
Diffstat (limited to 'src/http/ngx_http_request.c')
-rw-r--r-- | src/http/ngx_http_request.c | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c index 3432b50a0..dbc92cf52 100644 --- a/src/http/ngx_http_request.c +++ b/src/http/ngx_http_request.c @@ -788,16 +788,31 @@ ngx_http_process_request_line(ngx_event_t *rev) p = r->uri.data + r->uri.len - 1; - if (*p == '.' || *p == ' ') { + while (p > r->uri.data) { - while (--p > r->uri.data && (*p == '.' || *p == ' ')) { - /* void */ + if (*p == ' ') { + p--; + continue; } - r->uri.len = p + 1 - r->uri.data; + if (*p == '.') { + p--; + continue; + } + if (ngx_strncasecmp(p - 6, (u_char *) "::$data", 7) == 0) { + p -= 7; + continue; + } + + break; + } + + if (p != r->uri.data + r->uri.len - 1) { + r->uri.len = p + 1 - r->uri.data; ngx_http_set_exten(r); } + } #endif |