31#define likely(x) __builtin_expect((x), 1)
32#define unlikely(x) __builtin_expect((x), 0)
35#define unlikely(x) (x)
42#define sleep(x) Sleep((x) * 1000)
50#if defined(_WIN32) && !defined(RC_INVOKED)
62#if defined(_MSC_VER) && !defined(RC_INVOKED)
64typedef SSIZE_T ssize_t;
65#define strncasecmp strnicmp
66#define strcasecmp _stricmp
68#define S_IRUSR _S_IREAD
69#define S_IWUSR _S_IWRITE
76#if defined(_MSC_VER) && !defined(__clang__)
77#define __func__ __FUNCTION__
78#define __attribute__(x)
82#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1070
83#define __APPLE_USE_RFC_3542 1
87#ifdef HAVE_SYS_TYPES_H
97#define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
100#define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
104#ifdef HAVE_SYS_TIME_H
110#ifdef HAVE_SYS_SOCKET_H
111#include <sys/socket.h>
118#ifdef HAVE_SYS_IOCTL_H
119#include <sys/ioctl.h>
122#ifdef HAVE_SYS_STAT_H
130#ifdef HAVE_SYS_FILE_H
169#ifdef HAVE_NETINET_IN_H
170#include <netinet/in.h>
182#include <selinux/selinux.h>
185#if defined(HAVE_LIBGEN_H)
197#if defined(TARGET_HAIKU)
198#include <SupportDefs.h>
200#include <sys/sockio.h>
203#ifdef HAVE_ARPA_INET_H
204#include <arpa/inet.h>
212#include <net/if_tap.h>
215#if defined(TARGET_LINUX) || defined(TARGET_ANDROID)
217#define EXTENDED_SOCKET_ERROR_CAPABILITY 1
220#define ENABLE_FEATURE_TUN_PERSIST
223#include <linux/if_tun.h>
224#include <linux/sockios.h>
226#ifdef HAVE_NETINET_IP_H
227#include <netinet/ip.h>
230#ifdef HAVE_NETINET_TCP_H
231#include <netinet/tcp.h>
243#ifdef HAVE_NET_IF_TUN_H
244#include <net/if_tun.h>
247#ifdef HAVE_SYS_SOCKIO_H
248#include <sys/sockio.h>
251#ifdef HAVE_NETINET_IP_H
252#include <netinet/ip.h>
255#ifdef HAVE_NETINET_TCP_H
256#include <netinet/tcp.h>
267#ifdef HAVE_NETINET_IP_H
268#include <netinet/ip.h>
271#ifdef HAVE_NETINET_TCP_H
272#include <netinet/tcp.h>
275#ifdef HAVE_NET_IF_TUN_H
276#include <net/if_tun.h>
287#ifdef HAVE_NETINET_IP_H
288#include <netinet/ip.h>
291#ifdef HAVE_NETINET_TCP_H
292#include <netinet/tcp.h>
295#ifdef HAVE_NET_IF_TUN_H
296#include <net/if_tun.h>
303#ifdef HAVE_NET_IF_TUN_H
304#include <net/if_tun.h>
307#ifdef HAVE_NETINET_TCP_H
308#include <netinet/tcp.h>
313#ifdef TARGET_DRAGONFLY
319#ifdef HAVE_NETINET_IP_H
320#include <netinet/ip.h>
323#ifdef HAVE_NET_TUN_IF_TUN_H
324#include <net/tun/if_tun.h>
331#ifdef HAVE_NETINET_TCP_H
332#include <netinet/tcp.h>
339#if defined(__MINGW32__)
340typedef int MIB_TCP_STATE;
354#ifdef HAVE_SYS_MMAN_H
356#define _P1003_1B_VISIBLE
362#include <sys/utsname.h>
370#undef HAVE_CPP_VARARG_MACRO_GCC
371#undef HAVE_CPP_VARARG_MACRO_ISO
379#if defined(IPPROTO_IP) && defined(IP_TOS)
380#define PASSTOS_CAPABILITY 1
382#define PASSTOS_CAPABILITY 0
389#if ((defined(HAVE_IN_PKTINFO) && defined(IP_PKTINFO)) || defined(IP_RECVDSTADDR)) \
390 && defined(HAVE_MSGHDR) && defined(HAVE_CMSGHDR) && defined(CMSG_FIRSTHDR) \
391 && defined(CMSG_NXTHDR) && defined(HAVE_RECVMSG) && defined(HAVE_SENDMSG)
392#define ENABLE_IP_PKTINFO 1
394#define ENABLE_IP_PKTINFO 0
402#define SOL_IP IPPROTO_IP
408#ifndef HAVE_SA_FAMILY_T
415#if defined(HAVE_OPENLOG) && defined(HAVE_SYSLOG)
416#define SYSLOG_CAPABILITY 1
418#define SYSLOG_CAPABILITY 0
432#define PATH_SEPARATOR '\\'
433#define PATH_SEPARATOR_STR "\\"
435#define PATH_SEPARATOR '/'
436#define PATH_SEPARATOR_STR "/"
443#define SOCKET_UNDEFINED (INVALID_SOCKET)
444#define SOCKET_PRINTF "%" PRIxPTR
447#define SOCKET_UNDEFINED (-1)
448#define SOCKET_PRINTF "%d"
462#if defined(HAVE_EXECVE) && defined(HAVE_FORK)
463#define ENABLE_FEATURE_EXECVE
469#if defined(ENABLE_PORT_SHARE) && defined(SCM_RIGHTS) && defined(HAVE_MSGHDR) \
470 && defined(HAVE_CMSGHDR) && defined(CMSG_FIRSTHDR) && defined(CMSG_NXTHDR) \
471 && defined(HAVE_RECVMSG) && defined(HAVE_SENDMSG)
477#ifdef ENABLE_CRYPTO_MBEDTLS
478#define ENABLE_PREDICTION_RESISTANCE
484#if defined(PF_UNIX) && !defined(_WIN32)
485#define UNIX_SOCK_SUPPORT 1
487#define UNIX_SOCK_SUPPORT 0
500#define PROXY_DIGEST_AUTH 1
505#if defined(_WIN32) && defined(ENABLE_CRYPTO_OPENSSL) && !defined(ENABLE_CRYPTO_WOLFSSL)
506#define ENABLE_CRYPTOAPI
514#if defined(HAVE_POLL_H) || !defined(_WIN32)
523#if defined(HAVE_EPOLL_CREATE) && defined(HAVE_SYS_EPOLL_H)
532#if defined(ENABLE_LZO) || defined(ENABLE_LZ4) || defined(ENABLE_COMP_STUB)
538#define PATH_MAX MAX_PATH
unsigned short sa_family_t
SOCKET socket_descriptor_t
static int socket_defined(const socket_descriptor_t sd)