summaryrefslogtreecommitdiff
path: root/src/network/networkd-network.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2017-04-29 13:42:09 +0200
committerGitHub <noreply@github.com>2017-04-29 13:42:09 +0200
commitccefd046c6c68520f91e49165a4f79f38ca0428e (patch)
tree98aaa5eae6bc1befd0b747d5049441847259137b /src/network/networkd-network.c
parentfe685ffb7fab5e925f2956ff12b041b591002ba8 (diff)
parentc23ae61e27ae9928524e86779fa78a56d531278a (diff)
Merge pull request #5529 from ssahani/label
networkd / sd-netlink: add support for address label
Diffstat (limited to 'src/network/networkd-network.c')
-rw-r--r--src/network/networkd-network.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c
index dd29b4ca48..0c0e661909 100644
--- a/src/network/networkd-network.c
+++ b/src/network/networkd-network.c
@@ -114,6 +114,7 @@ static int network_load_one(Manager *manager, const char *filename) {
LIST_HEAD_INIT(network->static_routes);
LIST_HEAD_INIT(network->static_fdb_entries);
LIST_HEAD_INIT(network->ipv6_proxy_ndp_addresses);
+ LIST_HEAD_INIT(network->address_labels);
network->stacked_netdevs = hashmap_new(&string_hash_ops);
if (!network->stacked_netdevs)
@@ -131,6 +132,10 @@ static int network_load_one(Manager *manager, const char *filename) {
if (!network->fdb_entries_by_section)
return log_oom();
+ network->address_labels_by_section = hashmap_new(&network_config_hash_ops);
+ if (!network->address_labels_by_section)
+ return log_oom();
+
network->filename = strdup(filename);
if (!network->filename)
return log_oom();
@@ -192,6 +197,7 @@ static int network_load_one(Manager *manager, const char *filename) {
"Link\0"
"Network\0"
"Address\0"
+ "IPv6AddressLabel\0"
"Route\0"
"DHCP\0"
"DHCPv4\0" /* compat */
@@ -271,6 +277,7 @@ void network_free(Network *network) {
Address *address;
FdbEntry *fdb_entry;
IPv6ProxyNDPAddress *ipv6_proxy_ndp_address;
+ AddressLabel *label;
Iterator i;
if (!network)
@@ -318,9 +325,13 @@ void network_free(Network *network) {
while ((ipv6_proxy_ndp_address = network->ipv6_proxy_ndp_addresses))
ipv6_proxy_ndp_address_free(ipv6_proxy_ndp_address);
+ while ((label = network->address_labels))
+ address_label_free(label);
+
hashmap_free(network->addresses_by_section);
hashmap_free(network->routes_by_section);
hashmap_free(network->fdb_entries_by_section);
+ hashmap_free(network->address_labels_by_section);
if (network->manager) {
if (network->manager->networks)