[libav-devel] [PATCH 2/3] network: Use ff_neterrno instead of AVERROR(errno) for poll errors
From: Simon Thelen This makes sure to pick up the actual error codes on windows. --- libavformat/network.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/network.c b/libavformat/network.c index 86d79553f7..1e02668ecf 100644 --- a/libavformat/network.c +++ b/libavformat/network.c @@ -138,7 +138,7 @@ static int ff_poll_interrupt(struct pollfd *p, nfds_t nfds, int timeout, if (!ret) return AVERROR(ETIMEDOUT); if (ret < 0) -return AVERROR(errno); +return ff_neterrno(); return ret; } -- 2.15.2 (Apple Git-101.1) ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
[libav-devel] [PATCH 1/3] http: pass return code from http_open_cnx_internal() on its failure
From: Andrey Utkin Previously, AVERROR(EIO) was returned on failure of http_open_cnx_internal(). Now the value is passed to upper level, thus it is possible to distinguish ECONNREFUSED, ETIMEDOUT, ENETUNREACH etc. --- libavformat/http.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libavformat/http.c b/libavformat/http.c index 80c87f786a..dfb95642c0 100644 --- a/libavformat/http.c +++ b/libavformat/http.c @@ -248,6 +248,8 @@ fail: if (s->hd) ffurl_close(s->hd); s->hd = NULL; +if (location_changed < 0) +return location_changed; return AVERROR(EIO); } -- 2.15.2 (Apple Git-101.1) ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
[libav-devel] [PATCH 3/3] network: Check for EINTR in ff_poll_interrupt
--- libavformat/network.c | 9 ++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/libavformat/network.c b/libavformat/network.c index 1e02668ecf..24fcf20539 100644 --- a/libavformat/network.c +++ b/libavformat/network.c @@ -131,14 +131,17 @@ static int ff_poll_interrupt(struct pollfd *p, nfds_t nfds, int timeout, if (ff_check_interrupt(cb)) return AVERROR_EXIT; ret = poll(p, nfds, POLLING_TIME); -if (ret != 0) +if (ret != 0) { +if (ret < 0) +ret = ff_neterrno(); +if (ret == AVERROR(EINTR)) +continue; break; +} } while (timeout < 0 || runs-- > 0); if (!ret) return AVERROR(ETIMEDOUT); -if (ret < 0) -return ff_neterrno(); return ret; } -- 2.15.2 (Apple Git-101.1) ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel