Skip to content

Commit

Permalink
Pull IPv6 and HyBi fixes from websockify.
Browse files Browse the repository at this point in the history
Pull 7ae8711 from websockify.
  • Loading branch information
kanaka committed Jul 7, 2011
1 parent 123e5e7 commit 3a39bf6
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 7 deletions.
12 changes: 7 additions & 5 deletions utils/websocket.py
Original file line number Diff line number Diff line change
Expand Up @@ -142,15 +142,17 @@ def __init__(self, listen_host='', listen_port=None, source_is_ipv6=False,
#
# WebSocketServer static methods
#

@staticmethod
def addrinfo(host, port=None):
""" Resolve a host (and optional port) to an IPv4 or IPv6 address.
Returns: family, socktype, proto, canonname, sockaddr
"""
if not host:
host = 'localhost'
addrs = socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM, socket.IPPROTO_TCP)
if not addrs:
raise Exception("Could resolve host '%s'" % self.target_host)
raise Exception("Could resolve host '%s'" % host)
return addrs[0]

@staticmethod
Expand Down Expand Up @@ -492,7 +494,7 @@ def send_close(self, code=None, reason=''):
if code != None:
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)

elif self.version == "hixie-76":
Expand Down Expand Up @@ -596,8 +598,8 @@ def do_handshake(self, sock, address):
if sys.hexversion < 0x2060000 or not numpy:
raise self.EClose("Python >= 2.6 and numpy module is required for HyBi-07 or greater")

if ver == '7':
self.version = "hybi-07"
if ver in ['7', '8', '9']:
self.version = "hybi-0" + ver
else:
raise self.EClose('Unsupported protocol version %s' % ver)

Expand Down
4 changes: 2 additions & 2 deletions utils/websockify
Original file line number Diff line number Diff line change
Expand Up @@ -259,10 +259,10 @@ if __name__ == '__main__':
opts.listen_host, sep, opts.listen_port = args[0].rpartition(':')
else:
opts.listen_host, opts.listen_port = '', args[0]

try: opts.listen_port = int(opts.listen_port)
except: parser.error("Error parsing listen port")

if opts.wrap_cmd:
opts.target_host = None
opts.target_port = None
Expand Down

0 comments on commit 3a39bf6

Please sign in to comment.