]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
Merge pull request #15872 from keszybz/networkd-types
authorLennart Poettering <lennart@poettering.net>
Mon, 25 May 2020 15:31:00 +0000 (17:31 +0200)
committerGitHub <noreply@github.com>
Mon, 25 May 2020 15:31:00 +0000 (17:31 +0200)
Type and parsing fixes for networkd

src/libsystemd/sd-path/sd-path.c
src/network/networkd-address.c
src/network/networkd-dhcp-server.c
src/network/networkd-dhcp4.c

index 2a9c04a84d5b50c8bf6bee549b48416c9835466e..9f8397cd37c95bbe801c0a77a2048350af77cab7 100644 (file)
@@ -624,7 +624,7 @@ static int get_search(uint64_t type, char ***list) {
         case SD_PATH_SYSTEMD_SYSTEM_GENERATOR_PATH:
         case SD_PATH_SYSTEMD_USER_GENERATOR_PATH: {
                 char **t;
-                const UnitFileScope scope = type == SD_PATH_SYSTEMD_SYSTEM_UNIT_PATH ?
+                const UnitFileScope scope = type == SD_PATH_SYSTEMD_SYSTEM_GENERATOR_PATH ?
                                                     UNIT_FILE_SYSTEM : UNIT_FILE_USER;
 
                 t = generator_binary_paths(scope);
index 1567bd7ee9112b7db9d5c4e4f73514cc3d80da93..9b78530334a08f0cb2adececb5d98f962badd5fe 100644 (file)
@@ -954,7 +954,7 @@ int config_parse_lifetime(const char *unit,
                           void *userdata) {
         Network *network = userdata;
         _cleanup_(address_free_or_set_invalidp) Address *n = NULL;
-        unsigned k;
+        uint32_t k;
         int r;
 
         assert(filename);
@@ -967,8 +967,8 @@ int config_parse_lifetime(const char *unit,
         if (r < 0)
                 return r;
 
-        /* We accept only "forever", "infinity", or "0". */
-        if (STR_IN_SET(rvalue, "forever", "infinity"))
+        /* We accept only "forever", "infinity", empty, or "0". */
+        if (STR_IN_SET(rvalue, "forever", "infinity", ""))
                 k = CACHE_INFO_INFINITY_LIFE_TIME;
         else if (streq(rvalue, "0"))
                 k = 0;
@@ -979,7 +979,7 @@ int config_parse_lifetime(const char *unit,
         }
 
         n->cinfo.ifa_prefered = k;
-        n = NULL;
+        TAKE_PTR(n);
 
         return 0;
 }
index 2e9cef590fffb7e81c058bdb7f0b140360603397..3427c6642aec38531c3ebbbcdab98853c71fcba9 100644 (file)
@@ -21,24 +21,15 @@ static Address* link_find_dhcp_server_address(Link *link) {
         assert(link->network);
 
         /* The first statically configured address if there is any */
-        LIST_FOREACH(addresses, address, link->network->static_addresses) {
-
-                if (address->family != AF_INET)
-                        continue;
-
-                if (in_addr_is_null(address->family, &address->in_addr))
-                        continue;
-
-                return address;
-        }
+        LIST_FOREACH(addresses, address, link->network->static_addresses)
+                if (address->family == AF_INET &&
+                    !in_addr_is_null(address->family, &address->in_addr))
+                        return address;
 
         /* If that didn't work, find a suitable address we got from the pool */
-        LIST_FOREACH(addresses, address, link->pool_addresses) {
-                if (address->family != AF_INET)
-                        continue;
-
-                return address;
-        }
+        LIST_FOREACH(addresses, address, link->pool_addresses)
+                if (address->family == AF_INET)
+                        return address;
 
         return NULL;
 }
@@ -46,9 +37,8 @@ static Address* link_find_dhcp_server_address(Link *link) {
 static int link_push_uplink_dns_to_dhcp_server(Link *link, sd_dhcp_server *s) {
         _cleanup_free_ struct in_addr *addresses = NULL;
         size_t n_addresses = 0, n_allocated = 0;
-        unsigned i;
 
-        for (i = 0; i < link->network->n_dns; i++) {
+        for (unsigned i = 0; i < link->network->n_dns; i++) {
                 struct in_addr ia;
 
                 /* Only look for IPv4 addresses */
@@ -68,16 +58,14 @@ static int link_push_uplink_dns_to_dhcp_server(Link *link, sd_dhcp_server *s) {
         }
 
         if (link->network->dhcp_use_dns && link->dhcp_lease) {
-                const struct in_addr *da = NULL;
-                int j, n;
+                const struct in_addr *da;
 
-                n = sd_dhcp_lease_get_dns(link->dhcp_lease, &da);
+                int n = sd_dhcp_lease_get_dns(link->dhcp_lease, &da);
                 if (n > 0) {
-
                         if (!GREEDY_REALLOC(addresses, n_allocated, n_addresses + n))
                                 return log_oom();
 
-                        for (j = 0; j < n; j++)
+                        for (int j = 0; j < n; j++)
                                 if (in4_addr_is_non_local(&da[j]))
                                         addresses[n_addresses++] = da[j];
                 }
@@ -160,12 +148,12 @@ static int link_push_uplink_to_dhcp_server(
         if (lease_condition && link->dhcp_lease) {
                 const struct in_addr *da;
 
-                size_t n = sd_dhcp_lease_get_servers(link->dhcp_lease, what, &da);
+                int n = sd_dhcp_lease_get_servers(link->dhcp_lease, what, &da);
                 if (n > 0) {
                         if (!GREEDY_REALLOC(addresses, n_allocated, n_addresses + n))
                                 return log_oom();
 
-                        for (unsigned i = 0; i < n; i++)
+                        for (int i = 0; i < n; i++)
                                 if (in4_addr_is_non_local(&da[i]))
                                         addresses[n_addresses++] = da[i];
                 }
index 42e6b5aef2a9aad329cd19ca416f90ffd1ebf5d1..8e2c775fcf420418faa0d9c383c7f49fda091d66 100644 (file)
@@ -1691,7 +1691,7 @@ int config_parse_dhcp_fallback_lease_lifetime(const char *unit,
                 void *data,
                 void *userdata) {
         Network *network = userdata;
-        unsigned k;
+        uint32_t k;
 
         assert(filename);
         assert(section);