Hi,

On Thu, Nov 30, 2006 at 11:05:05PM +0100, Matthias Andree wrote:
> Clemens Buchacher schrieb:
> > Not so. I don't know about the original fetchmail code, but the fetchmail
> > Debian package provides its own implementation of getaddrinfo.
> 
> Where and how does it do that?

I was referring to the implementation in libesmtp/getaddrinfo.c, which is
used if the system does not provide a getaddrinfo function. That seemed to
be the only explanation why my change worked. I see now that I was wrong.

Anyways, the real problem seems to be the same as in bug #391698 [1]. The
nameserver configuration (/etc/resolv.conf) is only read during the first
call to getaddrinfo.

For illustration, I have appended a patch which fixes the problem, even if
fetchmail is not restarted in /etc/resolvconf/update-libc.d/fetchmail.
I suppose the current solution is preferable, however.

Regards,
Clemens

[1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=391698

--- fetchmail-6.3.4/driver.c    2006-03-31 14:10:20.000000000 +0200
+++ fetchmail-6.3.4.new/driver.c        2006-12-04 20:19:37.000000000 +0100
@@ -39,6 +39,8 @@
 #include <hesiod.h>
 #endif
 
+#include <resolv.h>
+
 #include <langinfo.h>
 
 #include "kerberos.h"
@@ -1017,6 +1019,9 @@
                error = getaddrinfo(ctl->server.queryname, NULL, &hints, &res);
                if (error)
                {
+                   if (error == EAI_AGAIN)
+                       _res.options &= ~RES_INIT;
+
                    report(stderr,
                           GT_("couldn't find canonical DNS name of %s (%s)\n"),
                           ctl->server.pollname, ctl->server.queryname);


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to