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.
This commit is contained in:
@@ -286,16 +286,13 @@ pacrunner_send_config (NMPacrunnerManager *self, Config *config)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
name_owner_changed (GObject *object,
|
name_owner_changed (NMPacrunnerManager *self)
|
||||||
GParamSpec *pspec,
|
|
||||||
gpointer user_data)
|
|
||||||
{
|
{
|
||||||
NMPacrunnerManager *self = NM_PACRUNNER_MANAGER (user_data);
|
|
||||||
NMPacrunnerManagerPrivate *priv = NM_PACRUNNER_MANAGER_GET_PRIVATE (self);
|
NMPacrunnerManagerPrivate *priv = NM_PACRUNNER_MANAGER_GET_PRIVATE (self);
|
||||||
gs_free char *owner = NULL;
|
gs_free char *owner = NULL;
|
||||||
GList *iter = 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) {
|
if (owner) {
|
||||||
_LOGD ("name owner appeared (%s)", owner);
|
_LOGD ("name owner appeared (%s)", owner);
|
||||||
for (iter = g_list_first (priv->configs); iter; iter = g_list_next (iter))
|
for (iter = g_list_first (priv->configs); iter; iter = g_list_next (iter))
|
||||||
@@ -305,6 +302,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
|
static void
|
||||||
pacrunner_proxy_cb (GObject *source, GAsyncResult *res, gpointer user_data)
|
pacrunner_proxy_cb (GObject *source, GAsyncResult *res, gpointer user_data)
|
||||||
{
|
{
|
||||||
@@ -327,7 +332,8 @@ pacrunner_proxy_cb (GObject *source, GAsyncResult *res, gpointer user_data)
|
|||||||
nm_clear_g_cancellable (&priv->pacrunner_cancellable);
|
nm_clear_g_cancellable (&priv->pacrunner_cancellable);
|
||||||
|
|
||||||
g_signal_connect (priv->pacrunner, "notify::g-name-owner",
|
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user