summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpasky <pasky@openttd.org>2005-02-28 22:33:31 +0000
committerpasky <pasky@openttd.org>2005-02-28 22:33:31 +0000
commit053d1bade3434a5227eb98a13dbf93f565f8e05e (patch)
tree8a3463fee7dbfd62aea1d68e0ff58b3990e48c50
parent694741f4413a161307f7e5175a21c8ac1e425c6f (diff)
downloadopenttd-053d1bade3434a5227eb98a13dbf93f565f8e05e.tar.xz
(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.
-rw-r--r--network_core.h20
1 files changed, 11 insertions, 9 deletions
diff --git a/network_core.h b/network_core.h
index ef2d89a70..7ca53a944 100644
--- a/network_core.h
+++ b/network_core.h
@@ -61,25 +61,27 @@ typedef struct ifreq IFREQ;
# 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>