network-manager-applet r1073 - in branches/NETWORKMANAGER_APPLET_0_7: . src



Author: dcbw
Date: Thu Dec 11 22:52:35 2008
New Revision: 1073
URL: http://svn.gnome.org/viewvc/network-manager-applet?rev=1073&view=rev

Log:
2008-12-11  Dan Williams  <dcbw redhat com>

	* src/ap-menu-item.c
	  src/ap-menu-item.h
		- (nm_network_menu_item_set_detail): disable the menu item if the device
			can't even connect to the AP

	* src/applet-device-wifi.c
		- (add_new_ap_item): send device capabilities to menu item



Modified:
   branches/NETWORKMANAGER_APPLET_0_7/ChangeLog
   branches/NETWORKMANAGER_APPLET_0_7/src/ap-menu-item.c
   branches/NETWORKMANAGER_APPLET_0_7/src/ap-menu-item.h
   branches/NETWORKMANAGER_APPLET_0_7/src/applet-device-wifi.c

Modified: branches/NETWORKMANAGER_APPLET_0_7/src/ap-menu-item.c
==============================================================================
--- branches/NETWORKMANAGER_APPLET_0_7/src/ap-menu-item.c	(original)
+++ branches/NETWORKMANAGER_APPLET_0_7/src/ap-menu-item.c	Thu Dec 11 22:52:35 2008
@@ -187,24 +187,25 @@
 void
 nm_network_menu_item_set_detail (NMNetworkMenuItem * item,
                                  NMAccessPoint * ap,
-                                 GdkPixbuf * adhoc_icon)
+                                 GdkPixbuf * adhoc_icon,
+                                 guint32 dev_caps)
 {
-	gboolean encrypted = FALSE, adhoc = FALSE;
-	guint32 flags, wpa_flags, rsn_flags;
+	gboolean encrypted = FALSE, is_adhoc = FALSE;
+	guint32 ap_flags, ap_wpa, ap_rsn;
 
-	flags = nm_access_point_get_flags (ap);
-	wpa_flags = nm_access_point_get_wpa_flags (ap);
-	rsn_flags = nm_access_point_get_rsn_flags (ap);
-
-	if (   (flags & NM_802_11_AP_FLAGS_PRIVACY)
-	    || (wpa_flags != NM_802_11_AP_SEC_NONE)
-	    || (rsn_flags != NM_802_11_AP_SEC_NONE))
+	ap_flags = nm_access_point_get_flags (ap);
+	ap_wpa = nm_access_point_get_wpa_flags (ap);
+	ap_rsn = nm_access_point_get_rsn_flags (ap);
+
+	if (   (ap_flags & NM_802_11_AP_FLAGS_PRIVACY)
+	    || (ap_wpa != NM_802_11_AP_SEC_NONE)
+	    || (ap_rsn != NM_802_11_AP_SEC_NONE))
 		encrypted = TRUE;
 
 	if (nm_access_point_get_mode (ap) == NM_802_11_MODE_ADHOC)
-		adhoc = TRUE;
+		is_adhoc = TRUE;
 
-	if (adhoc) {
+	if (is_adhoc) {
 		gtk_image_set_from_pixbuf (GTK_IMAGE (item->detail), adhoc_icon);
 	} else if (encrypted) {
 		if (gtk_icon_theme_has_icon (gtk_icon_theme_get_default (), "network-wireless-encrypted"))
@@ -214,6 +215,18 @@
 	} else {
 		gtk_image_set_from_stock (GTK_IMAGE (item->detail), NULL, GTK_ICON_SIZE_MENU);
 	}
+
+	/* Don't enable the menu item the device can't even connect to the AP */
+	if (   !nm_utils_security_valid (NMU_SEC_NONE, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn)
+        && !nm_utils_security_valid (NMU_SEC_STATIC_WEP, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn)
+	    && !nm_utils_security_valid (NMU_SEC_LEAP, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn)
+	    && !nm_utils_security_valid (NMU_SEC_DYNAMIC_WEP, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn)
+	    && !nm_utils_security_valid (NMU_SEC_WPA_PSK, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn)
+	    && !nm_utils_security_valid (NMU_SEC_WPA2_PSK, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn)
+	    && !nm_utils_security_valid (NMU_SEC_WPA_ENTERPRISE, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn)
+	    && !nm_utils_security_valid (NMU_SEC_WPA2_ENTERPRISE, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn)) {
+		gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE);
+	}
 }
 
 gboolean

Modified: branches/NETWORKMANAGER_APPLET_0_7/src/ap-menu-item.h
==============================================================================
--- branches/NETWORKMANAGER_APPLET_0_7/src/ap-menu-item.h	(original)
+++ branches/NETWORKMANAGER_APPLET_0_7/src/ap-menu-item.h	Thu Dec 11 22:52:35 2008
@@ -75,7 +75,8 @@
                                               guint32 * length);
 void       nm_network_menu_item_set_detail (NMNetworkMenuItem * item,
                                             NMAccessPoint * ap,
-                                            GdkPixbuf * adhoc_icon);
+                                            GdkPixbuf * adhoc_icon,
+                                            guint32 dev_caps);
 
 gboolean   nm_network_menu_item_find_dupe (NMNetworkMenuItem *item,
                                            NMAccessPoint *ap);

Modified: branches/NETWORKMANAGER_APPLET_0_7/src/applet-device-wifi.c
==============================================================================
--- branches/NETWORKMANAGER_APPLET_0_7/src/applet-device-wifi.c	(original)
+++ branches/NETWORKMANAGER_APPLET_0_7/src/applet-device-wifi.c	Thu Dec 11 22:52:35 2008
@@ -475,6 +475,7 @@
 	GSList *ap_connections = NULL;
 	const GByteArray *ssid;
 	guint8 strength;
+	guint32 dev_caps;
 
 	ap_connections = filter_connections_for_access_point (connections, device, ap);
 
@@ -488,7 +489,8 @@
 	strength = nm_access_point_get_strength (ap);
 	nm_network_menu_item_set_strength (item, strength);
 
-	nm_network_menu_item_set_detail (item, ap, applet->adhoc_icon);
+	dev_caps = nm_device_wifi_get_capabilities (device);
+	nm_network_menu_item_set_detail (item, ap, applet->adhoc_icon, dev_caps);
 	nm_network_menu_item_add_dupe (item, ap);
 
 	g_object_set_data (G_OBJECT (item), "device", NM_DEVICE (device));



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]