aboutsummaryrefslogtreecommitdiff
path: root/src/http/ngx_http_request.c
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2010-06-04 15:37:49 +0000
committerIgor Sysoev <igor@sysoev.ru>2010-06-04 15:37:49 +0000
commit04e1156d2e5c3caeb2966f80810733ced2548fcc (patch)
treea7c2d24260c9109a103299220176bd6f484e69a1 /src/http/ngx_http_request.c
parent1f07392c425f3c715d7b2e705e51e29462d4f9cf (diff)
downloadnginx-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.c23
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