Sorry for noise.

Someone in this list send me a mail but I cannot reply to the mail
because of dns failure in smtp.
This is a private message to him.

ar% pwd
/sys/log
ar% tail smtp.fail
ar Aug 24 08:30:13 dns: dns failure (net!sounine.nanosouffle.net)
ar Aug 24 09:40:13 dns: dns failure (net!sounine.nanosouffle.net)
ar Aug 24 10:50:13 dns: dns failure (net!sounine.nanosouffle.net)
ar Aug 24 12:00:13 dns: dns failure (net!sounine.nanosouffle.net)
ar Aug 24 13:10:14 dns: dns failure (net!sounine.nanosouffle.net)
ar Aug 24 14:20:13 dns: dns failure (net!sounine.nanosouffle.net)
ar Aug 24 15:30:13 dns: dns failure (net!sounine.nanosouffle.net)
ar Aug 24 16:40:13 dns: dns failure (net!sounine.nanosouffle.net)
ar Aug 24 17:50:13 dns: dns failure (net!sounine.nanosouffle.net)
ar Aug 24 19:16:08 dns: dns failure (net!sounine.nanosouffle.net)
ar% ndb/dnsquery
> sounine.nanosouffle.net mx

!dns: resource does not exist
> sounine.nanosouffle.net

sounine.nanosouffle.net ip 75.58.233.41
>



I think mx record is required in official dns server, although I feel
the condition is too strict.

/sys/src/cmd/upas/smtp/mxdial.c

nmx = 0;
snprint(buf, sizeof buf, "%s mx", ds->host);
if(debug)
fprint(2, "sending %s '%s'\n", dnsname, buf);
/*
* don't hang indefinitely in the write to /net/dns.
*/
n = timedwrite(fd, buf, strlen(buf), 60*1000);
if(n < 0){
rerrstr(buf, sizeof buf);
if(debug)
fprint(2, "dns: %s\n", buf);
if(strstr(buf, "dns failure")){
/* if dns fails for the mx lookup, we have to stop */
close(fd);
return -1;
}
} else {


Kenji Arisawa
Email: arisawa@aichi-u.ac.jp