sizeof(struct url_matcher), 13000);
url_scanner->search_trie_full = rspamd_multipattern_create_sized(13000,
RSPAMD_MULTIPATTERN_ICASE | RSPAMD_MULTIPATTERN_UTF8);
- url_scanner->has_tld_file = true;
}
else {
url_scanner->matchers_full = NULL;
if (tld_file != NULL) {
ret = rspamd_url_parse_tld_file(tld_file, url_scanner);
+
+ if (ret) {
+ url_scanner->has_tld_file = true;
+ }
}
if (url_scanner->matchers_full && url_scanner->matchers_full->len > 1000) {
}
}
else {
- /* Ignore IP like domains for mailto, as it is really never supported */
- return URI_ERRNO_TLD_MISSING;
+ if (url_scanner->has_tld_file) {
+ /* Ignore IP like domains for mailto, as it is really never supported */
+ return URI_ERRNO_TLD_MISSING;
+ }
+ else {
+ uri->flags |= RSPAMD_URL_FLAG_NO_TLD;
+ }
}
}
}