hi, sorry for the delay. from http://www.freedesktop.org/software/systemd/man/systemd-networkd-wait-online.service.html:
"By default, it will wait for all links it is aware of and which are managed by systemd-networkd.service(8) to be fully configured or failed, *and for at least one link to gain a carrier.*". the import part here is the end of the sentence. without this patch, systemd-networkd-wait-online will block until all configured interfaces have carrier.. you can reproduce this by running systemd-networkd in qemu with two ethernet interfaces, and issue 'info network' and then 'set_link <if> down' to simulate no carrier. then you can run systemd-networkd-wait-online, and observe that it will block until both interfaces are up, not just one. nick On Wed, Mar 25, 2015 at 10:53 PM, Andrei Borzenkov <[email protected]> wrote: > On Wed, Mar 25, 2015 at 11:49 PM, <[email protected]> wrote: >> From: mischief <[email protected]> >> >> when checking interface status, systemd-networkd-wait-online >> will continue to wait if any interface is still configuring or >> being processed by udev. this patch allows it to return if any >> one interface is degraded/routable, as per the manual. > > But current behavior is exactly what manual says: "By default, it will > wait for all links it is aware of and which are managed by > systemd-networkd.service(8) to be fully configured or failed". Or do I > miss something? > >> --- >> src/network/networkd-wait-online-manager.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/src/network/networkd-wait-online-manager.c >> b/src/network/networkd-wait-online-manager.c >> index 1c997a5..1ac162a 100644 >> --- a/src/network/networkd-wait-online-manager.c >> +++ b/src/network/networkd-wait-online-manager.c >> @@ -74,13 +74,13 @@ bool manager_all_configured(Manager *m) { >> if (!l->state) { >> log_debug("link %s has not yet been processed by >> udev", >> l->ifname); >> - return false; >> + continue; >> } >> >> if (streq(l->state, "configuring")) { >> log_debug("link %s is being processed by networkd", >> l->ifname); >> - return false; >> + continue; >> } >> >> if (l->operational_state && >> -- >> 2.0.5 >> >> _______________________________________________ >> systemd-devel mailing list >> [email protected] >> http://lists.freedesktop.org/mailman/listinfo/systemd-devel _______________________________________________ systemd-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/systemd-devel
