summaryrefslogtreecommitdiff
path: root/libavformat/os_support.c
diff options
context:
space:
mode:
authorAlex Beregszaszi <alex@rtfs.hu>2007-04-26 18:04:42 +0000
committerAlex Beregszaszi <alex@rtfs.hu>2007-04-26 18:04:42 +0000
commit383eda234879aad7e90fe73c52574ef7e735f85c (patch)
treefdde53ed65a31752480f2269af5c643526db3e0c /libavformat/os_support.c
parenta33cc9511b968bee9a2e64644b7c17090eb4583d (diff)
move resolve_host from tcp.c to os_support.c as it is used widely
Originally committed as revision 8834 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat/os_support.c')
-rw-r--r--libavformat/os_support.c23
1 files changed, 20 insertions, 3 deletions
diff --git a/libavformat/os_support.c b/libavformat/os_support.c
index 5bd9e58b68..9dddab2f15 100644
--- a/libavformat/os_support.c
+++ b/libavformat/os_support.c
@@ -71,10 +71,12 @@ struct tm *localtime_r(const time_t *t, struct tm *tp)
}
#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 @@ done:
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