diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2020-11-17 11:16:15 +1300 |
---|---|---|
committer | Mohammed Sadiq <sadiq@sadiqpk.org> | 2021-01-08 07:39:32 +0000 |
commit | 2814785ad364bdafca5fc98c223438cf2dc36a05 (patch) | |
tree | a71f1d420f8909a8516cde2bd55b465cd8e4345e /panels/network/cc-wifi-hotspot-dialog.c | |
parent | 452439a036ce3072c45f829efabc08981fc551e0 (diff) | |
download | gnome-control-center-2814785ad364bdafca5fc98c223438cf2dc36a05.tar.gz |
network: Stop using deprecated nm_remote_connection_get_secrets
Diffstat (limited to 'panels/network/cc-wifi-hotspot-dialog.c')
-rw-r--r-- | panels/network/cc-wifi-hotspot-dialog.c | 85 |
1 files changed, 53 insertions, 32 deletions
diff --git a/panels/network/cc-wifi-hotspot-dialog.c b/panels/network/cc-wifi-hotspot-dialog.c index 019c914c9..4d1ef2478 100644 --- a/panels/network/cc-wifi-hotspot-dialog.c +++ b/panels/network/cc-wifi-hotspot-dialog.c @@ -48,6 +48,8 @@ struct _CcWifiHotspotDialog GtkLabel *error_label; GtkButton *ok_button; + GCancellable *cancellable; + NMDeviceWifi *device; NMConnection *connection; gchar *host_name; @@ -135,15 +137,53 @@ wifi_hotspot_dialog_update_main_label (CcWifiHotspotDialog *self) } static void -wifi_hotspot_dialog_update_entries (CcWifiHotspotDialog *self) +get_secrets_cb (GObject *source_object, + GAsyncResult *res, + gpointer data) { + CcWifiHotspotDialog *self; + g_autoptr(GVariant) secrets = NULL; NMSettingWirelessSecurity *security_setting; + const gchar *key; + g_autoptr(GError) error = NULL; + + secrets = nm_remote_connection_get_secrets_finish (NM_REMOTE_CONNECTION (source_object), res, &error); + if (!secrets) + { + if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) + g_warning ("Could not get secrets: %s", error->message); + return; + } + + self = CC_WIFI_HOTSPOT_DIALOG (data); + + nm_connection_update_secrets (self->connection, + NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, + secrets, &error); + if (error) + { + g_warning ("Error updating secrets: %s", error->message); + return; + } + + security_setting = nm_connection_get_setting_wireless_security (self->connection); + if (self->wpa_supported) + key = nm_setting_wireless_security_get_psk (security_setting); + else + key = nm_setting_wireless_security_get_wep_key (security_setting, 0); + + if (key) + gtk_entry_set_text (self->password_entry, key); + + nm_connection_clear_secrets (self->connection); +} + +static void +wifi_hotspot_dialog_update_entries (CcWifiHotspotDialog *self) +{ NMSettingWireless *setting; GBytes *ssid; - g_autoptr(GVariant) secrets = NULL; - g_autoptr(GError) error = NULL; g_autofree gchar *ssid_text = NULL; - const gchar *key; g_assert (CC_IS_WIFI_HOTSPOT_DIALOG (self)); @@ -154,7 +194,6 @@ wifi_hotspot_dialog_update_entries (CcWifiHotspotDialog *self) return; setting = nm_connection_get_setting_wireless (self->connection); - security_setting = nm_connection_get_setting_wireless_security (self->connection); ssid = nm_setting_wireless_get_ssid (setting); ssid_text = nm_utils_ssid_to_utf8 (g_bytes_get_data (ssid, NULL), g_bytes_get_size (ssid)); @@ -169,33 +208,11 @@ wifi_hotspot_dialog_update_entries (CcWifiHotspotDialog *self) return; /* Secrets may not be already loaded, we have to manually load it. */ - secrets = nm_remote_connection_get_secrets (NM_REMOTE_CONNECTION (self->connection), - NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, - NULL, &error); - if (error) - { - g_warning ("Error loading secrets: %s", error->message); - return; - } - - nm_connection_update_secrets (self->connection, - NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, - secrets, &error); - if (error) - { - g_warning ("Error updating secrets: %s", error->message); - return; - } - - if (self->wpa_supported) - key = nm_setting_wireless_security_get_psk (security_setting); - else - key = nm_setting_wireless_security_get_wep_key (security_setting, 0); - - if (key) - gtk_entry_set_text (self->password_entry, key); - - nm_connection_clear_secrets (self->connection); + nm_remote_connection_get_secrets_async (NM_REMOTE_CONNECTION (self->connection), + NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, + self->cancellable, + get_secrets_cb, + self); } static gboolean @@ -365,6 +382,8 @@ cc_wifi_hotspot_dialog_finalize (GObject *object) { CcWifiHotspotDialog *self = (CcWifiHotspotDialog *)object; + g_cancellable_cancel(self->cancellable); + g_clear_object (&self->cancellable); g_clear_pointer (&self->host_name, g_free); g_clear_object (&self->device); g_clear_object (&self->connection); @@ -453,6 +472,8 @@ cc_wifi_hotspot_dialog_init (CcWifiHotspotDialog *self) { g_autofree gchar *title = NULL; + self->cancellable = g_cancellable_new (); + gtk_widget_init_template (GTK_WIDGET (self)); title = g_strdup_printf ("<big><b>%s</b></big>", _("Turn On Wi-Fi Hotspot?")); |