Opened 2 years ago
Last modified 2 years ago
#33976 closed Bug
HTTP_HOST does not allow an ipv6 not enclosed in [] — at Initial Version
Reported by: | Eric Burghard | Owned by: | nobody |
---|---|---|---|
Component: | Core (URLs) | Version: | 3.2 |
Severity: | Normal | Keywords: | ipv6 |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
Hi,
If I'm not mistaken, brackets are optional for an ipv6 address without port number. The problem is that it confuses django. In asgi.py
we have
`
Invalid HTTP_HOST header: '2001:x:y:z:0:0:0:1'. The domain name provided is not valid according to RFC 1034/1035.
`
which can be fixed by changing django.http.request.host_validation_re
to _lazy_re_compile(r"[a-zA-z0-9.:]*")
but it also triggers an exception with asgi.py
`
2022/09/02 07:57:10 [alert] 422#422 [unit] Python failed to call 'loop.call_soon'
Traceback (most recent call last):
File "/usr/lib/python3.10/asyncio/base_events.py", line 750, in call_soon
self._check_closed()
ValueError: invalid literal for int() with base 10: 'x:y:z:0:0:0:1'
2022/09/02 07:57:25 [alert] 422#422 [unit] #23: Python failed to create 'client' pair
`