Properly handle AF_INET6 requests
Socket addresses in the Python socket interface are represented in multiple different ways according to the socket family. Both AF_INET and AF_INET6 families use tuples with the host as the first element. Currently we extract the host from the first element of such a tuple, and ignore the other element. Since AF_INET6 has four elements, this will fail with a ValueError. To support AF_INET6 requests, make sure to store whatever is left of the tuple in a list instead.
This commit is contained in:
parent
cc26741d9c
commit
c29417f726
|
@ -431,7 +431,7 @@ def listen(port):
|
||||||
while True:
|
while True:
|
||||||
for fd, _ in listening.poll():
|
for fd, _ in listening.poll():
|
||||||
# TODO: Threads
|
# TODO: Threads
|
||||||
conn, (host, _) = sock_by_fd[fd].accept()
|
conn, (host, *_) = sock_by_fd[fd].accept()
|
||||||
proxy(conn, host)
|
proxy(conn, host)
|
||||||
conn.close()
|
conn.close()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue