diff options
author | Thomas Haller <thaller@redhat.com> | 2021-02-10 15:48:56 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2021-02-11 09:23:19 +0100 |
commit | 4707cf5fabc99e2f985230871fb042b01a824ee8 (patch) | |
tree | 5e9a0d7a1da20d6eec35836d3b4a8bbe38e842e5 | |
parent | 8366fd87b9ec7a10b552e26fa639e949ce7b9580 (diff) | |
download | NetworkManager-4707cf5fabc99e2f985230871fb042b01a824ee8.tar.gz |
dhcp/nettools: cleanup lease_parse_search_domains()
-rw-r--r-- | src/core/dhcp/nm-dhcp-nettools.c | 38 |
1 files changed, 18 insertions, 20 deletions
diff --git a/src/core/dhcp/nm-dhcp-nettools.c b/src/core/dhcp/nm-dhcp-nettools.c index 0a5fdc8094..8c260e02e9 100644 --- a/src/core/dhcp/nm-dhcp-nettools.c +++ b/src/core/dhcp/nm-dhcp-nettools.c @@ -488,33 +488,31 @@ lease_parse_routes(NDhcp4ClientLease *lease, } } -/*****************************************************************************/ - static void lease_parse_search_domains(NDhcp4ClientLease *lease, NMIP4Config *ip4_config, GHashTable *options) { - nm_auto_free_gstring GString *str = NULL; - uint8_t * data; - size_t n_data; - gs_strfreev char ** domains = NULL; - guint i; - int r; - - r = n_dhcp4_client_lease_query(lease, NM_DHCP_OPTION_DHCP4_DOMAIN_SEARCH_LIST, &data, &n_data); - if (r) + gs_strfreev char **domains = NULL; + const guint8 * l_data; + gsize l_data_len; + guint i; + int r; + + r = _client_lease_query(lease, NM_DHCP_OPTION_DHCP4_DOMAIN_SEARCH_LIST, &l_data, &l_data_len); + if (r != 0) return; - domains = nm_dhcp_lease_data_parse_search_list(data, n_data); - nm_gstring_prepare(&str); + domains = nm_dhcp_lease_data_parse_search_list(l_data, l_data_len); + + if (!domains || !domains[0]) + return; - for (i = 0; domains && domains[i]; i++) { - g_string_append(nm_gstring_add_space_delimiter(str), domains[i]); + for (i = 0; domains[i]; i++) nm_ip4_config_add_search(ip4_config, domains[i]); - } - nm_dhcp_option_add_option(options, - _nm_dhcp_option_dhcp4_options, - NM_DHCP_OPTION_DHCP4_DOMAIN_SEARCH_LIST, - str->str); + + nm_dhcp_option_take_option(options, + _nm_dhcp_option_dhcp4_options, + NM_DHCP_OPTION_DHCP4_DOMAIN_SEARCH_LIST, + g_strjoinv(" ", domains)); } static void |