[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[libvirt] [PATCH v5 3/9] virsocketaddr: Introduce virSocketAddrSetIPv6Addr



This is a missing counterpart for virSocketAddrSetIPv4Addr()
and is going to be needed later in the tests.

Signed-off-by: Michal Privoznik <mprivozn redhat com>
---
 src/libvirt_private.syms |  1 +
 src/util/virsocketaddr.c | 15 +++++++++++++++
 src/util/virsocketaddr.h |  1 +
 3 files changed, 17 insertions(+)

diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 3ae18b8..640c6b3 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -2165,6 +2165,7 @@ virSocketAddrParseIPv4;
 virSocketAddrParseIPv6;
 virSocketAddrPrefixToNetmask;
 virSocketAddrSetIPv4Addr;
+virSocketAddrSetIPv6Addr;
 virSocketAddrSetPort;
 
 # util/virstats.h
diff --git a/src/util/virsocketaddr.c b/src/util/virsocketaddr.c
index 900aa5b..b44d12e 100644
--- a/src/util/virsocketaddr.c
+++ b/src/util/virsocketaddr.c
@@ -189,6 +189,21 @@ virSocketAddrSetIPv4Addr(virSocketAddrPtr addr, uint32_t val)
 }
 
 /*
+ * virSocketAddrSetIPv6Addr:
+ * @addr: the location to store the result
+ * @val: the 128bit integer in host byte order representing the IPv6 address
+ *
+ * Set the IPv6 address given an integer in host order. This function does not
+ * touch any previously set port.
+ */
+void virSocketAddrSetIPv6Addr(virSocketAddrPtr addr, uint32_t val[4])
+{
+    addr->data.stor.ss_family = AF_INET6;
+    memcpy(addr->data.inet6.sin6_addr.s6_addr, val, 4 * sizeof(*val));
+    addr->len = sizeof(struct sockaddr_in6);
+}
+
+/*
  * virSocketAddrEqual:
  * @s1: the location of the one IP address
  * @s2: the location of the other IP address
diff --git a/src/util/virsocketaddr.h b/src/util/virsocketaddr.h
index 9e2680a..9a6e1ec 100644
--- a/src/util/virsocketaddr.h
+++ b/src/util/virsocketaddr.h
@@ -85,6 +85,7 @@ int virSocketAddrParseIPv6(virSocketAddrPtr addr,
                            const char *val);
 
 void virSocketAddrSetIPv4Addr(virSocketAddrPtr s, uint32_t addr);
+void virSocketAddrSetIPv6Addr(virSocketAddrPtr s, uint32_t addr[4]);
 
 char *virSocketAddrFormat(const virSocketAddr *addr);
 char *virSocketAddrFormatFull(const virSocketAddr *addr,
-- 
2.4.10


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]