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 dns.resolver
|
||||
import socket
|
||||
import re
|
||||
|
||||
from subprocess import CalledProcessError
|
||||
|
@ -118,15 +117,25 @@ class MailDiagnoser(Diagnoser):
|
|||
details = ["diagnosis_mail_fcrdns_nok_details",
|
||||
"diagnosis_mail_fcrdns_nok_alternatives_4"]
|
||||
|
||||
try:
|
||||
rdns_domain, _, _ = socket.gethostbyaddr(ip)
|
||||
except socket.herror:
|
||||
rev = dns.reversename.from_address(ip)
|
||||
subdomain = str(rev.split(3)[0])
|
||||
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},
|
||||
data={"ip": ip, "ehlo_domain": self.ehlo_domain},
|
||||
status="ERROR",
|
||||
summary="diagnosis_mail_fcrdns_dns_missing",
|
||||
details=details)
|
||||
continue
|
||||
|
||||
rdns_domain = value[0] if len(value) > 0 else ''
|
||||
if rdns_domain != self.ehlo_domain:
|
||||
details = ["diagnosis_mail_fcrdns_different_from_ehlo_domain_details"] + details
|
||||
yield dict(meta={"test": "mail_fcrdns", "ipversion": ipversion},
|
||||
|
|
Loading…
Add table
Reference in a new issue