32#define likely(x) __builtin_expect((x), 1)
33#define unlikely(x) __builtin_expect((x), 0)
36#define unlikely(x) (x)
43#define sleep(x) Sleep((x)*1000)
49#define __func__ __FUNCTION__
50#define __attribute__(x)
54#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1070
55#define __APPLE_USE_RFC_3542 1
59#ifdef HAVE_SYS_TYPES_H
69#define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
72#define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
82#ifdef HAVE_SYS_SOCKET_H
83#include <sys/socket.h>
90#ifdef HAVE_SYS_IOCTL_H
102#ifdef HAVE_SYS_FILE_H
141#ifdef HAVE_NETINET_IN_H
142#include <netinet/in.h>
154#include <selinux/selinux.h>
157#if defined(HAVE_LIBGEN_H)
169#if defined(TARGET_HAIKU)
170#include <SupportDefs.h>
172#include <sys/sockio.h>
175#ifdef HAVE_ARPA_INET_H
176#include <arpa/inet.h>
184#include <net/if_tap.h>
187#if defined(TARGET_LINUX) || defined (TARGET_ANDROID)
189#ifdef HAVE_LINUX_IF_TUN_H
190#include <linux/if_tun.h>
193#ifdef HAVE_NETINET_IP_H
194#include <netinet/ip.h>
197#ifdef HAVE_LINUX_SOCKIOS_H
198#include <linux/sockios.h>
201#ifdef HAVE_LINUX_TYPES_H
202#include <linux/types.h>
205#ifdef HAVE_LINUX_ERRQUEUE_H
206#include <linux/errqueue.h>
209#ifdef HAVE_NETINET_TCP_H
210#include <netinet/tcp.h>
222#ifdef HAVE_NET_IF_TUN_H
223#include <net/if_tun.h>
226#ifdef HAVE_SYS_SOCKIO_H
227#include <sys/sockio.h>
230#ifdef HAVE_NETINET_IP_H
231#include <netinet/ip.h>
234#ifdef HAVE_NETINET_TCP_H
235#include <netinet/tcp.h>
246#ifdef HAVE_NETINET_IP_H
247#include <netinet/ip.h>
250#ifdef HAVE_NETINET_TCP_H
251#include <netinet/tcp.h>
254#ifdef HAVE_NET_IF_TUN_H
255#include <net/if_tun.h>
266#ifdef HAVE_NETINET_IP_H
267#include <netinet/ip.h>
270#ifdef HAVE_NETINET_TCP_H
271#include <netinet/tcp.h>
274#ifdef HAVE_NET_IF_TUN_H
275#include <net/if_tun.h>
282#ifdef HAVE_NET_IF_TUN_H
283#include <net/if_tun.h>
286#ifdef HAVE_NETINET_TCP_H
287#include <netinet/tcp.h>
292#ifdef TARGET_DRAGONFLY
298#ifdef HAVE_NETINET_IP_H
299#include <netinet/ip.h>
302#ifdef HAVE_NET_TUN_IF_TUN_H
303#include <net/tun/if_tun.h>
310#ifdef HAVE_NETINET_TCP_H
311#include <netinet/tcp.h>
318#if defined(__MINGW32__)
319typedef int MIB_TCP_STATE;
333#ifdef HAVE_SYS_MMAN_H
335#define _P1003_1B_VISIBLE
341#include <sys/utsname.h>
349#undef HAVE_CPP_VARARG_MACRO_GCC
350#undef HAVE_CPP_VARARG_MACRO_ISO
358#if defined(IPPROTO_IP) && defined(IP_TOS)
359#define PASSTOS_CAPABILITY 1
361#define PASSTOS_CAPABILITY 0
367#if defined(HAVE_LINUX_TYPES_H) && defined(HAVE_LINUX_ERRQUEUE_H)
368#define EXTENDED_SOCKET_ERROR_CAPABILITY 1
370#define EXTENDED_SOCKET_ERROR_CAPABILITY 0
377#if ((defined(HAVE_IN_PKTINFO) && defined(IP_PKTINFO)) || defined(IP_RECVDSTADDR)) && defined(HAVE_MSGHDR) && defined(HAVE_CMSGHDR) && defined(CMSG_FIRSTHDR) && defined(CMSG_NXTHDR) && defined(HAVE_RECVMSG) && defined(HAVE_SENDMSG)
378#define ENABLE_IP_PKTINFO 1
380#define ENABLE_IP_PKTINFO 0
388#define SOL_IP IPPROTO_IP
394#ifndef HAVE_SA_FAMILY_T
402#undef EXTENDED_SOCKET_ERROR_CAPABILITY
403#define EXTENDED_SOCKET_ERROR_CAPABILITY 0
409#if defined(HAVE_OPENLOG) && defined(HAVE_SYSLOG)
410#define SYSLOG_CAPABILITY 1
412#define SYSLOG_CAPABILITY 0
426#define PATH_SEPARATOR '\\'
427#define PATH_SEPARATOR_STR "\\"
429#define PATH_SEPARATOR '/'
430#define PATH_SEPARATOR_STR "/"
437#define SOCKET_UNDEFINED (INVALID_SOCKET)
438#define SOCKET_PRINTF "%" PRIxPTR
441#define SOCKET_UNDEFINED (-1)
442#define SOCKET_PRINTF "%d"
456#if defined(HAVE_EXECVE) && defined(HAVE_FORK)
457#define ENABLE_FEATURE_EXECVE
463#if defined(ENABLE_PORT_SHARE) && defined(SCM_RIGHTS) && defined(HAVE_MSGHDR) && defined(HAVE_CMSGHDR) && defined(CMSG_FIRSTHDR) && defined(CMSG_NXTHDR) && defined(HAVE_RECVMSG) && defined(HAVE_SENDMSG)
469#ifdef ENABLE_CRYPTO_MBEDTLS
470#define ENABLE_PREDICTION_RESISTANCE
476#if defined(PF_UNIX) && !defined(_WIN32)
477#define UNIX_SOCK_SUPPORT 1
479#define UNIX_SOCK_SUPPORT 0
492#define PROXY_DIGEST_AUTH 1
497#if defined(_WIN32) && defined(ENABLE_CRYPTO_OPENSSL) \
498 && !defined(ENABLE_CRYPTO_WOLFSSL)
499#define ENABLE_CRYPTOAPI
507#if defined(HAVE_POLL_H) || !defined(_WIN32)
516#if defined(HAVE_EPOLL_CREATE) && defined(HAVE_SYS_EPOLL_H)
525#if defined(ENABLE_LZO) || defined(ENABLE_LZ4) \
526 || defined(ENABLE_COMP_STUB)
534#define ENABLE_MEMSTATS
539#define PATH_MAX MAX_PATH
unsigned short sa_family_t
SOCKET socket_descriptor_t
static int socket_defined(const socket_descriptor_t sd)