On Sun, Oct 02, 2005 at 08:54:49AM -0700, Robert Woodcock wrote:
> On Sun, Oct 02, 2005 at 01:32:48AM -0300, Nelson A. de Oliveira wrote:
> > On 9/27/05, Rogier Wolff <[EMAIL PROTECTED]> wrote:
> > > Yes, somehow, it calls a function that fails, but the "errno" variable
> > > indicates no specification as to what system call when wrong or why: The
> > > system calls all worked, just the name server told "can't resolve this".
> > >
> > > I agree it's confusing. I'm not familiar with the code that
> > > generates that message.
> >
> > Maybe forward this to upstream and change severity to wishlist?
>
> Well, you already have an answer from Rogier, who *is* upstream.
>
> The weird thing is, *neither* the "Temporary failure in name resolution"
> string nor the "Success" string appear anywhere in mtr source. Just about
> all of the DNS code returns responses that start with "Resolver:" or
> "Resolver error:" So it's a bit difficult to figure out exactly what sort of
> DNS response causes that message to appear (and therefore, what code path is
> being taken within mtr).
>
> One exception to that is this chunk in mtr.c line 392ish:
>
> #ifdef ENABLE_IPV6
> /* gethostbyname2() is deprecated so we'll use getaddrinfo() instead. */
> bzero( &hints, sizeof hints );
> hints.ai_family = af;
> hints.ai_socktype = SOCK_DGRAM;
> error = getaddrinfo( Hostname, "0", &hints, &res );
> if ( error ) {
> perror( gai_strerror(error) );
> exit( EXIT_FAILURE );
> }
>
>
> I'm not sure that gai_strerror should be wrapped in perror like that - it
> could be that getaddrinfo does not set errno, or it could also be that
> gai_strerror resets errno. I think that a safer thing to do would be to
> check if error == EAI_SYSTEM. If so, use the output from perror. If not, use
> the output from gai_strerror. But never use the output from both.
>
> To get to the bottom of it we'd need to be able to replicate the bug. Would
> you be able to tell us how to configure a DNS server to be broken like yours
> was?
Robert, It certainly looks as if code like this is the culprit. Yes, the
"Success" string comes from
errno = 0;
perror (....);
Roger.
> --
> Robert Woodcock - [EMAIL PROTECTED]
> "By metaphorically, I mean get in the car."
> -- Bender
--
** [EMAIL PROTECTED] ** http://www.BitWizard.nl/ ** +31-15-2600998 **
*-- BitWizard writes Linux device drivers for any device you may have! --*
Q: It doesn't work. A: Look buddy, doesn't work is an ambiguous statement.
Does it sit on the couch all day? Is it unemployed? Please be specific!
Define 'it' and what it isn't doing. --------- Adapted from lxrbot FAQ
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]