// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: rfc2553emu.h,v 1.2 1999/05/26 04:08:39 jgg Exp $
+// $Id: rfc2553emu.h,v 1.4 2000/06/18 06:04:45 jgg Exp $
/* ######################################################################
RFC 2553 Emulation - Provides emulation for RFC 2553 getaddrinfo,
// getaddrinfo support?
#ifndef HAVE_GETADDRINFO
- #error Boink
-
// Renamed to advoid type clashing.. (for debugging)
struct addrinfo_emu
{
size_t ai_addrlen; /* length of ai_addr */
char *ai_canonname; /* canonical name for nodename */
struct sockaddr *ai_addr; /* binary address */
- struct addrinfo *ai_next; /* next structure in linked list */
+ struct addrinfo_emu *ai_next; /* next structure in linked list */
};
- #define addinfo addrinfo_emu
+ #define addrinfo addrinfo_emu
int getaddrinfo(const char *nodename, const char *servname,
const struct addrinfo *hints,
#define EAI_SERVICE -7
#define EAI_ADDRFAMILY -8
#define EAI_SYSTEM -10
+ #define EAI_MEMORY -11
#endif
+ /* If we don't have getaddrinfo then we probably don't have
+ sockaddr_storage either (same RFC) so we definitely will not be
+ doing any IPv6 stuff. Do not use the members of this structure to
+ retain portability, cast to a sockaddr. */
+ #define sockaddr_storage sockaddr_in
#endif
// getnameinfo support (glibc2.0 has getaddrinfo only)
#define NI_DATAGRAM (1<<4)
#endif
+ #define sockaddr_storage sockaddr_in
+#endif
+
+// Glibc 2.0.7 misses this one
+#ifndef AI_NUMERICHOST
+#define AI_NUMERICHOST 0
#endif
#endif