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/trunktags/v0.6
@@ -312,6 +312,42 @@ static AVLFG random_state; | |||||
static FILE *logfile = NULL; | 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) | static char *ctime1(char *buf2) | ||||
{ | { | ||||
time_t ti; | 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, | const char *small_strptime(const char *p, const char *fmt, | ||||
struct tm *dt); | 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 | * Splits a URL string into components. To reassemble components back into | ||||
* a URL, use ff_url_join instead of using snprintf directly. | * a URL, use ff_url_join instead of using snprintf directly. | ||||
@@ -223,41 +223,6 @@ const char *ff_gai_strerror(int ecode) | |||||
} | } | ||||
#endif | #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) | int ff_socket_nonblock(int socket, int enable) | ||||
{ | { | ||||
#if HAVE_WINSOCK2_H | #if HAVE_WINSOCK2_H | ||||