X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fnetwork%2Fnetworkd-link.c;h=b5f5863e6b60ac79bbfe64fef635994aa0442605;hb=2a5948f715b1b4a5510b723755a263602349a8af;hp=d25343ba2ba4d87125a444132bdabed7f6d51f3b;hpb=6192b846ca0d15602e94ddb5da4420b7c60d64a5;p=elogind.git diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c index d25343ba2..b5f5863e6 100644 --- a/src/network/networkd-link.c +++ b/src/network/networkd-link.c @@ -1052,7 +1052,6 @@ static int link_joined(Link *link) { int r; assert(link); - assert(link->state == LINK_STATE_ENSLAVING); assert(link->network); if (!(link->flags & IFF_UP)) { @@ -1072,8 +1071,6 @@ static int netdev_join_handler(sd_rtnl *rtnl, sd_rtnl_message *m, int r; assert(link); - assert(IN_SET(link->state, LINK_STATE_ENSLAVING, LINK_STATE_FAILED, - LINK_STATE_LINGER)); assert(link->network); link->enslaving --; @@ -1721,10 +1718,17 @@ int link_save(Link *link) { admin_state, oper_state); if (link->network) { - char **address; - char **domain; + char **address, **domain; + bool space; fputs("DNS=", f); + space = false; + STRV_FOREACH(address, link->network->dns) { + if (space) + fputc(' ', f); + fputs(*address, f); + space = true; + } if (link->network->dhcp_dns && link->dhcp_lease) { @@ -1732,19 +1736,22 @@ int link_save(Link *link) { r = sd_dhcp_lease_get_dns(link->dhcp_lease, &addresses); if (r > 0) { + if (space) + fputc(' ', f); serialize_in_addrs(f, addresses, r); - if (link->network->dns) - fputs(" ", f); } } - STRV_FOREACH(address, link->network->dns) - fprintf(f, "%s%s", *address, - (address + 1 ? " " : "")); - fputs("\n", f); fprintf(f, "NTP="); + space = false; + STRV_FOREACH(address, link->network->ntp) { + if (space) + fputc(' ', f); + fputs(*address, f); + space = true; + } if (link->network->dhcp_ntp && link->dhcp_lease) { @@ -1752,19 +1759,22 @@ int link_save(Link *link) { r = sd_dhcp_lease_get_ntp(link->dhcp_lease, &addresses); if (r > 0) { + if (space) + fputc(' ', f); serialize_in_addrs(f, addresses, r); - if (link->network->ntp) - fputs(" ", f); } } - STRV_FOREACH(address, link->network->ntp) - fprintf(f, "%s%s", *address, - (address + 1 ? " " : "")); - fputs("\n", f); fprintf(f, "DOMAINS="); + space = false; + STRV_FOREACH(domain, link->network->domains) { + if (space) + fputc(' ', f); + fputs(*domain, f); + space = true; + } if (link->network->dhcp_domains && link->dhcp_lease) { @@ -1772,18 +1782,17 @@ int link_save(Link *link) { r = sd_dhcp_lease_get_domainname(link->dhcp_lease, &domainname); if (r >= 0) { + if (space) + fputc(' ', f); fputs(domainname, f); - if (link->network->domains) - fputs(" ", f); } } - STRV_FOREACH(domain, link->network->domains) - fprintf(f, "%s%s", *domain, - (domain + 1 ? " " : "")); - fputs("\n", f); + fprintf(f, "WILDCARD_DOMAIN=%s\n", + yes_no(link->network->wildcard_domain)); + fprintf(f, "LLMNR=%s\n", llmnr_support_to_string(link->network->llmnr)); }