#ifndef __SOCK_ANY_H__ #define __SOCK_ANY_H__ #include #include #include struct sockaddr_any { size_t namelen; union _sockaddr_any { /* The header */ struct sockaddr a; /* The different types */ struct sockaddr_un un; struct sockaddr_in in; #ifdef HAVE_INET6 struct sockaddr_in6 in6; #endif } s; }; #define SANY_ADDR(any) (&((any).s.a)) #define SANY_LEN(any) ((any).namelen) #define SANY_TYPE(any) ((any).s.a.sa_family) int sock_any_pton(const char* addr, struct sockaddr_any* any, int defport); #endif /* __SOCK_ANY_H__ */