diff options
Diffstat (limited to 'src/network/networkd-link.c')
-rw-r--r-- | src/network/networkd-link.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c index cb7df633b7..8d6992cee8 100644 --- a/src/network/networkd-link.c +++ b/src/network/networkd-link.c @@ -255,9 +255,10 @@ static int link_enable_ipv6(Link *link) { r = write_string_file(p, one_zero(disabled), WRITE_STRING_FILE_VERIFY_ON_FAILURE); if (r < 0) - log_link_warning_errno(link, r, "Cannot %s IPv6 for interface %s: %m", disabled ? "disable" : "enable", link->ifname); + log_link_warning_errno(link, r, "Cannot %s IPv6 for interface %s: %m", + enable_disable(!disabled), link->ifname); else - log_link_info(link, "IPv6 %sd for interface: %m", enable_disable(!disabled)); + log_link_info(link, "IPv6 successfully %sd", enable_disable(!disabled)); return 0; } @@ -686,18 +687,18 @@ static Address* link_find_dhcp_server_address(Link *link) { return NULL; } -static int link_enter_configured(Link *link) { +static void link_enter_configured(Link *link) { assert(link); assert(link->network); - assert(link->state == LINK_STATE_SETTING_ROUTES); + + if (link->state != LINK_STATE_SETTING_ROUTES) + return; log_link_info(link, "Configured"); link_set_state(link, LINK_STATE_CONFIGURED); link_dirty(link); - - return 0; } void link_check_ready(Link *link) { @@ -2523,6 +2524,9 @@ static int link_initialized_and_synced(sd_netlink *rtnl, sd_netlink_message *m, if (r == -ENOENT) { link_enter_unmanaged(link); return 1; + } else if (r == 0 && network->unmanaged) { + link_enter_unmanaged(link); + return 0; } else if (r < 0) return r; |