diff os_support.c @ 2050:612d19cb9550 libavformat

move resolve_host from tcp.c to os_support.c as it is used widely
author alex
date Thu, 26 Apr 2007 18:04:42 +0000
parents 9a8908eaa2ea
children 3d04317ab396
line wrap: on
line diff
--- a/os_support.c	Thu Apr 26 18:00:28 2007 +0000
+++ b/os_support.c	Thu Apr 26 18:04:42 2007 +0000
@@ -71,10 +71,12 @@
 }
 #endif /* !defined(HAVE_LOCALTIME_R) */
 
-#if !defined(HAVE_INET_ATON) && defined(CONFIG_NETWORK)
+#ifdef CONFIG_NETWORK
+#include "network.h"
+
+#if !defined(HAVE_INET_ATON)
 #include <stdlib.h>
 #include <strings.h>
-#include "network.h"
 
 int inet_aton (const char * str, struct in_addr * add)
 {
@@ -97,7 +99,22 @@
 
     return 1;
 }
-#endif /* !defined(HAVE_INET_ATON) && defined(CONFIG_NETWORK) */
+#endif /* !defined(HAVE_INET_ATON) */
+
+/* resolve host with also IP address parsing */
+int resolve_host(struct in_addr *sin_addr, const char *hostname)
+{
+    struct hostent *hp;
+    
+    if (!inet_aton(hostname, sin_addr)) {
+	hp = gethostbyname(hostname);
+	if (!hp)
+	    return -1;
+	memcpy(sin_addr, hp->h_addr, sizeof(struct in_addr));
+    }
+    return 0;
+}
+#endif /* CONFIG_NETWORK */
 
 #ifdef CONFIG_FFSERVER
 #ifndef HAVE_SYS_POLL_H