static void constructed (GObject *object) { NmnModelPrivate *priv = GET_PRIVATE (object); NMListModel *child_model; DBusGConnection *bus; if (G_OBJECT_CLASS (nmn_model_parent_class)->constructed) G_OBJECT_CLASS (nmn_model_parent_class)->constructed (object); child_model = NM_LIST_MODEL (gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (object))); priv->client = nm_list_model_get_client (child_model); bus = nm_object_get_connection (NM_OBJECT (priv->client)); priv->user_settings = NM_SETTINGS_INTERFACE (nm_gconf_settings_new (bus)); priv->system_settings = NM_SETTINGS_INTERFACE (nm_remote_settings_system_new (bus)); nm_list_model_add_settings (child_model, priv->user_settings); nm_list_model_add_settings (child_model, priv->system_settings); g_signal_connect (priv->client, "notify::" NM_CLIENT_STATE, G_CALLBACK (nm_client_state_changed), object); g_signal_connect (priv->client, "notify::" NM_CLIENT_WIRELESS_ENABLED, G_CALLBACK (nm_wireless_state_changed), object); g_signal_connect (priv->client, "notify::" NM_CLIENT_WIRELESS_HARDWARE_ENABLED, G_CALLBACK (nm_wireless_state_changed), object); nm_wireless_state_changed (priv->client, NULL, object); nm_client_state_changed (priv->client, NULL, object); if (request_dbus_name (bus)) dbus_g_connection_register_g_object (bus, NM_DBUS_PATH_SETTINGS, G_OBJECT (priv->user_settings)); }
static void do_connection (struct start_network_data *user_data) { DBusGConnection *bus; GError *error = NULL; NMRemoteSettingsSystem *system_settings; gboolean system_settings_running; struct start_network_data *data = (struct start_network_data *)user_data; bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error); if (!bus || error) { network_status (data->client, "Unable to connect to system bus"); g_main_loop_quit (loop); goto out; } system_settings = nm_remote_settings_system_new(bus); if(!system_settings) { network_status (data->client, "Unable to get system settings"); g_main_loop_quit (loop); goto out; } g_object_get (system_settings, NM_REMOTE_SETTINGS_SERVICE_RUNNING, &system_settings_running, NULL); if(!system_settings_running) { network_status (data->client, "System settings service is not running"); g_main_loop_quit (loop); goto out; } g_signal_connect (system_settings, NM_SETTINGS_INTERFACE_CONNECTIONS_READ, G_CALLBACK (connections_read), data); out: if (bus) dbus_g_connection_unref(bus); return; }