diff -Nur -x '*.orig' -x '*~' telepathy-butterfly-0.5.2/butterfly/connection.py telepathy-butterfly-0.5.2.new/butterfly/connection.py --- telepathy-butterfly-0.5.2/butterfly/connection.py 2009-11-05 21:38:14.098046899 -0500 +++ telepathy-butterfly-0.5.2.new/butterfly/connection.py 2009-11-05 21:39:41.183377681 -0500 @@ -24,6 +24,7 @@ import telepathy import papyon import papyon.event +import socket from butterfly.presence import ButterflyPresence from butterfly.aliasing import ButterflyAliasing @@ -75,7 +76,7 @@ try: account = unicode(parameters['account']) - server = (parameters['server'].encode('utf-8'), parameters['port']) + server = (parameters['server'].encode('utf-8'), int(parameters['port'])) # Build the proxies configurations proxies = {} @@ -87,7 +88,25 @@ proxies['https'] = proxy self._manager = weakref.proxy(manager) - self._msn_client = papyon.Client(server, proxies) + + use_http_method = False + if proxy is None: + try: + socket_test = socket.create_connection(server, 10) + use_http_method = False + socket_test.close() + except socket.timeout: + use_http_method = True + pass + else: + use_http_method = False + + if use_http_method: + logger.info("Standard connection timed out... trying the HTTP method.") + from papyon.transport import HTTPPollConnection + self._msn_client = papyon.Client(server, proxies, HTTPPollConnection) + else: + self._msn_client = papyon.Client(server, proxies) self._account = (parameters['account'].encode('utf-8'), parameters['password'].encode('utf-8')) self._channel_manager = ButterflyChannelManager(self)