2007-08-28 Dan Williams <dcbw@redhat.com>

Remove NMAPSecurity objects, they are replaced with flags on the APs for
	each AP's capabilities, and by NMConnection/NMSettings objects for user
	defined connections.

	* include/NetworkManager.h
		- Redefine 802.11 security properties.  There are now device capabilities
			and AP flags and AP security flags.  It was way to unclear before.

	* src/Makefile.am
	  src/nm-ap-security-leap.h
	  src/nm-ap-security-leap.c
	  src/nm-ap-security-wpa-eap.c
	  src/nm-ap-security-wpa-eap.h
	  src/nm-ap-security-private.h
	  src/nm-ap-security-wpa-psk.c
	  src/nm-ap-security-wpa-psk.h
	  src/nm-ap-security-wep.c
	  src/nm-ap-security-wep.h
	  src/nm-ap-security.c
	  src/nm-ap-security.h
		- Removed, to be replaced with NMConnection/NMSettings objects

	* src/nm-dbus-nmi.c
	  src/nm-dbus-nmi.h
		- Removed, to be replaced by code that talks to the new info daemon
			interface and gets NMConnection/NMSettings objects

	* src/backends/NetworkManagerSuSE.c
		- Remove usage of NMAPSecurity; should be replaced by a system-level
			info-daemon that does the same thing but talks the new info-daemon
			D-Bus interface

	* src/NetworkManagerAP.h
	  src/NetworkManagerAP.c
	  src/NetworkManagerAPList.c
	  libnm-glib/libnm-glib-test.c
		- Remove usage of NMAPSecurity objects and adjust to new flags for
			WPA/RSN

	* libnm-glib/nm-access-point.c
	  libnm-glib/nm-access-point.h
	  introspection/nm-access-point.xml
	  test/nm-tool.c
		- Adjust to new flags for AP security

	* utils/nm-utils.c
	  utils/nm-utils.h
	  src/vpn-manager/nm-dbus-vpn.c
		- Remove D-Bus pending call stuff from nm-utils and put it in the VPN
			stuff which is the only place it's used

	* src/nm-device-interface.c
	  src/nm-device-interface.h
	  introspection/nm-device.xml
	  src/nm-activation-request.c
	  src/nm-activation-request.h
	  src/nm-device.c
		- Add a new 'specific_object' argument that hints to NM what actual
			AP or other device-specific thing the connection should apply to.
			NMConnection objects can apply to more than one actual device/AP.

	* libnm-util/nm-connection.c
	* libnm-util/nm-connection.h
		- Add 'have_secrets" call stubs

	* libnm-util/cipher.h
		- Move NM_AUTH_TYPE_* defines here for now

	* src/nm-device-802-11-wireless.c
		- Remove usage of NMAPSecurity, to be replaced with NMConnection/
			NMSettings objects

	* src/NetworkManagerDbus.c
	* src/NetworkManagerPolicy.c
		- Remove usage of update_allowed_networks, should be pushing data in
			a different manner



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2738 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
This commit is contained in:
Dan Williams
2007-08-28 14:47:31 +00:00
parent 478aa57fab
commit 7a8f33aa3d
40 changed files with 656 additions and 3463 deletions

View File

