[network-manager-applet: 7/8] libnma: add nma_wifi_dialog_new_for_secrets use example
- From: Lubomir Rintel <lkundrak src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [network-manager-applet: 7/8] libnma: add nma_wifi_dialog_new_for_secrets use example
- Date: Mon, 26 Nov 2018 14:32:45 +0000 (UTC)
commit 329b8081cce95e1930d6384051a6c01ccc56d196
Author: Andrew Zaborowski <andrew zaborowski intel com>
Date: Fri Oct 26 10:11:03 2018 +0200
libnma: add nma_wifi_dialog_new_for_secrets use example
[lkundrak v3 sk: split this into a separate executable]
.gitignore | 1 +
Makefile.am | 17 +++++
src/libnma/tests/meson.build | 9 +++
src/libnma/tests/wifi-dialog-secrets.c | 109 +++++++++++++++++++++++++++++++++
4 files changed, 136 insertions(+)
---
diff --git a/.gitignore b/.gitignore
index 39390772..423955b1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -60,6 +60,7 @@ src/libnma/tests/mobile-wizard
src/libnma/tests/run-vpn
src/libnma/tests/vpn-password-dialog
src/libnma/tests/wifi-dialog
+src/libnma/tests/wifi-dialog-secrets
src/libnm-gtk/libnm-gtk.pc
src/libnm-gtk/NMGtk-1.0.gir
src/libnm-gtk/NMGtk-1.0.typelib
diff --git a/Makefile.am b/Makefile.am
index 7679658f..5769b957 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -662,6 +662,23 @@ src_libnma_tests_wifi_dialog_LDADD = \
$(LIBNM_LIBS) \
src/libnma/libnma.la
+check_PROGRAMS_norun += src/libnma/tests/wifi-dialog-secrets
+
+src_libnma_tests_wifi_dialog_secrets_CPPFLAGS = \
+ $(dflt_cppflags) \
+ $(GLIB_CFLAGS) \
+ $(GTK3_CFLAGS) \
+ $(LIBNM_CFLAGS) \
+ "-I$(srcdir)/shared/" \
+ "-I$(srcdir)/src/libnma" \
+ -Isrc/libnma
+
+src_libnma_tests_wifi_dialog_secrets_LDADD = \
+ $(GLIB_LIBS) \
+ $(GTK3_LIBS) \
+ $(LIBNM_LIBS) \
+ src/libnma/libnma.la
+
check_PROGRAMS_norun += src/libnma/tests/run-vpn
src_libnma_tests_run_vpn_CPPFLAGS = \
diff --git a/src/libnma/tests/meson.build b/src/libnma/tests/meson.build
index c8e97125..4ac1543f 100644
--- a/src/libnma/tests/meson.build
+++ b/src/libnma/tests/meson.build
@@ -39,3 +39,12 @@ executable(
c_args: cflags,
install: false
)
+
+executable(
+ 'wifi-dialog-secrets',
+ 'wifi-dialog-secrets.c',
+ include_directories: incs,
+ dependencies: deps,
+ c_args: cflags,
+ install: false
+)
diff --git a/src/libnma/tests/wifi-dialog-secrets.c b/src/libnma/tests/wifi-dialog-secrets.c
new file mode 100644
index 00000000..cd528599
--- /dev/null
+++ b/src/libnma/tests/wifi-dialog-secrets.c
@@ -0,0 +1,109 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Copyright 2018 Red Hat, Inc.
+ */
+
+#include "nm-default.h"
+
+#include <gtk/gtk.h>
+#include <NetworkManager.h>
+#include "nma-wifi-dialog.h"
+
+static void
+response_cb (GtkDialog *obj, gint response, gpointer user_data)
+{
+ NMAWifiDialog *dialog = NMA_WIFI_DIALOG (obj);
+
+ g_print ("response %i\n", response);
+
+ if (response == GTK_RESPONSE_OK) {
+ GHashTable *diff = NULL, *setting_diff;
+ GHashTableIter iter, setting_iter;
+ const char *setting, *key;
+ NMConnection *connection = nma_wifi_dialog_get_connection (dialog, NULL, NULL);
+ NMConnection *orig = user_data;
+
+ g_print ("settings changed:\n");
+ nm_connection_diff (connection, orig, NM_SETTING_COMPARE_FLAG_EXACT, &diff);
+ if (!diff)
+ return;
+
+ g_hash_table_iter_init (&iter, diff);
+ while (g_hash_table_iter_next (&iter, (gpointer) &setting, (gpointer) &setting_diff)) {
+ g_hash_table_iter_init (&setting_iter, setting_diff);
+ while (g_hash_table_iter_next (&setting_iter, (gpointer) &key, NULL))
+ g_print (" %s.%s\n", setting, key);
+ }
+
+ g_hash_table_destroy (diff);
+ }
+}
+
+int
+main (int argc, char *argv[])
+{
+ GtkWidget *dialog;
+ NMClient *client = NULL;
+ NMConnection *connection = NULL;
+ GError *error = NULL;
+ gs_unref_bytes GBytes *ssid = g_bytes_new_static ("<Maj Vaj Faj>", 13);
+ const char *hints[] = {
+ NM_SETTING_802_1X_IDENTITY,
+ NM_SETTING_802_1X_PASSWORD,
+ NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD,
+ NULL
+ };
+
+ gtk_init (&argc, &argv);
+
+ client = nm_client_new (NULL, NULL);
+ connection = nm_simple_connection_new ();
+ nm_connection_add_setting (connection,
+ g_object_new (NM_TYPE_SETTING_CONNECTION,
+ NM_SETTING_CONNECTION_ID, "<Maj Vaj Faj>",
+ NULL));
+ nm_connection_add_setting (connection,
+ g_object_new (NM_TYPE_SETTING_WIRELESS,
+ NM_SETTING_WIRELESS_SSID, ssid,
+ NULL));
+ nm_connection_add_setting (connection,
+ g_object_new (NM_TYPE_SETTING_WIRELESS_SECURITY,
+ NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "wpa-eap",
+ NULL));
+ nm_connection_add_setting (connection,
+ g_object_new (NM_TYPE_SETTING_802_1X,
+ NM_SETTING_802_1X_EAP, (const char * const []){ "peap", NULL },
+ NM_SETTING_802_1X_IDENTITY, "budulinek",
+ NM_SETTING_802_1X_PHASE2_AUTH, "gtc",
+ NULL));
+
+ if (!nm_connection_normalize (connection, NULL, NULL, &error)) {
+ nm_connection_dump (connection);
+ g_printerr ("Error: %s\n", error->message);
+ g_error_free (error);
+ return 1;
+ }
+
+ dialog = nma_wifi_dialog_new_for_secrets (client,
+ nm_simple_connection_new_clone (connection),
+ NM_SETTING_802_1X_SETTING_NAME,
+ hints);
+ g_signal_connect (dialog, "response", G_CALLBACK (response_cb), connection);
+ gtk_dialog_run (GTK_DIALOG (dialog));
+ gtk_widget_destroy (dialog);
+
+ g_object_unref (connection);
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]