Pull IPv6 and HyBi fixes from websockify.
Pull 7ae8711 from websockify.
This commit is contained in:
parent
123e5e7445
commit
3a39bf60f3
|
@ -142,15 +142,17 @@ Sec-WebSocket-Accept: %s\r
|
||||||
#
|
#
|
||||||
# WebSocketServer static methods
|
# WebSocketServer static methods
|
||||||
#
|
#
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def addrinfo(host, port=None):
|
def addrinfo(host, port=None):
|
||||||
""" Resolve a host (and optional port) to an IPv4 or IPv6 address.
|
""" Resolve a host (and optional port) to an IPv4 or IPv6 address.
|
||||||
Returns: family, socktype, proto, canonname, sockaddr
|
Returns: family, socktype, proto, canonname, sockaddr
|
||||||
"""
|
"""
|
||||||
|
if not host:
|
||||||
|
host = 'localhost'
|
||||||
addrs = socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM, socket.IPPROTO_TCP)
|
addrs = socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM, socket.IPPROTO_TCP)
|
||||||
if not addrs:
|
if not addrs:
|
||||||
raise Exception("Could resolve host '%s'" % self.target_host)
|
raise Exception("Could resolve host '%s'" % host)
|
||||||
return addrs[0]
|
return addrs[0]
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
@ -492,7 +494,7 @@ Sec-WebSocket-Accept: %s\r
|
||||||
if code != None:
|
if code != None:
|
||||||
msg = struct.pack(">H%ds" % (len(reason)), code)
|
msg = struct.pack(">H%ds" % (len(reason)), code)
|
||||||
|
|
||||||
buf = self.encode_hybi(msg, opcode=0x08, base64=False)
|
buf, h, t = self.encode_hybi(msg, opcode=0x08, base64=False)
|
||||||
self.client.send(buf)
|
self.client.send(buf)
|
||||||
|
|
||||||
elif self.version == "hixie-76":
|
elif self.version == "hixie-76":
|
||||||
|
@ -596,8 +598,8 @@ Sec-WebSocket-Accept: %s\r
|
||||||
if sys.hexversion < 0x2060000 or not numpy:
|
if sys.hexversion < 0x2060000 or not numpy:
|
||||||
raise self.EClose("Python >= 2.6 and numpy module is required for HyBi-07 or greater")
|
raise self.EClose("Python >= 2.6 and numpy module is required for HyBi-07 or greater")
|
||||||
|
|
||||||
if ver == '7':
|
if ver in ['7', '8', '9']:
|
||||||
self.version = "hybi-07"
|
self.version = "hybi-0" + ver
|
||||||
else:
|
else:
|
||||||
raise self.EClose('Unsupported protocol version %s' % ver)
|
raise self.EClose('Unsupported protocol version %s' % ver)
|
||||||
|
|
||||||
|
|
|
@ -259,10 +259,10 @@ if __name__ == '__main__':
|
||||||
opts.listen_host, sep, opts.listen_port = args[0].rpartition(':')
|
opts.listen_host, sep, opts.listen_port = args[0].rpartition(':')
|
||||||
else:
|
else:
|
||||||
opts.listen_host, opts.listen_port = '', args[0]
|
opts.listen_host, opts.listen_port = '', args[0]
|
||||||
|
|
||||||
try: opts.listen_port = int(opts.listen_port)
|
try: opts.listen_port = int(opts.listen_port)
|
||||||
except: parser.error("Error parsing listen port")
|
except: parser.error("Error parsing listen port")
|
||||||
|
|
||||||
if opts.wrap_cmd:
|
if opts.wrap_cmd:
|
||||||
opts.target_host = None
|
opts.target_host = None
|
||||||
opts.target_port = None
|
opts.target_port = None
|
||||||
|
|
Loading…
Reference in New Issue