Merge pull request #16085 from ssahani/network-client-id
networkctl: add support to display DHCPv4 client ID
This commit is contained in:
commit
a4d1bef73f
|
@ -168,6 +168,10 @@ _public_ int sd_network_link_get_address_state(int ifindex, char **state) {
|
||||||
return network_link_get_string(ifindex, "ADDRESS_STATE", state);
|
return network_link_get_string(ifindex, "ADDRESS_STATE", state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_public_ int sd_network_link_get_dhcp4_client_id_string(int ifindex, char **client_id) {
|
||||||
|
return network_link_get_string(ifindex, "DHCP4_CLIENT_ID", client_id);
|
||||||
|
}
|
||||||
|
|
||||||
_public_ int sd_network_link_get_required_for_online(int ifindex) {
|
_public_ int sd_network_link_get_required_for_online(int ifindex) {
|
||||||
_cleanup_free_ char *s = NULL;
|
_cleanup_free_ char *s = NULL;
|
||||||
int r;
|
int r;
|
||||||
|
|
|
@ -1381,7 +1381,7 @@ static int link_status_one(
|
||||||
_cleanup_strv_free_ char **dns = NULL, **ntp = NULL, **sip = NULL, **search_domains = NULL, **route_domains = NULL,
|
_cleanup_strv_free_ char **dns = NULL, **ntp = NULL, **sip = NULL, **search_domains = NULL, **route_domains = NULL,
|
||||||
**pop3_server = NULL, **smtp_server = NULL, **lpr_server = NULL;
|
**pop3_server = NULL, **smtp_server = NULL, **lpr_server = NULL;
|
||||||
_cleanup_free_ char *setup_state = NULL, *operational_state = NULL, *tz = NULL;
|
_cleanup_free_ char *setup_state = NULL, *operational_state = NULL, *tz = NULL;
|
||||||
_cleanup_free_ char *t = NULL, *network = NULL;
|
_cleanup_free_ char *t = NULL, *network = NULL, *client_id = NULL;
|
||||||
const char *driver = NULL, *path = NULL, *vendor = NULL, *model = NULL, *link = NULL;
|
const char *driver = NULL, *path = NULL, *vendor = NULL, *model = NULL, *link = NULL;
|
||||||
const char *on_color_operational, *off_color_operational,
|
const char *on_color_operational, *off_color_operational,
|
||||||
*on_color_setup, *off_color_setup;
|
*on_color_setup, *off_color_setup;
|
||||||
|
@ -2073,6 +2073,16 @@ static int link_status_one(
|
||||||
return table_log_add_error(r);
|
return table_log_add_error(r);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
r = sd_network_link_get_dhcp4_client_id_string(info->ifindex, &client_id);
|
||||||
|
if (r >= 0) {
|
||||||
|
r = table_add_many(table,
|
||||||
|
TABLE_EMPTY,
|
||||||
|
TABLE_STRING, "DHCP4 Client ID:",
|
||||||
|
TABLE_STRING, client_id);
|
||||||
|
if (r < 0)
|
||||||
|
return table_log_add_error(r);
|
||||||
|
}
|
||||||
|
|
||||||
r = dump_lldp_neighbors(table, "Connected To:", info->ifindex);
|
r = dump_lldp_neighbors(table, "Connected To:", info->ifindex);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
|
|
|
@ -4374,6 +4374,8 @@ int link_save(Link *link) {
|
||||||
if (link->dhcp_lease) {
|
if (link->dhcp_lease) {
|
||||||
struct in_addr address;
|
struct in_addr address;
|
||||||
const char *tz = NULL;
|
const char *tz = NULL;
|
||||||
|
size_t client_id_len;
|
||||||
|
const void *client_id;
|
||||||
|
|
||||||
assert(link->network);
|
assert(link->network);
|
||||||
|
|
||||||
|
@ -4388,6 +4390,15 @@ int link_save(Link *link) {
|
||||||
fputc('\n', f);
|
fputc('\n', f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
r = sd_dhcp_lease_get_client_id(link->dhcp_lease, &client_id, &client_id_len);
|
||||||
|
if (r >= 0) {
|
||||||
|
_cleanup_free_ char *id = NULL;
|
||||||
|
|
||||||
|
r = sd_dhcp_client_id_to_string(client_id, client_id_len, &id);
|
||||||
|
if (r >= 0)
|
||||||
|
fprintf(f, "DHCP4_CLIENT_ID=%s\n", id);
|
||||||
|
}
|
||||||
|
|
||||||
r = dhcp_lease_save(link->dhcp_lease, link->lease_file);
|
r = dhcp_lease_save(link->dhcp_lease, link->lease_file);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
|
@ -188,6 +188,9 @@ int sd_network_link_get_carrier_bound_by(int ifindex, int **ifindexes);
|
||||||
/* Get the timezone that was learnt on a specific link. */
|
/* Get the timezone that was learnt on a specific link. */
|
||||||
int sd_network_link_get_timezone(int ifindex, char **timezone);
|
int sd_network_link_get_timezone(int ifindex, char **timezone);
|
||||||
|
|
||||||
|
/* Get DHCPv4 client id for a given link. */
|
||||||
|
int sd_network_link_get_dhcp4_client_id_string(int ifindex, char **client_id);
|
||||||
|
|
||||||
/* Monitor object */
|
/* Monitor object */
|
||||||
typedef struct sd_network_monitor sd_network_monitor;
|
typedef struct sd_network_monitor sd_network_monitor;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue