1
0
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:
Susant Sahani 2024-02-21 16:02:27 +05:30 committed by GitHub
parent 68ad9e43f6
commit e5aa8c193d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -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);
}