From b729fa14aa118d4c7cd6846ff66d8cf1e885d900 Mon Sep 17 00:00:00 2001 From: Patrik Flykt Date: Mon, 6 Jul 2015 12:50:47 +0300 Subject: network: Add function to serialize an IPv6 address --- src/libsystemd-network/network-internal.c | 15 +++++++++++++++ src/libsystemd-network/network-internal.h | 2 ++ 2 files changed, 17 insertions(+) (limited to 'src/libsystemd-network') diff --git a/src/libsystemd-network/network-internal.c b/src/libsystemd-network/network-internal.c index 3d78bf8b35..d8357c687e 100644 --- a/src/libsystemd-network/network-internal.c +++ b/src/libsystemd-network/network-internal.c @@ -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; diff --git a/src/libsystemd-network/network-internal.h b/src/libsystemd-network/network-internal.h index 7aaecbb10d..dca82646ce 100644 --- a/src/libsystemd-network/network-internal.h +++ b/src/libsystemd-network/network-internal.h @@ -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 */ -- cgit v1.2.3-54-g00ecf