int main (int argc, char *argv[]) { NMRemoteSettings *settings; GMainLoop *loop; GError *error = NULL; #if !GLIB_CHECK_VERSION (2, 35, 0) /* Initialize GType system */ g_type_init (); #endif loop = g_main_loop_new (NULL, FALSE); /* Create our proxy for NetworkManager's settings service */ settings = nm_remote_settings_new (NULL, &error); if (!settings) { g_message ("Error: Could not get system settings: %s.", error->message); g_error_free (error); return 1; } /* Ask the settings service to add the new connection */ if (add_connection (settings, loop, "__Test connection__")) { /* Wait for the connection to be added */ g_main_loop_run (loop); } else g_print ("Error adding connection to NetworkManager\n"); /* Clean up */ g_object_unref (settings); return 0; }
int main (int argc, char *argv[]) { DBusGConnection *bus; NMRemoteSettings *settings; GMainLoop *loop; /* Initialize GType system */ g_type_init (); loop = g_main_loop_new (NULL, FALSE); /* Get system bus */ bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, NULL); /* Create our proxy for NetworkManager's settings service */ settings = nm_remote_settings_new (bus); /* Ask the settings service to add the new connection */ if (add_connection (settings, loop, "__Test connection__")) { /* Wait for the connection to be added */ g_main_loop_run (loop); } else g_print ("Error adding connection to NetworkManager\n"); /* Clean up */ g_object_unref (settings); dbus_g_connection_unref (bus); return 0; }
NmaBtDevice * nma_bt_device_new (const char *bdaddr, const char *alias, const char *object_path, gboolean has_pan, gboolean has_dun) { NmaBtDevice *self; GError *error = NULL; g_return_val_if_fail (bdaddr != NULL, NULL); g_return_val_if_fail (object_path != NULL, NULL); self = (NmaBtDevice *) g_object_new (NMA_TYPE_BT_DEVICE, NMA_BT_DEVICE_BDADDR, bdaddr, NMA_BT_DEVICE_ALIAS, alias, NMA_BT_DEVICE_OBJECT_PATH, object_path, NMA_BT_DEVICE_HAS_PAN, has_pan, NMA_BT_DEVICE_HAS_DUN, has_dun, NULL); if (self) { NmaBtDevicePrivate *priv = NMA_BT_DEVICE_GET_PRIVATE (self); struct ether_addr *addr; g_assert (priv->bdaddr); g_assert (priv->object_path); addr = ether_aton (priv->bdaddr); if (!addr) { g_warning ("%s: invalid Bluetooth address '%s'", __func__, priv->bdaddr); g_object_unref (self); return NULL; } priv->bdaddr_array = g_byte_array_sized_new (ETH_ALEN); g_byte_array_append (priv->bdaddr_array, (const guint8 *) addr->ether_addr_octet, ETH_ALEN); priv->bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error); if (error) { g_warning ("%s: failed to connect to D-Bus: %s", __func__, error->message); g_object_unref (self); self = NULL; } priv->window_group = gtk_window_group_new (); priv->settings = nm_remote_settings_new (priv->bus); g_signal_connect (priv->settings, NM_REMOTE_SETTINGS_CONNECTIONS_READ, G_CALLBACK (connections_read), self); } return self; }
static gboolean network_initialize (Network *self, GCancellable *cancellable, GError **error) { self->ifname_to_netinterface = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify) g_object_unref); self->client = nm_client_new (); self->settings = nm_remote_settings_new (dbus_g_bus_get (DBUS_BUS_SYSTEM, NULL)); g_signal_connect (self->settings, NM_REMOTE_SETTINGS_CONNECTIONS_READ, G_CALLBACK (on_nm_settings_read), self); return TRUE; }
static void device_removed (const char *bdaddr) { GError *error = NULL; DBusGConnection *bus; RemoveInfo *info; struct ether_addr *addr; NmaBtDevice *device; g_message ("Device '%s' was removed; deleting connections", bdaddr); /* Remove any connections associated with the deleted device */ addr = ether_aton (bdaddr); if (!addr) { g_warning ("Failed to convert Bluetooth address '%s'", bdaddr); return; } bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error); if (error || !bus) { g_warning ("%s: failed to get a connection to D-Bus! %s", __func__, error ? error->message : "(unknown)"); g_clear_error (&error); return; } info = g_malloc0 (sizeof (RemoveInfo)); info->settings = nm_remote_settings_new (bus); info->bdaddr = g_byte_array_sized_new (ETH_ALEN); g_byte_array_append (info->bdaddr, (const guint8 *) addr->ether_addr_octet, ETH_ALEN); info->str_bdaddr = g_strdup (bdaddr); info->timeout_id = g_timeout_add_seconds (15, remove_timeout, info); g_signal_connect (info->settings, NM_REMOTE_SETTINGS_CONNECTIONS_READ, G_CALLBACK (remove_connections_read), info); dbus_g_connection_unref (bus); /* Kill the device */ device = get_device (bdaddr); if (device) remove_device (device); }
static void gis_network_page_constructed (GObject *object) { GisNetworkPage *page = GIS_NETWORK_PAGE (object); GisNetworkPagePrivate *priv = gis_network_page_get_instance_private (page); const GPtrArray *devices; NMDevice *device; guint i; gboolean visible = FALSE; G_OBJECT_CLASS (gis_network_page_parent_class)->constructed (object); priv->icons = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); priv->nm_client = nm_client_new (); g_object_bind_property (priv->nm_client, "wireless-enabled", priv->turn_on_switch, "active", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); devices = nm_client_get_devices (priv->nm_client); if (devices) { for (i = 0; i < devices->len; i++) { device = g_ptr_array_index (devices, i); if (!nm_device_get_managed (device)) continue; if (nm_device_get_device_type (device) == NM_DEVICE_TYPE_WIFI) { /* FIXME deal with multiple, dynamic devices */ priv->nm_device = g_object_ref (device); break; } } } if (priv->nm_device == NULL) { g_debug ("No network device found, hiding network page"); goto out; } if (nm_device_get_state (priv->nm_device) == NM_DEVICE_STATE_ACTIVATED) { g_debug ("Activated network device found, hiding network page"); goto out; } visible = TRUE; priv->nm_settings = nm_remote_settings_new (NULL); g_signal_connect (priv->nm_device, "notify::state", G_CALLBACK (device_state_changed), page); g_signal_connect (priv->nm_client, "notify::active-connections", G_CALLBACK (active_connections_changed), page); gtk_list_box_set_selection_mode (GTK_LIST_BOX (priv->network_list), GTK_SELECTION_NONE); gtk_list_box_set_header_func (GTK_LIST_BOX (priv->network_list), update_header_func, NULL, NULL); gtk_list_box_set_sort_func (GTK_LIST_BOX (priv->network_list), ap_sort, NULL, NULL); g_signal_connect (priv->network_list, "row-activated", G_CALLBACK (row_activated), page); refresh_wireless_list (page); sync_complete (page); gis_page_set_skippable (GIS_PAGE (page), TRUE); out: gtk_widget_set_visible (GTK_WIDGET (page), visible); }
NMConnectionList * nm_connection_list_new (void) { NMConnectionList *list; DBusGConnection *bus; GError *error = NULL; const char *objects[] = { "NMConnectionList", NULL }; list = g_object_new (NM_TYPE_CONNECTION_LIST, NULL); if (!list) return NULL; /* load GUI */ list->gui = gtk_builder_new (); if (!gtk_builder_add_objects_from_file (list->gui, UIDIR "/nm-connection-editor.ui", (char **) objects, &error)) { g_warning ("Couldn't load builder file: %s", error->message); g_error_free (error); goto error; } gtk_window_set_default_icon_name ("preferences-system-network"); list->nm_client = nm_client_new (); if (!list->nm_client) goto error; bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error); if (error) { g_warning ("Could not connect to the system bus: %s", error->message); g_error_free (error); goto error; } list->settings = nm_remote_settings_new (bus); dbus_g_connection_unref (bus); g_signal_connect (list->settings, NM_REMOTE_SETTINGS_NEW_CONNECTION, G_CALLBACK (connection_added), list); g_signal_connect (list->settings, NM_REMOTE_SETTINGS_CONNECTIONS_READ, G_CALLBACK (initial_connections_read), list); list->connection_list = GTK_TREE_VIEW (gtk_builder_get_object (list->gui, "connection_list")); initialize_treeview (list); add_connection_buttons (list); /* Connect to the main dialog's response handler */ list->dialog = GTK_WIDGET (gtk_builder_get_object (list->gui, "NMConnectionList")); if (!list->dialog) goto error; g_signal_connect (G_OBJECT (list->dialog), "response", G_CALLBACK (dialog_response_cb), list); if (!vpn_get_plugins (&error)) { g_warning ("%s: failed to load VPN plugins: %s", __func__, error->message); g_error_free (error); } return list; error: g_object_unref (list); return NULL; }
int main (int argc, char **argv) { gboolean got_connections = FALSE; GOptionContext *opts; GError *error = NULL; NmtuiStartupData startup_data; const char *prgname; int i; setlocale (LC_ALL, ""); bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); opts = g_option_context_new (NULL); g_option_context_add_main_entries (opts, entries, NULL); if (!g_option_context_parse (opts, &argc, &argv, &error)) { g_printerr ("%s: %s: %s\n", argv[0], _("Could not parse arguments"), error->message); exit (1); } g_option_context_free (opts); nm_editor_bindings_init (); nm_client = nm_client_new (); if (!nm_client_get_manager_running (nm_client)) { g_printerr ("%s\n", _("NetworkManager is not running.")); exit (1); } nm_settings = nm_remote_settings_new (NULL); g_signal_connect (nm_settings, NM_REMOTE_SETTINGS_CONNECTIONS_READ, G_CALLBACK (connections_read), &got_connections); while (!got_connections) g_main_context_iteration (NULL, TRUE); if (sleep_on_startup) sleep (5); startup_data.subprogram = NULL; prgname = g_get_prgname (); if (g_str_has_prefix (prgname, "lt-")) prgname += 3; if (!strcmp (prgname, "nmtui")) { if (argc > 1) { for (i = 0; i < num_subprograms; i++) { if (!strcmp (argv[1], subprograms[i].name)) { argc--; argv[0] = (char *) subprograms[i].shortcut; memmove (&argv[1], &argv[2], argc * sizeof (char *)); startup_data.subprogram = subprograms[i].func; break; } } } else startup_data.subprogram = nmtui_main; } else { for (i = 0; i < num_subprograms; i++) { if (!strcmp (prgname, subprograms[i].shortcut)) { startup_data.subprogram = subprograms[i].func; break; } } } if (!startup_data.subprogram) usage (); if (!noinit) nmt_newt_init (); startup_data.argc = argc; startup_data.argv = argv; g_idle_add (idle_run_subprogram, &startup_data); loop = g_main_loop_new (NULL, FALSE); g_main_loop_run (loop); g_main_loop_unref (loop); if (!noinit) nmt_newt_finished (); g_object_unref (nm_client); g_object_unref (nm_settings); return 0; }