mirror of
https://github.com/warmcat/libwebsockets.git
synced 2025-03-23 00:00:06 +01:00

This is important since this stuff is in publicly included headers and even though the usage of the WSAPoll API is a runtime decision the public headers may be used in code that needs to build with _WIN32_WINNT=0x0501 to support WinXP. When building a project using libwebsockets with that define set to 0x0501 winsock.h will not define the WSAPOLLFD struct causing that project to fail to compile.
66 lines
1.5 KiB
C
66 lines
1.5 KiB
C
#ifndef __WEB_SOCK_W32_H__
|
|
#define __WEB_SOCK_W32_H__
|
|
|
|
// Windows uses _DEBUG and NDEBUG
|
|
#ifdef _DEBUG
|
|
#undef DEBUG
|
|
#define DEBUG 1
|
|
#endif
|
|
|
|
#pragma warning(disable : 4996)
|
|
|
|
#define bzero(b,len) (memset((b), '\0', (len)), (void) 0)
|
|
|
|
#define MSG_NOSIGNAL 0
|
|
#define SHUT_RDWR SD_BOTH
|
|
|
|
#define SOL_TCP IPPROTO_TCP
|
|
|
|
#define random rand
|
|
#define usleep _sleep
|
|
|
|
#ifdef __MINGW64__
|
|
#define DEF_POLL_STUFF
|
|
#endif
|
|
#ifdef __MINGW32__
|
|
#define DEF_POLL_STUFF
|
|
#endif
|
|
|
|
#if _WIN32_WINNT < 0x0600
|
|
#define DEF_POLL_STUFF
|
|
#endif
|
|
|
|
#ifdef DEF_POLL_STUFF
|
|
|
|
#include <winsock2.h>
|
|
|
|
typedef struct pollfd {
|
|
SOCKET fd;
|
|
short events;
|
|
short revents;
|
|
} WSAPOLLFD, *PWSAPOLLFD, *LPWSAPOLLFD;
|
|
|
|
#define POLLIN 0x0001 /* any readable data available */
|
|
#define POLLOUT 0x0004 /* file descriptor is writeable */
|
|
#define POLLERR 0x0008 /* some poll error occurred */
|
|
#define POLLHUP 0x0010 /* file descriptor was "hung up" */
|
|
#define POLLNVAL 0x0020 /* requested events "invalid" */
|
|
|
|
#endif
|
|
|
|
typedef INT (WSAAPI *PFNWSAPOLL)(LPWSAPOLLFD fdarray, ULONG nfds, INT timeout);
|
|
extern PFNWSAPOLL poll;
|
|
|
|
extern INT WSAAPI emulated_poll(LPWSAPOLLFD fdarray, ULONG nfds, INT timeout);
|
|
|
|
/* override configure because we are not using Makefiles */
|
|
|
|
#define LWS_NO_FORK
|
|
|
|
/* windows can't cope with this idea, needs assets in cwd */
|
|
|
|
#ifndef INSTALL_DATADIR
|
|
#define INSTALL_DATADIR "."
|
|
#endif
|
|
|
|
#endif
|