diff options
| author | Sebastien Bacher <seb128@ubuntu.com> | 2022-05-17 15:30:19 +0200 |
|---|---|---|
| committer | Sebastien Bacher <seb128@ubuntu.com> | 2022-05-17 15:30:19 +0200 |
| commit | 1e636d8e5e986b9f2260c36bb87fb499d724085c (patch) | |
| tree | ac613b9372adf622496a7d616050d7e1c09b4fba /src/core/dhcp/nm-dhcp-client.c | |
| parent | f4966e573c855d4667e6c236d8197d9949020e21 (diff) | |
| parent | 1a31bc3c63474ca02c83b02add85ea4e740e5597 (diff) | |
Merge remote-tracking branch 'debian/debian/master' into ubuntu/master
Diffstat (limited to 'src/core/dhcp/nm-dhcp-client.c')
| -rw-r--r-- | src/core/dhcp/nm-dhcp-client.c | 33 |
1 files changed, 11 insertions, 22 deletions
diff --git a/src/core/dhcp/nm-dhcp-client.c b/src/core/dhcp/nm-dhcp-client.c index ec910389..2bfd7e01 100644 --- a/src/core/dhcp/nm-dhcp-client.c +++ b/src/core/dhcp/nm-dhcp-client.c @@ -109,25 +109,22 @@ nm_dhcp_client_get_pid(NMDhcpClient *self) return NM_DHCP_CLIENT_GET_PRIVATE(self)->pid; } -static void -_set_effective_client_id(NMDhcpClient *self, GBytes *client_id, gboolean take) +void +nm_dhcp_client_set_effective_client_id(NMDhcpClient *self, GBytes *client_id) { NMDhcpClientPrivate *priv = NM_DHCP_CLIENT_GET_PRIVATE(self); - nm_assert(!client_id || g_bytes_get_size(client_id) >= 2); + g_return_if_fail(NM_IS_DHCP_CLIENT(self)); + g_return_if_fail(!client_id || g_bytes_get_size(client_id) >= 2); + + priv = NM_DHCP_CLIENT_GET_PRIVATE(self); - if (priv->effective_client_id == client_id - || (priv->effective_client_id && client_id - && g_bytes_equal(priv->effective_client_id, client_id))) { - if (take && client_id) - g_bytes_unref(client_id); + if (nm_g_bytes_equal0(priv->effective_client_id, client_id)) return; - } - if (priv->effective_client_id) - g_bytes_unref(priv->effective_client_id); + g_bytes_unref(priv->effective_client_id); priv->effective_client_id = client_id; - if (!take && client_id) + if (client_id) g_bytes_ref(client_id); { @@ -141,15 +138,6 @@ _set_effective_client_id(NMDhcpClient *self, GBytes *client_id, gboolean take) } } -void -nm_dhcp_client_set_effective_client_id(NMDhcpClient *self, GBytes *client_id) -{ - g_return_if_fail(NM_IS_DHCP_CLIENT(self)); - g_return_if_fail(!client_id || g_bytes_get_size(client_id) >= 2); - - _set_effective_client_id(self, client_id, FALSE); -} - /*****************************************************************************/ NM_UTILS_LOOKUP_STR_DEFINE(nm_dhcp_state_to_string, @@ -678,7 +666,7 @@ nm_dhcp_client_start_ip6(NMDhcpClient *self, GError **error) if (!priv->config.v6.enforce_duid) own_client_id = NM_DHCP_CLIENT_GET_CLASS(self)->get_duid(self); - _set_effective_client_id(self, own_client_id ?: priv->config.client_id, FALSE); + nm_dhcp_client_set_effective_client_id(self, own_client_id ?: priv->config.client_id); addr = ipv6_lladdr_find(self); if (!addr) { @@ -1209,6 +1197,7 @@ dispose(GObject *object) nm_clear_g_source_inst(&priv->no_lease_timeout_source); nm_clear_g_source_inst(&priv->ipv6_lladdr_timeout_source); + nm_clear_pointer(&priv->effective_client_id, g_bytes_unref); G_OBJECT_CLASS(nm_dhcp_client_parent_class)->dispose(object); } |