Commit 22f73dcc authored by Måns Rullgård's avatar Måns Rullgård

Move resolve_host() to ffserver.c

This deprecated function is only used by ffserver, yet does not have
a prototype visible there.

In the long term, ffserver should be made IPv6-aware.  In the meantime,
this change removes cruft from lavf and fixes some warnings in ffserver.

Originally committed as revision 22329 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent f19a068e
......@@ -312,6 +312,42 @@ static AVLFG random_state;
static FILE *logfile = NULL;
/* FIXME: make ffserver work with IPv6 */
/* resolve host with also IP address parsing */
static int resolve_host(struct in_addr *sin_addr, const char *hostname)
{
if (!ff_inet_aton(hostname, sin_addr)) {
#if HAVE_GETADDRINFO
struct addrinfo *ai, *cur;
struct addrinfo hints;
memset(&hints, 0, sizeof(hints));
hints.ai_family = AF_INET;
if (getaddrinfo(hostname, NULL, &hints, &ai))
return -1;
/* getaddrinfo returns a linked list of addrinfo structs.
* Even if we set ai_family = AF_INET above, make sure
* that the returned one actually is of the correct type. */
for (cur = ai; cur; cur = cur->ai_next) {
if (cur->ai_family == AF_INET) {
*sin_addr = ((struct sockaddr_in *)cur->ai_addr)->sin_addr;
freeaddrinfo(ai);
return 0;
}
}
freeaddrinfo(ai);
return -1;
#else
struct hostent *hp;
hp = gethostbyname(hostname);
if (!hp)
return -1;
memcpy(sin_addr, hp->h_addr_list[0], sizeof(struct in_addr));
#endif
}
return 0;
}
static char *ctime1(char *buf2)
{
time_t ti;
......
......@@ -1339,10 +1339,6 @@ struct tm *brktimegm(time_t secs, struct tm *tm);
const char *small_strptime(const char *p, const char *fmt,
struct tm *dt);
struct in_addr;
/* Deprecated, use getaddrinfo instead. */
attribute_deprecated int resolve_host(struct in_addr *sin_addr, const char *hostname);
/**
* Splits a URL string into components. To reassemble components back into
* a URL, use ff_url_join instead of using snprintf directly.
......
......@@ -223,41 +223,6 @@ const char *ff_gai_strerror(int ecode)
}
#endif
/* resolve host with also IP address parsing */
int resolve_host(struct in_addr *sin_addr, const char *hostname)
{
if (!ff_inet_aton(hostname, sin_addr)) {
#if HAVE_GETADDRINFO
struct addrinfo *ai, *cur;
struct addrinfo hints;
memset(&hints, 0, sizeof(hints));
hints.ai_family = AF_INET;
if (getaddrinfo(hostname, NULL, &hints, &ai))
return -1;
/* getaddrinfo returns a linked list of addrinfo structs.
* Even if we set ai_family = AF_INET above, make sure
* that the returned one actually is of the correct type. */
for (cur = ai; cur; cur = cur->ai_next) {
if (cur->ai_family == AF_INET) {
*sin_addr = ((struct sockaddr_in *)cur->ai_addr)->sin_addr;
freeaddrinfo(ai);
return 0;
}
}
freeaddrinfo(ai);
return -1;
#else
struct hostent *hp;
hp = gethostbyname(hostname);
if (!hp)
return -1;
memcpy(sin_addr, hp->h_addr_list[0], sizeof(struct in_addr));
#endif
}
return 0;
}
int ff_socket_nonblock(int socket, int enable)
{
#if HAVE_WINSOCK2_H
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment