about summary refs log tree commit diff
path: root/src/core/nm-dhcp-config.c
diff options
context:
space:
mode:
authorJeremy Bicha <jeremy.bicha@canonical.com>2022-08-18 08:31:29 -0400
committerJeremy Bicha <jeremy.bicha@canonical.com>2022-08-18 08:31:29 -0400
commitb0887dd4d035acc0d84aa859748d36891548eaaf (patch)
treec4dc0dae50954f3c8fb600aa9e7cfaabeb80deb0 /src/core/nm-dhcp-config.c
parent1a62dcfdc0470be37743914da69fe0b0677c6bfb (diff)
parent4741f1a52215c7ba466140912084d6906185bef3 (diff)
Merge branch 'debian/master' into ubuntu/master
Diffstat (limited to 'src/core/nm-dhcp-config.c')
-rw-r--r--src/core/nm-dhcp-config.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/core/nm-dhcp-config.c b/src/core/nm-dhcp-config.c
index b32c9b70..394a3a49 100644
--- a/src/core/nm-dhcp-config.c
+++ b/src/core/nm-dhcp-config.c
@@ -125,6 +125,29 @@ nm_dhcp_config_set_lease(NMDhcpConfig *self, const NML3ConfigData *l3cd)
     _notify(self, PROP_OPTIONS);
 }
 
+NMUtilsNamedValue *
+nm_dhcp_config_get_option_values(NMDhcpConfig *self, guint *num)
+{
+    NMDhcpConfigPrivate *priv = NM_DHCP_CONFIG_GET_PRIVATE(self);
+    NMDhcpLease         *lease;
+    NMUtilsNamedValue   *buffer = NULL;
+
+    if (!priv->l3cd) {
+        NM_SET_OUT(num, 0);
+        return NULL;
+    }
+
+    lease = nm_l3_config_data_get_dhcp_lease(priv->l3cd, nm_dhcp_config_get_addr_family(self));
+    nm_utils_named_values_from_strdict_full(nm_dhcp_lease_get_options(lease),
+                                            num,
+                                            nm_strcmp_p_with_data,
+                                            NULL,
+                                            NULL,
+                                            0,
+                                            &buffer);
+    return buffer;
+}
+
 const char *
 nm_dhcp_config_get_option(NMDhcpConfig *self, const char *key)
 {