From patchwork Thu May 16 11:59:06 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Sayers X-Patchwork-Id: 48920 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:3a48:b0:1af:fc2d:ff5a with SMTP id zu8csp2180081pzb; Thu, 16 May 2024 05:00:30 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWLUkV+1FSU1toXrMSSSrhXHQSWJfFFJ4Xc9VtajAn/yGM7/zKGg1sq+uuQhb34uhvmK5CqqtbLbD05CLKtMOZtcEEdN29jS8J8sw== X-Google-Smtp-Source: AGHT+IHRguH0LbxiXRR5pKjj0FWXYa2TXwWPF1M6iFZi5zPDAcruDj7/zQQNsq0cvnsSgbxxmozh X-Received: by 2002:a50:870d:0:b0:572:5fff:accd with SMTP id 4fb4d7f45d1cf-5734d590348mr13059796a12.6.1715860829966; Thu, 16 May 2024 05:00:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1715860829; cv=none; d=google.com; s=arc-20160816; b=ehSgoN1+/lYJsQiVpuAJMh6rAmnZ8H6/Vw4hGNxbnt1F/Jpz9CV/r3py4vzcN8mt15 1DYczoknExIn+G3JuQZxGKRK5rBTAoGfvgcOxkC1m7xRAgT9pfJPW8tr7WVbYZTrFea5 OU4bn9ZFMZ6Qsg9gPIiMCxNiAWAfSuzbO7bCdGuJuzsONu4rX6yrwPI9KOL0XNGVppey QFREh2A+xMeg5uPxJZAU5iIEzlOKlkDZXTBfY51ihihLUWIA/PL/+snsSAfMltdxkHNP qsq6RR4QkYtj22ZO17Oj/pAjdtwaSyzAqgS5h0O9drQ49BbCNN46bjZPLYAsll8jTnpf twDA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:delivered-to; bh=/kA1fcQZaGT6TdrdVwEk6cVBMXmZsN/RGZ6zeLrmDC4=; fh=73ExZnkQ8FYbu/qeQNmI0dtHCfShNh8/NmZJs1umltM=; b=Q7On/jmXvgBBXV1dTXj1UQngECQgbKaw03pe/eTEcA63u3FvTvW39vPFQPLL6wTs+K 1Iz79XqUMAU0jdP2Mw5+RTdklYuE5bIIwg3mWL+EX8bNeg9uGItPfnzTn6dSU+BKXOan KSR6B7DTqwHkgFSsJ4dbuL5Z55ERUteAH9YtxTszyaufHpn3aE60YfPPalJzcAVNQ84H FHL1nTHoUp6j4tanke6u4QQ5XoZskmD4aPRaLkPbPfuDj4KvMyeZiT6nS0sV3cA+Fp2L fDwU/3bFTfEiO32yLWw1rc7BX+8oJSCjwKlUayejoiUKeb6sbJ0DLYOTjXQPakajQWnn y3vg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 4fb4d7f45d1cf-5735373019fsi7546632a12.492.2024.05.16.05.00.29; Thu, 16 May 2024 05:00:29 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 09B6868D4DA; Thu, 16 May 2024 15:00:13 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from b-painless.mh.aa.net.uk (b-painless.mh.aa.net.uk [81.187.30.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EAC2B68D2A9 for ; Thu, 16 May 2024 15:00:04 +0300 (EEST) Received: from 0.b.4.b.7.4.0.8.c.4.a.5.d.8.b.2.0.5.8.0.9.1.8.0.0.b.8.0.1.0.0.2.ip6.arpa ([2001:8b0:819:850:2b8d:5a4c:8047:b4b0] helo=andrews-2024-laptop.lan) by painless-b.tch.aa.net.uk with esmtp (Exim 4.96) (envelope-from ) id 1s7ZmG-002ewq-0U; Thu, 16 May 2024 13:00:04 +0100 From: Andrew Sayers To: ffmpeg-devel@ffmpeg.org Date: Thu, 16 May 2024 12:59:06 +0100 Message-ID: <20240516115959.3786610-2-ffmpeg-devel@pileofstuff.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240516115959.3786610-1-ffmpeg-devel@pileofstuff.org> References: <91C9E49E-1EE3-4B37-AEF7-1A0D78481633@remlab.net> <20240516115959.3786610-1-ffmpeg-devel@pileofstuff.org> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v5 1/6] Add documentation for ff_neterrno() X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andrew Sayers Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: GNPcq8r424sE --- libavformat/network.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/libavformat/network.h b/libavformat/network.h index ca214087fc..728c20c9bb 100644 --- a/libavformat/network.h +++ b/libavformat/network.h @@ -57,6 +57,11 @@ #define getsockopt(a, b, c, d, e) getsockopt(a, b, c, (char*) d, e) #define setsockopt(a, b, c, d, e) setsockopt(a, b, c, (const char*) d, e) +/* + * @brief AVERROR for the latest network function + * @return platform-specific AVERROR value + * @note Error is based on WSAGetLastError() (Windows) or `errno` (otherwise) + */ int ff_neterrno(void); #else #include @@ -65,6 +70,11 @@ int ff_neterrno(void); #include #include +/* + * @brief AVERROR for the latest network function + * @return platform-specific AVERROR value + * @note Error is based on WSAGetLastError() (Windows) or `errno` (otherwise) + */ #define ff_neterrno() AVERROR(errno) #endif /* HAVE_WINSOCK2_H */ From patchwork Thu May 16 11:59:07 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Sayers X-Patchwork-Id: 48921 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:3a48:b0:1af:fc2d:ff5a with SMTP id zu8csp2180270pzb; Thu, 16 May 2024 05:00:41 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCX3dwvIoaIi3v+7UjisR6hTmfatD3Uu4/IlPqv8EGszYvH0aUQ+IoPI0avM2v3fyHWLPw3VcJ9XmZY7f9eRfkTY1RD9PvalgC0vaA== X-Google-Smtp-Source: AGHT+IHlmOoH+py5bKjj7n/9T5wqfRv+GMUinbPqyM1eu2yB8iq7jqfQGrfSQNMSRrZw0PYWAocF X-Received: by 2002:a17:906:c416:b0:a59:cd1e:2012 with SMTP id a640c23a62f3a-a5a11844737mr1676393266b.23.1715860840719; Thu, 16 May 2024 05:00:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1715860840; cv=none; d=google.com; s=arc-20160816; b=Up1dKTZPrmLSiwrk6lHvAaFb8gOUliD5ywg2NUuOkQgWPKymFrd1VmqXYF1E7CWP4J whfV+ixmEMS2LeITr50nuK2b5ROLnHFpGgG2Q2cBgi/TEm3srtaiPNjPusgrz2Xs12K1 pmWcTrsj+2csYpfY/9KvhFuEWZcratAisNsh+B70I0UAy/sN+29tTNhD4q2uvEA6J5Bi 2v9v5VYxrOHcqWBDI/3fFaC+L5BRWChTVagx2Lpz71p72dew29d6cLOsfOK1OkTBlTIj w9fJitAL/mXOIZ5kWASlJVyEJG5b9IAczMoz4GFeF8bpaErN/Ax4QzxJJspJlNiTSIJC q0mQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:delivered-to; bh=kxaNSY3YhLayP83aHsRaA8e9LbBE1QgXLkOQJd6Q2yk=; fh=73ExZnkQ8FYbu/qeQNmI0dtHCfShNh8/NmZJs1umltM=; b=Aka5iFRhkA+tqRou3bQyAMmcp5P+xyh4DV+I+1FMOcx/zhLUYJN7rSE7CzuqmQp0Lh 9Jqg4jmY07ZR7iwNMOq77+Bl0Iugs8vJG7G7iW0znv94KC05Rmmqi3DqquUwsx4zgp5g 37EXSsOeMeLIzRKAPa//5NqFDM1eNgAZFlQpbngsfwmGYW8aup09pOg7FDxTYLIUQeuZ /W8V1zUbErRGPk7ClSETIaKMc5Gl84ae2sTyzbAe2BEg6Fg9spKbqgsj71O0tSyIQytS ML/SdD1B7a/ImLSQpw8xIYYhbq9KUxobaITarcwfV3UyT7vV3iGoa2OZ5BgEeJuc7e/R 90NQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 4fb4d7f45d1cf-574ec96720bsi2348530a12.466.2024.05.16.05.00.40; Thu, 16 May 2024 05:00:40 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 09C9D68D517; Thu, 16 May 2024 15:00:14 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from b-painless.mh.aa.net.uk (b-painless.mh.aa.net.uk [81.187.30.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6C79D68D2A9 for ; Thu, 16 May 2024 15:00:05 +0300 (EEST) Received: from 0.b.4.b.7.4.0.8.c.4.a.5.d.8.b.2.0.5.8.0.9.1.8.0.0.b.8.0.1.0.0.2.ip6.arpa ([2001:8b0:819:850:2b8d:5a4c:8047:b4b0] helo=andrews-2024-laptop.lan) by painless-b.tch.aa.net.uk with esmtp (Exim 4.96) (envelope-from ) id 1s7ZmG-002ewq-1O; Thu, 16 May 2024 13:00:04 +0100 From: Andrew Sayers To: ffmpeg-devel@ffmpeg.org Date: Thu, 16 May 2024 12:59:07 +0100 Message-ID: <20240516115959.3786610-3-ffmpeg-devel@pileofstuff.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240516115959.3786610-1-ffmpeg-devel@pileofstuff.org> References: <91C9E49E-1EE3-4B37-AEF7-1A0D78481633@remlab.net> <20240516115959.3786610-1-ffmpeg-devel@pileofstuff.org> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v5 2/6] Rename "ff_neterrno()" to "ff_neterror()" X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andrew Sayers Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: /fDazylIOGeD This function does not check errno on Windows, so the old name was misleading. Actual command: sed -i -e 's/ff_neterrno/ff_neterror/g' $( git grep -l ff_neterrno ) --- libavformat/network.c | 24 ++++++++++++------------ libavformat/network.h | 4 ++-- libavformat/rtpproto.c | 8 ++++---- libavformat/sctp.c | 10 +++++----- libavformat/tcp.c | 8 ++++---- libavformat/udp.c | 32 ++++++++++++++++---------------- libavformat/unix.c | 6 +++--- libavformat/url.h | 2 +- 8 files changed, 47 insertions(+), 47 deletions(-) diff --git a/libavformat/network.c b/libavformat/network.c index f752efc411..5d0d05c5f1 100644 --- a/libavformat/network.c +++ b/libavformat/network.c @@ -72,7 +72,7 @@ int ff_network_wait_fd(int fd, int write) struct pollfd p = { .fd = fd, .events = ev, .revents = 0 }; int ret; ret = poll(&p, 1, POLLING_TIME); - return ret < 0 ? ff_neterrno() : p.revents & (ev | POLLERR | POLLHUP) ? 0 : AVERROR(EAGAIN); + return ret < 0 ? ff_neterror() : p.revents & (ev | POLLERR | POLLHUP) ? 0 : AVERROR(EAGAIN); } int ff_network_wait_fd_timeout(int fd, int write, int64_t timeout, AVIOInterruptCB *int_cb) @@ -121,7 +121,7 @@ void ff_network_close(void) } #if HAVE_WINSOCK2_H -int ff_neterrno(void) +int ff_neterror(void) { int err = WSAGetLastError(); switch (err) { @@ -168,7 +168,7 @@ static int ff_poll_interrupt(struct pollfd *p, nfds_t nfds, int timeout, ret = poll(p, nfds, POLLING_TIME); if (ret != 0) { if (ret < 0) - ret = ff_neterrno(); + ret = ff_neterror(); if (ret == AVERROR(EINTR)) continue; break; @@ -217,11 +217,11 @@ int ff_listen(int fd, const struct sockaddr *addr, } ret = bind(fd, addr, addrlen); if (ret) - return ff_neterrno(); + return ff_neterror(); ret = listen(fd, 1); if (ret) - return ff_neterrno(); + return ff_neterror(); return ret; } @@ -236,7 +236,7 @@ int ff_accept(int fd, int timeout, URLContext *h) ret = accept(fd, NULL, NULL); if (ret < 0) - return ff_neterrno(); + return ff_neterror(); if (ff_socket_nonblock(ret, 1) < 0) av_log(h, AV_LOG_DEBUG, "ff_socket_nonblock failed\n"); @@ -267,7 +267,7 @@ int ff_listen_connect(int fd, const struct sockaddr *addr, av_log(h, AV_LOG_DEBUG, "ff_socket_nonblock failed\n"); while ((ret = connect(fd, addr, addrlen))) { - ret = ff_neterrno(); + ret = ff_neterror(); switch (ret) { case AVERROR(EINTR): if (ff_check_interrupt(&h->interrupt_callback)) @@ -280,7 +280,7 @@ int ff_listen_connect(int fd, const struct sockaddr *addr, return ret; optlen = sizeof(ret); if (getsockopt (fd, SOL_SOCKET, SO_ERROR, &ret, &optlen)) - ret = AVUNERROR(ff_neterrno()); + ret = AVUNERROR(ff_neterror()); if (ret != 0) { char errbuf[100]; ret = AVERROR(ret); @@ -365,7 +365,7 @@ static int start_connect_attempt(struct ConnectionAttempt *attempt, attempt->fd = ff_socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol, h); if (attempt->fd < 0) - return ff_neterrno(); + return ff_neterror(); attempt->deadline_us = av_gettime_relative() + timeout_ms * 1000; attempt->addr = ai; @@ -381,7 +381,7 @@ static int start_connect_attempt(struct ConnectionAttempt *attempt, } while ((ret = connect(attempt->fd, ai->ai_addr, ai->ai_addrlen))) { - ret = ff_neterrno(); + ret = ff_neterror(); switch (ret) { case AVERROR(EINTR): if (ff_check_interrupt(&h->interrupt_callback)) { @@ -478,7 +478,7 @@ int ff_connect_parallel(struct addrinfo *addrs, int timeout_ms_per_address, // a successful connection or an error). optlen = sizeof(last_err); if (getsockopt(attempts[i].fd, SOL_SOCKET, SO_ERROR, &last_err, &optlen)) - last_err = ff_neterrno(); + last_err = ff_neterror(); else if (last_err != 0) last_err = AVERROR(last_err); if (last_err == 0) { @@ -587,6 +587,6 @@ int ff_http_match_no_proxy(const char *no_proxy, const char *hostname) void ff_log_net_error(void *ctx, int level, const char* prefix) { char errbuf[100]; - av_strerror(ff_neterrno(), errbuf, sizeof(errbuf)); + av_strerror(ff_neterror(), errbuf, sizeof(errbuf)); av_log(ctx, level, "%s: %s\n", prefix, errbuf); } diff --git a/libavformat/network.h b/libavformat/network.h index 728c20c9bb..f338694212 100644 --- a/libavformat/network.h +++ b/libavformat/network.h @@ -62,7 +62,7 @@ * @return platform-specific AVERROR value * @note Error is based on WSAGetLastError() (Windows) or `errno` (otherwise) */ -int ff_neterrno(void); +int ff_neterror(void); #else #include #include @@ -75,7 +75,7 @@ int ff_neterrno(void); * @return platform-specific AVERROR value * @note Error is based on WSAGetLastError() (Windows) or `errno` (otherwise) */ -#define ff_neterrno() AVERROR(errno) +#define ff_neterror() AVERROR(errno) #endif /* HAVE_WINSOCK2_H */ #if HAVE_ARPA_INET_H diff --git a/libavformat/rtpproto.c b/libavformat/rtpproto.c index b1cdf061f0..e8963307f3 100644 --- a/libavformat/rtpproto.c +++ b/libavformat/rtpproto.c @@ -410,8 +410,8 @@ static int rtp_read(URLContext *h, uint8_t *buf, int size) len = recvfrom(p[i].fd, buf, size, 0, (struct sockaddr *)addrs[i], addr_lens[i]); if (len < 0) { - if (ff_neterrno() == AVERROR(EAGAIN) || - ff_neterrno() == AVERROR(EINTR)) + if (ff_neterror() == AVERROR(EAGAIN) || + ff_neterror() == AVERROR(EINTR)) continue; return AVERROR(EIO); } @@ -422,7 +422,7 @@ static int rtp_read(URLContext *h, uint8_t *buf, int size) } else if (n == 0 && h->rw_timeout > 0 && --runs <= 0) { return AVERROR(ETIMEDOUT); } else if (n < 0) { - if (ff_neterrno() == AVERROR(EINTR)) + if (ff_neterror() == AVERROR(EINTR)) continue; return AVERROR(EIO); } @@ -492,7 +492,7 @@ static int rtp_write(URLContext *h, const uint8_t *buf, int size) ret = sendto(fd, buf, size, 0, (struct sockaddr *) source, *source_len); - return ret < 0 ? ff_neterrno() : ret; + return ret < 0 ? ff_neterror() : ret; } if (RTP_PT_IS_RTCP(buf[1])) { diff --git a/libavformat/sctp.c b/libavformat/sctp.c index 9d9e90097e..7170a716e7 100644 --- a/libavformat/sctp.c +++ b/libavformat/sctp.c @@ -222,7 +222,7 @@ static int sctp_open(URLContext *h, const char *uri, int flags) restart: fd = ff_socket(cur_ai->ai_family, SOCK_STREAM, IPPROTO_SCTP, h); if (fd < 0) { - ret = ff_neterrno(); + ret = ff_neterror(); goto fail; } @@ -261,7 +261,7 @@ restart: av_log(h, AV_LOG_ERROR, "SCTP ERROR: Unable to initialize socket max streams %d\n", s->max_streams); - ret = ff_neterrno(); + ret = ff_neterror(); goto fail1; } } @@ -296,7 +296,7 @@ static int sctp_wait_fd(int fd, int write) int ret; ret = poll(&p, 1, 100); - return ret < 0 ? ff_neterrno() : p.revents & ev ? 0 : AVERROR(EAGAIN); + return ret < 0 ? ff_neterror() : p.revents & ev ? 0 : AVERROR(EAGAIN); } static int sctp_read(URLContext *h, uint8_t *buf, int size) @@ -319,7 +319,7 @@ static int sctp_read(URLContext *h, uint8_t *buf, int size) } else ret = recv(s->fd, buf, size, 0); - return ret < 0 ? ff_neterrno() : ret; + return ret < 0 ? ff_neterror() : ret; } static int sctp_write(URLContext *h, const uint8_t *buf, int size) @@ -345,7 +345,7 @@ static int sctp_write(URLContext *h, const uint8_t *buf, int size) } else ret = send(s->fd, buf, size, MSG_NOSIGNAL); - return ret < 0 ? ff_neterrno() : ret; + return ret < 0 ? ff_neterror() : ret; } static int sctp_close(URLContext *h) diff --git a/libavformat/tcp.c b/libavformat/tcp.c index 755e3af242..2c12ee78ad 100644 --- a/libavformat/tcp.c +++ b/libavformat/tcp.c @@ -226,7 +226,7 @@ static int tcp_open(URLContext *h, const char *uri, int flags) cur_ai->ai_socktype, cur_ai->ai_protocol, h); if (fd < 0) { - ret = ff_neterrno(); + ret = ff_neterror(); cur_ai = cur_ai->ai_next; } } @@ -296,7 +296,7 @@ static int tcp_read(URLContext *h, uint8_t *buf, int size) ret = recv(s->fd, buf, size, 0); if (ret == 0) return AVERROR_EOF; - return ret < 0 ? ff_neterrno() : ret; + return ret < 0 ? ff_neterror() : ret; } static int tcp_write(URLContext *h, const uint8_t *buf, int size) @@ -310,7 +310,7 @@ static int tcp_write(URLContext *h, const uint8_t *buf, int size) return ret; } ret = send(s->fd, buf, size, MSG_NOSIGNAL); - return ret < 0 ? ff_neterrno() : ret; + return ret < 0 ? ff_neterror() : ret; } static int tcp_shutdown(URLContext *h, int flags) @@ -357,7 +357,7 @@ static int tcp_get_window_size(URLContext *h) #endif if (getsockopt(s->fd, SOL_SOCKET, SO_RCVBUF, &avail, &avail_len)) { - return ff_neterrno(); + return ff_neterror(); } return avail; } diff --git a/libavformat/udp.c b/libavformat/udp.c index c1ebdd1222..aca3ed9ceb 100644 --- a/libavformat/udp.c +++ b/libavformat/udp.c @@ -190,7 +190,7 @@ static int udp_set_multicast_ttl(int sockfd, int mcastTTL, ff_log_net_error(logctx, AV_LOG_DEBUG, "setsockopt(IPV4/IPV6 MULTICAST TTL)"); if (setsockopt(sockfd, protocol, cmd, &ttl, sizeof(ttl)) < 0) { ff_log_net_error(logctx, AV_LOG_ERROR, "setsockopt(IPV4/IPV6 MULTICAST TTL)"); - return ff_neterrno(); + return ff_neterror(); } } @@ -211,7 +211,7 @@ static int udp_join_multicast_group(int sockfd, struct sockaddr *addr, mreq.imr_interface.s_addr = INADDR_ANY; if (setsockopt(sockfd, IPPROTO_IP, IP_ADD_MEMBERSHIP, (const void *)&mreq, sizeof(mreq)) < 0) { ff_log_net_error(logctx, AV_LOG_ERROR, "setsockopt(IP_ADD_MEMBERSHIP)"); - return ff_neterrno(); + return ff_neterror(); } } #endif @@ -224,7 +224,7 @@ static int udp_join_multicast_group(int sockfd, struct sockaddr *addr, mreq6.ipv6mr_interface = 0; if (setsockopt(sockfd, IPPROTO_IPV6, IPV6_ADD_MEMBERSHIP, &mreq6, sizeof(mreq6)) < 0) { ff_log_net_error(logctx, AV_LOG_ERROR, "setsockopt(IPV6_ADD_MEMBERSHIP)"); - return ff_neterrno(); + return ff_neterror(); } } #endif @@ -294,7 +294,7 @@ static int udp_set_multicast_sources(URLContext *h, ff_log_net_error(h, AV_LOG_ERROR, "setsockopt(MCAST_JOIN_SOURCE_GROUP)"); else ff_log_net_error(h, AV_LOG_ERROR, "setsockopt(MCAST_BLOCK_SOURCE)"); - return ff_neterrno(); + return ff_neterror(); } } return 0; @@ -326,7 +326,7 @@ static int udp_set_multicast_sources(URLContext *h, ff_log_net_error(h, AV_LOG_ERROR, "setsockopt(IP_ADD_SOURCE_MEMBERSHIP)"); else ff_log_net_error(h, AV_LOG_ERROR, "setsockopt(IP_BLOCK_SOURCE)"); - return ff_neterrno(); + return ff_neterror(); } } #else @@ -508,8 +508,8 @@ static void *circular_buffer_task_rx( void *_URLContext) pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &old_cancelstate); pthread_mutex_lock(&s->mutex); if (len < 0) { - if (ff_neterrno() != AVERROR(EAGAIN) && ff_neterrno() != AVERROR(EINTR)) { - s->circular_buffer_error = ff_neterrno(); + if (ff_neterror() != AVERROR(EAGAIN) && ff_neterror() != AVERROR(EINTR)) { + s->circular_buffer_error = ff_neterror(); goto end; } continue; @@ -621,7 +621,7 @@ static void *circular_buffer_task_tx( void *_URLContext) len -= ret; p += ret; } else { - ret = ff_neterrno(); + ret = ff_neterror(); if (ret != AVERROR(EAGAIN) && ret != AVERROR(EINTR)) { pthread_mutex_lock(&s->mutex); s->circular_buffer_error = ret; @@ -797,7 +797,7 @@ static int udp_open(URLContext *h, const char *uri, int flags) if (s->reuse_socket > 0 || (s->is_multicast && s->reuse_socket < 0)) { s->reuse_socket = 1; if (setsockopt (udp_fd, SOL_SOCKET, SO_REUSEADDR, &(s->reuse_socket), sizeof(s->reuse_socket)) != 0) { - ret = ff_neterrno(); + ret = ff_neterror(); goto fail; } } @@ -805,7 +805,7 @@ static int udp_open(URLContext *h, const char *uri, int flags) if (s->is_broadcast) { #ifdef SO_BROADCAST if (setsockopt (udp_fd, SOL_SOCKET, SO_BROADCAST, &(s->is_broadcast), sizeof(s->is_broadcast)) != 0) { - ret = ff_neterrno(); + ret = ff_neterror(); goto fail; } #else @@ -829,7 +829,7 @@ static int udp_open(URLContext *h, const char *uri, int flags) if (dscp >= 0) { dscp <<= 2; if (setsockopt (udp_fd, IPPROTO_IP, IP_TOS, &dscp, sizeof(dscp)) != 0) { - ret = ff_neterrno(); + ret = ff_neterror(); goto fail; } } @@ -846,7 +846,7 @@ static int udp_open(URLContext *h, const char *uri, int flags) /* the bind is needed to give a port to the socket now */ if (bind_ret < 0 && bind(udp_fd,(struct sockaddr *)&my_addr, len) < 0) { ff_log_net_error(h, AV_LOG_ERROR, "bind failed"); - ret = ff_neterrno(); + ret = ff_neterror(); goto fail; } @@ -890,7 +890,7 @@ static int udp_open(URLContext *h, const char *uri, int flags) tmp = s->buffer_size; if (setsockopt(udp_fd, SOL_SOCKET, SO_SNDBUF, &tmp, sizeof(tmp)) < 0) { ff_log_net_error(h, AV_LOG_ERROR, "setsockopt(SO_SNDBUF)"); - ret = ff_neterrno(); + ret = ff_neterror(); goto fail; } } else { @@ -914,7 +914,7 @@ static int udp_open(URLContext *h, const char *uri, int flags) if (s->is_connected) { if (connect(udp_fd, (struct sockaddr *) &s->dest_addr, s->dest_addr_len)) { ff_log_net_error(h, AV_LOG_ERROR, "connect"); - ret = ff_neterrno(); + ret = ff_neterror(); goto fail; } } @@ -1045,7 +1045,7 @@ static int udp_read(URLContext *h, uint8_t *buf, int size) } ret = recvfrom(s->udp_fd, buf, size, 0, (struct sockaddr *)&addr, &addr_len); if (ret < 0) - return ff_neterrno(); + return ff_neterror(); if (ff_ip_check_source_lists(&addr, &s->filters)) return AVERROR(EINTR); return ret; @@ -1098,7 +1098,7 @@ static int udp_write(URLContext *h, const uint8_t *buf, int size) } else ret = send(s->udp_fd, buf, size, 0); - return ret < 0 ? ff_neterrno() : ret; + return ret < 0 ? ff_neterror() : ret; } static int udp_close(URLContext *h) diff --git a/libavformat/unix.c b/libavformat/unix.c index 5704155cf0..d1b4e6a5ca 100644 --- a/libavformat/unix.c +++ b/libavformat/unix.c @@ -70,7 +70,7 @@ static int unix_open(URLContext *h, const char *filename, int flags) av_strlcpy(s->addr.sun_path, filename, sizeof(s->addr.sun_path)); if ((fd = ff_socket(AF_UNIX, s->type, 0, h)) < 0) - return ff_neterrno(); + return ff_neterror(); if (s->timeout < 0 && h->rw_timeout) s->timeout = h->rw_timeout / 1000; @@ -113,7 +113,7 @@ static int unix_read(URLContext *h, uint8_t *buf, int size) ret = recv(s->fd, buf, size, 0); if (!ret && s->type == SOCK_STREAM) return AVERROR_EOF; - return ret < 0 ? ff_neterrno() : ret; + return ret < 0 ? ff_neterror() : ret; } static int unix_write(URLContext *h, const uint8_t *buf, int size) @@ -127,7 +127,7 @@ static int unix_write(URLContext *h, const uint8_t *buf, int size) return ret; } ret = send(s->fd, buf, size, MSG_NOSIGNAL); - return ret < 0 ? ff_neterrno() : ret; + return ret < 0 ? ff_neterror() : ret; } static int unix_close(URLContext *h) diff --git a/libavformat/url.h b/libavformat/url.h index 0784d77b64..a6b48d06d9 100644 --- a/libavformat/url.h +++ b/libavformat/url.h @@ -150,7 +150,7 @@ int ffurl_open_whitelist(URLContext **puc, const char *filename, int flags, * * @param s server context * @param c client context, must be unallocated. - * @return >= 0 on success, ff_neterrno() on failure. + * @return >= 0 on success, ff_neterror() on failure. */ int ffurl_accept(URLContext *s, URLContext **c); From patchwork Thu May 16 11:59:08 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Sayers X-Patchwork-Id: 48922 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:3a48:b0:1af:fc2d:ff5a with SMTP id zu8csp2180445pzb; Thu, 16 May 2024 05:00:53 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCW2Umq5Hej+JrztNRGDIrS4vRRm7NeVAb0zjOj0fwuRyyYVheKhNXL9mpfgTctLjrUEv1zLF78igB9WjZP8xOo5ZVpyRLtnFNfvOA== X-Google-Smtp-Source: AGHT+IH+pETxfKKIIGg5211XRCuo0CLRMMAeUVih7wkg9UmjY/suystn0MKfWSU/m3BpdWDzGGUp X-Received: by 2002:a17:907:a4e:b0:a59:da00:5acf with SMTP id a640c23a62f3a-a5a2d53f590mr1548766066b.2.1715860853148; Thu, 16 May 2024 05:00:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1715860853; cv=none; d=google.com; s=arc-20160816; b=EU/Kq16AnCjWyg++pKPqefnloldbORBCzCYggVDOfgPWDoPD7IWGm/9ULaKSYZSUuT Ly5WDCYN5vBNGEyhxiZolrSRVXB4ZNeo7NigZViGJ7CLG9AMieFvhd022FkOcbJOVnKH Q5TuH3jaR0WOhRx/iR2jtTYhmCydPeQB3xtHbCICBfS83+6FTaACaYywQ1CqhRJ21bOO vHL/sfvhHLZ++QUQbZUKeUvoFSqtr+35603zoSSI4TCzOtzh0TuSWbZzzOM3622QDg4i hYZoj6Kau9fNCMLQpFKWsN+IQW+93inUwh56sTTtD2ArwTxGkiGEQ16lpSWUeLw1dvOf vkGA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:delivered-to; bh=d7n3UghsafvtZtthc4QgQJCjFU4xFO3pK1sLfaeNJu4=; fh=73ExZnkQ8FYbu/qeQNmI0dtHCfShNh8/NmZJs1umltM=; b=gN4GcGqIEzgFzvfhaZl6mbz9tC4INEfBbim36WlW4DW+w/eeDwAwJeXDR/Npq6mG1R QCEkBHE86iIUn6lhd4rdbnyf5Y24sHIl1R2zvmrlSsxflNCu819xGb4TYlhB5n+flHuw GG6wx0//JgKeRi+b8tJR7KYxJs0+mTueN1HuF9Sgipx1rnYVzBosBYiiR+60tohKqsGd Ow1YTz7cffdUM5d5EIZK0tPGJuVav2M0ahJW9/yGDrn39ISrlSkQXpCpPGFarMkrzqNN 3T/s4e/o8nRJaUDpWubUWjVHTV1xaYo4XhgrmUq0O4pbBZPS6G8zjIiIQ7AALem4lKQ+ gwcg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a640c23a62f3a-a5a17be8be0si865670966b.858.2024.05.16.05.00.52; Thu, 16 May 2024 05:00:53 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1092C68D53A; Thu, 16 May 2024 15:00:15 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from b-painless.mh.aa.net.uk (b-painless.mh.aa.net.uk [81.187.30.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A058868D39C for ; Thu, 16 May 2024 15:00:05 +0300 (EEST) Received: from 0.b.4.b.7.4.0.8.c.4.a.5.d.8.b.2.0.5.8.0.9.1.8.0.0.b.8.0.1.0.0.2.ip6.arpa ([2001:8b0:819:850:2b8d:5a4c:8047:b4b0] helo=andrews-2024-laptop.lan) by painless-b.tch.aa.net.uk with esmtp (Exim 4.96) (envelope-from ) id 1s7ZmG-002ewq-2h; Thu, 16 May 2024 13:00:05 +0100 From: Andrew Sayers To: ffmpeg-devel@ffmpeg.org Date: Thu, 16 May 2024 12:59:08 +0100 Message-ID: <20240516115959.3786610-4-ffmpeg-devel@pileofstuff.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240516115959.3786610-1-ffmpeg-devel@pileofstuff.org> References: <91C9E49E-1EE3-4B37-AEF7-1A0D78481633@remlab.net> <20240516115959.3786610-1-ffmpeg-devel@pileofstuff.org> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v5 3/6] avformat/network: add ff_neterror2() for cases that don't use WSAGetLastError X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andrew Sayers Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: aopMjlS3s9NQ For example, WSAStartup()'s documentation says: "A call to the WSAGetLastError function is not needed and should not be used" --- libavformat/network.c | 5 ++++- libavformat/network.h | 6 ++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/libavformat/network.c b/libavformat/network.c index 5d0d05c5f1..351dc34bb6 100644 --- a/libavformat/network.c +++ b/libavformat/network.c @@ -123,7 +123,10 @@ void ff_network_close(void) #if HAVE_WINSOCK2_H int ff_neterror(void) { - int err = WSAGetLastError(); + return ff_neterror2(WSAGetLastError()); +} +int ff_neterror2(int err) +{ switch (err) { case WSAEWOULDBLOCK: return AVERROR(EAGAIN); diff --git a/libavformat/network.h b/libavformat/network.h index f338694212..1ac067f09f 100644 --- a/libavformat/network.h +++ b/libavformat/network.h @@ -63,6 +63,12 @@ * @note Error is based on WSAGetLastError() (Windows) or `errno` (otherwise) */ int ff_neterror(void); +/* + * @brief ff_neterror()-style AVERROR + * @param err error code (usually an errno or Windows Sockets Error Code) + * @note Windows Sockets Error Codes are only supported in Windows + */ +int ff_neterror2(int err); #else #include #include From patchwork Thu May 16 11:59:09 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Sayers X-Patchwork-Id: 48923 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:3a48:b0:1af:fc2d:ff5a with SMTP id zu8csp2180596pzb; Thu, 16 May 2024 05:01:04 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCU9KUbVu0np+rB9AuyDUDptaqD72loIIZU4fPe1bNGntgD9Npa65vrGbXKTnBo2cw+JmrRLBgtmQ5VIqgMDJOhjEJGWczzW7zKv6w== X-Google-Smtp-Source: AGHT+IG42hrNIsxc2uJ7VbHgCtlWlArn91KCG7aPd1qnYpcUc3hAhYkRLEHiOd3ryyoNeJ6AlO5k X-Received: by 2002:ac2:48b3:0:b0:51f:6d6d:57b with SMTP id 2adb3069b0e04-522105844d8mr11909639e87.6.1715860864211; Thu, 16 May 2024 05:01:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1715860864; cv=none; d=google.com; s=arc-20160816; b=Jk/rzVaU7XwpIGsJw+cxqNJa7VTkHPmsbUMD1LHPPhUONGn8OeuAMUuIhj0w5j3Lyk gy+3J0PYf59/cVyday64iAHx+fiaFrz7LCjuj+w7jDAxnjCmctI3bESg7kPeNLwzUKu2 O5XS6bVKt8uM899iUBGlIY7x6wyy00oMfSPPw15LdgGggCRGdNwSS8QkhGi6Y4BBnsxc B7KSoqZ9onuiKJBnsO8EZrHbcEYENRqq1zoHNMB8nMbvkxbytLyUMkw0AEc5cgeubA57 Biey8sr4x5hnkmCQ/Oc2fkEVgwSVUeNo3Oh5MTeBVdKTbtykqj+HKNd9r2pBg6NJa2OJ Ph1A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:delivered-to; bh=7lx2y8Zrn9n6hf5W2uaDP29bzzr8tyjsUcZB+Qis2yo=; fh=73ExZnkQ8FYbu/qeQNmI0dtHCfShNh8/NmZJs1umltM=; b=UqPcHwxaUd47eN5bz3LfkLafrlumrrI0pVifgMwWganjmXBS+2hCyKCrHlmTQ0huGC LXbV+GZpsQZ6H7yGXgOqCmW4kd3QJvUkGnYSxSr6nrlrJkeaCHIOazrGjsgN8Vg6AblQ K4Ul66x5L7MhijvHzaeOF7ipigUapY/9X43TQvdgFcz+sXcVy+cQuIQ3Ufs5bq5m9+Cu H8hIZ7gyfhICVhCaycan8/GU7Cpf0DEdL7RFCvw1rx3ZNthjDejdGrRcSaACMkX9Tqbr AyJOcCMIIwaNQmKoNoN4ulilPVM2nxq6Za0rXt9XM3jf6zcQmwh2i2ydSWYqUgRPFKWa v5iA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 4fb4d7f45d1cf-575096e1168si789109a12.395.2024.05.16.05.01.03; Thu, 16 May 2024 05:01:04 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 780C368D566; Thu, 16 May 2024 15:00:16 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from b-painless.mh.aa.net.uk (b-painless.mh.aa.net.uk [81.187.30.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E312668D39C for ; Thu, 16 May 2024 15:00:05 +0300 (EEST) Received: from 0.b.4.b.7.4.0.8.c.4.a.5.d.8.b.2.0.5.8.0.9.1.8.0.0.b.8.0.1.0.0.2.ip6.arpa ([2001:8b0:819:850:2b8d:5a4c:8047:b4b0] helo=andrews-2024-laptop.lan) by painless-b.tch.aa.net.uk with esmtp (Exim 4.96) (envelope-from ) id 1s7ZmH-002ewq-0L; Thu, 16 May 2024 13:00:05 +0100 From: Andrew Sayers To: ffmpeg-devel@ffmpeg.org Date: Thu, 16 May 2024 12:59:09 +0100 Message-ID: <20240516115959.3786610-5-ffmpeg-devel@pileofstuff.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240516115959.3786610-1-ffmpeg-devel@pileofstuff.org> References: <91C9E49E-1EE3-4B37-AEF7-1A0D78481633@remlab.net> <20240516115959.3786610-1-ffmpeg-devel@pileofstuff.org> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v5 4/6] avformat/network: add ff_neterror2() for compatibility with Windows X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andrew Sayers Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: Grq8kblZq/om This is not currently used anywhere, but included to avoid potential future surprises. --- libavformat/network.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libavformat/network.h b/libavformat/network.h index 1ac067f09f..7c8f81a050 100644 --- a/libavformat/network.h +++ b/libavformat/network.h @@ -82,6 +82,12 @@ int ff_neterror2(int err); * @note Error is based on WSAGetLastError() (Windows) or `errno` (otherwise) */ #define ff_neterror() AVERROR(errno) +/* + * @brief ff_neterror()-style AVERROR + * @param err error code (usually an errno or Windows Sockets Error Code) + * @note Windows Sockets Error Codes are only supported in Windows + */ +#define ff_neterror2(ERRNO) AVERROR(ERRNO) #endif /* HAVE_WINSOCK2_H */ #if HAVE_ARPA_INET_H From patchwork Thu May 16 11:59:10 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Sayers X-Patchwork-Id: 48924 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:3a48:b0:1af:fc2d:ff5a with SMTP id zu8csp2180775pzb; Thu, 16 May 2024 05:01:17 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVLdogMlzevNOHfqgO6j0EGUNzr9XdGHx9Ydyo3Fvxe/lCqkyB+DN5PCfXC3GX4w2Gsh9RwY9Tl0KFl5yndofQn14+G4DqHw8k6Ag== X-Google-Smtp-Source: AGHT+IEdCwpNzIPadDP9NSpZZQijcCNa+ncLEYkyVPScbQr96m5UYTLAkACKCgVlf7K4UT5qYZx1 X-Received: by 2002:a50:8a9e:0:b0:575:96e:e517 with SMTP id 4fb4d7f45d1cf-575096ee612mr1651500a12.15.1715860877152; Thu, 16 May 2024 05:01:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1715860877; cv=none; d=google.com; s=arc-20160816; b=araw9wG30VddpM0x/WeQYXNZgsXdCbIHEVvdWZsIDXazTRCkDqxur/xesD9xX9dYeG OUbn959PIBAfp7pgLdvXohKryabI6iddy5YZEkYon8uD3/md7lprW2++q6BdPRJ0Bhii HpgNOSmrrGnw12ioICuWzyQgCU7FSJob77OxaSKUd2tDhsx127vsgBZG9D1oBWya9NAw voWBvnEnMO3TmBM17hq1Zo1wdR4pH0ZAs7+2Lwtyz/ffn+6Zbn9W4SEnO+xmsb8g+T6t X5WPKsxoLlhQAh1oDU06w923n4GjRNAUYSTS9SKmrTFvajSxU8PMqeYtKz5F55rFqwqT dISw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:delivered-to; bh=AaZblIxdd1FT5XSjR+WMRjK3tiYtN0+ZhNoleAFDOiQ=; fh=73ExZnkQ8FYbu/qeQNmI0dtHCfShNh8/NmZJs1umltM=; b=Fqo/quxQhQfLUC6rmj1Fgg2iedL109QM4yQ3hHNLUoAXU9Krpe7w+WL5yzaFFM+j6I 6hbtxWR2tTZGXCR+O753Cn7+Jp/rbND/9AxLhK1ab3SNac+r+ykaOXbBSPbsCglirVQB N6MY5+5IYdubCRkJ9cJ8hEk5VkWgIoJ9jpDnAOxcrLw2g7tOtnFtxopnfWpMoMO9CcS7 QbWiZlrKqA+VHVU3r8c7GxLeCZZR1MCaF5/ck1K+wgT6i+u2Z4xnegMYRZHDoyK6jmPu ww+6PpBCfgk0yduGb5TslenX2G0SOZ7EaCA+Yr+z/LeTYLdiKAl+aoMDj40BDTcJEF3o 21Qw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 4fb4d7f45d1cf-574eced1a7dsi2261601a12.549.2024.05.16.05.01.15; Thu, 16 May 2024 05:01:17 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F30A668D57C; Thu, 16 May 2024 15:00:17 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from b-painless.mh.aa.net.uk (b-painless.mh.aa.net.uk [81.187.30.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 27C2A68D319 for ; Thu, 16 May 2024 15:00:06 +0300 (EEST) Received: from 0.b.4.b.7.4.0.8.c.4.a.5.d.8.b.2.0.5.8.0.9.1.8.0.0.b.8.0.1.0.0.2.ip6.arpa ([2001:8b0:819:850:2b8d:5a4c:8047:b4b0] helo=andrews-2024-laptop.lan) by painless-b.tch.aa.net.uk with esmtp (Exim 4.96) (envelope-from ) id 1s7ZmH-002ewq-1B; Thu, 16 May 2024 13:00:05 +0100 From: Andrew Sayers To: ffmpeg-devel@ffmpeg.org Date: Thu, 16 May 2024 12:59:10 +0100 Message-ID: <20240516115959.3786610-6-ffmpeg-devel@pileofstuff.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240516115959.3786610-1-ffmpeg-devel@pileofstuff.org> References: <91C9E49E-1EE3-4B37-AEF7-1A0D78481633@remlab.net> <20240516115959.3786610-1-ffmpeg-devel@pileofstuff.org> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v5 5/6] avformat/network: Return 0/AVERROR from ff_network_init() X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andrew Sayers Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: MYjTGQEwIhL4 --- libavformat/avio.c | 7 +++++-- libavformat/network.c | 7 +++---- libavformat/rtsp.c | 14 ++++++++------ libavformat/rtspdec.c | 5 +++-- libavformat/sapdec.c | 5 +++-- libavformat/sapenc.c | 5 +++-- 6 files changed, 25 insertions(+), 18 deletions(-) diff --git a/libavformat/avio.c b/libavformat/avio.c index d109f3adff..8c94bfeb14 100644 --- a/libavformat/avio.c +++ b/libavformat/avio.c @@ -123,8 +123,11 @@ static int url_alloc_for_protocol(URLContext **puc, const URLProtocol *up, int err; #if CONFIG_NETWORK - if (up->flags & URL_PROTOCOL_FLAG_NETWORK && !ff_network_init()) - return AVERROR(EIO); + if (up->flags & URL_PROTOCOL_FLAG_NETWORK) { + err = ff_network_init(); + if (err<0) + return err; + } #endif if ((flags & AVIO_FLAG_READ) && !up->url_read) { av_log(NULL, AV_LOG_ERROR, diff --git a/libavformat/network.c b/libavformat/network.c index 351dc34bb6..643294efe4 100644 --- a/libavformat/network.c +++ b/libavformat/network.c @@ -59,11 +59,10 @@ int ff_network_init(void) { #if HAVE_WINSOCK2_H WSADATA wsaData; - - if (WSAStartup(MAKEWORD(1,1), &wsaData)) - return 0; + return ff_neterror2(WSAStartup(MAKEWORD(1,1), &wsaData)); +#else + return 0; #endif - return 1; } int ff_network_wait_fd(int fd, int write) diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c index b0c61ee00a..d50d0b7fc0 100644 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@ -1740,8 +1740,9 @@ int ff_rtsp_connect(AVFormatContext *s) return AVERROR(EINVAL); } - if (!ff_network_init()) - return AVERROR(EIO); + err = ff_network_init(); + if (err<0) + return err; if (s->max_delay < 0) /* Not set by the caller */ s->max_delay = s->iformat ? DEFAULT_REORDERING_DELAY : 0; @@ -2395,8 +2396,9 @@ static int sdp_read_header(AVFormatContext *s) char url[MAX_URL_SIZE]; AVBPrint bp; - if (!ff_network_init()) - return AVERROR(EIO); + err = ff_network_init(); + if (err<0) + return err; if (s->max_delay < 0) /* Not set by the caller */ s->max_delay = DEFAULT_REORDERING_DELAY; @@ -2522,8 +2524,8 @@ static int rtp_read_header(AVFormatContext *s) AVBPrint sdp; AVDictionary *opts = NULL; - if (!ff_network_init()) - return AVERROR(EIO); + if ((ret = ff_network_init())<0) + return ret; opts = map_to_opts(rt); ret = ffurl_open_whitelist(&in, s->url, AVIO_FLAG_READ, diff --git a/libavformat/rtspdec.c b/libavformat/rtspdec.c index 10078ce2fa..1b4b478170 100644 --- a/libavformat/rtspdec.c +++ b/libavformat/rtspdec.c @@ -663,8 +663,9 @@ static int rtsp_listen(AVFormatContext *s) int ret; enum RTSPMethod methodcode; - if (!ff_network_init()) - return AVERROR(EIO); + ret = ff_network_init(); + if (ret<0) + return ret; /* extract hostname and port */ av_url_split(proto, sizeof(proto), auth, sizeof(auth), host, sizeof(host), diff --git a/libavformat/sapdec.c b/libavformat/sapdec.c index 357c0dd514..393e544556 100644 --- a/libavformat/sapdec.c +++ b/libavformat/sapdec.c @@ -70,8 +70,9 @@ static int sap_read_header(AVFormatContext *s) int port; int ret, i; - if (!ff_network_init()) - return AVERROR(EIO); + ret = ff_network_init(); + if (ret<0) + return ret; av_url_split(NULL, 0, NULL, 0, host, sizeof(host), &port, path, sizeof(path), s->url); diff --git a/libavformat/sapenc.c b/libavformat/sapenc.c index 87a834a8d8..5760e3a0c2 100644 --- a/libavformat/sapenc.c +++ b/libavformat/sapenc.c @@ -80,8 +80,9 @@ static int sap_write_header(AVFormatContext *s) int udp_fd; AVDictionaryEntry* title = av_dict_get(s->metadata, "title", NULL, 0); - if (!ff_network_init()) - return AVERROR(EIO); + ret = ff_network_init(); + if (ret<0) + return ret; /* extract hostname and port */ av_url_split(NULL, 0, NULL, 0, host, sizeof(host), &base_port, From patchwork Thu May 16 11:59:11 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Sayers X-Patchwork-Id: 48925 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:3a48:b0:1af:fc2d:ff5a with SMTP id zu8csp2180905pzb; Thu, 16 May 2024 05:01:28 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWyafPguXLLCZhkMabNmyNDvbd+Z0IHnG9nnQif+D4v+WmsXLBGTkfG8yIV+XjqHD8JUacGCbQKivfuLbCMWR5ioojnmp7DRpxBMA== X-Google-Smtp-Source: AGHT+IFijTtP6HHn49D5DAV/eyuaHu8+TbimC3a0Le3VFZTFBjVzEmxfF/VfKKWNmyqZyVopsJCH X-Received: by 2002:a50:9353:0:b0:56c:5990:813e with SMTP id 4fb4d7f45d1cf-5734d5bfbd8mr12158862a12.13.1715860887463; Thu, 16 May 2024 05:01:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1715860887; cv=none; d=google.com; s=arc-20160816; b=KLupZz6bEEZrR57Y5GtIfPKa51BjGfNhDLv3iCrPGbHWqxpbtDh7N9LTiVcAqrqLpw JkUXiaGGQA8GD/kyll9hDkzCD0dgZWWeUZwnu2qHllOMQJm/ClYFmN+BuAWr/fmuzbyK TlKBjV7ezEn9cZmkae1o94bEX7pM0Hq8eSyS/XuRC3lhGcT7Ucsxx3O/X4qz839uZcjT wmpOd7/kd8wdk3neuq83PDvxy3+sOwBLM6H7PibvofR5IDhZGBN1WH0uCZuaiEfT3C+z jQt2rYmnzcr2PhTXGKkO2Yfm1nygxwk/hyI/m4vcikde5EWV7gvLSNdXTa8pUELqLFUe YzVQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:delivered-to; bh=qITpzMlyulSxfW28gOqD8EaAWmZ17M8LWriM3gyOPik=; fh=73ExZnkQ8FYbu/qeQNmI0dtHCfShNh8/NmZJs1umltM=; b=Kl+ibOEpZ2dEuKSDnDxGyY96343ig+QlL/ZhFe0v2+UvWFO2t0Sj8GUL8RIOZbINxb nSLlsKF5HE1fb4mqFsurekemVt482/9ZWXw3TxcdWgfYUITrQ0f3wbN50TLdLmmn0Fm1 ngMFt3CGUHRY0QQH/Fb9jhTkERGjMiphqH1cnTdpQikPQFlia9wftEInJh+aps+PXlYE mfiUNRCS6pcB9yelV48BujTj33dRBlm6LJ8t70xa0FvxWQgDHem5Jh1J2EGq9RNKb6Tr EqjOVJOBSU01ZGukSoku84DkX3wxbtDRqSbKcNaM2oQoBGDaFliYIpJ4P3I4XXZeA+De iF6g==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 4fb4d7f45d1cf-5733c378049si8292959a12.627.2024.05.16.05.01.26; Thu, 16 May 2024 05:01:27 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4ACD168D586; Thu, 16 May 2024 15:00:24 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from b-painless.mh.aa.net.uk (b-painless.mh.aa.net.uk [81.187.30.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6863868D4A3 for ; Thu, 16 May 2024 15:00:06 +0300 (EEST) Received: from 0.b.4.b.7.4.0.8.c.4.a.5.d.8.b.2.0.5.8.0.9.1.8.0.0.b.8.0.1.0.0.2.ip6.arpa ([2001:8b0:819:850:2b8d:5a4c:8047:b4b0] helo=andrews-2024-laptop.lan) by painless-b.tch.aa.net.uk with esmtp (Exim 4.96) (envelope-from ) id 1s7ZmH-002ewq-20; Thu, 16 May 2024 13:00:05 +0100 From: Andrew Sayers To: ffmpeg-devel@ffmpeg.org Date: Thu, 16 May 2024 12:59:11 +0100 Message-ID: <20240516115959.3786610-7-ffmpeg-devel@pileofstuff.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240516115959.3786610-1-ffmpeg-devel@pileofstuff.org> References: <91C9E49E-1EE3-4B37-AEF7-1A0D78481633@remlab.net> <20240516115959.3786610-1-ffmpeg-devel@pileofstuff.org> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v5 6/6] avformat/avformat: Document return codes for av_format_(de)init X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andrew Sayers Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 5AUoPQ2aaNH6 --- libavformat/avformat.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libavformat/avformat.h b/libavformat/avformat.h index 8afdcd9fd0..f624fb1e2e 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -1944,12 +1944,16 @@ const char *avformat_license(void); * This function will be deprecated once support for older GnuTLS and * OpenSSL libraries is removed, and this function has no purpose * anymore. + * + * @return 0 for success or AVERROR code */ int avformat_network_init(void); /** * Undo the initialization done by avformat_network_init. Call it only * once for each time you called avformat_network_init. + * + * @return 0 for success or AVERROR code */ int avformat_network_deinit(void);