changeset 28404:613f075b4ef0

Restructure network tests: Always check for both inet_aton and inet_pton.
author diego
date Sun, 01 Feb 2009 14:38:28 +0000
parents af8b542c7db4
children 73908b8bd543
files configure stream/librtsp/rtsp_rtp.c stream/tcp.c stream/udp.c
diffstat 4 files changed, 38 insertions(+), 54 deletions(-) [+]
line wrap: on
line diff
--- a/configure	Sun Feb 01 14:00:50 2009 +0000
+++ b/configure	Sun Feb 01 14:38:28 2009 +0000
@@ -2915,59 +2915,49 @@
 fi
 
 
-_use_aton=no
 echocheck "inet_pton()"
+def_inet_pton='#define HAVE_INET_PTON 0'
+inet_pton=no
 cat > $TMPC << EOF
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <arpa/inet.h>
 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
 EOF
-if test "$_winsock2_h" = yes ; then
-    _res_comment="using winsock2 functions instead"
-    echores "no"
-elif cc_check $_ld_sock ; then
+if cc_check $_ld_sock ; then
   # NOTE: Linux has libresolv but does not need it
-  :
   test $_ld_sock && _res_comment="using $_ld_sock"
-  echores "yes"
+  inet_pton=yes
+  def_inet_pton='#define HAVE_INET_PTON 1'
 elif cc_check $_ld_sock -lresolv ; then
-  # NOTE: needed for SunOS at least
   _ld_sock="$_ld_sock -lresolv"
   _res_comment="using $_ld_sock"
-  echores "yes"
-else
-  _res_comment="trying inet_aton next"
-  echores "no"
+  inet_pton=yes
+  def_inet_pton='#define HAVE_INET_PTON 1'
+fi
+echores "$inet_pton"
 
   echocheck "inet_aton()"
+def_inet_aton='#define HAVE_INET_ATON 0'
+inet_aton=no
   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
-    :
     test $_ld_sock && _res_comment="using $_ld_sock"
+    def_inet_aton='#define HAVE_INET_ATON 1'
+    inet_aton=yes
   elif cc_check $_ld_sock -lresolv ; then
-    # NOTE: needed for SunOS at least
     _ld_sock="$_ld_sock -lresolv"
     _res_comment="using $_ld_sock"
-  else
-    _use_aton=no
-    _network=no
-    _res_comment="network support disabled"
-  fi
-  echores "$_use_aton"
-fi
-
-_def_inet_aton='#define HAVE_INET_ATON 0'
-if test "$_use_aton" = yes; then
-  _def_inet_aton='#define HAVE_INET_ATON 1'
-fi
+    def_inet_aton='#define HAVE_INET_ATON 1'
+    inet_aton=yes
+  fi
+echores "$inet_aton"
 
 
 echocheck "socklen_t"
@@ -3003,7 +2993,8 @@
 
 
 echocheck "network"
-# FIXME network check
+test $_winsock2_h = no && test $inet_pton = no &&
+  test $inet_aton = no && _network=no
 if test "$_network" = yes ; then
   _def_network='#define CONFIG_NETWORK 1'
   _ld_extra="$_ld_extra $_ld_sock"
@@ -8483,7 +8474,8 @@
 $_def_closesocket
 $_def_ftp
 $_def_inet6
-$_def_inet_aton
+$def_inet_aton
+$def_inet_pton
 $_def_live
 $_def_nemesi
 $_def_network
--- a/stream/librtsp/rtsp_rtp.c	Sun Feb 01 14:00:50 2009 +0000
+++ b/stream/librtsp/rtsp_rtp.c	Sun Feb 01 14:38:28 2009 +0000
@@ -297,13 +297,11 @@
   if (!hostname || !strcmp (hostname, "0.0.0.0"))
     sin.sin_addr.s_addr = htonl (INADDR_ANY);
   else
-#if !HAVE_WINSOCK2_H
-#if HAVE_INET_ATON
+#if HAVE_INET_PTON
+    inet_pton (AF_INET, hostname, &sin.sin_addr);
+#elif HAVE_INET_ATON
     inet_aton (hostname, &sin.sin_addr);
-#else
-    inet_pton (AF_INET, hostname, &sin.sin_addr);
-#endif
-#else
+#elif HAVE_WINSOCK2_H
     sin.sin_addr.s_addr = htonl (INADDR_ANY);
 #endif
   sin.sin_port = htons (port);
@@ -386,13 +384,11 @@
   
   sin.sin_family = AF_INET;
 
-#if !HAVE_WINSOCK2_H
-#if HAVE_INET_ATON
+#if HAVE_INET_PTON
+    inet_pton (AF_INET, addr, &sin.sin_addr);
+#elif HAVE_INET_ATON
     inet_aton (addr, &sin.sin_addr);
-#else
-    inet_pton (AF_INET, addr, &sin.sin_addr);
-#endif
-#else
+#elif HAVE_WINSOCK2_H
     sin.sin_addr.s_addr = htonl (INADDR_ANY);
 #endif
   
--- a/stream/tcp.c	Sun Feb 01 14:00:50 2009 +0000
+++ b/stream/tcp.c	Sun Feb 01 14:38:28 2009 +0000
@@ -115,13 +115,11 @@
 	
 	memset(&server_address, 0, sizeof(server_address));
 	
-#if !HAVE_WINSOCK2_H
-#if HAVE_INET_ATON
+#if HAVE_INET_PTON
+	if (inet_pton(af, host, our_s_addr)!=1)
+#elif HAVE_INET_ATON
 	if (inet_aton(host, our_s_addr)!=1)
-#else
-	if (inet_pton(af, host, our_s_addr)!=1)
-#endif
-#else
+#elif HAVE_WINSOCK2_H
 	if ( inet_addr(host)==INADDR_NONE )
 #endif
 	{
--- a/stream/udp.c	Sun Feb 01 14:00:50 2009 +0000
+++ b/stream/udp.c	Sun Feb 01 14:38:28 2009 +0000
@@ -91,15 +91,13 @@
   }
   else
   {
-#if !HAVE_WINSOCK2_H
-#if HAVE_INET_ATON
-    inet_aton (url->hostname, &server_address.sin_addr);
-#else
+#if HAVE_INET_PTON
     inet_pton (AF_INET, url->hostname, &server_address.sin_addr);
-#endif /* HAVE_INET_ATON */
-#else
+#elif HAVE_INET_ATON
+    inet_aton (url->hostname, &server_address.sin_addr);
+#elif !HAVE_WINSOCK2_H
     server_address.sin_addr.s_addr = htonl(INADDR_ANY);
-#endif /* HAVE_WINSOCK2_H */
+#endif
   }
   server_address.sin_family = AF_INET;
   server_address.sin_port = htons (url->port);