diff -urN gajim-0.7.1/src/common/xmpp/transports.py fix/gajim-0.7.1/src/common/xmpp/transports.py --- gajim-0.7.1/src/common/xmpp/transports.py 2005-06-05 12:56:36.000000000 +0200 +++ fix/gajim-0.7.1/src/common/xmpp/transports.py 2005-06-15 01:47:56.000000000 +0200 @@ -32,6 +32,12 @@ from client import PlugIn from protocol import * +try: + import dns.resolver +except: + pass + + class error: """An exception to be raised in case of low-level errors in methods of 'transports' module.""" def __init__(self,comment): @@ -50,6 +56,28 @@ PlugIn.__init__(self) self.DBG_LINE='socket' self._exported_methods=[self.send,self.disconnect] + + # SRV resolver + if 'dns' in globals(): # if dnspython is available support SRV + host, port = server + possible_queries = [ + "_xmpp-client._tcp." + host, + "_jabber._tcp." + host, + ] + + for query in possible_queries: + try: + answers = [x for x in dns.resolver.query(query, 'SRV')] + if answers: + host = str (answers[0].target) + port = int (answers[0].port) + break + except: + pass + + server = (host, port) + # end of SRV resolver + self._server = server def plugin(self, owner):