diff mbox series

[FFmpeg-devel,v4,2/3] avformat/network: Return 0/AVERROR from ff_network_init()

Message ID 20240420132501.273495-2-ffmpeg-devel@pileofstuff.org
State New
Headers show
Series [FFmpeg-devel,v4,1/3] avformat/network: add ff_neterrno2() for cases where we already have an errno | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Andrew Sayers April 20, 2024, 1:25 p.m. UTC
---
 libavformat/avio.c    |  4 ++--
 libavformat/network.c |  7 +++----
 libavformat/rtsp.c    | 12 ++++++------
 libavformat/rtspdec.c |  4 ++--
 libavformat/sapdec.c  |  4 ++--
 libavformat/sapenc.c  |  4 ++--
 6 files changed, 17 insertions(+), 18 deletions(-)

Comments

Marton Balint May 5, 2024, 8:05 p.m. UTC | #1
On Sat, 20 Apr 2024, Andrew Sayers wrote:

> ---
> libavformat/avio.c    |  4 ++--
> libavformat/network.c |  7 +++----
> libavformat/rtsp.c    | 12 ++++++------
> libavformat/rtspdec.c |  4 ++--
> libavformat/sapdec.c  |  4 ++--
> libavformat/sapenc.c  |  4 ++--
> 6 files changed, 17 insertions(+), 18 deletions(-)
>
> diff --git a/libavformat/avio.c b/libavformat/avio.c
> index d109f3adff..f82edec779 100644
> --- a/libavformat/avio.c
> +++ b/libavformat/avio.c
> @@ -123,8 +123,8 @@ 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())<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 f295957aa5..c1b0e69362 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_neterrno2(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..3db4ed11c2 100644
> --- a/libavformat/rtsp.c
> +++ b/libavformat/rtsp.c
> @@ -1740,8 +1740,8 @@ int ff_rtsp_connect(AVFormatContext *s)
>         return AVERROR(EINVAL);
>     }
>
> -    if (!ff_network_init())
> -        return AVERROR(EIO);
> +    if ((err = ff_network_init())<0)
> +        return err;

Assignments in if conditions should be avoided. So this should be expanded 
to:

err = ff_network_init();
if (err < 0)
    return err;

Same for the rest of the checks later.

Thanks,
Marton


