From aab763d659deaaaaa3edcb0245dd1a82fb1f3e00 Mon Sep 17 00:00:00 2001 From: Martin Schwenke Date: Sun, 29 Sep 2024 11:55:52 +1000 Subject: [PATCH] ctdb-protocol: Add function ctdb_sock_addr_from_sockaddr() Signed-off-by: Martin Schwenke Reviewed-by: John Mulligan Reviewed-by: Anoop C S --- ctdb/protocol/protocol_util.c | 19 +++++++++++++++++++ ctdb/protocol/protocol_util.h | 2 ++ 2 files changed, 21 insertions(+) diff --git a/ctdb/protocol/protocol_util.c b/ctdb/protocol/protocol_util.c index 5e48c1513bc..d8f12fa87ba 100644 --- a/ctdb/protocol/protocol_util.c +++ b/ctdb/protocol/protocol_util.c @@ -379,6 +379,25 @@ int ctdb_sock_addr_mask_from_string(const char *str, return ret; } +int ctdb_sock_addr_from_sockaddr(struct sockaddr *addr, + ctdb_sock_addr *sock_addr) +{ + switch (addr->sa_family) { + case AF_INET: + ZERO_STRUCTP(sock_addr); + sock_addr->ip = *(struct sockaddr_in *)addr; + break; + case AF_INET6: + ZERO_STRUCTP(sock_addr); + sock_addr->ip6 = *(struct sockaddr_in6 *)addr; + break; + default: + return EINVAL; + } + + return 0; +} + unsigned int ctdb_sock_addr_port(ctdb_sock_addr *addr) { switch (addr->sa.sa_family) { diff --git a/ctdb/protocol/protocol_util.h b/ctdb/protocol/protocol_util.h index 70f35d122a8..31f71e18f81 100644 --- a/ctdb/protocol/protocol_util.h +++ b/ctdb/protocol/protocol_util.h @@ -44,6 +44,8 @@ int ctdb_sock_addr_from_string(const char *str, int ctdb_sock_addr_mask_from_string(const char *str, ctdb_sock_addr *addr, unsigned int *mask); +int ctdb_sock_addr_from_sockaddr(struct sockaddr *addr, + ctdb_sock_addr *sock_addr); unsigned int ctdb_sock_addr_port(ctdb_sock_addr *addr); void ctdb_sock_addr_set_port(ctdb_sock_addr *addr, unsigned int port); int ctdb_sock_addr_cmp_ip(const ctdb_sock_addr *addr1, -- 2.47.3