34 #ifndef MHD_PLATFORM_H 35 #define MHD_PLATFORM_H 37 #include "MHD_config.h" 39 #ifndef BUILDING_MHD_LIB 43 #if defined(_WIN32) && defined(MHD_W32LIB) 44 #define _MHD_EXTERN extern 45 #elif defined (_WIN32) && defined(MHD_W32DLL) 46 #define _MHD_EXTERN __declspec(dllimport) 48 #define _MHD_EXTERN extern 50 #elif !defined(_MHD_EXTERN) 51 #if defined(_WIN32) && defined(MHD_W32LIB) 52 #define _MHD_EXTERN extern 53 #elif defined (_WIN32) && defined(MHD_W32DLL) 54 #define _MHD_EXTERN extern __declspec(dllexport) 56 #define _MHD_EXTERN extern 60 #define _XOPEN_SOURCE_EXTENDED 1 63 #define _OPEN_SYS_SOCK_IPV6 64 #define _OPEN_MSGQ_EXT 70 #define _WIN32_WINNT 0x0501 72 #if _WIN32_WINNT < 0x0501 73 #error "Headers for Windows XP or later are required" 76 #ifndef WIN32_LEAN_AND_MEAN 77 #define WIN32_LEAN_AND_MEAN 1 81 #if LINUX+0 && (defined(HAVE_SENDFILE64) || defined(HAVE_LSEEK64)) && ! defined(_LARGEFILE64_SOURCE) 82 #define _LARGEFILE64_SOURCE 1 97 #ifdef MHD_USE_POSIX_THREADS 100 #define HAVE_CONFIG_H 1 111 #include <netinet/in.h> 113 #include <sys/mman.h> 114 #define RESTRICT __restrict__ 120 #if HAVE_SYS_SELECT_H 121 #include <sys/select.h> 124 #include <sys/types.h> 127 #include <sys/time.h> 130 #include <sys/stat.h> 136 #include <sys/mman.h> 141 #if HAVE_NETINET_IN_H 142 #include <netinet/in.h> 147 #if HAVE_SYS_SOCKET_H 148 #include <sys/socket.h> 151 #include <arpa/inet.h> 155 #if defined(_WIN32) && !defined(__CYGWIN__) 156 #include <ws2tcpip.h> 157 #define sleep(seconds) ((SleepEx((seconds)*1000, 1)==0)?0:(seconds)) 158 #define usleep(useconds) ((SleepEx((useconds)/1000, 1)==0)?0:-1) 161 #if !defined(SHUT_WR) && defined(SD_SEND) 162 #define SHUT_WR SD_SEND 164 #if !defined(SHUT_RD) && defined(SD_RECEIVE) 165 #define SHUT_RD SD_RECEIVE 167 #if !defined(SHUT_RDWR) && defined(SD_BOTH) 168 #define SHUT_RDWR SD_BOTH 171 #if defined(_MSC_FULL_VER) && !defined (_SSIZE_T_DEFINED) 172 #define _SSIZE_T_DEFINED 173 typedef intptr_t ssize_t;
175 #ifndef MHD_SOCKET_DEFINED 179 #if !defined(_WIN32) || defined(_SYS_TYPES_FD_SET) 180 #define MHD_POSIX_SOCKETS 1 182 #define MHD_INVALID_SOCKET (-1) 184 #define MHD_WINSOCK_SOCKETS 1 185 #include <winsock2.h> 187 #define MHD_INVALID_SOCKET (INVALID_SOCKET) 189 #define MHD_SOCKET_DEFINED 1 199 #if defined(_WIN32) && !defined(MHD_DONT_USE_PIPES) 200 #define MHD_DONT_USE_PIPES 1 204 #ifndef MHD_DONT_USE_PIPES 210 #if !defined(IPPROTO_IPV6) && defined(_MSC_FULL_VER) && _WIN32_WINNT >= 0x0501 212 #define IPPROTO_IPV6 IPPROTO_IPV6