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.
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user