>
>     if (s->max_delay < 0) /* Not set by the caller */
>         s->max_delay = s->iformat ? DEFAULT_REORDERING_DELAY : 0;
> @@ -2395,8 +2395,8 @@ static int sdp_read_header(AVFormatContext *s)
>     char url[MAX_URL_SIZE];
>     AVBPrint bp;
>
> -    if (!ff_network_init())
> -        return AVERROR(EIO);
> +    if ((err = ff_network_init())<0)
> +        return err;
>
>     if (s->max_delay < 0) /* Not set by the caller */
>         s->max_delay = DEFAULT_REORDERING_DELAY;
> @@ -2522,8 +2522,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..3b0829694e 100644
> --- a/libavformat/rtspdec.c
> +++ b/libavformat/rtspdec.c
> @@ -663,8 +663,8 @@ static int rtsp_listen(AVFormatContext *s)
>     int ret;
>     enum RTSPMethod methodcode;
>
> -    if (!ff_network_init())
> -        return AVERROR(EIO);
> +    if ((ret = ff_network_init())<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..719c26c6b8 100644
> --- a/libavformat/sapdec.c
> +++ b/libavformat/sapdec.c
> @@ -70,8 +70,8 @@ static int sap_read_header(AVFormatContext *s)
>     int port;
>     int ret, i;
>
> -    if (!ff_network_init())
> -        return AVERROR(EIO);
> +    if ((ret = ff_network_init())<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..3305122524 100644
> --- a/libavformat/sapenc.c
> +++ b/libavformat/sapenc.c
> @@ -80,8 +80,8 @@ 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);
> +    if ((ret = ff_network_init())<0)
> +        return ret;
>
>     /* extract hostname and port */
>     av_url_split(NULL, 0, NULL, 0, host, sizeof(host), &base_port,
> -- 
> 2.43.0
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
>
Andrew Sayers May 7, 2024, 1:12 p.m. UTC | #2
On Sun, May 05, 2024 at 10:05:36PM +0200, Marton Balint wrote:
> 
> 
> On Sat, 20 Apr 2024, Andrew Sayers wrote:
> 
> > ---
> > libavformat/avio.c    |  4 ++--
> > libavformat/network.c |  7 +++----
> > libavformat/rtsp.c    | 12 ++++++------
> > libavformat/rtspdec.c |  4 ++--
> > libavformat/sapdec.c  |  4 ++--
> > libavformat/sapenc.c  |  4 ++--
> > 6 files changed, 17 insertions(+), 18 deletions(-)
> > 
> > diff --git a/libavformat/avio.c b/libavformat/avio.c
> > index d109f3adff..f82edec779 100644
> > --- a/libavformat/avio.c
> > +++ b/libavformat/avio.c
> > @@ -123,8 +123,8 @@ 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())<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 f295957aa5..c1b0e69362 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_neterrno2(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..3db4ed11c2 100644
> > --- a/libavformat/rtsp.c
> > +++ b/libavformat/rtsp.c
> > @@ -1740,8 +1740,8 @@ int ff_rtsp_connect(AVFormatContext *s)
> >         return AVERROR(EINVAL);
> >     }
> > 
> > -    if (!ff_network_init())
> > -        return AVERROR(EIO);
> > +    if ((err = ff_network_init())<0)
> > +        return err;
> 
> Assignments in if conditions should be avoided. So this should be expanded
> to:
> 
> err = ff_network_init();
> if (err < 0)
>    return err;
> 
> Same for the rest of the checks later.
> 
> Thanks,
> Marton

Assignments in if conditions seem to be the standard in that file, so I figured
it was better to have one ugly standard than two competing ones.  But I agree
they're not good, so I'll propose a new patch in a few days if nobody objects.
diff mbox series

Patch

diff --git a/libavformat/avio.c b/libavformat/avio.c
index d109f3adff..f82edec779 100644
--- a/libavformat/avio.c
+++ b/libavformat/avio.c
@@ -123,8 +123,8 @@  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())<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 f295957aa5..c1b0e69362 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_neterrno2(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..3db4ed11c2 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -1740,8 +1740,8 @@  int ff_rtsp_connect(AVFormatContext *s)
         return AVERROR(EINVAL);
     }
 
-    if (!ff_network_init())
-        return AVERROR(EIO);
+    if ((err = ff_network_init())<0)
+        return err;
 
     if (s->max_delay < 0) /* Not set by the caller */
         s->max_delay = s->iformat ? DEFAULT_REORDERING_DELAY : 0;
@@ -2395,8 +2395,8 @@  static int sdp_read_header(AVFormatContext *s)
     char url[MAX_URL_SIZE];
     AVBPrint bp;
 
-    if (!ff_network_init())
-        return AVERROR(EIO);
+    if ((err = ff_network_init())<0)
+        return err;
 
     if (s->max_delay < 0) /* Not set by the caller */
         s->max_delay = DEFAULT_REORDERING_DELAY;
@@ -2522,8 +2522,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..3b0829694e 100644
--- a/libavformat/rtspdec.c
+++ b/libavformat/rtspdec.c
@@ -663,8 +663,8 @@  static int rtsp_listen(AVFormatContext *s)
     int ret;
     enum RTSPMethod methodcode;
 
-    if (!ff_network_init())
-        return AVERROR(EIO);
+    if ((ret = ff_network_init())<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..719c26c6b8 100644
--- a/libavformat/sapdec.c
+++ b/libavformat/sapdec.c
@@ -70,8 +70,8 @@  static int sap_read_header(AVFormatContext *s)
     int port;
     int ret, i;
 
-    if (!ff_network_init())
-        return AVERROR(EIO);
+    if ((ret = ff_network_init())<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..3305122524 100644
--- a/libavformat/sapenc.c
+++ b/libavformat/sapenc.c
@@ -80,8 +80,8 @@  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);
+    if ((ret = ff_network_init())<0)
+        return ret;
 
     /* extract hostname and port */
     av_url_split(NULL, 0, NULL, 0, host, sizeof(host), &base_port,