|
|
42adf4 |
--- jabber/xmlstream.py 2011-04-07 11:13:18.000000000 +0200
|
|
|
42adf4 |
+++ jabber/xmlstream.py 2011-06-22 14:37:49.369669567 +0200
|
|
|
42adf4 |
@@ -458,13 +458,34 @@
|
|
|
42adf4 |
self._setupComms()
|
|
|
42adf4 |
return
|
|
|
42adf4 |
|
|
|
42adf4 |
- self._sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
|
42adf4 |
- try:
|
|
|
42adf4 |
- if self._proxy: self._sock.connect((self._proxy['host'], self._proxy['port']))
|
|
|
42adf4 |
- else: self._sock.connect((self._hostIP, self._port))
|
|
|
42adf4 |
- except socket.error, e:
|
|
|
42adf4 |
- self.DEBUG("socket error: "+str(e),DBG_CONN_ERROR)
|
|
|
42adf4 |
- raise
|
|
|
42adf4 |
+ if self._proxy:
|
|
|
42adf4 |
+ results = socket.getaddrinfo(self._proxy['host'],
|
|
|
42adf4 |
+ self._proxy['port'], socket.AF_UNSPEC, socket.SOCK_STREAM)
|
|
|
42adf4 |
+ else:
|
|
|
42adf4 |
+ results = socket.getaddrinfo(self._hostIP, self._port,
|
|
|
42adf4 |
+ socket.AF_UNSPEC, socket.SOCK_STREAM)
|
|
|
42adf4 |
+
|
|
|
42adf4 |
+ for r in results:
|
|
|
42adf4 |
+ af, socktype, proto, canonname, sa = r
|
|
|
42adf4 |
+ try:
|
|
|
42adf4 |
+ self._sock = socket.socket(af, socktype, proto)
|
|
|
42adf4 |
+ except socket.error, msg:
|
|
|
42adf4 |
+ self._sock = None
|
|
|
42adf4 |
+ continue
|
|
|
42adf4 |
+ try:
|
|
|
42adf4 |
+ if self._proxy:
|
|
|
42adf4 |
+ self._sock.connect((self._proxy['host'], self._proxy['port']))
|
|
|
42adf4 |
+ else:
|
|
|
42adf4 |
+ self._sock.connect((self._hostIP, self._port))
|
|
|
42adf4 |
+ except socket.error, e:
|
|
|
42adf4 |
+ self._sock.close()
|
|
|
42adf4 |
+ self._sock = None
|
|
|
42adf4 |
+ self.DEBUG("socket error: "+str(e),DBG_CONN_ERROR)
|
|
|
42adf4 |
+ continue
|
|
|
42adf4 |
+ break
|
|
|
42adf4 |
+
|
|
|
42adf4 |
+ if self._sock is None:
|
|
|
42adf4 |
+ raise socket.error("Unable to connect to the host and port specified")
|
|
|
42adf4 |
|
|
|
42adf4 |
if self._connection == TCP_SSL:
|
|
|
42adf4 |
try:
|
|
|
42adf4 |
|