X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Farpa_inet.in.h;h=fbf084252f6a7afd5db0bdff52fc25b9aeed37dd;hb=82afcdd;hp=f043e5951ee413bd2246537fae4b9ec0af3cdcf1;hpb=49671ec97328d86dd90f5b8431be8351d8dee8c9;p=gnulib.git diff --git a/lib/arpa_inet.in.h b/lib/arpa_inet.in.h index f043e5951..fbf084252 100644 --- a/lib/arpa_inet.in.h +++ b/lib/arpa_inet.in.h @@ -1,5 +1,6 @@ -/* Provide a arpa/inet header file for systems lacking it (read: MinGW) - Copyright (C) 2008 Free Software Foundation, Inc. +/* A GNU-like . + + Copyright (C) 2005-2006, 2008-2010 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -16,30 +17,86 @@ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _GL_ARPA_INET_H -#define _GL_ARPA_INET_H + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif +@PRAGMA_COLUMNS@ + +#if @HAVE_FEATURES_H@ +# include /* for __GLIBC__ */ +#endif /* Gnulib's sys/socket.h is responsible for pulling in winsock2.h etc - under MinGW. */ -#include + under MinGW. + But avoid namespace pollution on glibc systems. */ +#ifndef __GLIBC__ +# include +#endif + +#if @HAVE_ARPA_INET_H@ + +/* The include_next requires a split double-inclusion guard. */ +# @INCLUDE_NEXT@ @NEXT_ARPA_INET_H@ + +#endif + +#ifndef _GL_ARPA_INET_H +#define _GL_ARPA_INET_H + +/* The definition of _GL_ARG_NONNULL is copied here. */ + +/* The definition of _GL_WARN_ON_USE is copied here. */ + +#ifdef __cplusplus +extern "C" { +#endif #if @GNULIB_INET_NTOP@ -# include +# if !@HAVE_DECL_INET_NTOP@ +/* Converts an internet address from internal format to a printable, + presentable format. + AF is an internet address family, such as AF_INET or AF_INET6. + SRC points to a 'struct in_addr' (for AF_INET) or 'struct in6_addr' + (for AF_INET6). + DST points to a buffer having room for CNT bytes. + The printable representation of the address (in numeric form, not + surrounded by [...], no reverse DNS is done) is placed in DST, and + DST is returned. If an error occurs, the return value is NULL and + errno is set. If CNT bytes are not sufficient to hold the result, + the return value is NULL and errno is set to ENOSPC. A good value + for CNT is 46. + + For more details, see the POSIX:2001 specification + . */ +extern const char *inet_ntop (int af, const void *restrict src, + char *restrict dst, socklen_t cnt) + _GL_ARG_NONNULL ((2, 3)); +# endif #elif defined GNULIB_POSIXCHECK # undef inet_ntop -# define inet_ntop(af,src,dst,cnt) \ - (GL_LINK_WARNING ("inet_ntop doesn't exist on mingw - " \ - "use gnulib module inet_ntop for portability"), \ - inet_ntop (af, src, dst, cnt)) +# if HAVE_RAW_DECL_INET_NTOP +_GL_WARN_ON_USE (inet_ntop, "inet_ntop is unportable - " + "use gnulib module inet_ntop for portability"); +# endif #endif #if @GNULIB_INET_PTON@ -# include +# if !@HAVE_DECL_INET_PTON@ +extern int inet_pton (int af, const char *restrict src, void *restrict dst) + _GL_ARG_NONNULL ((2, 3)); +# endif #elif defined GNULIB_POSIXCHECK # undef inet_pton -# define inet_pton(af,src,dst) \ - (GL_LINK_WARNING ("inet_pton doesn't exist on mingw - " \ - "use gnulib module inet_pton for portability"), \ - inet_pton (af, src, dst)) +# if HAVE_RAW_DECL_INET_PTON +_GL_WARN_ON_USE (inet_pton, "inet_pton is unportable - " + "use gnulib module inet_pton for portability"); +# endif #endif +#ifdef __cplusplus +} +#endif + +#endif /* _GL_ARPA_INET_H */ #endif /* _GL_ARPA_INET_H */