diff options
Diffstat (limited to 'libavformat/os_support.c')
-rw-r--r-- | libavformat/os_support.c | 23 |
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 |