[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: tests/test-getaddrinfo.c: compile failures on freebsd 6
From: |
Simon Josefsson |
Subject: |
Re: tests/test-getaddrinfo.c: compile failures on freebsd 6 |
Date: |
Mon, 05 May 2008 14:02:22 +0200 |
User-agent: |
Gnus/5.110009 (No Gnus v0.9) Emacs/22.2 (gnu/linux) |
Jim Meyering <address@hidden> writes:
> However, now that I've learned more about it, I see there's a
> better way. EAI_NONAME seems to be preferred: EAI_NODATA isn't
> even mentioned in the POSIX specs I looked at.
...
> EAI_NODATA is no longer even mentioned in RFC3493.
> Since at least FreeBSD has removed it in favour of EAI_NONAME,
> how about defining it to EAI_NONAME if it is not defined?
Hi Jim. Yes, indeed, EAI_NODATA seems to be historic.
> handle undefined EAI_NODATA better
> * lib/getaddrinfo.h [!defined EAI_NODATA && defined EAI_NONAME]
> (EAI_NODATA): Define.
> * tests/test-getaddrinfo.c (EAI_NODATA): Don't define here.
> This also reverts c9a6a9bb007294bb8878d685f3e9336b3a5be1ed.
>
> test-getaddrinfo.c: include <netinet/in.h>
> * tests/test-getaddrinfo.c: This is required for the new use
> of "struct sockaddr_in", at least on FreeBSD 6.
Looks fine to me, please push it!
Thanks,
Simon
> diff --git a/lib/getaddrinfo.h b/lib/getaddrinfo.h
> index b4ef242..0e9aec1 100644
> --- a/lib/getaddrinfo.h
> +++ b/lib/getaddrinfo.h
> @@ -84,6 +84,14 @@ struct addrinfo
> # define EAI_SERVICE -8 /* SERVICE not supported for `ai_socktype'. */
> # define EAI_MEMORY -10 /* Memory allocation failure. */
> #endif
> +
> +/* Since EAI_NODATA is deprecated by RFC3493, some systems (at least
> + FreeBSD, which does define EAI_BADFLAGS) have removed the definition
> + in favor of EAI_NONAME. */
> +#if !defined EAI_NODATA && defined EAI_NONAME
> +# define EAI_NODATA EAI_NONAME
> +#endif
> +
> #ifndef EAI_OVERFLOW
> /* Not defined on mingw32. */
> # define EAI_OVERFLOW -12 /* Argument buffer overflow. */
> diff --git a/tests/test-getaddrinfo.c b/tests/test-getaddrinfo.c
> index 801bae8..8d487cb 100644
> --- a/tests/test-getaddrinfo.c
> +++ b/tests/test-getaddrinfo.c
> @@ -32,10 +32,6 @@
> # define EAI_SERVICE 0
> #endif
>
> -#ifndef EAI_NODATA
> -# define EAI_NODATA 0
> -#endif
> -
> int simple (char *host, char *service)
> {
> char buf[BUFSIZ];
>
>
> diff --git a/tests/test-getaddrinfo.c b/tests/test-getaddrinfo.c
> index 8d487cb..530f8dc 100644
> --- a/tests/test-getaddrinfo.c
> +++ b/tests/test-getaddrinfo.c
> @@ -20,6 +20,7 @@
> #include <config.h>
> #include "getaddrinfo.h"
> #include <arpa/inet.h>
> +#include <netinet/in.h>
> #include <stdio.h>
> #include <string.h>
>
> --
> 1.5.5.1.117.ga349