On 22/07/15 4:57 AM, Jonathan Knopp wrote:
> I ran into this error message a couple weeks ago too, and for me it was a result of name.com (big registrar) denying DNS ANY requests, which qmail uses to look for CNAMES on the From and Reply-To headers' domains. Unfortunately qmail handles a failed response on this request badly, given it isn't actually needed in the first place. You could try patching qmail to use CNAME instead of ANY for that request (though I don't know if the bind bug that prompted that change in the first place is still out in the wild), or use the patch that disables the canonical lookup altogether.
>
> http://fanf.livejournal.com/122220.html discusses the issue and provides both possible fixes.
>
> I haven't actually applied either yet, just created a static route temporarily for the one domain we were having issues with. But given that name.com is not a small registrar and they aren't likely to change their minds it is probably something that needs to be addressed in qmail distributions sooner than later.
I installed this patch and it solved my problems.
Ref:
http://fanf.livejournal.com/122220.html?thread=786796 I think only the second change is required, but my system has been
running fine for a year with this whole patch.
...Richard.
--- dns.c.bak 2006-11-10 22:08:51.000000000 +1100
+++ dns.c 2014-09-01 12:28:22.000000000 +1000
@@ -211,7 +211,7 @@
if (!sa->len) return loop;
if (sa->s[sa->len - 1] == ']') return loop;
if (sa->s[sa->len - 1] == '.') { --sa->len; continue; }
- switch(resolve(sa,T_ANY))
+ switch(resolve(sa,T_CNAME))
{
case DNS_MEM: return DNS_MEM;
case DNS_SOFT: return DNS_SOFT;
--- qmail-remote.c.bak 2006-11-10 22:08:51.000000000 +1100
+++ qmail-remote.c 2014-09-01 12:31:27.000000000 +1000
@@ -719,7 +719,7 @@
while (*recips) {
if (!saa_readyplus(&reciplist,1)) temp_nomem();
reciplist.sa[reciplist.len] = sauninit;
- addrmangle(reciplist.sa + reciplist.len,*recips,&flagalias,!relayhost);
+ addrmangle(reciplist.sa + reciplist.len,*recips,&flagalias,0);
if (!flagalias) flagallaliases = 0;
++reciplist.len;
++recips;