static inline int socket_ex(int af, int so, int pf, int fl) {
#if HAVE_SOCK_NONBLOCK && HAVE_SOCK_CLOEXEC
return socket(af, so | fl, pf);
#else
static inline int socket_ex(int af, int so, int pf, int fl) {
#if HAVE_SOCK_NONBLOCK && HAVE_SOCK_CLOEXEC
return socket(af, so | fl, pf);
#else