This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] posix/tst-getaddrinfo4: Consider EAI_NODATA as an expected result


On 7/30/18 3:40 AM, Alexey Brodkin wrote:
> Some proxy DNS servers might not resolve IPv6 names to addresses.
> Instead they reply with NOERROR while passing no real data.
> That combination of NOERROR and EAI_NODATA happen because the DNS
> server has a recored for requested name (example.net in our case)
> but that record is not of AAAA type which was requested.
> 
> That's what Wireshark sees in that case:
> ---------------------------------->8-----------------------------
> Domain Name System (response)
>    Transaction ID: 0x6e2e
>    Flags: 0x8180 Standard query response, No error
>        1... .... .... .... = Response: Message is a response
>        .000 0... .... .... = Opcode: Standard query (0)
>        .... .0.. .... .... = Authoritative: Server is not an authority for domain
>        .... ..0. .... .... = Truncated: Message is not truncated
>        .... ...1 .... .... = Recursion desired: Do query recursively
>        .... .... 1... .... = Recursion available: Server can do recursive queries
>        .... .... .0.. .... = Z: reserved (0)
>        .... .... ..0. .... = Answer authenticated: Answer/authority portion was not authenticated by the server
>        .... .... ...0 .... = Non-authenticated data: Unacceptable
>        .... .... .... 0000 = Reply code: No error (0)
>    Questions: 1
>    Answer RRs: 0
>    Authority RRs: 0
>    Additional RRs: 0
>    Queries
>        example.net: type AAAA, class IN
>            Name: example.net
>            [Name Length: 11]
>            [Label Count: 2]
>            Type: AAAA (IPv6 Address) (28)
>            Class: IN (0x0001)
> ---------------------------------->8-----------------------------
> 
> And that's what we see if Google DNS server (8.8.8.8) is used instead:
> ---------------------------------->8-----------------------------
> Domain Name System (response)
>    Transaction ID: 0x3cd4
>    Flags: 0x8180 Standard query response, No error
>        1... .... .... .... = Response: Message is a response
>        .000 0... .... .... = Opcode: Standard query (0)
>        .... .0.. .... .... = Authoritative: Server is not an authority for domain
>        .... ..0. .... .... = Truncated: Message is not truncated
>        .... ...1 .... .... = Recursion desired: Do query recursively
>        .... .... 1... .... = Recursion available: Server can do recursive queries
>        .... .... .0.. .... = Z: reserved (0)
>        .... .... ..0. .... = Answer authenticated: Answer/authority portion was not authenticated by the server
>        .... .... ...0 .... = Non-authenticated data: Unacceptable
>        .... .... .... 0000 = Reply code: No error (0)
>    Questions: 1
>    Answer RRs: 1
>    Authority RRs: 0
>    Additional RRs: 0
>    Queries
>        example.net: type AAAA, class IN
>            Name: example.net
>            [Name Length: 11]
>            [Label Count: 2]
>            Type: AAAA (IPv6 Address) (28)
>            Class: IN (0x0001)
> Answers
>    example.net: type AAAA, class IN, addr 2606:2800:220:1:248:1893:25c8:1946
> ---------------------------------->8-----------------------------
> ---
>  posix/tst-getaddrinfo4.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/posix/tst-getaddrinfo4.c b/posix/tst-getaddrinfo4.c
> index dc9e423448af..0139dee777a1 100644
> --- a/posix/tst-getaddrinfo4.c
> +++ b/posix/tst-getaddrinfo4.c
> @@ -39,6 +39,7 @@ try (const char *service, int family, int flags)
>      case 0:
>      case EAI_AGAIN:
>      case EAI_NONAME:
> +    case EAI_NODATA:
>        printf ("SUCCESS getaddrinfo(service=%s, family=%d, flags=%d): %s: %m\n",
>                service ?: "NULL", family, flags, gai_strerror (res));
>        return 0;
> 

Ping !


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]