chiark / gitweb /
systemctl: prefix list-units and list-machines output with a circle indicating a...
[elogind.git] / src / network / networkd-address.c
index 28dcf14c6e1cf1955b75c627dd667694053813b9..414b3bccfa6430409fb48fc3e7006ca2f88944bb 100644 (file)
@@ -47,6 +47,7 @@ int address_new_static(Network *network, unsigned section, Address **ret) {
                 return -ENOMEM;
 
         address->family = AF_UNSPEC;
+        address->scope = RT_SCOPE_UNIVERSE;
 
         address->network = network;
 
@@ -71,6 +72,7 @@ int address_new_dynamic(Address **ret) {
                 return -ENOMEM;
 
         address->family = AF_UNSPEC;
+        address->scope = RT_SCOPE_UNIVERSE;
 
         *ret = address;
         address = NULL;
@@ -105,8 +107,8 @@ int address_drop(Address *address, Link *link,
         assert(link->manager);
         assert(link->manager->rtnl);
 
-        r = sd_rtnl_message_new_addr(link->manager->rtnl, RTM_DELADDR,
-                                     link->ifindex, address->family, &req);
+        r = sd_rtnl_message_new_addr(link->manager->rtnl, &req, RTM_DELADDR,
+                                     link->ifindex, address->family);
         if (r < 0) {
                 log_error("Could not allocate RTM_DELADDR message: %s",
                           strerror(-r));
@@ -150,8 +152,8 @@ int address_configure(Address *address, Link *link,
         assert(link->manager);
         assert(link->manager->rtnl);
 
-        r = sd_rtnl_message_new_addr(link->manager->rtnl, RTM_NEWADDR,
-                                     link->ifindex, address->family, &req);
+        r = sd_rtnl_message_new_addr(link->manager->rtnl, &req, RTM_NEWADDR,
+                                     link->ifindex, address->family);
         if (r < 0) {
                 log_error("Could not allocate RTM_NEWADDR message: %s",
                           strerror(-r));
@@ -170,7 +172,7 @@ int address_configure(Address *address, Link *link,
                 return r;
         }
 
-        r = sd_rtnl_message_addr_set_scope(req, RT_SCOPE_UNIVERSE);
+        r = sd_rtnl_message_addr_set_scope(req, address->scope);
         if (r < 0) {
                 log_error("Could not set scope: %s", strerror(-r));
                 return r;
@@ -223,7 +225,7 @@ int config_parse_dns(const char *unit,
                 const char *rvalue,
                 void *data,
                 void *userdata) {
-        Address **dns = data;
+        Set **dns = data;
         _cleanup_address_free_ Address *n = NULL;
         int r;
 
@@ -244,7 +246,7 @@ int config_parse_dns(const char *unit,
                 return 0;
         }
 
-        *dns = n;
+        set_put(*dns, n);
         n = NULL;
 
         return 0;