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