From: Stephan Bosch Date: Sun, 8 May 2016 22:31:43 +0000 (+0200) Subject: uri-util: Added support for initializing the URI parser from data. X-Git-Tag: 2.3.0.rc1~3756 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a643e1e3e5d9d8a60eeff83601f86ee00c26332a;p=thirdparty%2Fdovecot%2Fcore.git uri-util: Added support for initializing the URI parser from data. --- diff --git a/src/lib/uri-util.c b/src/lib/uri-util.c index eb1cdcb39b..4288a96fd4 100644 --- a/src/lib/uri-util.c +++ b/src/lib/uri-util.c @@ -927,13 +927,22 @@ int uri_parse_fragment(struct uri_parser *parser, const char **fragment_r) return 1; } -void uri_parser_init(struct uri_parser *parser, pool_t pool, const char *data) +void uri_parser_init_data(struct uri_parser *parser, + pool_t pool, const unsigned char *data, size_t size) { parser->pool = pool; - parser->begin = parser->cur = (unsigned char *)data; - parser->end = (unsigned char *)data + strlen(data); + parser->begin = parser->cur = data; + parser->end = data + size; parser->error = NULL; parser->tmpbuf = NULL; + +} + +void uri_parser_init(struct uri_parser *parser, + pool_t pool, const char *uri) +{ + uri_parser_init_data + (parser, pool, (const unsigned char *)uri, strlen(uri)); } string_t *uri_parser_get_tmpbuf(struct uri_parser *parser, size_t size) diff --git a/src/lib/uri-util.h b/src/lib/uri-util.h index c69fc07d75..348f9d4e19 100644 --- a/src/lib/uri-util.h +++ b/src/lib/uri-util.h @@ -53,8 +53,11 @@ int uri_parse_query(struct uri_parser *parser, int uri_parse_fragment(struct uri_parser *parser, const char **fragment_r) ATTR_NULL(2); -void uri_parser_init(struct uri_parser *parser, pool_t pool, - const char *data); +void uri_parser_init_data(struct uri_parser *parser, + pool_t pool, const unsigned char *data, size_t size); +void uri_parser_init(struct uri_parser *parser, + pool_t pool, const char *uri); + string_t *uri_parser_get_tmpbuf(struct uri_parser *parser, size_t size);