Mercurial > hg > nginx
comparison src/http/ngx_http_parse.c @ 2578:c7bdd722532f
ngx_http_split_args()
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Thu, 19 Mar 2009 13:41:29 +0000 |
parents | d311b7f6a403 |
children | c65755e03084 |
comparison
equal
deleted
inserted
replaced
2577:2dcbcfc1a8d1 | 2578:c7bdd722532f |
---|---|
1521 } | 1521 } |
1522 } | 1522 } |
1523 | 1523 |
1524 return NGX_DECLINED; | 1524 return NGX_DECLINED; |
1525 } | 1525 } |
1526 | |
1527 | |
1528 void | |
1529 ngx_http_split_args(ngx_http_request_t *r, ngx_str_t *uri, ngx_str_t *args) | |
1530 { | |
1531 u_char ch, *p, *last; | |
1532 | |
1533 p = uri->data; | |
1534 | |
1535 last = p + uri->len; | |
1536 | |
1537 while (p < last) { | |
1538 | |
1539 ch = *p++; | |
1540 | |
1541 if (ch == '?') { | |
1542 args->len = last - p; | |
1543 args->data = p; | |
1544 | |
1545 uri->len = p - 1 - uri->data; | |
1546 | |
1547 if (ngx_strlchr(p, last, '\0') != NULL) { | |
1548 r->zero_in_uri = 1; | |
1549 } | |
1550 | |
1551 return; | |
1552 } | |
1553 | |
1554 if (ch == '\0') { | |
1555 r->zero_in_uri = 1; | |
1556 continue; | |
1557 } | |
1558 } | |
1559 } |