lib1560: verify more scheme guessing

- on 2nd level domains
- on names without dots

As mentioned in #11161, "imap.com" will be guessed IMAP

Closes #11219
This commit is contained in:
Daniel Stenberg 2023-05-29 17:27:22 +02:00
parent b62b5de7eb
commit 329889f1ea
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2

View File

@ -592,6 +592,42 @@ static const struct urltestcase get_url_list[] = {
{"example.com/path/html",
"http://example.com/path/html",
CURLU_GUESS_SCHEME, 0, CURLUE_OK},
{"smtp.com/path/html",
"smtp://smtp.com/path/html",
CURLU_GUESS_SCHEME, 0, CURLUE_OK},
{"dict.com/path/html",
"dict://dict.com/path/html",
CURLU_GUESS_SCHEME, 0, CURLUE_OK},
{"pop3.com/path/html",
"pop3://pop3.com/path/html",
CURLU_GUESS_SCHEME, 0, CURLUE_OK},
{"ldap.com/path/html",
"ldap://ldap.com/path/html",
CURLU_GUESS_SCHEME, 0, CURLUE_OK},
{"imap.com/path/html",
"imap://imap.com/path/html",
CURLU_GUESS_SCHEME, 0, CURLUE_OK},
{"ftp.com/path/html",
"ftp://ftp.com/path/html",
CURLU_GUESS_SCHEME, 0, CURLUE_OK},
{"smtp/path/html",
"http://smtp/path/html",
CURLU_GUESS_SCHEME, 0, CURLUE_OK},
{"dict/path/html",
"http://dict/path/html",
CURLU_GUESS_SCHEME, 0, CURLUE_OK},
{"pop3/path/html",
"http://pop3/path/html",
CURLU_GUESS_SCHEME, 0, CURLUE_OK},
{"ldap/path/html",
"http://ldap/path/html",
CURLU_GUESS_SCHEME, 0, CURLUE_OK},
{"imap/path/html",
"http://imap/path/html",
CURLU_GUESS_SCHEME, 0, CURLUE_OK},
{"ftp/path/html",
"http://ftp/path/html",
CURLU_GUESS_SCHEME, 0, CURLUE_OK},
{"HTTP://test/", "http://test/", 0, 0, CURLUE_OK},
{"http://HO0_-st..~./", "http://HO0_-st..~./", 0, 0, CURLUE_OK},
{"http:/@example.com: 123/", "", 0, 0, CURLUE_MALFORMED_INPUT},