Commit 3a39bf60 authored by Joel Martin's avatar Joel Martin

Pull IPv6 and HyBi fixes from websockify.

Pull 7ae8711 from websockify.
parent 123e5e74
...@@ -142,15 +142,17 @@ Sec-WebSocket-Accept: %s\r ...@@ -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 ...@@ -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 ...@@ -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__': ...@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment