]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
networkctl: always use DHCP message serialized in JSON desciption
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 1 Apr 2026 14:34:19 +0000 (23:34 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 16 May 2026 16:31:42 +0000 (01:31 +0900)
Now the interface description by networkd always contains DHCP message
(of course when there is a bound DHCP lease). Let's use it.

src/network/networkctl-dump-util.c
src/network/networkctl-dump-util.h
src/network/networkctl-status-link.c
src/network/networkctl-status-system.c

index 15fdb103b6d76d3df1e4b42021c8df1d9c248282..e6fbc45d9a923c02cce8e8b7fcbfe678a919d460 100644 (file)
@@ -1,6 +1,5 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 
-#include "sd-dhcp-lease.h"
 #include "sd-hwdb.h"
 #include "sd-netlink.h"
 
@@ -212,7 +211,6 @@ int dump_gateways(sd_netlink *rtnl, sd_hwdb *hwdb, Table *table, int ifindex) {
 int dump_addresses(
                 sd_netlink *rtnl,
                 sd_dhcp_message *message,
-                sd_dhcp_lease *lease,
                 Table *table,
                 int ifindex) {
 
@@ -233,9 +231,6 @@ int dump_addresses(
                 if (dhcp_message_get_option_address(message, SD_DHCP_OPTION_SERVER_IDENTIFIER, &server_address) < 0)
                         /* The message should be BOOTP, let's fallback to the siaddr field. */
                         server_address.s_addr = message->header.siaddr;
-        } else if (lease) {
-                (void) sd_dhcp_lease_get_address(lease, &dhcp4_address);
-                (void) sd_dhcp_lease_get_server_identifier(lease, &server_address);
         }
 
         FOREACH_ARRAY(local, local_addrs, n) {
index 2aafaae475670ab98c77ca9b901784d6af5b1ad8..a4c02f0390625b68a382f65ce4c3ad502b970463 100644 (file)
@@ -8,4 +8,4 @@
 int dump_list(Table *table, const char *key, char * const *l);
 int ieee_oui(sd_hwdb *hwdb, const struct ether_addr *mac, char **ret);
 int dump_gateways(sd_netlink *rtnl, sd_hwdb *hwdb, Table *table, int ifindex);
-int dump_addresses(sd_netlink *rtnl, sd_dhcp_message *message, sd_dhcp_lease *lease, Table *table, int ifindex);
+int dump_addresses(sd_netlink *rtnl, sd_dhcp_message *message, Table *table, int ifindex);
index 9543953df496dc42899d9187e56cd6bb6cc94cd9..dc765a74f1216b6dd540e53bfe28f392dc855043 100644 (file)
@@ -2,7 +2,6 @@
 
 #include "sd-device.h"
 #include "sd-dhcp-client-id.h"
-#include "sd-dhcp-lease.h"
 #include "sd-dhcp-protocol.h"
 #include "sd-hwdb.h"
 #include "sd-netlink.h"
@@ -24,7 +23,6 @@
 #include "json-util.h"
 #include "macvlan-util.h"
 #include "netif-util.h"
-#include "network-internal.h"
 #include "networkctl.h"
 #include "networkctl-description.h"
 #include "networkctl-dump-util.h"
@@ -242,7 +240,6 @@ static int link_status_one(
         const char *driver = NULL, *path = NULL, *vendor = NULL, *model = NULL, *link = NULL,
                 *on_color_operational, *off_color_operational, *on_color_setup, *off_color_setup, *on_color_online;
         _cleanup_free_ int *carrier_bound_to = NULL, *carrier_bound_by = NULL;
-        _cleanup_(sd_dhcp_lease_unrefp) sd_dhcp_lease *lease = NULL;
         _cleanup_(table_unrefp) Table *table = NULL;
         int r;
 
@@ -294,11 +291,6 @@ static int link_status_one(
         if (r == -ENOMEM)
                 return log_oom();
 
-        char lease_file[STRLEN("/run/systemd/netif/leases/") + DECIMAL_STR_MAX(int)];
-        xsprintf(lease_file, "/run/systemd/netif/leases/%i", info->ifindex);
-
-        (void) dhcp_lease_load(&lease, lease_file);
-
         r = format_config_files(&network_dropins, network);
         if (r < 0)
                 return r;
@@ -780,7 +772,7 @@ static int link_status_one(
                         return r;
         }
 
-        r = dump_addresses(rtnl, info->dhcp_message, lease, table, info->ifindex);
+        r = dump_addresses(rtnl, info->dhcp_message, table, info->ifindex);
         if (r < 0)
                 return r;
 
@@ -849,17 +841,6 @@ static int link_status_one(
                         if (r < 0)
                                 return table_log_add_error(r);
                 }
-        } else if (lease) {
-                const char *tz;
-
-                r = sd_dhcp_lease_get_timezone(lease, &tz);
-                if (r >= 0) {
-                        r = table_add_many(table,
-                                           TABLE_FIELD, "Time Zone",
-                                           TABLE_STRING, tz);
-                        if (r < 0)
-                                return table_log_add_error(r);
-                }
         }
 
         if (sd_dhcp_client_id_is_set(&info->dhcp_client_id)) {
index 78dd77819dac239e48a8a2082f7fb8a2a452a8fd..35de930423a45b4350856d4c69567b42590ec111 100644 (file)
@@ -94,7 +94,7 @@ int system_status(sd_netlink *rtnl, sd_hwdb *hwdb) {
         if (r < 0)
                 return table_log_add_error(r);
 
-        r = dump_addresses(rtnl, /* message= */ NULL, /* lease= */ NULL, table, /* ifindex= */ 0);
+        r = dump_addresses(rtnl, /* message= */ NULL, table, /* ifindex= */ 0);
         if (r < 0)
                 return r;