diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2020-01-10 16:16:41 +0000 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2020-01-10 16:16:41 +0000 |
commit | be9abe795333dd76eaab83c2d765eefe98b10db7 (patch) | |
tree | bccf0510cdaa10355873c0a6eb6e126fefdd8579 /src | |
parent | 0c25142d4274dc19e3ce92a2375492a23a31811a (diff) | |
download | rspamd-be9abe795333dd76eaab83c2d765eefe98b10db7.tar.gz rspamd-be9abe795333dd76eaab83c2d765eefe98b10db7.zip |
[Minor] Fixes in urls fragments/queries parsing
Diffstat (limited to 'src')
-rw-r--r-- | src/libserver/url.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/libserver/url.c b/src/libserver/url.c index c2f59e768..bb32063d7 100644 --- a/src/libserver/url.c +++ b/src/libserver/url.c @@ -1021,6 +1021,14 @@ rspamd_web_parse (struct http_parser_url *u, const gchar *str, gsize len, st = parse_path; c = p + 1; } + else if (*p == '?') { + st = parse_query; + c = p + 1; + } + else if (*p == '#') { + st = parse_part; + c = p + 1; + } else if (p != last) { goto out; } @@ -1359,6 +1367,14 @@ rspamd_web_parse (struct http_parser_url *u, const gchar *str, gsize len, c = p + 1; st = parse_query; } + else if (t == '#') { + /* No query, just fragment */ + if (p - c != 0) { + SET_U (u, UF_PATH); + } + c = p + 1; + st = parse_part; + } else if (is_url_end (t)) { goto set; } |