diff options
Diffstat (limited to 'utils.h')
-rw-r--r-- | utils.h | 18 |
1 files changed, 8 insertions, 10 deletions
@@ -26,7 +26,7 @@ void __xfree(const char *fn, int line, void *ptr); void debug_resource_usage(); #define ADDRSTRLEN (9 /*strlen("AF_INETX ")*/ + INET6_ADDRSTRLEN + 6 /*strlen(" 65535")*/ + 1) -struct sockaddr_in46 { +struct saddr { union { struct sockaddr_storage storage; struct sockaddr_in in4; @@ -34,15 +34,13 @@ struct sockaddr_in46 { struct sockaddr_ll ll; }; socklen_t addrlen; + char addrstr[ADDRSTRLEN]; struct list_head list; }; struct connection { - struct sockaddr_in46 remote; - char remotestr[ADDRSTRLEN]; - - struct sockaddr_in46 local; - char localstr[ADDRSTRLEN]; + struct saddr remote; + struct saddr local; struct list_head *addrs; unsigned next_addr; @@ -57,17 +55,17 @@ void socket_set_low_latency(struct cfg *cfg, int sfd); void connection_set_local(struct cfg *cfg, struct connection *conn, int fd); void connection_set_remote(struct cfg *cfg, struct connection *conn, - struct sockaddr_in46 *remote); + struct saddr *remote); void connect_any(struct cfg *cfg, struct uring_task *task, struct list_head *addrs, struct connection *conn, void (*callback)(struct cfg *, struct connection *, bool)); -char *sockaddr_addr(struct sockaddr_in46 *addr, char *buf, size_t len); +char *saddr_addr(struct saddr *saddr, char *buf, size_t len); -uint16_t sockaddr_port(struct sockaddr_in46 *addr); +uint16_t saddr_port(struct saddr *saddr); -char *sockaddr_to_str(struct sockaddr_in46 *addr, char *buf, size_t len); +void saddr_set_str(struct saddr *saddr); int strtou16_strict(const char *str, uint16_t *result); |