Changeset 3448 for branches/gajim_0.8.2
- Timestamp:
- 09/06/05 13:30:12 (3 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
branches/gajim_0.8.2/src/common/xmpp/transports.py
r3254 r3448 33 33 from protocol import * 34 34 35 # determine which DNS resolution library is available 36 HAVE_DNSPYTHON = False 37 HAVE_PYDNS = False 35 38 try: 36 import dns.resolver 37 except: 38 pass 39 import dns.resolver # http://dnspython.org/ 40 HAVE_DNSPYTHON = True 41 except ImportError: 42 try: 43 import DNS # http://pydns.sf.net/ 44 HAVE_PYDNS = True 45 except ImportError: 46 print "Could not load one of the supported DNS libraries (dnspython or pydns). SRV records will not be queried and you may need to set custom hostname/port for some servers to be accessible." 39 47 40 48 DATA_RECEIVED='DATA RECEIVED' … … 61 69 62 70 # SRV resolver 63 if 'dns' in globals(): # if dnspython is available support SRV71 if HAVE_DNSPYTHON or HAVE_PYDNS: 64 72 host, port = server 65 73 possible_queries = ['_xmpp-client._tcp.' + host] … … 67 75 for query in possible_queries: 68 76 try: 69 answers = [x for x in dns.resolver.query(query, 'SRV')] 70 if answers: 71 host = str (answers[0].target) 72 port = int (answers[0].port) 73 break 77 if HAVE_DNSPYTHON: 78 answers = [x for x in dns.resolver.query(query, 'SRV')] 79 if answers: 80 host = str (answers[0].target) 81 port = int (answers[0].port) 82 break 83 elif HAVE_PYDNS: 84 # ensure we haven't cached an old configuration 85 DNS.ParseResolvConf() 86 response = DNS.Request().req(query, qtype='SRV') 87 answers = response.answers 88 if len(answers) > 0: 89 # ignore the priority and weight for now 90 _, _, port, host = answers[0]['data'] 91 del _ 92 port = int(port) 93 break 74 94 except: 75 pass 76 95 print 'An error occurred while looking up %s' % query 77 96 server = (host, port) 78 97 # end of SRV resolver
