omit "#fragment"

This commit is contained in:
Igor Sysoev 2006-10-28 10:15:31 +00:00
parent 4346bab52e
commit b80a7f4318

View File

@ -282,6 +282,10 @@ ngx_http_parse_request_line(ngx_http_request_t *r, ngx_buf_t *b)
r->args_start = p + 1; r->args_start = p + 1;
state = sw_uri; state = sw_uri;
break; break;
case '#':
r->complex_uri = 1;
state = sw_uri;
break;
case '+': case '+':
r->plus_in_uri = 1; r->plus_in_uri = 1;
break; break;
@ -341,6 +345,10 @@ ngx_http_parse_request_line(ngx_http_request_t *r, ngx_buf_t *b)
r->args_start = p + 1; r->args_start = p + 1;
state = sw_uri; state = sw_uri;
break; break;
case '#':
r->complex_uri = 1;
state = sw_uri;
break;
case '+': case '+':
r->plus_in_uri = 1; r->plus_in_uri = 1;
break; break;
@ -366,6 +374,9 @@ ngx_http_parse_request_line(ngx_http_request_t *r, ngx_buf_t *b)
r->uri_end = p; r->uri_end = p;
r->http_minor = 9; r->http_minor = 9;
goto done; goto done;
case '#':
r->complex_uri = 1;
break;
case '\0': case '\0':
r->zero_in_uri = 1; r->zero_in_uri = 1;
break; break;
@ -822,6 +833,8 @@ ngx_http_parse_complex_uri(ngx_http_request_t *r)
break; break;
case '?': case '?':
r->args_start = p; r->args_start = p;
goto args;
case '#':
goto done; goto done;
case '.': case '.':
r->uri_ext = u + 1; r->uri_ext = u + 1;
@ -853,6 +866,8 @@ ngx_http_parse_complex_uri(ngx_http_request_t *r)
break; break;
case '?': case '?':
r->args_start = p; r->args_start = p;
goto args;
case '#':
goto done; goto done;
case '+': case '+':
r->plus_in_uri = 1; r->plus_in_uri = 1;
@ -883,6 +898,8 @@ ngx_http_parse_complex_uri(ngx_http_request_t *r)
break; break;
case '?': case '?':
r->args_start = p; r->args_start = p;
goto args;
case '#':
goto done; goto done;
case '+': case '+':
r->plus_in_uri = 1; r->plus_in_uri = 1;
@ -915,6 +932,8 @@ ngx_http_parse_complex_uri(ngx_http_request_t *r)
break; break;
case '?': case '?':
r->args_start = p; r->args_start = p;
goto args;
case '#':
goto done; goto done;
#if (NGX_WIN32) #if (NGX_WIN32)
case '.': case '.':
@ -958,6 +977,8 @@ ngx_http_parse_complex_uri(ngx_http_request_t *r)
break; break;
case '?': case '?':
r->args_start = p; r->args_start = p;
goto args;
case '#':
goto done; goto done;
case '+': case '+':
r->plus_in_uri = 1; r->plus_in_uri = 1;
@ -1001,7 +1022,11 @@ ngx_http_parse_complex_uri(ngx_http_request_t *r)
break; break;
} }
if (ch == '\0') { if (ch == '#') {
*u++ = ch;
ch = *p++;
} else if (ch == '\0') {
r->zero_in_uri = 1; r->zero_in_uri = 1;
} }
@ -1040,6 +1065,31 @@ done:
r->uri_ext = NULL; r->uri_ext = NULL;
return NGX_OK;
args:
while (p < r->uri_end) {
if (*p++ != '#') {
continue;
}
r->args.len = p - 1 - r->args_start;
r->args.data = r->args_start;
r->args_start = NULL;
break;
}
r->uri.len = u - r->uri.data;
if (r->uri_ext) {
r->exten.len = u - r->uri_ext;
r->exten.data = r->uri_ext;
}
r->uri_ext = NULL;
return NGX_OK; return NGX_OK;
} }