[gnome-control-center] network: Save new SSID to disk before enabling the hotspot
- From: Bastien Nocera <hadess src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center] network: Save new SSID to disk before enabling the hotspot
- Date: Fri, 10 Mar 2017 18:18:53 +0000 (UTC)
commit 700e5e544cb2f25aa7526e64edbc36e360cd64cc
Author: Bastien Nocera <hadess hadess net>
Date: Fri Mar 10 14:25:33 2017 +0100
network: Save new SSID to disk before enabling the hotspot
Commit e824868 was supposed to do this, but needed to write the changes
out to disk before activating the hotspot.
https://bugzilla.gnome.org/show_bug.cgi?id=705546
panels/network/net-device-wifi.c | 57 ++++++++++++++++++++++++++++++++-----
1 files changed, 49 insertions(+), 8 deletions(-)
---
diff --git a/panels/network/net-device-wifi.c b/panels/network/net-device-wifi.c
index ae99cd8..90234b2 100644
--- a/panels/network/net-device-wifi.c
+++ b/panels/network/net-device-wifi.c
@@ -1041,6 +1041,43 @@ net_device_wifi_get_hotspot_connection (NetDeviceWifi *device_wifi)
}
static void
+overwrite_ssid_cb (GObject *source_object,
+ GAsyncResult *res,
+ gpointer user_data)
+{
+ GError *error = NULL;
+ NMClient *client;
+ NMRemoteConnection *connection;
+ NMDevice *device;
+ NMConnection *c;
+ NetDeviceWifi *device_wifi;
+
+ connection = NM_REMOTE_CONNECTION (source_object);
+
+ if (!nm_remote_connection_commit_changes_finish (connection, res, &error)) {
+ if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
+ g_warning ("Failed to save hotspot's settings to disk: %s",
+ error->message);
+ g_error_free (error);
+ return;
+ }
+
+ device_wifi = user_data;
+ device = net_device_get_nm_device (NET_DEVICE (device_wifi));
+ client = net_object_get_client (NET_OBJECT (device_wifi));
+ c = net_device_wifi_get_hotspot_connection (device_wifi);
+
+ g_debug ("activate existing hotspot connection\n");
+ nm_client_activate_connection_async (client,
+ c,
+ device,
+ NULL,
+ NULL,
+ activate_cb,
+ device_wifi);
+}
+
+static void
start_shared_connection (NetDeviceWifi *device_wifi)
{
NMConnection *c;
@@ -1066,19 +1103,23 @@ start_shared_connection (NetDeviceWifi *device_wifi)
client = net_object_get_client (NET_OBJECT (device_wifi));
if (c != NULL) {
NMSettingWireless *sw;
+ const char *c_path;
+ NMRemoteConnection *connection;
sw = nm_connection_get_setting_wireless (c);
g_object_set (sw, "ssid", ssid, NULL);
g_bytes_unref (ssid);
- g_debug ("activate existing hotspot connection\n");
- nm_client_activate_connection_async (client,
- c,
- device,
- NULL,
- NULL,
- activate_cb,
- device_wifi);
+ c_path = nm_connection_get_path (c);
+ connection = nm_client_get_connection_by_path (client, c_path);
+
+ g_debug ("overwriting ssid to %s", (char *) g_bytes_get_data (ssid, NULL));
+
+ nm_remote_connection_commit_changes_async (connection,
+ TRUE,
+ NULL,
+ overwrite_ssid_cb,
+ device_wifi);
return;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]