ngx_http_split_args()

This commit is contained in:
Igor Sysoev 2009-03-19 13:41:29 +00:00
parent 165b3c001c
commit 2c7cb55ac1
2 changed files with 36 additions and 0 deletions

View File

@ -78,6 +78,8 @@ ngx_int_t ngx_http_parse_multi_header_lines(ngx_array_t *headers,
ngx_str_t *name, ngx_str_t *value);
ngx_int_t ngx_http_arg(ngx_http_request_t *r, u_char *name, size_t len,
ngx_str_t *value);
void ngx_http_split_args(ngx_http_request_t *r, ngx_str_t *uri,
ngx_str_t *args);
ngx_int_t ngx_http_find_server_conf(ngx_http_request_t *r);

View File

@ -1523,3 +1523,37 @@ ngx_http_arg(ngx_http_request_t *r, u_char *name, size_t len, ngx_str_t *value)
return NGX_DECLINED;
}
void
ngx_http_split_args(ngx_http_request_t *r, ngx_str_t *uri, ngx_str_t *args)
{
u_char ch, *p, *last;
p = uri->data;
last = p + uri->len;
while (p < last) {
ch = *p++;
if (ch == '?') {
args->len = last - p;
args->data = p;
uri->len = p - 1 - uri->data;
if (ngx_strlchr(p, last, '\0') != NULL) {
r->zero_in_uri = 1;
}
return;
}
if (ch == '\0') {
r->zero_in_uri = 1;
continue;
}
}
}