summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2017-04-21 16:24:33 +0200
committerThomas Haller <thaller@redhat.com>2017-04-23 18:13:02 +0200
commit019b9fbfc0aa2123d1e0a742c0b3d01caaa7d874 (patch)
treea4f5c8d1d6478fb810ead3f448ad617271fd81cf
parent8c81a4b58b17283596b0dcb45825890dd6722ac9 (diff)
downloadNetworkManager-019b9fbfc0aa2123d1e0a742c0b3d01caaa7d874.tar.gz
proxy: send proxy config after creating D-Bus proxy
As NMDevice now creates the NMPacrunnerManager instance as needed, it is even more likely that the initial call to nm_pacrunner_manager_send() will only queue (but not yet send) the new config. Later, when the D-Bus proxy is created, we will not get a name-owner changed signal. We instead have to push the configuration right away.
-rw-r--r--src/nm-pacrunner-manager.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/nm-pacrunner-manager.c b/src/nm-pacrunner-manager.c
index 79a636608d..cfc028c2cc 100644
--- a/src/nm-pacrunner-manager.c
+++ b/src/nm-pacrunner-manager.c
@@ -286,16 +286,13 @@ pacrunner_send_config (NMPacrunnerManager *self, Config *config)
}
static void
-name_owner_changed (GObject *object,
- GParamSpec *pspec,
- gpointer user_data)
+name_owner_changed (NMPacrunnerManager *self)
{
- NMPacrunnerManager *self = NM_PACRUNNER_MANAGER (user_data);
NMPacrunnerManagerPrivate *priv = NM_PACRUNNER_MANAGER_GET_PRIVATE (self);
gs_free char *owner = NULL;
GList *iter = NULL;
- owner = g_dbus_proxy_get_name_owner (G_DBUS_PROXY (object));
+ owner = g_dbus_proxy_get_name_owner (priv->pacrunner);
if (owner) {
_LOGD ("name owner appeared (%s)", owner);
for (iter = g_list_first (priv->configs); iter; iter = g_list_next (iter))
@@ -306,6 +303,14 @@ name_owner_changed (GObject *object,
}
static void
+name_owner_changed_cb (GObject *object,
+ GParamSpec *pspec,
+ gpointer user_data)
+{
+ name_owner_changed (user_data);
+}
+
+static void
pacrunner_proxy_cb (GObject *source, GAsyncResult *res, gpointer user_data)
{
NMPacrunnerManager *self = user_data;
@@ -327,7 +332,8 @@ pacrunner_proxy_cb (GObject *source, GAsyncResult *res, gpointer user_data)
nm_clear_g_cancellable (&priv->pacrunner_cancellable);
g_signal_connect (priv->pacrunner, "notify::g-name-owner",
- G_CALLBACK (name_owner_changed), self);
+ G_CALLBACK (name_owner_changed_cb), self);
+ name_owner_changed (self);
}
/**