From 90416594843a56550e40b11561807786219ce1c4 Mon Sep 17 00:00:00 2001 From: Evan Hunt Date: Mon, 11 Sep 2017 15:01:36 -0700 Subject: [PATCH] remap getaddrinfo() to irs_getgetaddrinfo() The libirs version of getaddrinfo() cannot be called from within BIND9. fix prototypes --- lib/irs/include/irs/netdb.h.in | 94 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) diff --git a/lib/irs/include/irs/netdb.h.in b/lib/irs/include/irs/netdb.h.in index 23dcd37..f36113d 100644 --- a/lib/irs/include/irs/netdb.h.in +++ b/lib/irs/include/irs/netdb.h.in @@ -150,6 +150,100 @@ struct addrinfo { #define NI_DGRAM 0x00000010 /* + * Define to map into irs_ namespace. + */ + +#define IRS_NAMESPACE + +#ifdef IRS_NAMESPACE + +/* + * Use our versions not the ones from the C library. + */ + +#ifdef getnameinfo +#undef getnameinfo +#endif +#define getnameinfo irs_getnameinfo + +#ifdef getaddrinfo +#undef getaddrinfo +#endif +#define getaddrinfo irs_getaddrinfo + +#ifdef freeaddrinfo +#undef freeaddrinfo +#endif +#define freeaddrinfo irs_freeaddrinfo + +#ifdef gai_strerror +#undef gai_strerror +#endif +#define gai_strerror irs_gai_strerror + +#endif + +extern int getaddrinfo (const char *name, + const char *service, + const struct addrinfo *req, + struct addrinfo **pai); +extern int getnameinfo (const struct sockaddr *sa, + socklen_t salen, char *host, + socklen_t hostlen, char *serv, + socklen_t servlen, int flags); +extern void freeaddrinfo (struct addrinfo *ai); +extern const char *gai_strerror (int ecode); + +/* + * Define to map into irs_ namespace. + */ + +#define IRS_NAMESPACE + +#ifdef IRS_NAMESPACE + +/* + * Use our versions not the ones from the C library. + */ + +#ifdef getnameinfo +#undef getnameinfo +#endif +#define getnameinfo irs_getnameinfo + +#ifdef getaddrinfo +#undef getaddrinfo +#endif +#define getaddrinfo irs_getaddrinfo + +#ifdef freeaddrinfo +#undef freeaddrinfo +#endif +#define freeaddrinfo irs_freeaddrinfo + +#ifdef gai_strerror +#undef gai_strerror +#endif +#define gai_strerror irs_gai_strerror + +int +getaddrinfo(const char *hostname, const char *servname, + const struct addrinfo *hints, struct addrinfo **res); + +int +getnameinfo(const struct sockaddr *sa, IRS_GETNAMEINFO_SOCKLEN_T salen, + char *host, IRS_GETNAMEINFO_BUFLEN_T hostlen, + char *serv, IRS_GETNAMEINFO_BUFLEN_T servlen, + IRS_GETNAMEINFO_FLAGS_T flags); + +void freeaddrinfo (struct addrinfo *ai); + +IRS_GAISTRERROR_RETURN_T +gai_strerror(int ecode); + +#endif + +/* * Tell Emacs to use C mode on this file. * Local variables: * mode: c -- 2.9.5