(svn r1916) Fix compilation on the glibc-2.2 systems. Part of the inspiration comes from patch 1149710 by Mr. Nobody. Also fixes the comment describing what to do if one's system doesn't have ifaddrs.h.
authorpasky
Mon, 28 Feb 2005 22:33:31 +0000
changeset 1412 189b1b7f98ed
parent 1411 53935a3bcea0
child 1413 4a93d8682e11
(svn r1916) Fix compilation on the glibc-2.2 systems. Part of the inspiration comes from patch 1149710 by Mr. Nobody. Also fixes the comment describing what to do if one's system doesn't have ifaddrs.h.
network_core.h
--- a/network_core.h	Mon Feb 28 21:54:04 2005 +0000
+++ b/network_core.h	Mon Feb 28 22:33:31 2005 +0000
@@ -61,25 +61,27 @@
 #		include <netinet/tcp.h>
 #		include <arpa/inet.h>
 #		include <net/if.h>
-#		if !defined(SUNOS) && !defined(__MORPHOS__) && !defined(__BEOS__)
+// According to glibc/NEWS, <ifaddrs.h> appeared in glibc-2.3.
+#		if !defined(SUNOS) && !defined(__MORPHOS__) && !defined(__BEOS__) \
+		   && !(defined(__GLIBC__) && (__GLIBC__ <= 2) && (__GLIBC_MINOR__ <= 2))
+// If for any reason ifaddrs.h does not exist on your system, comment out
+//   the following two lines and an alternative way will be used to fetch
+//   the list of IPs from the system.
 #			include <ifaddrs.h>
-// If for any reason ifaddrs.h does not exist on a system, remove define below
-//   and an other system will be used to fetch ips from the system
 #			define HAVE_GETIFADDRS
-#		else
+#		endif
+#		if defined(SUNOS) || defined(__MORPHOS__) || defined(__BEOS__)
 #			define INADDR_NONE 0xffffffff
-#		endif // SUNOS
+#		endif
 #		if defined(__BEOS__) && !defined(BEOS_NET_SERVER)
 			// needed on Zeta
 #			include <sys/sockio.h>
 #		endif
 #	endif // BEOS_NET_SERVER
 
-/* GLibc 2.1 does not support GetIfAddr() */
-#	if defined(__GLIBC__) && (__GLIBC__ == 2) && (__GLIBC_MINOR__ == 1)
-#		undef HAVE_GETIFADDRS
+#	if defined(__GLIBC__) && (__GLIBC__ <= 2) && (__GLIBC_MINOR__ <= 1)
 		typedef uint32_t in_addr_t;
-#	endif /* __GLIBC__ && (__GLIBC__ == 2) && (__GLIBC_MINOR__ == 1) */
+#	endif
 
 #	include <errno.h>
 #	include <sys/time.h>