]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: Add function to serialize an IPv6 address
authorPatrik Flykt <patrik.flykt@linux.intel.com>
Mon, 6 Jul 2015 09:50:47 +0000 (12:50 +0300)
committerPatrik Flykt <patrik.flykt@linux.intel.com>
Fri, 21 Aug 2015 08:23:22 +0000 (11:23 +0300)
src/libsystemd-network/network-internal.c
src/libsystemd-network/network-internal.h

index 3d78bf8b35f2f9430aead4236e2cdf9d8c4b3225..d8357c687e98586996f453293b139a5bf090e9ec 100644 (file)
@@ -32,6 +32,7 @@
 #include "conf-parser.h"
 #include "condition.h"
 #include "network-internal.h"
+#include "sd-icmp6-nd.h"
 
 const char *net_get_name(struct udev_device *device) {
         const char *name, *field;
@@ -384,6 +385,20 @@ int deserialize_in_addrs(struct in_addr **ret, const char *string) {
         return size;
 }
 
+void serialize_in6_addrs(FILE *f, const struct in6_addr *addresses,
+                         size_t size) {
+        unsigned i;
+
+        assert(f);
+        assert(addresses);
+        assert(size);
+
+        for (i = 0; i < size; i++)
+                fprintf(f, SD_ICMP6_ADDRESS_FORMAT_STR"%s",
+                        SD_ICMP6_ADDRESS_FORMAT_VAL(addresses[i]),
+                        (i < (size - 1)) ? " ": "");
+}
+
 int deserialize_in6_addrs(struct in6_addr **ret, const char *string) {
         _cleanup_free_ struct in6_addr *addresses = NULL;
         int size = 0;
index 7aaecbb10d9c9c7beb521e0d59082f7bdffc7f6f..dca82646ceff343fd9824ce3173d215136fee0fe 100644 (file)
@@ -67,6 +67,8 @@ const char *net_get_name(struct udev_device *device);
 
 void serialize_in_addrs(FILE *f, const struct in_addr *addresses, size_t size);
 int deserialize_in_addrs(struct in_addr **addresses, const char *string);
+void serialize_in6_addrs(FILE *f, const struct in6_addr *addresses,
+                         size_t size);
 int deserialize_in6_addrs(struct in6_addr **addresses, const char *string);
 
 /* don't include "dhcp-lease-internal.h" as it causes conflicts between netinet/ip.h and linux/ip.h */