@@ -38,17 +38,8 @@
#include "NetworkManagerUtils.h"
#include "NetworkManagerMain.h"
#include "nm-device.h"
#include "nm-ap-security.h"
#include "nm-ap-security-private.h"
#include "nm-ap-security-wep.h"
#include "nm-ap-security-wpa-psk.h"
#include "NetworkManagerAPList.h"
#include "NetworkManagerPolicy.h"
#include "cipher.h"
#include "cipher-wep-ascii.h"
#include "cipher-wep-hex.h"
#include "cipher-wep-passphrase.h"
#include "cipher-wpa-psk-passphrase.h"
#include "nm-device-802-3-ethernet.h"
#include "nm-device-802-11-wireless.h"
#include "NetworkManagerDialup.h"
@@ -387,144 +378,6 @@ found:
free (buf);
}
if ((buf = svGetValue (file, "WIRELESS_ESSID")) && strlen (buf) > 1)
{
NMAccessPoint * ap;
NMAccessPoint * list_ap;
char * key;
char * mode;
GByteArray * ssid;
ap = nm_ap_new ();
ssid = g_byte_array_sized_new (strlen (buf));
g_byte_array_append (ssid, buf, strlen (buf));
nm_ap_set_ssid (ap, ssid);
nm_ap_set_timestamp (ap, time (NULL), 0);
nm_ap_set_fallback (ap, TRUE);
if ((mode = svGetValue (file, "WIRELESS_AUTH_MODE")) && !strcmp (mode, "psk"))
{
if ((key = svGetValue (file, "WIRELESS_WPA_PSK")))
{
IEEE_802_11_Cipher * cipher;
NMAPSecurityWPA_PSK * security;
char * hash;
cipher = cipher_wpa_psk_passphrase_new ();
nm_ap_set_capabilities (ap, NM_802_11_CAP_PROTO_WPA);
security = nm_ap_security_wpa_psk_new (NM_802_11_CAP_PROTO_WPA,
NM_AUTH_TYPE_WPA_PSK_AUTO);
hash = ieee_802_11_cipher_hash (cipher, buf, key);
if (hash)
{
nm_ap_security_set_key (NM_AP_SECURITY (security), hash, strlen (hash));
nm_ap_set_security (ap, NM_AP_SECURITY (security));
}
ieee_802_11_cipher_unref (cipher);
g_object_unref (G_OBJECT (security));
}
}
else if ((key = svGetValue (file, "WIRELESS_KEY_0")) && strlen (key) > 3)
{
IEEE_802_11_Cipher * cipher;
NMAPSecurityWEP * security;
char * key_type;
char * hash;
char * real_key;
key_type = svGetValue (file, "WIRELESS_KEY_LENGTH");
if (key_type && strcmp (key_type, "128") != 0)
{
if (key[0] == 'h' && key[1] == ':')
{
cipher = cipher_wep64_passphrase_new ();
real_key = key + 2;
}
else if (key[0] == 's' && key[1] == ':')
{
cipher = cipher_wep64_ascii_new ();
real_key = key + 2;
}
else
{
cipher = cipher_wep64_hex_new ();
real_key = key;
}
security = nm_ap_security_wep_new (IW_AUTH_CIPHER_WEP40);
}
else
{
if (key[0] == 'h' && key[1] == ':')
{
cipher = cipher_wep128_passphrase_new ();
real_key = key + 2;
}
else if (key[0] == 's' && key[1] == ':')
{
cipher = cipher_wep128_ascii_new ();
real_key = key + 2;
}
else
{
char **keyv;
cipher = cipher_wep128_hex_new ();
keyv = g_strsplit (key, "-", 0);
real_key = g_strjoinv (NULL, keyv);
g_strfreev (keyv);
}
security = nm_ap_security_wep_new (IW_AUTH_CIPHER_WEP104);
}
hash = ieee_802_11_cipher_hash (cipher, buf, real_key);
if (hash)
{
nm_ap_security_set_key (NM_AP_SECURITY (security), hash, strlen (hash));
nm_ap_set_security (ap, NM_AP_SECURITY (security));
}
ieee_802_11_cipher_unref (cipher);
g_object_unref (G_OBJECT (security));
free (key_type);
}
else
{
NMAPSecurity * security;
security = nm_ap_security_new (NM_DEVICE_CAP_NONE, FALSE);
nm_ap_set_security (ap, security);
g_object_unref (G_OBJECT (security));
}
if ((list_ap = nm_ap_list_get_ap_by_ssid (app_data->allowed_ap_list, ssid)))
{
nm_ap_set_ssid (list_ap, nm_ap_get_ssid (ap));
nm_ap_set_timestamp_via_timestamp (list_ap, nm_ap_get_timestamp (ap));
nm_ap_set_fallback (list_ap, TRUE);
nm_ap_set_security (list_ap, nm_ap_get_security (ap));
}
else
{
/* New AP, just add it to the list */
nm_ap_list_append_ap (app_data->allowed_ap_list, ap);
}
g_byte_array_free (ssid, TRUE);
g_object_unref (ap);
nm_debug ("Adding '%s' to the list of trusted networks", buf);
/* Ensure all devices get new information copied into their device lists */
nm_policy_schedule_device_ap_lists_update_from_allowed (app_data);
free (key);
free (mode);
free (buf);
}
sys_data->config = nm_ip4_config_new ();
if (!sys_data->use_dhcp || sys_data->system_disabled)