@@ -462,8 +462,8 @@ func unptr[T any](l []*T) []T {
462
462
func checkDomain (ctx context.Context , resolver dns.Resolver , dialer * net.Dialer , domainName string ) (r CheckResult ) {
463
463
log := pkglog .WithContext (ctx )
464
464
465
- domain , err := dns .ParseDomain (domainName )
466
- xcheckuserf (ctx , err , "parsing domain" )
465
+ domain , xerr := dns .ParseDomain (domainName )
466
+ xcheckuserf (ctx , xerr , "parsing domain" )
467
467
468
468
domConf , ok := mox .Conf .Domain (domain )
469
469
if ! ok {
@@ -1416,6 +1416,13 @@ When enabling MTA-STS, or updating a policy, always update the policy first (thr
1416
1416
{name : "_pop3" , port : 110 , host : "." },
1417
1417
{name : "_pop3s" , port : 995 , host : "." },
1418
1418
}
1419
+ // Host "." indicates the service is not available. We suggested in the DNS records
1420
+ // that the port be set to 0, so check for that. ../rfc/6186:242
1421
+ for i := range reqs {
1422
+ if reqs [i ].host == "." {
1423
+ reqs [i ].port = 0
1424
+ }
1425
+ }
1419
1426
var srvwg sync.WaitGroup
1420
1427
srvwg .Add (len (reqs ))
1421
1428
for i := range reqs {
@@ -1436,8 +1443,8 @@ When enabling MTA-STS, or updating a policy, always update the policy first (thr
1436
1443
}
1437
1444
instr += fmt .Sprintf ("\t %s._tcp.%-*s SRV 0 %d %d %s\n " , req .name , len ("_submissions" )- len (req .name )+ len (domain .ASCII + "." ), domain .ASCII + "." , weight , req .port , req .host )
1438
1445
r .SRVConf .SRVs [req .name ] = unptr (req .srvs )
1439
- if err != nil {
1440
- addf (& r .SRVConf .Errors , "Looking up SRV record %q: %s" , name , err )
1446
+ if req . err != nil {
1447
+ addf (& r .SRVConf .Errors , "Looking up SRV record %q: %s" , name , req . err )
1441
1448
} else if len (req .srvs ) == 0 {
1442
1449
if req .host == "." {
1443
1450
addf (& r .SRVConf .Warnings , "Missing optional SRV record %q" , name )
0 commit comments