From cdee08e36582e443ff8a9bed17ec409551c9f93b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Mon, 25 Jun 2012 12:08:44 +0300 Subject: [PATCH] network: Check for struct pollfd MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We need to include winsock2.h here, to make sure we have the real pollfd struct definition, if one exists, before defining the fallback poll function. Signed-off-by: Martin Storsjö --- configure | 3 +++ libavformat/os_support.h | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/configure b/configure index 1290369f15..a7ac43fa07 100755 --- a/configure +++ b/configure @@ -1140,6 +1140,7 @@ HAVE_LIST=" struct_group_source_req struct_ip_mreq_source struct_ipv6_mreq + struct_pollfd struct_rusage_ru_maxrss struct_sockaddr_in6 struct_sockaddr_sa_len @@ -2818,6 +2819,7 @@ if enabled network; then check_type netinet/in.h "struct ip_mreq_source" -D_BSD_SOURCE check_type netinet/in.h "struct ipv6_mreq" -D_DARWIN_C_SOURCE check_type netinet/in.h "struct sockaddr_in6" + check_type poll.h "struct pollfd" check_type "sys/types.h sys/socket.h" "struct sockaddr_storage" check_struct "sys/types.h sys/socket.h" "struct sockaddr" sa_len check_header netinet/sctp.h @@ -2834,6 +2836,7 @@ if enabled network; then check_type ws2tcpip.h "struct group_source_req" check_type ws2tcpip.h "struct ip_mreq_source" check_type ws2tcpip.h "struct ipv6_mreq" + check_type winsock2.h "struct pollfd" check_type ws2tcpip.h "struct sockaddr_in6" check_type ws2tcpip.h "struct sockaddr_storage" check_struct winsock2.h "struct sockaddr" sa_len diff --git a/libavformat/os_support.h b/libavformat/os_support.h index 3db20a9aa8..cda84b0296 100644 --- a/libavformat/os_support.h +++ b/libavformat/os_support.h @@ -75,6 +75,10 @@ typedef int socklen_t; #if !HAVE_POLL_H typedef unsigned long nfds_t; +#if HAVE_WINSOCK2_H +#include +#endif +#if !HAVE_STRUCT_POLLFD struct pollfd { int fd; short events; /* events to look for */ @@ -94,6 +98,7 @@ struct pollfd { #define POLLERR 0x0004 /* errors pending */ #define POLLHUP 0x0080 /* disconnected */ #define POLLNVAL 0x1000 /* invalid file descriptor */ +#endif int poll(struct pollfd *fds, nfds_t numfds, int timeout);