mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
Merge pull request #964 from YunoHost/fix-reversednscheck
[fix] Reverse DNS check
This commit is contained in:
commit
ba27c2ad05
1 changed files with 13 additions and 4 deletions
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import dns.resolver
|
import dns.resolver
|
||||||
import socket
|
|
||||||
import re
|
import re
|
||||||
|
|
||||||
from subprocess import CalledProcessError
|
from subprocess import CalledProcessError
|
||||||
|
@ -118,15 +117,25 @@ class MailDiagnoser(Diagnoser):
|
||||||
details = ["diagnosis_mail_fcrdns_nok_details",
|
details = ["diagnosis_mail_fcrdns_nok_details",
|
||||||
"diagnosis_mail_fcrdns_nok_alternatives_4"]
|
"diagnosis_mail_fcrdns_nok_alternatives_4"]
|
||||||
|
|
||||||
try:
|
rev = dns.reversename.from_address(ip)
|
||||||
rdns_domain, _, _ = socket.gethostbyaddr(ip)
|
subdomain = str(rev.split(3)[0])
|
||||||
except socket.herror:
|
query = subdomain
|
||||||
|
if ipversion == 4:
|
||||||
|
query += '.in-addr.arpa'
|
||||||
|
else:
|
||||||
|
query += '.ip6.arpa'
|
||||||
|
|
||||||
|
# Do the DNS Query
|
||||||
|
status, value = dig(query, 'PTR')
|
||||||
|
if status == "nok":
|
||||||
yield dict(meta={"test": "mail_fcrdns", "ipversion": ipversion},
|
yield dict(meta={"test": "mail_fcrdns", "ipversion": ipversion},
|
||||||
data={"ip": ip, "ehlo_domain": self.ehlo_domain},
|
data={"ip": ip, "ehlo_domain": self.ehlo_domain},
|
||||||
status="ERROR",
|
status="ERROR",
|
||||||
summary="diagnosis_mail_fcrdns_dns_missing",
|
summary="diagnosis_mail_fcrdns_dns_missing",
|
||||||
details=details)
|
details=details)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
rdns_domain = value[0] if len(value) > 0 else ''
|
||||||
if rdns_domain != self.ehlo_domain:
|
if rdns_domain != self.ehlo_domain:
|
||||||
details = ["diagnosis_mail_fcrdns_different_from_ehlo_domain_details"] + details
|
details = ["diagnosis_mail_fcrdns_different_from_ehlo_domain_details"] + details
|
||||||
yield dict(meta={"test": "mail_fcrdns", "ipversion": ipversion},
|
yield dict(meta={"test": "mail_fcrdns", "ipversion": ipversion},
|
||||||
|
|
Loading…
Add table
Reference in a new issue