summaryrefslogtreecommitdiff
path: root/utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'utils.h')
-rw-r--r--utils.h18
1 files changed, 8 insertions, 10 deletions
diff --git a/utils.h b/utils.h
index 6d09522..628650f 100644
--- a/utils.h
+++ b/utils.h
@@ -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);