1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 14:37:45 +00:00

AK: Serialize URL hosts with 'concept-host-serializer'

In order to follow spec text to achieve this, we need to change the
underlying representation of a host in AK::URL to deserialized format.
Before this, we were parsing the host and then immediately serializing
it again.

Making that change resulted in a whole bunch of fallout.

After this change, callers can access the serialized data through
this concept-host-serializer. The functional end result of this
change is that IPv6 hosts are now correctly serialized to be
surrounded with '[' and ']'.
This commit is contained in:
Shannon Booth 2023-07-27 21:40:41 +12:00 committed by Andreas Kling
parent 768f070b86
commit 8751be09f9
36 changed files with 175 additions and 143 deletions

View file

@ -36,10 +36,9 @@ struct ProxyData {
proxy_data.type = ProxyData::Type::SOCKS5;
auto host_ipv4 = IPv4Address::from_string(url.host());
if (!host_ipv4.has_value())
if (!url.host().has<URL::IPv4Address>())
return Error::from_string_literal("Invalid proxy host, must be an IPv4 address");
proxy_data.host_ipv4 = host_ipv4->to_u32();
proxy_data.host_ipv4 = url.host().get<URL::IPv4Address>();
auto port = url.port();
if (!port.has_value())