aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2020-01-10 16:16:41 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2020-01-10 16:16:41 +0000
commitbe9abe795333dd76eaab83c2d765eefe98b10db7 (patch)
treebccf0510cdaa10355873c0a6eb6e126fefdd8579 /src
parent0c25142d4274dc19e3ce92a2375492a23a31811a (diff)
downloadrspamd-be9abe795333dd76eaab83c2d765eefe98b10db7.tar.gz
rspamd-be9abe795333dd76eaab83c2d765eefe98b10db7.zip
[Minor] Fixes in urls fragments/queries parsing
Diffstat (limited to 'src')
-rw-r--r--src/libserver/url.c16
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;
}