From: Susant Sahani Date: Tue, 20 Feb 2024 08:33:13 +0000 (+0530) Subject: network: JSON - Export DHCPv4 client ID X-Git-Tag: v256-rc1~786 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=09584d7afb2f48cdce8c32ce2ce3f3ad12cf3966;p=thirdparty%2Fsystemd.git network: JSON - Export DHCPv4 client ID Allow networkd to export the DHCP4 client ID which right now we don't support. --- diff --git a/src/network/networkd-json.c b/src/network/networkd-json.c index 134fb6bb2aa..7eb23443727 100644 --- a/src/network/networkd-json.c +++ b/src/network/networkd-json.c @@ -1220,6 +1220,29 @@ static int dhcp_client_private_options_append_json(Link *link, JsonVariant **v) return json_variant_set_field_non_null(v, "PrivateOptions", array); } +static int dhcp_client_id_append_json(Link *link, JsonVariant **v) { + const sd_dhcp_client_id *client_id; + const void *data; + size_t l; + int r; + + assert(link); + assert(v); + + if (!link->dhcp_client) + return 0; + + r = sd_dhcp_client_get_client_id(link->dhcp_client, &client_id); + if (r < 0) + return 0; + + r = sd_dhcp_client_id_get_raw(client_id, &data, &l); + if (r < 0) + return 0; + + return json_variant_merge_objectb(v, JSON_BUILD_OBJECT(JSON_BUILD_PAIR_BYTE_ARRAY("ClientIdentifier", data, l))); +} + static int dhcp_client_append_json(Link *link, JsonVariant **v) { _cleanup_(json_variant_unrefp) JsonVariant *w = NULL; int r; @@ -1242,6 +1265,10 @@ static int dhcp_client_append_json(Link *link, JsonVariant **v) { if (r < 0) return r; + r = dhcp_client_id_append_json(link, &w); + if (r < 0) + return r; + return json_variant_set_field_non_null(v, "DHCPv4Client", w); }