mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-03-17 20:17:55 +02:00
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
This commit is contained in:
parent
f19a068ef6
commit
22f73dccad
36
ffserver.c
36
ffserver.c
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user