***/
#include "sd-event.h"
+#include "event-util.h"
#include "sd-daemon.h"
#include "sd-network.h"
+#include "network-util.h"
#include "util.h"
_cleanup_free_ char *state = NULL;
r = sd_network_get_link_state(indices[i], &state);
- if (r < 0)
+ if (r == -EUNATCH)
+ continue;
+ if (r < 0 || !streq(state, "configured"))
return false;
- if (streq(state, "configured"))
- one_ready = true;
-
- if (!streq(state, "configured") && !streq(state, "unmanaged"))
- return false;
+ one_ready = true;
}
- if (one_ready)
- return true;
-
- return false;
+ return one_ready;
}
static int event_handler(sd_event_source *s, int fd, uint32_t revents,
}
int main(int argc, char *argv[]) {
- sd_event *event;
- sd_event_source *event_source;
- sd_network_monitor *monitor;
+ _cleanup_event_unref_ sd_event *event = NULL;
+ _cleanup_event_source_unref_ sd_event_source *event_source = NULL;
+ _cleanup_network_monitor_unref_ sd_network_monitor *monitor = NULL;
int r, fd, events;
log_set_target(LOG_TARGET_AUTO);
sd_notify(false,
"READY=1\n"
- "STATUS=Waiting for network connecitons...");
+ "STATUS=Waiting for network connections...");
r = sd_event_loop(event);
if (r < 0) {
sd_notify(false,
"STATUS=All interfaces configured...");
- sd_event_source_unref(event_source);
- sd_event_unref(event);
- sd_network_monitor_unref(monitor);
-
return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
}