X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=libavformat%2Fnetwork.h;h=f7e19b196e6565deeccac2ed181eaa9c30b68eda;hb=4f643430f295a8376ca51f127a23b0f8ce92068b;hp=74e6f0bbccf8b3509a321bbb32f6bef1dc962ba3;hpb=3788a3c0c03585b0f8180a16d2a15b8e0e033313;p=ffmpeg diff --git a/libavformat/network.h b/libavformat/network.h index 74e6f0bbccf..f7e19b196e6 100644 --- a/libavformat/network.h +++ b/libavformat/network.h @@ -21,7 +21,10 @@ #ifndef AVFORMAT_NETWORK_H #define AVFORMAT_NETWORK_H +#include + #include "config.h" +#include "libavutil/error.h" #include "os_support.h" #if HAVE_WINSOCK2_H @@ -33,7 +36,8 @@ #define ECONNREFUSED WSAECONNREFUSED #define EINPROGRESS WSAEINPROGRESS -static inline int ff_neterrno() { +static inline int ff_neterrno(void) +{ int err = WSAGetLastError(); switch (err) { case WSAEWOULDBLOCK: @@ -78,7 +82,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)