|
@ -13,6 +13,19 @@ try: |
|
|
import dns.message |
|
|
import dns.message |
|
|
import dns.resolver |
|
|
import dns.resolver |
|
|
import dns.rdatatype |
|
|
import dns.rdatatype |
|
|
|
|
|
import dns.rdtypes.ANY.NS |
|
|
|
|
|
import dns.rdtypes.ANY.CNAME |
|
|
|
|
|
import dns.rdtypes.ANY.DLV |
|
|
|
|
|
import dns.rdtypes.ANY.DNSKEY |
|
|
|
|
|
import dns.rdtypes.ANY.DS |
|
|
|
|
|
import dns.rdtypes.ANY.NSEC |
|
|
|
|
|
import dns.rdtypes.ANY.NSEC3 |
|
|
|
|
|
import dns.rdtypes.ANY.NSEC3PARAM |
|
|
|
|
|
import dns.rdtypes.ANY.RRSIG |
|
|
|
|
|
import dns.rdtypes.ANY.SOA |
|
|
|
|
|
import dns.rdtypes.ANY.TXT |
|
|
|
|
|
import dns.rdtypes.IN.A |
|
|
|
|
|
import dns.rdtypes.IN.AAAA |
|
|
from dns.exception import DNSException |
|
|
from dns.exception import DNSException |
|
|
OA_READY = True |
|
|
OA_READY = True |
|
|
except ImportError: |
|
|
except ImportError: |
|
@ -188,7 +201,10 @@ class Plugin(BasePlugin): |
|
|
err = None |
|
|
err = None |
|
|
for i in range(0, retries): |
|
|
for i in range(0, retries): |
|
|
try: |
|
|
try: |
|
|
records = dns.resolver.query(url, 'TXT') |
|
|
resolver = dns.resolver.Resolver() |
|
|
|
|
|
resolver.timeout = 15.0 |
|
|
|
|
|
resolver.lifetime = 15.0 |
|
|
|
|
|
records = resolver.query(url, 'TXT') |
|
|
for record in records: |
|
|
for record in records: |
|
|
string = record.strings[0] |
|
|
string = record.strings[0] |
|
|
if string.startswith('oa1:' + prefix): |
|
|
if string.startswith('oa1:' + prefix): |
|
@ -199,10 +215,10 @@ class Plugin(BasePlugin): |
|
|
return (address, name) |
|
|
return (address, name) |
|
|
QMessageBox.warning(self.win, _('Error'), _('No OpenAlias record found.'), _('OK')) |
|
|
QMessageBox.warning(self.win, _('Error'), _('No OpenAlias record found.'), _('OK')) |
|
|
return 0 |
|
|
return 0 |
|
|
except dns.resolver.NXDOMAIN: |
|
|
except resolver.NXDOMAIN: |
|
|
err = _('No such domain.') |
|
|
err = _('No such domain.') |
|
|
continue |
|
|
continue |
|
|
except dns.resolver.Timeout: |
|
|
except resolver.Timeout: |
|
|
err = _('Timed out while resolving.') |
|
|
err = _('Timed out while resolving.') |
|
|
continue |
|
|
continue |
|
|
except DNSException: |
|
|
except DNSException: |
|
@ -233,7 +249,7 @@ class Plugin(BasePlugin): |
|
|
sub = '.'.join(parts[i - 1:]) |
|
|
sub = '.'.join(parts[i - 1:]) |
|
|
|
|
|
|
|
|
query = dns.message.make_query(sub, dns.rdatatype.NS) |
|
|
query = dns.message.make_query(sub, dns.rdatatype.NS) |
|
|
response = dns.query.udp(query, ns) |
|
|
response = dns.query.udp(query, ns, 5) |
|
|
|
|
|
|
|
|
if response.rcode() != dns.rcode.NOERROR: |
|
|
if response.rcode() != dns.rcode.NOERROR: |
|
|
return 0 |
|
|
return 0 |
|
@ -251,7 +267,7 @@ class Plugin(BasePlugin): |
|
|
query = dns.message.make_query(sub, |
|
|
query = dns.message.make_query(sub, |
|
|
dns.rdatatype.DNSKEY, |
|
|
dns.rdatatype.DNSKEY, |
|
|
want_dnssec=True) |
|
|
want_dnssec=True) |
|
|
response = dns.query.udp(query, ns) |
|
|
response = dns.query.udp(query, ns, 5) |
|
|
|
|
|
|
|
|
if response.rcode() != 0: |
|
|
if response.rcode() != 0: |
|
|
return 0 |
|
|
return 0 |
|
|