Merge pull request #15872 from keszybz/networkd-types

Type and parsing fixes for networkd
This commit is contained in:
Lennart Poettering 2020-05-25 17:31:00 +02:00 committed by GitHub
commit a177f05a5c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 19 additions and 31 deletions

View 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);

View 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;
}

View 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];
}

View 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);