Skip to content

Latest commit

 

History

History
83 lines (46 loc) · 1.81 KB

URL-QUIRKS.md

File metadata and controls

83 lines (46 loc) · 1.81 KB

URL Quirks

This is a collection peculiarities to may find in trurl due to bugs or changes/improvements in libcurl's URL handling.

The URL API

Was introduced in libcurl 7.62.0. No older libcurl versions can be used.

Build-time requirement.

Extracting zone id

Added in libcurl 7.65.0. The CURLUE_NO_ZONEID error code was added in 7.81.0.

Build-time requirement.

Normalizing IPv4 addresses

Added in libcurl 7.77.0. Before that, the source formatting was kept.

Run-time requirement.

Allow space

The libcurl URL parser was given the ability to allow spaces in libcurl 7.78.0. trurl therefore cannot offer this feature with older libcurl versions.

Build-time requirement.

curl_url_strerror()

This API call was added in 7.80.0, using a libcurl version older than this will make trurl output less good error messages.

Build-time requirement.

Normalizing IPv6 addresses

Implemented in libcurl 7.81.0. Before this, the source formatting was kept.

Run-time requirement.

CURLU_PUNYCODE

Added in libcurl 7.88.0.

Build-time requirement.

Accepting % in host names

The host name parser has been made stricter over time, with the most recent enhancement merged for libcurl 8.0.0.

Run-time requirement.

Parsing IPv6 literals when libcurl does not support IPv6

Before libcurl 8.0.0 the URL parser was not able to parse IPv6 addresses if libcurl itself was built without IPv6 capabilities.

Run-time requirement.

URL encoding of fragments

This was a libcurl bug, fixed in libcurl 8.1.0

Run-time requirement.

Bad IPv4 numerical address

The normalization of IPv4 addresses would just ignore bad addresses, while newer libcurl versions will reject host names using invalid IPv4 addresses. Fixed in 8.1.0

Run-time requirement.

Set illegal scheme

Permitted before libcurl 8.1.0

Run-time requirement.