mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-26 19:01:44 +02:00
lavf/network: log ff_socket() errors to proper contexts rather than NULL
This commit is contained in:
parent
93b4cc38b0
commit
d2519e8625
@ -180,7 +180,7 @@ static int ff_poll_interrupt(struct pollfd *p, nfds_t nfds, int timeout,
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ff_socket(int af, int type, int proto)
|
||||
int ff_socket(int af, int type, int proto, void *logctx)
|
||||
{
|
||||
int fd;
|
||||
|
||||
@ -193,14 +193,14 @@ int ff_socket(int af, int type, int proto)
|
||||
#if HAVE_FCNTL
|
||||
if (fd != -1) {
|
||||
if (fcntl(fd, F_SETFD, FD_CLOEXEC) == -1)
|
||||
av_log(NULL, AV_LOG_DEBUG, "Failed to set close on exec\n");
|
||||
av_log(logctx, AV_LOG_DEBUG, "Failed to set close on exec\n");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#ifdef SO_NOSIGPIPE
|
||||
if (fd != -1) {
|
||||
if (setsockopt(fd, SOL_SOCKET, SO_NOSIGPIPE, &(int){1}, sizeof(int))) {
|
||||
av_log(NULL, AV_LOG_WARNING, "setsockopt(SO_NOSIGPIPE) failed\n");
|
||||
av_log(logctx, AV_LOG_WARNING, "setsockopt(SO_NOSIGPIPE) failed\n");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@ -363,7 +363,7 @@ static int start_connect_attempt(struct ConnectionAttempt *attempt,
|
||||
|
||||
*ptr = ai->ai_next;
|
||||
|
||||
attempt->fd = ff_socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
|
||||
attempt->fd = ff_socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol, h);
|
||||
if (attempt->fd < 0)
|
||||
return ff_neterrno();
|
||||
attempt->deadline_us = av_gettime_relative() + timeout_ms * 1000;
|
||||
|
@ -305,7 +305,7 @@ int ff_listen_connect(int fd, const struct sockaddr *addr,
|
||||
|
||||
int ff_http_match_no_proxy(const char *no_proxy, const char *hostname);
|
||||
|
||||
int ff_socket(int domain, int type, int protocol);
|
||||
int ff_socket(int domain, int type, int protocol, void *logctx);
|
||||
|
||||
void ff_log_net_error(void *ctx, int level, const char* prefix);
|
||||
|
||||
|
@ -220,7 +220,7 @@ static int sctp_open(URLContext *h, const char *uri, int flags)
|
||||
cur_ai = ai;
|
||||
|
||||
restart:
|
||||
fd = ff_socket(cur_ai->ai_family, SOCK_STREAM, IPPROTO_SCTP);
|
||||
fd = ff_socket(cur_ai->ai_family, SOCK_STREAM, IPPROTO_SCTP, h);
|
||||
if (fd < 0) {
|
||||
ret = ff_neterrno();
|
||||
goto fail;
|
||||
|
@ -175,7 +175,7 @@ static int tcp_open(URLContext *h, const char *uri, int flags)
|
||||
while (cur_ai && fd < 0) {
|
||||
fd = ff_socket(cur_ai->ai_family,
|
||||
cur_ai->ai_socktype,
|
||||
cur_ai->ai_protocol);
|
||||
cur_ai->ai_protocol, h);
|
||||
if (fd < 0) {
|
||||
ret = ff_neterrno();
|
||||
cur_ai = cur_ai->ai_next;
|
||||
|
@ -351,9 +351,9 @@ static int udp_socket_create(URLContext *h, struct sockaddr_storage *addr,
|
||||
goto fail;
|
||||
for (res = res0; res; res=res->ai_next) {
|
||||
if (s->udplite_coverage)
|
||||
udp_fd = ff_socket(res->ai_family, SOCK_DGRAM, IPPROTO_UDPLITE);
|
||||
udp_fd = ff_socket(res->ai_family, SOCK_DGRAM, IPPROTO_UDPLITE, h);
|
||||
else
|
||||
udp_fd = ff_socket(res->ai_family, SOCK_DGRAM, 0);
|
||||
udp_fd = ff_socket(res->ai_family, SOCK_DGRAM, 0, h);
|
||||
if (udp_fd != -1) break;
|
||||
ff_log_net_error(h, AV_LOG_ERROR, "socket");
|
||||
}
|
||||
|
@ -69,7 +69,7 @@ static int unix_open(URLContext *h, const char *filename, int flags)
|
||||
s->addr.sun_family = AF_UNIX;
|
||||
av_strlcpy(s->addr.sun_path, filename, sizeof(s->addr.sun_path));
|
||||
|
||||
if ((fd = ff_socket(AF_UNIX, s->type, 0)) < 0)
|
||||
if ((fd = ff_socket(AF_UNIX, s->type, 0, h)) < 0)
|
||||
return ff_neterrno();
|
||||
|
||||
if (s->timeout < 0 && h->rw_timeout)
|
||||
|
Loading…
Reference in New Issue
Block a user