Merge branch 'master' of https://github.com/cjhanks/websocket-client into cjhanks-master

This commit is contained in:
liris
2014-07-08 08:32:48 +09:00

View File

@@ -47,6 +47,7 @@ else:
from base64 import encodestring as base64encode from base64 import encodestring as base64encode
import os import os
import errno
import struct import struct
import uuid import uuid
import hashlib import hashlib
@@ -418,16 +419,27 @@ class WebSocket(object):
if not addrinfo_list: if not addrinfo_list:
raise WebSocketException("Host not found.: " + hostname + ":" + str(port)) raise WebSocketException("Host not found.: " + hostname + ":" + str(port))
family = addrinfo_list[0][0] for addrinfo in addrinfo_list:
self.sock = socket.socket(family) family = addrinfo[0]
self.sock.settimeout(self.timeout) self.sock = socket.socket(family)
for opts in DEFAULT_SOCKET_OPTION: self.sock.settimeout(self.timeout)
self.sock.setsockopt(*opts) for opts in DEFAULT_SOCKET_OPTION:
for opts in self.sockopt: self.sock.setsockopt(*opts)
self.sock.setsockopt(*opts) for opts in self.sockopt:
# TODO: we need to support proxy self.sock.setsockopt(*opts)
address = addrinfo_list[0][4] # TODO: we need to support proxy
self.sock.connect(address) address = addrinfo[4]
try:
self.sock.connect(address)
except socket.error as error:
if error.errno in (errno.ECONNREFUSED, ):
continue
else:
raise
else:
break
else:
raise error
if proxy_host: if proxy_host:
self._tunnel(hostname, port) self._tunnel(hostname, port)