The symptom of this problem is qpsmtpd-async just hangs
forever in the HELO part of SMTP transaction.

After putting reams of debug code in ParaDNS.pm + qpsmtpd,
the fix I came up with is a minor change to...

    lib/Qpsmtpd/PollServer.pm

In start_conversation() no nameserver list specified. I have
servers where qpsmtpd-async has been running for years + have
no clue how this code could ever work.

My is to add a list of nameservers to query...

    my @nameservers = qw/127.0.0.1 8.8.8.8 8.8.4.4/;

Then add to the ParaDNS->new() constructor...

    nameservers => \@nameservers

Now everything works like a charm.

Debug shows...

00/2 [1394] dns lookup: Nameservers set to: 127.0.0.1 8.8.8.8 8.8.4.4
100/2 [1394] dns lookup: Using override nameserver 127.0.0.1:53
100/2 [1394] dns lookup: Using override nameserver 8.8.8.8:53
100/2 [1394] dns lookup: Using override nameserver 8.8.4.4:53
100/2 [1394] dns lookup: Trying to resolve A: 127.0.0.1
100/2 [1394] dns lookup: NS Query: 127.0.0.1 (39546)
100/1 [1394] dns lookup: Query mismatch for id: 39546. 127.0.0.1 ne 
1.0.0.127.in-addr.arpa
DNS failure looking for 127.0.0.1 after 0 secs (looked for 1, got 0)

Last line still seems bogus to me + at least qpsmtpd-async delivers
mail now.

If anyone has an idea of how ParaDNS comes up with a nameserver list,
when none is specified... let me know.

Thanks.

Reply via email to