From d2519e8625f901856bfc915a1dc1f492bbd8b395 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Mon, 10 Jan 2022 17:34:04 +0100 Subject: lavf/network: log ff_socket() errors to proper contexts rather than NULL --- libavformat/network.c | 8 ++++---- libavformat/network.h | 2 +- libavformat/sctp.c | 2 +- libavformat/tcp.c | 2 +- libavformat/udp.c | 4 ++-- libavformat/unix.c | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/libavformat/network.c b/libavformat/network.c index 0f5a575f77..c3d9f82551 100644 --- a/libavformat/network.c +++ b/libavformat/network.c @@ -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; diff --git a/libavformat/network.h b/libavformat/network.h index 71347e815b..d76166faf6 100644 --- a/libavformat/network.h +++ b/libavformat/network.h @@ -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); diff --git a/libavformat/sctp.c b/libavformat/sctp.c index 9a80e9b015..b8e23653d2 100644 --- a/libavformat/sctp.c +++ b/libavformat/sctp.c @@ -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; diff --git a/libavformat/tcp.c b/libavformat/tcp.c index 1c19aed887..84d40a1e11 100644 --- a/libavformat/tcp.c +++ b/libavformat/tcp.c @@ -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; diff --git a/libavformat/udp.c b/libavformat/udp.c index d1195ceca9..83c042d079 100644 --- a/libavformat/udp.c +++ b/libavformat/udp.c @@ -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"); } diff --git a/libavformat/unix.c b/libavformat/unix.c index 38016dbafe..e668744580 100644 --- a/libavformat/unix.c +++ b/libavformat/unix.c @@ -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) -- cgit v1.2.3