From: Martin Schwenke Date: Sun, 29 Sep 2024 01:55:52 +0000 (+1000) Subject: ctdb-protocol: Add function ctdb_sock_addr_from_sockaddr() X-Git-Tag: tdb-1.4.13~1003 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=aab763d659deaaaaa3edcb0245dd1a82fb1f3e00;p=thirdparty%2Fsamba.git ctdb-protocol: Add function ctdb_sock_addr_from_sockaddr() Signed-off-by: Martin Schwenke Reviewed-by: John Mulligan Reviewed-by: Anoop C S --- 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,