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:
@@ -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)
|
||||
|
Reference in New Issue
Block a user