diff options
author | Thomas Haller <thaller@redhat.com> | 2017-04-21 16:24:33 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2017-04-23 18:13:02 +0200 |
commit | 019b9fbfc0aa2123d1e0a742c0b3d01caaa7d874 (patch) | |
tree | a4f5c8d1d6478fb810ead3f448ad617271fd81cf | |
parent | 8c81a4b58b17283596b0dcb45825890dd6722ac9 (diff) | |
download | NetworkManager-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.c | 18 |
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); } /** |