summaryrefslogtreecommitdiff
path: root/source4/lib/replace/system
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2007-10-17 14:02:33 +0200
committerStefan Metzmacher <metze@samba.org>2007-12-21 05:43:14 +0100
commit9f53479997da6768113c347e4e31374328f72835 (patch)
tree02eea5096a44f09006eabb86e4ff85e40a61f61e /source4/lib/replace/system
parent1b73fcadb2ffa4c9d538c027848c8aa6ceafdb0e (diff)
downloadsamba-9f53479997da6768113c347e4e31374328f72835.tar.gz
samba-9f53479997da6768113c347e4e31374328f72835.tar.bz2
samba-9f53479997da6768113c347e4e31374328f72835.zip
r25687: Move #defined for getaddrinfo into network.h (as other
defines). Allows RHEL4 compile to work. Jeremy. (cherry picked from commit 0ffdf4fdeea88c21880c8bf69d8db56fb49effa7) (This used to be commit facb811bb3c77a0b98089c283fe0707c5f486c88)
Diffstat (limited to 'source4/lib/replace/system')
-rw-r--r--source4/lib/replace/system/network.h95
1 files changed, 91 insertions, 4 deletions
diff --git a/source4/lib/replace/system/network.h b/source4/lib/replace/system/network.h
index 0b0dbcb88d..61de2b728d 100644
--- a/source4/lib/replace/system/network.h
+++ b/source4/lib/replace/system/network.h
@@ -49,10 +49,6 @@
#include <netinet/tcp.h>
#endif
-#if !defined(HAVE_GETADDRINFO)
-#include "getaddrinfo.h"
-#endif
-
/*
* The next three defines are needed to access the IPTOS_* options
* on some systems.
@@ -104,6 +100,97 @@ int rep_inet_pton(int af, const char *src, void *dst);
const char *rep_inet_ntop(int af, const void *src, char *dst, socklen_t size);
#endif
+#if !defined(HAVE_GETADDRINFO)
+#include "getaddrinfo.h"
+#endif
+
+/*
+ * Some systems have getaddrinfo but not the
+ * defines needed to use it.
+ */
+
+/* Various macros that ought to be in <netdb.h>, but might not be */
+
+#ifndef EAI_FAIL
+#define EAI_BADFLAGS (-1)
+#define EAI_NONAME (-2)
+#define EAI_AGAIN (-3)
+#define EAI_FAIL (-4)
+#define EAI_FAMILY (-6)
+#define EAI_SOCKTYPE (-7)
+#define EAI_SERVICE (-8)
+#define EAI_MEMORY (-10)
+#define EAI_SYSTEM (-11)
+#endif /* !EAI_FAIL */
+
+#ifndef AI_PASSIVE
+#define AI_PASSIVE 0x0001
+#endif
+
+#ifndef AI_CANONNAME
+#define AI_CANONNAME 0x0002
+#endif
+
+#ifndef AI_NUMERICHOST
+/*
+ * some platforms don't support AI_NUMERICHOST; define as zero if using
+ * the system version of getaddrinfo...
+ */
+#if defined(HAVE_STRUCT_ADDRINFO) && defined(HAVE_GETADDRINFO)
+#define AI_NUMERICHOST 0
+#else
+#define AI_NUMERICHOST 0x0004
+#endif
+#endif
+
+#ifndef AI_ADDRCONFIG
+#define AI_ADDRCONFIG 0x0020
+#endif
+
+#ifndef NI_NUMERICHOST
+#define NI_NUMERICHOST 1
+#endif
+
+#ifndef NI_NUMERICSERV
+#define NI_NUMERICSERV 2
+#endif
+
+#ifndef NI_NOFQDN
+#define NI_NOFQDN 4
+#endif
+
+#ifndef NI_NAMEREQD
+#define NI_NAMEREQD 8
+#endif
+
+#ifndef NI_DGRAM
+#define NI_DGRAM 16
+#endif
+
+
+#ifndef NI_MAXHOST
+#define NI_MAXHOST 1025
+#endif
+
+#ifndef NI_MAXSERV
+#define NI_MAXSERV 32
+#endif
+
+#ifndef HAVE_STRUCT_ADDRINFO
+
+struct addrinfo
+{
+ int ai_flags;
+ int ai_family;
+ int ai_socktype;
+ int ai_protocol;
+ size_t ai_addrlen;
+ struct sockaddr *ai_addr;
+ char *ai_canonname;
+ struct addrinfo *ai_next;
+};
+#endif /* HAVE_STRUCT_ADDRINFO */
+
/*
* glibc on linux doesn't seem to have MSG_WAITALL
* defined. I think the kernel has it though..