urlapi: add CURLU_GUESS_SCHEME and fix hostname acceptance

In order for this API to fully work for libcurl itself, it now offers a
CURLU_GUESS_SCHEME flag that makes it "guess" scheme based on the host
name prefix just like libcurl always did. If there's no known prefix, it
will guess "http://".

Separately, it relaxes the check of the host name so that IDN host names
can be passed in as well.

Both these changes are necessary for libcurl itself to use this API.

Assisted-by: Daniel Gustafsson
Closes #3018
This commit is contained in:
Daniel Stenberg 2018-09-19 10:17:03 +02:00
parent eb0b3acbc1
commit 9307c219ad
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
5 changed files with 79 additions and 12 deletions

View file

@ -75,6 +75,7 @@ typedef enum {
#define CURLU_URLDECODE (1<<6) /* URL decode on get */
#define CURLU_URLENCODE (1<<7) /* URL encode on set */
#define CURLU_APPENDQUERY (1<<8) /* append a form style part */
#define CURLU_GUESS_SCHEME (1<<9) /* legacy curl-style guessing */
typedef struct Curl_URL CURLU;