diff --git a/websocket.py b/websocket.py index 71bff4f..cd94fde 100755 --- a/websocket.py +++ b/websocket.py @@ -87,17 +87,18 @@ Sec-WebSocket-Accept: %s\r class EClose(Exception): pass - def __init__(self, listen_host='', listen_port=None, + def __init__(self, listen_host='', listen_port=None, source_is_ipv6=False, verbose=False, cert='', key='', ssl_only=None, daemon=False, record='', web=''): # settings - self.verbose = verbose - self.listen_host = listen_host - self.listen_port = listen_port - self.ssl_only = ssl_only - self.daemon = daemon - self.handler_id = 1 + self.verbose = verbose + self.listen_host = listen_host + self.listen_port = listen_port + self.source_is_ipv6 = source_is_ipv6 + self.ssl_only = ssl_only + self.daemon = daemon + self.handler_id = 1 # Make paths settings absolute self.cert = os.path.abspath(cert) @@ -687,11 +688,10 @@ Sec-WebSocket-Accept: %s\r be overridden) for each new client connection. """ - lsock = None - if self.ipv6: - socket.socket(socket.AF_INET6, socket.SOCK_STREAM) + if self.source_is_ipv6: + lsock = socket.socket(socket.AF_INET6, socket.SOCK_STREAM) else: - socket.socket(socket.AF_INET, socket.SOCK_STREAM) + lsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) lsock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) lsock.bind((self.listen_host, self.listen_port)) lsock.listen(100) diff --git a/websockify b/websockify index ced3906..1204a4c 100755 --- a/websockify +++ b/websockify @@ -39,10 +39,11 @@ Traffic Legend: def __init__(self, *args, **kwargs): # Save off proxy specific options - self.target_host = kwargs.pop('target_host') - self.target_port = kwargs.pop('target_port') - self.wrap_cmd = kwargs.pop('wrap_cmd') - self.wrap_mode = kwargs.pop('wrap_mode') + self.target_host = kwargs.pop('target_host') + self.target_port = kwargs.pop('target_port') + self.target_is_ipv6 = kwargs.pop('target_is_ipv6') + self.wrap_cmd = kwargs.pop('wrap_cmd') + self.wrap_mode = kwargs.pop('wrap_mode') # Last 3 timestamps command was run self.wrap_times = [0, 0, 0] @@ -150,7 +151,10 @@ Traffic Legend: # Connect to the target self.msg("connecting to: %s:%s" % ( self.target_host, self.target_port)) - tsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + if self.target_is_ipv6: + tsock = socket.socket(socket.AF_INET6, socket.SOCK_STREAM) + else: + tsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) tsock.connect((self.target_host, self.target_port)) if self.verbose and not self.daemon: