]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - src/network/networkctl.c
networkd: rework Domains= setting
[thirdparty/systemd.git] / src / network / networkctl.c
index 4a8fa4d8f3c64809bd9080fb5f811fe6497cf44f..c710ecda61807b815956accfa65e0c03cdce5baa 100644 (file)
@@ -502,7 +502,7 @@ static int link_status_one(
                 sd_netlink *rtnl,
                 sd_hwdb *hwdb,
                 const char *name) {
-        _cleanup_strv_free_ char **dns = NULL, **ntp = NULL, **domains = NULL;
+        _cleanup_strv_free_ char **dns = NULL, **ntp = NULL, **search_domains = NULL, **route_domains = NULL;
         _cleanup_free_ char *setup_state = NULL, *operational_state = NULL, *tz = NULL;
         _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *req = NULL, *reply = NULL;
         _cleanup_(sd_device_unrefp) sd_device *d = NULL;
@@ -576,18 +576,8 @@ static int link_status_one(
         setup_state_to_color(setup_state, &on_color_setup, &off_color_setup);
 
         sd_network_link_get_dns(ifindex, &dns);
-        sd_network_link_get_domains(ifindex, &domains);
-        r = sd_network_link_get_wildcard_domain(ifindex);
-        if (r > 0) {
-                char *wildcard;
-
-                wildcard = strdup("*");
-                if (!wildcard)
-                        return log_oom();
-
-                if (strv_consume(&domains, wildcard) < 0)
-                        return log_oom();
-        }
+        sd_network_link_get_search_domains(ifindex, &search_domains);
+        sd_network_link_get_route_domains(ifindex, &route_domains);
 
         sprintf(devid, "n%i", ifindex);
 
@@ -655,8 +645,10 @@ static int link_status_one(
 
         if (!strv_isempty(dns))
                 dump_list("             DNS: ", dns);
-        if (!strv_isempty(domains))
-                dump_list("          Domain: ", domains);
+        if (!strv_isempty(search_domains))
+                dump_list("  Search Domains: ", search_domains);
+        if (!strv_isempty(route_domains))
+                dump_list("   Route Domains: ", route_domains);
 
         (void) sd_network_link_get_ntp(ifindex, &ntp);
         if (!strv_isempty(ntp))
@@ -691,30 +683,35 @@ static int link_status(int argc, char *argv[], void *userdata) {
 
         if (argc <= 1 && !arg_all) {
                 _cleanup_free_ char *operational_state = NULL;
-                _cleanup_strv_free_ char **dns = NULL, **ntp = NULL, **domains = NULL;
+                _cleanup_strv_free_ char **dns = NULL, **ntp = NULL, **search_domains = NULL, **route_domains;
                 const char *on_color_operational, *off_color_operational;
 
                 sd_network_get_operational_state(&operational_state);
                 operational_state_to_color(operational_state, &on_color_operational, &off_color_operational);
 
-                printf("%s%s%s      State: %s%s%s\n",
+                printf("%s%s%s        State: %s%s%s\n",
                        on_color_operational, draw_special_char(DRAW_BLACK_CIRCLE), off_color_operational,
                        on_color_operational, strna(operational_state), off_color_operational);
 
-                dump_addresses(rtnl, "     Address: ", 0);
-                dump_gateways(rtnl, hwdb, "     Gateway: ", 0);
+                dump_addresses(rtnl, "       Address: ", 0);
+                dump_gateways(rtnl, hwdb, "       Gateway: ", 0);
 
                 sd_network_get_dns(&dns);
                 if (!strv_isempty(dns))
-                        dump_list("         DNS: ", dns);
+                        dump_list("           DNS: ", dns);
+
+                sd_network_get_search_domains(&search_domains);
+                if (!strv_isempty(search_domains))
+                        dump_list("Search Domains: ", search_domains);
+
+                sd_network_get_route_domains(&route_domains);
+                if (!strv_isempty(route_domains))
+                        dump_list(" Route Domains: ", route_domains);
 
-                sd_network_get_domains(&domains);
-                if (!strv_isempty(domains))
-                        dump_list("      Domain: ", domains);
 
                 sd_network_get_ntp(&ntp);
                 if (!strv_isempty(ntp))
-                        dump_list("         NTP: ", ntp);
+                        dump_list("           NTP: ", ntp);
 
                 return 0;
         }