i_zero(&url_parser);
uri_parser_init(&url_parser.parser, pool, url);
+ url_parser.parser.allow_pct_nul = (flags & HTTP_URL_ALLOW_PCT_NUL) != 0;
url_parser.url = p_new(pool, struct http_url, 1);
url_parser.base = base;
/* Allow '#fragment' part in HTTP URL */
HTTP_URL_ALLOW_FRAGMENT_PART = 0x02,
/* Allow 'user:password@' part in HTTP URL */
- HTTP_URL_ALLOW_USERINFO_PART = 0x04
+ HTTP_URL_ALLOW_USERINFO_PART = 0x04,
+ /* Allow URL to contain %00 */
+ HTTP_URL_ALLOW_PCT_NUL = 0x08,
};
int http_url_parse(const char *url, struct http_url *base,
const unsigned char *begin, *cur, *end;
string_t *tmpbuf;
+
+ bool allow_pct_nul:1;
};
/* parse one instance of percent encoding. Returns 1 for success,