diff options
| author | Adam Ierymenko <adam.ierymenko@gmail.com> | 2013-07-27 15:45:01 -0400 |
|---|---|---|
| committer | Adam Ierymenko <adam.ierymenko@gmail.com> | 2013-07-27 15:45:01 -0400 |
| commit | dd203f006574276be8eccedbcd1ddb8452b69eb1 (patch) | |
| tree | ff43449943f001fb0b1934a43067eb4f67e15c3f /ext/http-parser/contrib/url_parser.c | |
| parent | fb975ead23bf1000ae12e758cd683d1609583e2c (diff) | |
| download | infinitytier-dd203f006574276be8eccedbcd1ddb8452b69eb1.tar.gz infinitytier-dd203f006574276be8eccedbcd1ddb8452b69eb1.zip | |
Revert removal of Http. Witness my indecisiveness.
Diffstat (limited to 'ext/http-parser/contrib/url_parser.c')
| -rw-r--r-- | ext/http-parser/contrib/url_parser.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/ext/http-parser/contrib/url_parser.c b/ext/http-parser/contrib/url_parser.c new file mode 100644 index 00000000..b1f9c979 --- /dev/null +++ b/ext/http-parser/contrib/url_parser.c @@ -0,0 +1,44 @@ +#include "http_parser.h" +#include <stdio.h> +#include <string.h> + +void +dump_url (const char *url, const struct http_parser_url *u) +{ + unsigned int i; + + printf("\tfield_set: 0x%x, port: %u\n", u->field_set, u->port); + for (i = 0; i < UF_MAX; i++) { + if ((u->field_set & (1 << i)) == 0) { + printf("\tfield_data[%u]: unset\n", i); + continue; + } + + printf("\tfield_data[%u]: off: %u len: %u part: \"%.*s\n", + i, + u->field_data[i].off, + u->field_data[i].len, + u->field_data[i].len, + url + u->field_data[i].off); + } +} + +int main(int argc, char ** argv) { + if (argc != 3) { + printf("Syntax : %s connect|get url\n", argv[0]); + return 1; + } + struct http_parser_url u; + int len = strlen(argv[2]); + int connect = strcmp("connect", argv[1]) == 0 ? 1 : 0; + printf("Parsing %s, connect %d\n", argv[2], connect); + + int result = http_parser_parse_url(argv[2], len, connect, &u); + if (result != 0) { + printf("Parse error : %d\n", result); + return result; + } + printf("Parse ok, result : \n"); + dump_url(argv[2], &u); + return 0; +}
\ No newline at end of file |
