- }
-
- /* wait for all links networkd manages to be in admin state 'configured'
- and at least one link to gain a carrier */
- for (i = 0; i < n; i++) {
- _cleanup_free_ char *state = NULL, *oper_state = NULL;
-
- if (sd_network_link_is_loopback(indices[i]))
- /* ignore loopback devices */
- continue;
-
- r = sd_network_get_link_state(indices[i], &state);
- if (r == -EBUSY || (r >= 0 && !streq(state, "configured")))
- /* not yet processed by udev, or managed by networkd, but not yet configured */
- return false;
-
- r = sd_network_get_link_operational_state(indices[i], &oper_state);
- if (r >= 0 &&
- (streq(oper_state, "degraded") ||
- streq(oper_state, "routable")))
- /* we wait for at least one link to be ready,
- regardless of who manages it */
- one_ready = true;
- }
-
- return one_ready;
-}
-
-static int monitor_event_handler(sd_event_source *s, int fd, uint32_t revents,
- void *userdata) {
- Manager *m = userdata;
-
- assert(m);
- assert(m->event);
-
- if (all_configured(m))
- sd_event_exit(m->event, 0);
-
- sd_network_monitor_flush(m->monitor);