From: robinaly Date: Tue, 10 Oct 2023 11:03:47 +0000 (+0200) Subject: Fix encode host (#2886) X-Git-Tag: 0.25.1~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e63b6594f2863b7c8274eb0991ebc6cad63661f7;p=thirdparty%2Fhttpx.git Fix encode host (#2886) * Fix requiring dot literal rather than any character in IPv4 * Add check to prevent future errors --- diff --git a/httpx/_urlparse.py b/httpx/_urlparse.py index e1ba8dcd..8e060424 100644 --- a/httpx/_urlparse.py +++ b/httpx/_urlparse.py @@ -87,7 +87,7 @@ COMPONENT_REGEX = { # We use these simple regexs as a first pass before handing off to # the stdlib 'ipaddress' module for IP address validation. -IPv4_STYLE_HOSTNAME = re.compile(r"^[0-9]+.[0-9]+.[0-9]+.[0-9]+$") +IPv4_STYLE_HOSTNAME = re.compile(r"^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$") IPv6_STYLE_HOSTNAME = re.compile(r"^\[.*\]$") diff --git a/tests/test_urlparse.py b/tests/test_urlparse.py index 3ae9b04c..b03291b4 100644 --- a/tests/test_urlparse.py +++ b/tests/test_urlparse.py @@ -45,6 +45,12 @@ def test_urlparse_normalized_host(): assert url.host == "example.com" +def test_urlparse_ipv4_like_host(): + """rare host names used to quality as IPv4""" + url = httpx.URL("https://023b76x43144/") + assert url.host == "023b76x43144" + + def test_urlparse_valid_ipv4(): url = httpx.URL("https://1.2.3.4/") assert url.host == "1.2.3.4"