summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2012-06-25 12:08:44 +0300
committerMartin Storsjö <martin@martin.st>2012-06-30 15:18:06 +0300
commitcdee08e36582e443ff8a9bed17ec409551c9f93b (patch)
treeb171fd28fd242e66d5d529c6e03e60355e59f732
parent71078ad3338d850a24071e93b69d2109a943f73e (diff)
network: Check for struct pollfd
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ö <martin@martin.st>
-rwxr-xr-xconfigure3
-rw-r--r--libavformat/os_support.h5
2 files changed, 8 insertions, 0 deletions
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 <winsock2.h>
+#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);