changeset 7135:2c34499ef4af

inet_aton fallback support by Joey Parrish <joey@yunamusic.com>
author bertrand
date Thu, 29 Aug 2002 07:07:12 +0000
parents 75ff2ec3b086
children 122efc309784
files configure libmpdemux/network.h
diffstat 2 files changed, 47 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/configure	Thu Aug 29 02:20:00 2002 +0000
+++ b/configure	Thu Aug 29 07:07:12 2002 +0000
@@ -1553,6 +1553,7 @@
 fi
 
 
+_use_aton=no
 echocheck "inet_pton()"
 cat > $TMPC << EOF
 #include <sys/types.h>
@@ -1569,10 +1570,35 @@
   _ld_sock="$_ld_sock -lresolv"
   echores "yes (using $_ld_sock)"
 else
-  echores "no (=> streaming support disabled)"
-  _streaming=no
-fi
-
+  echores "no (=> i'll try inet_aton next)"
+  
+  echocheck "inet_aton()"
+  cat > $TMPC << EOF
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <arpa/inet.h>
+int main(void) { (void) inet_aton(0, 0); return 0; }
+EOF
+  _use_aton=yes
+  if cc_check $_ld_sock ; then
+      # NOTE: Linux has libresolv but does not need it
+    :
+    echores "yes (using $_ld_sock)"
+  elif cc_check $_ld_sock -lresolv ; then
+    # NOTE: needed for SunOS at least
+    _ld_sock="$_ld_sock -lresolv"
+    echores "yes (using $_ld_sock)"
+  else
+    _use_aton=no
+    _streaming=no
+    echores "no (=> streaming support disabled)"
+  fi
+fi
+
+_def_use_aton='#undef USE_ATON'
+if test "$_use_aton" != no; then
+  _def_use_aton='#define USE_ATON 1'
+fi
 
 echocheck "inttypes.h (required)"
 cat > $TMPC << EOF
@@ -4653,6 +4679,9 @@
 /* enable streaming */
 $_def_streaming
 
+/* define this to use inet_aton() instead of inet_pton() */
+$_def_use_aton
+
 /* enables / disables cdparanoia support */
 $_def_cdparanoia
 
--- a/libmpdemux/network.h	Thu Aug 29 02:20:00 2002 +0000
+++ b/libmpdemux/network.h	Thu Aug 29 07:07:12 2002 +0000
@@ -52,4 +52,18 @@
 int http_send_request(URL_t *url);
 HTTP_header_t *http_read_response(int fd);
 
+/* 
+ * Joey Parrish <joey@yunamusic.com>:
+ *
+ * This define is to allow systems without inet_pton() to fallback on
+ * inet_aton().  The difference between the two is that inet_aton() is
+ * strictly for IPv4 networking, while inet_pton() is for IPv4 and IPv6
+ * both.  Slightly limited network functionality seems better than no
+ * network functionality to me, and as all systems (Cygwin) start to
+ * implement inet_pton(), configure will decide not to use this code.
+ */
+#ifdef USE_ATON
+# define inet_pton(a, b, c) inet_aton(b, c)
 #endif
+
+#endif