diff --git a/src/network/networkd-address.c b/src/network/networkd-address.c index 107f19fd15..eae374323e 100644 --- a/src/network/networkd-address.c +++ b/src/network/networkd-address.c @@ -462,14 +462,9 @@ static int address_add(Link *link, Address *address) { } static int address_update(Address *address) { - Link *link; + Link *link = ASSERT_PTR(ASSERT_PTR(address)->link); int r; - assert(address); - assert(address->link); - - link = address->link; - if (address_is_ready(address) && address->family == AF_INET6 && in6_addr_is_link_local(&address->in_addr.in6) && @@ -485,7 +480,7 @@ static int address_update(Address *address) { if (IN_SET(link->state, LINK_STATE_FAILED, LINK_STATE_LINGER)) return 0; - r = address_set_masquerade(address, true); + r = address_set_masquerade(address, /* add = */ true); if (r < 0) return log_link_warning_errno(link, r, "Could not enable IP masquerading: %m"); @@ -497,23 +492,16 @@ static int address_update(Address *address) { return r; } - link_update_operstate(link, true); + link_update_operstate(link, /* also_update_master = */ true); link_check_ready(link); return 0; } static int address_drop(Address *address) { - Link *link; - bool ready; + Link *link = ASSERT_PTR(ASSERT_PTR(address)->link); int r; - assert(address); - assert(address->link); - - ready = address_is_ready(address); - link = address->link; - - r = address_set_masquerade(address, false); + r = address_set_masquerade(address, /* add = */ false); if (r < 0) log_link_warning_errno(link, r, "Failed to disable IP masquerading, ignoring: %m"); @@ -522,11 +510,8 @@ static int address_drop(Address *address) { if (address->state == 0) address_free(address); - link_update_operstate(link, true); - - if (link && !ready) - link_check_ready(link); - + link_update_operstate(link, /* also_update_master = */ true); + link_check_ready(link); return 0; } diff --git a/src/network/networkd-util.h b/src/network/networkd-util.h index e8c390196e..31ff4bc425 100644 --- a/src/network/networkd-util.h +++ b/src/network/networkd-util.h @@ -91,6 +91,7 @@ int network_config_state_to_string_alloc(NetworkConfigState s, char **ret); 0); \ } \ static inline bool name##_is_requesting(type *t) { \ + assert(t); \ return FLAGS_SET(t->state, NETWORK_CONFIG_STATE_REQUESTING); \ } \ static inline void name##_enter_configuring(type *t) { \