mirror of
https://github.com/systemd/systemd.git
synced 2025-03-19 22:50:17 +03:00
network: DHCP6 Allow to export DHCP6 DUID (#31355)
We did not support the export of DHCP6 DUID. Let's add this. Some applications may use it.
This commit is contained in:
parent
68ad9e43f6
commit
e5aa8c193d
@ -1076,6 +1076,29 @@ static int dhcp6_client_pd_append_json(Link *link, JsonVariant **v) {
|
||||
return json_variant_set_field_non_null(v, "Prefixes", array);
|
||||
}
|
||||
|
||||
static int dhcp6_client_duid_append_json(Link *link, JsonVariant **v) {
|
||||
const sd_dhcp_duid *duid;
|
||||
const void *data;
|
||||
size_t data_size;
|
||||
int r;
|
||||
|
||||
assert(link);
|
||||
assert(v);
|
||||
|
||||
if (!link->dhcp6_client)
|
||||
return 0;
|
||||
|
||||
r = sd_dhcp6_client_get_duid(link->dhcp6_client, &duid);
|
||||
if (r < 0)
|
||||
return 0;
|
||||
|
||||
r = sd_dhcp_duid_get_raw(&link->dhcp6_client->duid, &data, &data_size);
|
||||
if (r < 0)
|
||||
return 0;
|
||||
|
||||
return json_variant_merge_objectb(v, JSON_BUILD_OBJECT(JSON_BUILD_PAIR_BYTE_ARRAY("DUID", data, data_size)));
|
||||
}
|
||||
|
||||
static int dhcp6_client_append_json(Link *link, JsonVariant **v) {
|
||||
_cleanup_(json_variant_unrefp) JsonVariant *w = NULL;
|
||||
int r;
|
||||
@ -1098,6 +1121,10 @@ static int dhcp6_client_append_json(Link *link, JsonVariant **v) {
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
r = dhcp6_client_duid_append_json(link, &w);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
return json_variant_set_field_non_null(v, "DHCPv6Client", w);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user