/* * Public domain * sys/socket.h compatibility shim */ #include_next #ifndef SA_LEN #define SA_LEN(X) \ (((struct sockaddr*)(X))->sa_family == AF_INET ? sizeof(struct sockaddr_in) : \ ((struct sockaddr*)(X))->sa_family == AF_INET6 ? sizeof(struct sockaddr_in6) : \ ((struct sockaddr*)(X))->sa_family == AF_UNSPEC ? sizeof(struct sockaddr) : \ sizeof(struct sockaddr)) #endif #if !defined(SOCK_NONBLOCK) || !defined(SOCK_CLOEXEC) #define NEED_SOCKET_FLAGS int _socket(int domain, int type, int protocol); int _socketpair(int domain, int type, int protocol, int socket_vector[2]); #ifndef SOCKET_FLAGS_PRIV #define socket(d, t, p) _socket(d, t, p) #define socketpair(d, t, p, s) _socketpair(d, t, p, s) #endif #endif /* * Prevent Solaris 10 system header leakage */ #ifdef MODEMASK #undef MODEMASK #endif #ifndef SOCK_NONBLOCK #define SOCK_NONBLOCK 0x4000 /* set O_NONBLOCK */ #endif #ifndef SOCK_CLOEXEC #define SOCK_CLOEXEC 0x8000 /* set FD_CLOEXEC */ #endif