]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
ctdb-protocol: Add function ctdb_sock_addr_from_sockaddr()
authorMartin Schwenke <mschwenke@ddn.com>
Sun, 29 Sep 2024 01:55:52 +0000 (11:55 +1000)
committerAnoop C S <anoopcs@samba.org>
Mon, 7 Oct 2024 15:58:38 +0000 (15:58 +0000)
Signed-off-by: Martin Schwenke <mschwenke@ddn.com>
Reviewed-by: John Mulligan <jmulligan@redhat.com>
Reviewed-by: Anoop C S <anoopcs@samba.org>
ctdb/protocol/protocol_util.c
ctdb/protocol/protocol_util.h

index 5e48c1513bc13394e938c476405aee4abf65c694..d8f12fa87ba1ad052e31d57690d3a3a0b8044df5 100644 (file)
@@ -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) {
index 70f35d122a89d722500a4a6fb2799f7c7928338d..31f71e18f810c843d05d37ff2fb43e5a9699d592 100644 (file)
@@ -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,