Skip to content

Commit 19d59a6

Browse files
committed
fix: handle IPv6 getpeername tuple (#20)
1 parent ac8db28 commit 19d59a6

1 file changed

Lines changed: 8 additions & 3 deletions

File tree

pyproxy/handlers/https.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
relay raw data when SSL inspection is disabled.
77
"""
88

9-
import socket
10-
import select
119
import os
10+
import select
11+
import socket
1212
import ssl
1313
import threading
1414

@@ -377,7 +377,12 @@ def transfer_data_between_sockets(self, client_socket, server_socket):
377377
and "target_ip" not in self.active_connections[thread_id]
378378
):
379379
try:
380-
target_ip, target_port = server_socket.getpeername()
380+
peer = server_socket.getpeername()
381+
if len(peer) == 2:
382+
target_ip, target_port = server_socket.getpeername()
383+
else:
384+
target_ip, target_port, *_ = server_socket.getpeername()
385+
381386
self.active_connections[thread_id]["target_ip"] = target_ip
382387
self.active_connections[thread_id]["target_port"] = target_port
383388
except OSError as e:

0 commit comments

Comments
 (0)