assert(link);
+ log_link_info(link, "Gained carrier");
+
r = event_source_disable(link->carrier_lost_timer);
if (r < 0)
log_link_warning_errno(link, r, "Failed to disable carrier lost timer, ignoring: %m");
assert(link);
+ log_link_info(link, "Lost carrier");
+
if (link->iftype == ARPHRD_CAN)
/* let's shortcut things for CAN which doesn't need most of what's done below. */
usec = 0;
/* This is called every time an interface admin state changes to up;
* specifically, when IFF_UP flag changes from unset to set. */
+ log_link_info(link, "Link UP");
+
if (!link->network)
return 0;
static int link_admin_state_down(Link *link) {
assert(link);
+ log_link_info(link, "Link DOWN");
+
link_forget_nexthops(link);
link_forget_routes(link);
link_update_operstate(link, true);
- if (!link_was_admin_up && (link->flags & IFF_UP)) {
- log_link_info(link, "Link UP");
+ r = 0;
+ if (!link_was_admin_up && (link->flags & IFF_UP))
r = link_admin_state_up(link);
- if (r < 0)
- return r;
- } else if (link_was_admin_up && !(link->flags & IFF_UP)) {
- log_link_info(link, "Link DOWN");
-
+ else if (link_was_admin_up && !(link->flags & IFF_UP))
r = link_admin_state_down(link);
- if (r < 0)
- return r;
- }
-
- if (!had_carrier && link_has_carrier(link)) {
- log_link_info(link, "Gained carrier");
+ if (r < 0)
+ return r;
+ if (!had_carrier && link_has_carrier(link))
r = link_carrier_gained(link);
- if (r < 0)
- return r;
- } else if (had_carrier && !link_has_carrier(link)) {
- log_link_info(link, "Lost carrier");
-
- r = link_carrier_lost(link);
- if (r < 0)
- return r;
- }
+ else if (had_carrier && !link_has_carrier(link))
+ link_carrier_lost(link);
+ if (r < 0)
+ return r;
return 0;
}