1#ifndef foopulsecoresockethfoo 2#define foopulsecoresockethfoo 3 4#ifdef HAVE_SYS_SOCKET_H 5#include <sys/socket.h> 6#endif 7 8#ifdef HAVE_WINSOCK2_H 9#include <winsock2.h> 10#include "winerrno.h" 11 12typedef long suseconds_t; 13 14/** Windows 10 supports AF_UNIX as of build 17603, with 15 support provided in the header file <afunix.h>. However, 16 only the latest Windows SDK provides this file; older SDKs and 17 MinGW do not. 18 19 Hence we define SOCKADDR_UN here. We do not expect this definition to change 20 as Windows has some pretty good binary backwards-compatibility guarantees. 21 22 This shouldn't pose a problem for older versions of Windows; we expect them to 23 fail with an error whenever we try to make a socket of type AF_UNIX. */ 24#define UNIX_PATH_MAX 108 25 26typedef struct sockaddr_un 27{ 28 ADDRESS_FAMILY sun_family; /* AF_UNIX */ 29 char sun_path[UNIX_PATH_MAX]; /* pathname */ 30} SOCKADDR_UN, *PSOCKADDR_UN; 31 32#ifndef SUN_LEN 33#define SUN_LEN(ptr) \ 34 ((size_t)(((struct sockaddr_un *) 0)->sun_path) + strlen((ptr)->sun_path)) 35#endif 36 37#define HAVE_SYS_UN_H 38 39#endif 40 41#ifdef HAVE_WS2TCPIP_H 42#include <ws2tcpip.h> 43#endif 44 45#endif 46