From f2c85458c411447f006f9c928cb198ec0260255a Mon Sep 17 00:00:00 2001 From: Gil Pedersen Date: Thu, 28 Apr 2011 10:27:40 +0300 Subject: network: Check POLLERR and POLLHUP in ff_network_wait_fd MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously, the function would lead to an infinite wait (by returning AVERROR(EAGAIN)) on sockets indicating an error via either of these poll flags. Signed-off-by: Martin Storsjö --- libavformat/network.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libavformat/network.h') diff --git a/libavformat/network.h b/libavformat/network.h index 84a8f539d9..881384c943 100644 --- a/libavformat/network.h +++ b/libavformat/network.h @@ -78,7 +78,7 @@ static inline int ff_network_wait_fd(int fd, int write) struct pollfd p = { .fd = fd, .events = ev, .revents = 0 }; int ret; ret = poll(&p, 1, 100); - return ret < 0 ? ff_neterrno() : p.revents & ev ? 0 : AVERROR(EAGAIN); + return ret < 0 ? ff_neterrno() : p.revents & (ev | POLLERR | POLLHUP) ? 0 : AVERROR(EAGAIN); } static inline void ff_network_close(void) -- cgit v1.2.3