WirelessSecurityDynamicWEP * ws_dynamic_wep_new (NMConnection *connection, gboolean is_editor, gboolean secrets_only) { WirelessSecurity *parent; GtkWidget *widget; parent = wireless_security_init (sizeof (WirelessSecurityDynamicWEP), validate, add_to_size_group, fill_connection, update_secrets, destroy, "/org/gnome/control-center/network/ws-dynamic-wep.ui", "dynamic_wep_notebook", NULL); if (!parent) return NULL; parent->nag_user = nag_user; parent->adhoc_compatible = FALSE; widget = ws_802_1x_auth_combo_init (parent, "dynamic_wep_auth_combo", "dynamic_wep_auth_label", (GCallback) auth_combo_changed_cb, connection, is_editor, secrets_only); auth_combo_changed_cb (widget, (gpointer) parent); return (WirelessSecurityDynamicWEP *) parent; }
WirelessSecurityWPAEAP * ws_wpa_eap_new (NMConnection *connection, gboolean is_editor, gboolean secrets_only) { WirelessSecurity *parent; GtkWidget *widget; parent = wireless_security_init (sizeof (WirelessSecurityWPAEAP), validate, add_to_size_group, fill_connection, update_secrets, destroy, "/org/cinnamon/control-center/network/ws-wpa-eap.ui", "wpa_eap_notebook", NULL); if (!parent) return NULL; parent->adhoc_compatible = FALSE; parent->hotspot_compatible = FALSE; widget = ws_802_1x_auth_combo_init (parent, "wpa_eap_auth_combo", "wpa_eap_auth_label", (GCallback) auth_combo_changed_cb, connection, is_editor, secrets_only); auth_combo_changed_cb (widget, parent); return (WirelessSecurityWPAEAP *) parent; }
WirelessSecurityWPAPSK * ws_wpa_psk_new (NMConnection *connection, gboolean secrets_only) { WirelessSecurity *parent; WirelessSecurityWPAPSK *sec; GtkWidget *widget; parent = wireless_security_init (sizeof (WirelessSecurityWPAPSK), validate, add_to_size_group, fill_connection, update_secrets, NULL, "/org/gnome/control-center/network/ws-wpa-psk.ui", "wpa_psk_notebook", "wpa_psk_entry"); if (!parent) return NULL; parent->adhoc_compatible = FALSE; sec = (WirelessSecurityWPAPSK *) parent; widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wpa_psk_entry")); g_assert (widget); g_signal_connect (G_OBJECT (widget), "changed", (GCallback) wireless_security_changed_cb, sec); gtk_entry_set_width_chars (GTK_ENTRY (widget), 28); /* Fill secrets, if any */ if (connection) update_secrets (WIRELESS_SECURITY (sec), connection); widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "show_checkbutton_wpa")); g_assert (widget); g_signal_connect (G_OBJECT (widget), "toggled", (GCallback) show_toggled_cb, sec); /* Hide WPA/RSN for now since this can be autodetected by NM and the * supplicant when connecting to the AP. */ widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wpa_psk_type_combo")); g_assert (widget); gtk_widget_hide (widget); widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wpa_psk_type_label")); g_assert (widget); gtk_widget_hide (widget); return sec; }
WirelessSecurityWPAEAP * ws_wpa_eap_new (NMConnection *connection) { WirelessSecurityWPAEAP *sec; GtkWidget *widget; sec = g_slice_new0 (WirelessSecurityWPAEAP); if (!wireless_security_init (WIRELESS_SECURITY (sec), validate, add_to_size_group, fill_connection, destroy, "wpa-eap.ui", "wpa_eap_notebook")) { g_slice_free (WirelessSecurityWPAEAP, sec); return NULL; } WIRELESS_SECURITY (sec)->nag_user = nag_user; widget = ws_802_1x_auth_combo_init (WIRELESS_SECURITY (sec), "wpa_eap_auth_combo", (GCallback) auth_combo_changed_cb, connection); auth_combo_changed_cb (widget, (gpointer) sec); return sec; }
WirelessSecurityWPAPSK * ws_wpa_psk_new (const char *glade_file, NMConnection *connection) { WirelessSecurityWPAPSK *sec; GtkWidget *widget; GladeXML *xml; g_return_val_if_fail (glade_file != NULL, NULL); xml = glade_xml_new (glade_file, "wpa_psk_notebook", NULL); if (xml == NULL) { g_warning ("Couldn't get wpa_psk_widget from glade xml"); return NULL; } widget = glade_xml_get_widget (xml, "wpa_psk_notebook"); g_assert (widget); g_object_ref_sink (widget); sec = g_slice_new0 (WirelessSecurityWPAPSK); if (!sec) { g_object_unref (xml); g_object_unref (widget); return NULL; } wireless_security_init (WIRELESS_SECURITY (sec), validate, add_to_size_group, fill_connection, destroy, xml, widget, "wpa_psk_entry"); widget = glade_xml_get_widget (xml, "wpa_psk_entry"); g_assert (widget); g_signal_connect (G_OBJECT (widget), "changed", (GCallback) wireless_security_changed_cb, sec); gtk_entry_set_width_chars (GTK_ENTRY (widget), 28); /* Fill secrets, if any */ if (connection) { helper_fill_secret_entry (connection, GTK_ENTRY (widget), NM_TYPE_SETTING_WIRELESS_SECURITY, (HelperSecretFunc) nm_setting_wireless_security_get_psk, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PSK); } widget = glade_xml_get_widget (xml, "show_checkbutton"); g_assert (widget); g_signal_connect (G_OBJECT (widget), "toggled", (GCallback) show_toggled_cb, sec); widget = glade_xml_get_widget (xml, "wpa_psk_type_combo"); g_assert (widget); gtk_widget_hide (widget); widget = glade_xml_get_widget (xml, "wpa_psk_type_label"); g_assert (widget); gtk_widget_hide (widget); return sec; }
WirelessSecurityWPAPSK * ws_wpa_psk_new (NMConnection *connection, gboolean secrets_only) { WirelessSecurity *parent; WirelessSecurityWPAPSK *sec; NMSetting *setting = NULL; GtkWidget *widget; parent = wireless_security_init (sizeof (WirelessSecurityWPAPSK), validate, add_to_size_group, fill_connection, update_secrets, NULL, UIDIR "/ws-wpa-psk.ui", "wpa_psk_notebook", "wpa_psk_entry"); if (!parent) return NULL; parent->adhoc_compatible = FALSE; sec = (WirelessSecurityWPAPSK *) parent; sec->editing_connection = secrets_only ? FALSE : TRUE; sec->password_flags_name = NM_SETTING_WIRELESS_SECURITY_PSK; widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wpa_psk_entry")); g_assert (widget); g_signal_connect (G_OBJECT (widget), "changed", (GCallback) wireless_security_changed_cb, sec); gtk_entry_set_width_chars (GTK_ENTRY (widget), 28); /* Create password-storage popup menu for password entry under entry's secondary icon */ if (connection) setting = (NMSetting *) nm_connection_get_setting_wireless_security (connection); nma_utils_setup_password_storage (widget, 0, setting, sec->password_flags_name, FALSE, secrets_only); /* Fill secrets, if any */ if (connection) update_secrets (WIRELESS_SECURITY (sec), connection); widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "show_checkbutton_wpa")); g_assert (widget); g_signal_connect (G_OBJECT (widget), "toggled", (GCallback) show_toggled_cb, sec); /* Hide WPA/RSN for now since this can be autodetected by NM and the * supplicant when connecting to the AP. */ widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wpa_psk_type_combo")); g_assert (widget); gtk_widget_hide (widget); widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wpa_psk_type_label")); g_assert (widget); gtk_widget_hide (widget); return sec; }
WirelessSecurityLEAP * ws_leap_new (NMConnection *connection, gboolean secrets_only) { WirelessSecurity *parent; WirelessSecurityLEAP *sec; GtkWidget *widget; NMSettingWirelessSecurity *wsec = NULL; parent = wireless_security_init (sizeof (WirelessSecurityLEAP), validate, add_to_size_group, fill_connection, update_secrets, NULL, "/org/cinnamon/control-center/network/ws-leap.ui", "leap_notebook", "leap_username_entry"); if (!parent) return NULL; if (connection) { wsec = nm_connection_get_setting_wireless_security (connection); if (wsec) { const char *auth_alg; /* Ignore if wireless security doesn't specify LEAP */ auth_alg = nm_setting_wireless_security_get_auth_alg (wsec); if (!auth_alg || strcmp (auth_alg, "leap")) wsec = NULL; } } parent->adhoc_compatible = FALSE; parent->hotspot_compatible = FALSE; sec = (WirelessSecurityLEAP *) parent; sec->editing_connection = secrets_only ? FALSE : TRUE; sec->password_flags_name = NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD; widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "leap_password_entry")); g_assert (widget); g_signal_connect (G_OBJECT (widget), "changed", (GCallback) wireless_security_changed_cb, sec); /* Create password-storage popup menu for password entry under entry's secondary icon */ nma_utils_setup_password_storage (widget, 0, (NMSetting *) wsec, sec->password_flags_name, FALSE, secrets_only); if (wsec) update_secrets (WIRELESS_SECURITY (sec), connection); widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "leap_username_entry")); g_assert (widget); g_signal_connect (G_OBJECT (widget), "changed", (GCallback) wireless_security_changed_cb, sec); if (wsec) gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_wireless_security_get_leap_username (wsec)); if (secrets_only) gtk_widget_hide (widget); widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "show_checkbutton_leap")); g_assert (widget); g_signal_connect (G_OBJECT (widget), "toggled", (GCallback) show_toggled_cb, sec); return sec; }
WirelessSecurityWEPKey * ws_wep_key_new (NMConnection *connection, NMWepKeyType type, gboolean adhoc_create, gboolean secrets_only) { WirelessSecurity *parent; WirelessSecurityWEPKey *sec; GtkWidget *widget; NMSettingWirelessSecurity *s_wsec = NULL; NMSetting *setting = NULL; guint8 default_key_idx = 0; gboolean is_adhoc = adhoc_create; gboolean is_shared_key = FALSE; parent = wireless_security_init (sizeof (WirelessSecurityWEPKey), validate, add_to_size_group, fill_connection, update_secrets, destroy, UIDIR "/ws-wep-key.ui", "wep_key_notebook", "wep_key_entry"); if (!parent) return NULL; sec = (WirelessSecurityWEPKey *) parent; sec->editing_connection = secrets_only ? FALSE : TRUE; sec->password_flags_name = NM_SETTING_WIRELESS_SECURITY_WEP_KEY0; sec->type = type; widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wep_key_entry")); g_assert (widget); gtk_entry_set_width_chars (GTK_ENTRY (widget), 28); /* Create password-storage popup menu for password entry under entry's secondary icon */ if (connection) setting = (NMSetting *) nm_connection_get_setting_wireless_security (connection); nma_utils_setup_password_storage (widget, 0, setting, sec->password_flags_name, FALSE, secrets_only); if (connection) { NMSettingWireless *s_wireless; const char *mode, *auth_alg; s_wireless = nm_connection_get_setting_wireless (connection); mode = s_wireless ? nm_setting_wireless_get_mode (s_wireless) : NULL; if (mode && !strcmp (mode, "adhoc")) is_adhoc = TRUE; s_wsec = nm_connection_get_setting_wireless_security (connection); if (s_wsec) { auth_alg = nm_setting_wireless_security_get_auth_alg (s_wsec); if (auth_alg && !strcmp (auth_alg, "shared")) is_shared_key = TRUE; } } g_signal_connect (G_OBJECT (widget), "changed", (GCallback) wireless_security_changed_cb, sec); g_signal_connect (G_OBJECT (widget), "insert-text", (GCallback) wep_entry_filter_cb, sec); if (sec->type == NM_WEP_KEY_TYPE_KEY) gtk_entry_set_max_length (GTK_ENTRY (widget), 26); else if (sec->type == NM_WEP_KEY_TYPE_PASSPHRASE) gtk_entry_set_max_length (GTK_ENTRY (widget), 64); widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "key_index_combo")); if (connection && s_wsec) default_key_idx = nm_setting_wireless_security_get_wep_tx_keyidx (s_wsec); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), default_key_idx); sec->cur_index = default_key_idx; g_signal_connect (G_OBJECT (widget), "changed", (GCallback) key_index_combo_changed_cb, sec); /* Key index is useless with adhoc networks */ if (is_adhoc || secrets_only) { gtk_widget_hide (widget); widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "key_index_label")); gtk_widget_hide (widget); } /* Fill the key entry with the key for that index */ if (connection) update_secrets (WIRELESS_SECURITY (sec), connection); widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "show_checkbutton_wep")); g_assert (widget); g_signal_connect (G_OBJECT (widget), "toggled", (GCallback) show_toggled_cb, sec); widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "auth_method_combo")); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), is_shared_key ? 1 : 0); g_signal_connect (G_OBJECT (widget), "changed", (GCallback) wireless_security_changed_cb, sec); /* Don't show auth method for adhoc (which always uses open-system) or * when in "simple" mode. */ if (is_adhoc || secrets_only) { /* Ad-Hoc connections can't use Shared Key auth */ if (is_adhoc) gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0); gtk_widget_hide (widget); widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "auth_method_label")); gtk_widget_hide (widget); } return sec; }
WirelessSecurityWEPKey * ws_wep_key_new (const char *glade_file, NMConnection *connection, NMWepKeyType type, gboolean adhoc_create, gboolean simple) { WirelessSecurityWEPKey *sec; GtkWidget *widget; GladeXML *xml; NMSettingWirelessSecurity *s_wsec = NULL; guint8 default_key_idx = 0; gboolean is_adhoc = adhoc_create; gboolean is_shared_key = FALSE; g_return_val_if_fail (glade_file != NULL, NULL); xml = glade_xml_new (glade_file, "wep_key_notebook", NULL); if (xml == NULL) { g_warning ("Couldn't get wep_key_widget from glade xml"); return NULL; } widget = glade_xml_get_widget (xml, "wep_key_notebook"); g_assert (widget); g_object_ref_sink (widget); sec = g_slice_new0 (WirelessSecurityWEPKey); if (!sec) { g_object_unref (xml); g_object_unref (widget); return NULL; } wireless_security_init (WIRELESS_SECURITY (sec), validate, add_to_size_group, fill_connection, update_secrets, destroy, xml, widget, "wep_key_entry"); sec->type = type; widget = glade_xml_get_widget (xml, "wep_key_entry"); g_assert (widget); gtk_entry_set_width_chars (GTK_ENTRY (widget), 28); if (connection) { NMSettingWireless *s_wireless; const char *mode, *auth_alg; s_wireless = (NMSettingWireless *) nm_connection_get_setting (connection, NM_TYPE_SETTING_WIRELESS); mode = s_wireless ? nm_setting_wireless_get_mode (s_wireless) : NULL; if (mode && !strcmp (mode, "adhoc")) is_adhoc = TRUE; s_wsec = NM_SETTING_WIRELESS_SECURITY (nm_connection_get_setting (connection, NM_TYPE_SETTING_WIRELESS_SECURITY)); if (s_wsec) { auth_alg = nm_setting_wireless_security_get_auth_alg (s_wsec); if (auth_alg && !strcmp (auth_alg, "shared")) is_shared_key = TRUE; } } g_signal_connect (G_OBJECT (widget), "changed", (GCallback) wireless_security_changed_cb, sec); g_signal_connect (G_OBJECT (widget), "insert-text", (GCallback) wep_entry_filter_cb, sec); if (sec->type == NM_WEP_KEY_TYPE_KEY) gtk_entry_set_max_length (GTK_ENTRY (widget), 26); else if (sec->type == NM_WEP_KEY_TYPE_PASSPHRASE) gtk_entry_set_max_length (GTK_ENTRY (widget), 64); widget = glade_xml_get_widget (xml, "key_index_combo"); if (connection && s_wsec) default_key_idx = nm_setting_wireless_security_get_wep_tx_keyidx (s_wsec); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), default_key_idx); sec->cur_index = default_key_idx; g_signal_connect (G_OBJECT (widget), "changed", (GCallback) key_index_combo_changed_cb, sec); /* Key index is useless with adhoc networks */ if (is_adhoc || simple) { gtk_widget_hide (widget); widget = glade_xml_get_widget (xml, "key_index_label"); gtk_widget_hide (widget); } /* Fill the key entry with the key for that index */ if (connection) update_secrets (WIRELESS_SECURITY (sec), connection); widget = glade_xml_get_widget (xml, "show_checkbutton"); g_assert (widget); g_signal_connect (G_OBJECT (widget), "toggled", (GCallback) show_toggled_cb, sec); widget = glade_xml_get_widget (xml, "auth_method_combo"); gtk_combo_box_set_active (GTK_COMBO_BOX (widget), is_shared_key ? 1 : 0); g_signal_connect (G_OBJECT (widget), "changed", (GCallback) wireless_security_changed_cb, sec); /* Don't show auth method for adhoc (which always uses open-system) or * when in "simple" mode. */ if (is_adhoc || simple) { /* Ad-Hoc connections can't use Shared Key auth */ if (is_adhoc) gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0); gtk_widget_hide (widget); widget = glade_xml_get_widget (xml, "auth_method_label"); gtk_widget_hide (widget); } return sec; }