From: Yu Watanabe Date: Wed, 1 Apr 2026 14:34:19 +0000 (+0900) Subject: networkctl: always use DHCP message serialized in JSON desciption X-Git-Tag: v261-rc1~136^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7f2c6185fe0244b3ae49e5dfee09d94b282971c3;p=thirdparty%2Fsystemd.git networkctl: always use DHCP message serialized in JSON desciption Now the interface description by networkd always contains DHCP message (of course when there is a bound DHCP lease). Let's use it. --- diff --git a/src/network/networkctl-dump-util.c b/src/network/networkctl-dump-util.c index 15fdb103b6d..e6fbc45d9a9 100644 --- a/src/network/networkctl-dump-util.c +++ b/src/network/networkctl-dump-util.c @@ -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) { diff --git a/src/network/networkctl-dump-util.h b/src/network/networkctl-dump-util.h index 2aafaae4756..a4c02f03906 100644 --- a/src/network/networkctl-dump-util.h +++ b/src/network/networkctl-dump-util.h @@ -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); diff --git a/src/network/networkctl-status-link.c b/src/network/networkctl-status-link.c index 9543953df49..dc765a74f12 100644 --- a/src/network/networkctl-status-link.c +++ b/src/network/networkctl-status-link.c @@ -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)) { diff --git a/src/network/networkctl-status-system.c b/src/network/networkctl-status-system.c index 78dd77819da..35de930423a 100644 --- a/src/network/networkctl-status-system.c +++ b/src/network/networkctl-status-system.c @@ -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;