]> git.ipfire.org Git - thirdparty/curl.git/commit
urlapi: cleanups
authorDaniel Stenberg <daniel@haxx.se>
Tue, 11 Apr 2023 15:06:54 +0000 (17:06 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 13 Apr 2023 06:41:40 +0000 (08:41 +0200)
commit4cfa5bcc9ad0f7d9650bc98fed11c6189ca4c8b6
treeeca6a86df774dea8d386eea13ae9ed0e955f1bac
parent233b4e4589f38fe430af217d97252e32a30e7c31
urlapi: cleanups

- move host checks together
- simplify the scheme parser loop and the end of host name parser
- avoid itermediate buffer storing in multiple places
- reduce scope for several variables
- skip the Curl_dyn_tail() call for speed
- detect IPv6 earlier and skip extra checks for such hosts
- normalize directly in dynbuf instead of itermediate buffer
- split out the IPv6 parser into its own funciton
- call the IPv6 parser directly for ipv6 addresses
- remove (unused) special treatment of % in host names
- junkscan() once in the beginning instead of scattered
- make junkscan return error code
- remove unused query management from dedotdotify()
- make Curl_parse_login_details use memchr
- more use of memchr() instead of strchr() and less strlen() calls
- make junkscan check and return the URL length

An optimized build runs one of my benchmark URL parsing programs ~41%
faster using this branch. (compared against the shipped 7.88.1 library
in Debian)

Closes #10935
lib/setopt.c
lib/url.c
lib/urlapi.c
tests/libtest/lib1560.c
tests/unit/unit1395.c