summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2017-04-23 19:30:07 +0200
committerThomas Haller <thaller@redhat.com>2017-05-12 17:29:33 +0200
commitf0a229c1e2abf936eec6b5771f97856fbb8825c7 (patch)
tree859e748b467203cefa10ac3abf3ae828d415052a
parent5819b0de8e1a0f7ec5101801ef4686a2b8d8c0dd (diff)
downloadNetworkManager-f0a229c1e2abf936eec6b5771f97856fbb8825c7.tar.gz
policy: namespace fields related to DNS reverse lookup for hostname
-rw-r--r--src/nm-policy.c50
1 files changed, 26 insertions, 24 deletions
diff --git a/src/nm-policy.c b/src/nm-policy.c
index 72253addbf..bb33ecde26 100644
--- a/src/nm-policy.c
+++ b/src/nm-policy.c
@@ -79,9 +79,12 @@ typedef struct {
NMDevice *default_device4, *activating_device4;
NMDevice *default_device6, *activating_device6;
- GResolver *resolver;
- GInetAddress *lookup_addr;
- GCancellable *lookup_cancellable;
+ struct {
+ GInetAddress *addr;
+ GResolver *resolver;
+ GCancellable *cancellable;
+ } lookup;
+
NMDnsManager *dns_manager;
gulong config_changed_id;
@@ -511,7 +514,7 @@ _set_hostname (NMPolicy *self,
* restart the reverse lookup thread later.
*/
if (new_hostname)
- g_clear_object (&priv->lookup_addr);
+ g_clear_object (&priv->lookup.addr);
/* Update the DNS only if the hostname is actually
* going to change.
@@ -575,7 +578,7 @@ lookup_callback (GObject *source,
self = user_data;
priv = NM_POLICY_GET_PRIVATE (self);
- g_clear_object (&priv->lookup_cancellable);
+ g_clear_object (&priv->lookup.cancellable);
if (hostname)
_set_hostname (self, hostname, "from address lookup");
@@ -588,11 +591,11 @@ lookup_by_address (NMPolicy *self)
{
NMPolicyPrivate *priv = NM_POLICY_GET_PRIVATE (self);
- nm_clear_g_cancellable (&priv->lookup_cancellable);
- priv->lookup_cancellable = g_cancellable_new ();
- g_resolver_lookup_by_address_async (priv->resolver,
- priv->lookup_addr,
- priv->lookup_cancellable,
+ nm_clear_g_cancellable (&priv->lookup.cancellable);
+ priv->lookup.cancellable = g_cancellable_new ();
+ g_resolver_lookup_by_address_async (priv->lookup.resolver,
+ priv->lookup.addr,
+ priv->lookup.cancellable,
lookup_callback, self);
}
@@ -616,7 +619,7 @@ update_system_hostname (NMPolicy *self, NMDevice *best4, NMDevice *best6, const
_LOGT (LOGD_DNS, "set-hostname: updating hostname (%s)", msg);
- nm_clear_g_cancellable (&priv->lookup_cancellable);
+ nm_clear_g_cancellable (&priv->lookup.cancellable);
/* Check if the hostname was set externally to NM, so that in that case
* we can avoid to fallback to the one we got when we started.
@@ -751,15 +754,15 @@ update_system_hostname (NMPolicy *self, NMDevice *best4, NMDevice *best6, const
const NMPlatformIP4Address *addr4;
addr4 = nm_ip4_config_get_address (ip4_config, 0);
- g_clear_object (&priv->lookup_addr);
- priv->lookup_addr = g_inet_address_new_from_bytes ((guint8 *) &addr4->address,
+ g_clear_object (&priv->lookup.addr);
+ priv->lookup.addr = g_inet_address_new_from_bytes ((guint8 *) &addr4->address,
G_SOCKET_FAMILY_IPV4);
} else if (ip6_config && nm_ip6_config_get_num_addresses (ip6_config) > 0) {
const NMPlatformIP6Address *addr6;
addr6 = nm_ip6_config_get_address (ip6_config, 0);
- g_clear_object (&priv->lookup_addr);
- priv->lookup_addr = g_inet_address_new_from_bytes ((guint8 *) &addr6->address,
+ g_clear_object (&priv->lookup.addr);
+ priv->lookup.addr = g_inet_address_new_from_bytes ((guint8 *) &addr6->address,
G_SOCKET_FAMILY_IPV6);
} else {
/* No valid IP config; fall back to localhost.localdomain */
@@ -2098,10 +2101,10 @@ dns_config_changed (NMDnsManager *dns_manager, gpointer user_data)
* (race in updating DNS and doing the reverse lookup).
*/
- nm_clear_g_cancellable (&priv->lookup_cancellable);
+ nm_clear_g_cancellable (&priv->lookup.cancellable);
/* Re-start the hostname lookup thread if we don't have hostname yet. */
- if (priv->lookup_addr) {
+ if (priv->lookup.addr) {
char *str = NULL;
gs_free char *hostname = NULL;
@@ -2109,12 +2112,12 @@ dns_config_changed (NMDnsManager *dns_manager, gpointer user_data)
if ( _get_hostname (self, &hostname)
&& nm_utils_is_specific_hostname (hostname)
&& !nm_streq0 (hostname, priv->last_hostname)) {
- g_clear_object (&priv->lookup_addr);
+ g_clear_object (&priv->lookup.addr);
return;
}
_LOGD (LOGD_DNS, "restarting reverse-lookup thread for address %s",
- (str = g_inet_address_to_string (priv->lookup_addr)));
+ (str = g_inet_address_to_string (priv->lookup.addr)));
g_free (str);
lookup_by_address (self);
@@ -2359,7 +2362,7 @@ constructed (GObject *object)
priv->config_changed_id = g_signal_connect (priv->dns_manager, NM_DNS_MANAGER_CONFIG_CHANGED,
G_CALLBACK (dns_config_changed), self);
- priv->resolver = g_resolver_get_default ();
+ priv->lookup.resolver = g_resolver_get_default ();
g_signal_connect (priv->hostname_manager, "notify::" NM_HOSTNAME_MANAGER_HOSTNAME, (GCallback) hostname_changed, priv);
@@ -2402,10 +2405,9 @@ dispose (GObject *object)
GHashTableIter h_iter;
NMDevice *device;
- nm_clear_g_cancellable (&priv->lookup_cancellable);
-
- g_clear_object (&priv->lookup_addr);
- g_clear_object (&priv->resolver);
+ nm_clear_g_cancellable (&priv->lookup.cancellable);
+ g_clear_object (&priv->lookup.addr);
+ g_clear_object (&priv->lookup.resolver);
while (priv->pending_activation_checks)
activate_data_free (priv->pending_activation_checks->data);