static NMRemoteConnection * new_connection_cb (DBusGProxy *proxy, const char *path, gpointer user_data) { NMRemoteSettings *self = NM_REMOTE_SETTINGS (user_data); NMRemoteSettingsPrivate *priv = NM_REMOTE_SETTINGS_GET_PRIVATE (self); NMRemoteConnection *connection = NULL; /* Make double-sure we don't already have it */ connection = g_hash_table_lookup (priv->pending, path); if (connection) return connection; connection = g_hash_table_lookup (priv->connections, path); if (connection) return connection; /* Create a new connection object for it */ connection = nm_remote_connection_new (priv->bus, path); if (connection) { g_signal_connect (connection, NM_REMOTE_CONNECTION_REMOVED, G_CALLBACK (connection_removed_cb), self); g_signal_connect (connection, "visible", G_CALLBACK (connection_visible_cb), self); g_signal_connect (connection, "notify::" NM_REMOTE_CONNECTION_INIT_RESULT, G_CALLBACK (connection_init_result_cb), self); /* Add the connection to the pending table to wait for it to retrieve * it's settings asynchronously over D-Bus. The connection isn't * really valid until it has all its settings, so hide it until it does. */ g_hash_table_insert (priv->pending, g_strdup (path), connection); } return connection; }
static void new_connection_cb (DBusGProxy *proxy, const char *path, gpointer user_data) { NMRemoteSettings *self = NM_REMOTE_SETTINGS (user_data); NMRemoteSettingsPrivate *priv = NM_REMOTE_SETTINGS_GET_PRIVATE (self); NMRemoteConnection *connection; connection = nm_remote_connection_new (priv->bus, priv->scope, path); if (connection) { g_signal_connect (connection, "removed", G_CALLBACK (connection_removed_cb), self); g_signal_connect (connection, "notify::" NM_REMOTE_CONNECTION_INIT_RESULT, G_CALLBACK (connection_init_result_cb), self); /* Add the connection to the pending table to wait for it to retrieve * it's settings asynchronously over D-Bus. The connection isn't * really valid until it has all its settings, so hide it until it does. */ g_hash_table_insert (priv->pending, g_strdup (path), connection); } }