networkctl: Display address is a DHCP4 address
authorSusant Sahani <ssahani@vmware.com>
Mon, 9 Sep 2019 14:27:40 +0000 (19:57 +0530)
committerSusant Sahani <ssahani@vmware.com>
Mon, 9 Sep 2019 14:31:54 +0000 (20:01 +0530)
CLoses https://github.com/systemd/systemd/issues/10839

src/network/networkctl.c

index 3100a2e..a7cccbc 100644 (file)
@@ -678,6 +678,7 @@ static int dump_addresses(
                 int ifindex) {
 
         _cleanup_free_ struct local_address *local = NULL;
+        _cleanup_free_ char *dhcp4_address = NULL;
         int r, n, i;
 
         assert(rtnl);
@@ -687,6 +688,8 @@ static int dump_addresses(
         if (n < 0)
                 return n;
 
+        (void) sd_network_link_get_dhcp4_address(ifindex, &dhcp4_address);
+
         for (i = 0; i < n; i++) {
                 _cleanup_free_ char *pretty = NULL;
 
@@ -700,6 +703,15 @@ static int dump_addresses(
                 if (r < 0)
                         return r;
 
+                if (dhcp4_address && streq(pretty, dhcp4_address)) {
+                        _cleanup_free_ char *p = NULL;
+
+                        p = pretty;
+                        pretty = strjoin(pretty , " (DHCP4)");
+                        if (!pretty)
+                                return log_oom();
+                }
+
                 if (ifindex <= 0) {
                         char name[IF_NAMESIZE+1];