diff options
Diffstat (limited to 'addr.h')
-rw-r--r-- | addr.h | 32 |
1 files changed, 0 insertions, 32 deletions
@@ -1,32 +0,0 @@ -#ifndef ADDR_H -#define ADDR_H - -#include <arpa/inet.h> -#include "blob.h" - -typedef union { - struct sockaddr any; - struct sockaddr_in ipv4; -} sockaddr_any; - -int addr_len(const sockaddr_any *addr); -sockaddr_any *addr_parse(blob_t text, sockaddr_any *addr); -unsigned long addr_hash(const sockaddr_any *addr); -const char *addr_print(const sockaddr_any *addr); -blob_t addr_get_hostaddr_blob(const sockaddr_any *addr); -void addr_push_hostaddr(blob_t *b, const sockaddr_any *addr); - -static inline void addr_copy(sockaddr_any *dst, const sockaddr_any *src) -{ - memcpy(dst, src, addr_len(src)); -} - -static inline int addr_cmp(const sockaddr_any *a, const sockaddr_any *b) -{ - if (a->any.sa_family != b->any.sa_family) - return -1; - return memcmp(a, b, addr_len(a)); -} - -#endif - |