* src/supplicant-manager/nm-supplicant-config.c
- (nm_supplicant_config_add_blob): pass blob data and length for
verification
- (get_hash_cb): use GByteArrays rather than GArrays; easier to follow
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3020 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/supplicant-manager/nm-supplicant-interface.c
- (blob_free): correctly free blob data after use
- (call_set_blobs): use the right D-Bus interfaace for setBlobs
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3018 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-activation-request.c
- (get_secrets_cb): handle getting a setting back that is more than
just secrets (ie, user changed auth or EAP method or something)
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3012 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-11-wireless.c
- (real_act_stage2_config): after the first association failure,
if the connection still needs secrets ask the user for them
explicitly. After the fourth association failure due to bad
secrets, fail the connection entirely. Handles the GetSecrets
loop that NM gets into when the provided secrets don't match up
with the connection details.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3008 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/supplicant-manager/nm-supplicant-config.c
- (nm_supplicant_config_add_setting_wireless_security): only add
WPA-specific options when WPA is in use
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3007 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/supplicant-manager/nm-supplicant-config.c
- (nm_supplicant_config_add_setting_wireless_security): 'password'
secret doesn't need to be unhexified
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3006 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* libnm-util/nm-setting.c
- (setting_wireless_security_need_secrets): ensure auth_alg is !NULL
before trying to do something with it
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3005 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* libnm-util/nm-utils.c
libnm-util/nm-utils.h
- (nm_utils_ap_security_compatible): common function for checking
whether a specific AP is compatible with an NMConnection
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3001 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* libnm-util/nm-setting.c
- (setting_wireless_security_need_secrets, need_secrets_phase2,
need_secrets_tls, need_secrets_sim, need_secrets_eappsk,
need_secrets_password, setting_wireless_security_verify): fix
need_secrets for IEEE 802.1x and WPA-EAP by implementing need
secrets logic for each supported EAP method
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3000 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Implement support for static IP addresses, additional/overridden
DNS and
DNS domain search lists.
* libnm-util/nm-setting.c (uint_array_to_gvalue): Implement.
(ip4_addresses_to_gvalue): Implement.
(convert_array_to_byte_array): Implement.
(nm_setting_populate_from_hash_default): Handle
NM_S_TYPE_UINT_ARRAY and
NM_S_TYPE_IP4_ADDRESSES.
(nm_setting_hash): Ditto.
(default_setting_clear_secrets): Add a default case for the
switch: IP address
shouldn't be secret, ever.
(setting_ip4_config_verify): Update, requires addresses in case
of manual
configurations.
(setting_ip4_config_destroy): Free stuff.
* src/nm-device.c (merge_ip4_config): Implement.
(real_act_stage4_get_ip4_config): Merge IP4 configuration from
NMConnection.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2996 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerAP.c
src/NetworkManagerAP.h
- Rename 'articifical' -> 'fake' since that's what they are until
noticed in scans
- (nm_ap_new_fake_from_connection): new function to create a 'fake' AP
from the attributes in an NMConnection object
- (security_compatible): better handle Dynamic WEP and LEAP; handle
WPA Enterprise
- (nm_ap_match_in_list): find a matching AP in a scan list
* src/nm-device-802-11-wireless.c
- (get_active_ap): add an 'ignore_ap' argument to ignore a specific
AP when searching the scan list; match on frequency and mode too
- (nm_device_802_11_wireless_get_frequency): implement
- (merge_scanned_ap): replace duplicate matching logic with
nm_ap_match_in_list()
- (real_act_stage1_prepare): handle a NULL specific object; ie where
the user is trying to connect to a hidden network that is not yet
known from the scan list
- (activation_success_handler): now that the card knows the AP's BSSID,
there may already be a scanned AP in the scan list that is what
we really wanted to connect to, but didn't know at the time. Use
that instead of the 'fake' AP created at activation start and get
rid of the 'fake' AP
- (cull_scan_list): don't remove fake APs
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2993 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-activation-request.h
src/nm-activation-request.c
- (nm_act_request_set_specific_object): new function; allow setting the
specific object if one isn't set yet
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2991 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/supplicant-manager/nm-supplicant-config.h
src/supplicant-manager/nm-supplicant-config.c
- (nm_supplicant_config_init, nm_supplicant_config_finalize): add a hash
table to store blobs
- (nm_supplicant_config_add_blob): new function; add blob to internal
blob hash table
- (nm_supplicant_config_get_blobs): new function; get stored blobs
- (nm_supplicant_config_add_setting_wireless_security): handle
options that use certificates (ie, blobs)
* src/nm-device-802-11-wireless.c
- (build_supplicant_config): pass a UID (just use the connection path)
to the supplicant config as now required
* src/supplicant-manager/nm-supplicant-interface.c
- (add_network_cb, call_set_blobs, set_blobs_cb, call_set_network): if
there are any blobs to send to wpa_supplicant, send those first
before sending the network configuration
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2990 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Split the GetSecrets() call off to a separate D-Bus interface so that it
can be more easily locked down with D-Bus policy. Only 'root' (ie, NM)
should be able to call GetSecrets().
* include/NetworkManager.h
- Define the connection secrets D-Bus interface
* src/vpn-manager/nm-vpn-connection.c
- (clear_need_auth): get the right proxy object for the connection
secrets interface
- (get_connection_secrets): use the connection secrets proxy; send
empty hints in get secrets request
* src/nm-activation-request.c
- (nm_act_request_request_connection_secrets): use the connection
secrets proxy; send empty hints in get secrets request
* src/nm-manager.c
src/nm-manager.h
- (connection_get_settings_cb): set the connection secrets proxy on
the connection object too
- (internal_new_connection_cb): create the connection secrets proxy
* introspection/nm-settings-connection.xml
- Define Connection.Secrets interface and move GetSecrets there
- Add a 'hints' argument to GetSecrets
* libnm-glib/nm-settings.c
libnm-glib/nm-settings.h
- (impl_connection_settings_get_secrets): add 'hints' argument
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2989 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* libnm-util/nm-utils.h
libnm-util/nm-utils.c
- (nm_utils_security_valid): common function to help find the intersection
of capabilities of devices and (optionally) access points
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2987 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* libnm-glib/nm-client.c
- (update_wireless_status): consolidate updates of wireless status
- (constructor): use update_wireless_status()
- (manager_running): set wireless status off when NM goes away; requery
the wireless status when NM comes back
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2983 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-manager.c
- (manager_set_wireless_enabled): don't allow wireless to be enabled
if it's disabled in hardware; don't touch network devices while
NM is asleep
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2980 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* libnm-util/nm-client.c
- (nm_client_activate_device): convert NULL specific_object to "/",
which is used in place of NULL
* src/nm-manager.c
- (impl_manager_activate_device): convert "/" specific_object back into
NULL
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2979 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Implement a generic NMSetting creator from setting name.
While at it, get rid of all nm_setting_foo_new_from_hash()
functions and
add a virtual function 'populate_fn'.
* libnm-util/nm-connection.c (nm_connection_create_setting):
* Implement.
(register_default_creators): Register setting creators instead
of functions
that create and then populate.
(parse_one_setting): Use the common setting creator and then
setting specific
poplulation function.
* libnm-util/nm-setting.c: Get rid of
* nm_setting_foo_new_from_hash() functions,
they all looked exactly the same.
Add a 'populate_fn' virtual function to NMSetting.
Use default virtual functions in case they are not overriden.
(nm_setting_populate_from_hash): Implement.
* src/nm-device.c (real_act_stage3_ip_config_start): Don't hard
* code the setting
name, use a defined string.
(real_act_stage4_get_ip4_config): Ditto.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2978 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Implement killswitch polling through HAL.
* src/nm-manager.c: Add wireless hardware status property. Add
'properties-changed' signal for changes in wireless and wireless
hardware
state changes.
* src/nm-hal-manager.c: Poll hal for killswitch statuses in
* every 6 seconds
and update NMManager's wireless hardware state when it has
changed.
(nm_hal_manager_new): Don't try to add initial devices here -
(hal_init)
already does that.
* libnm-glib/nm-client.c: Add wireless hardware status property.
* Cache the
values of wireless state and wireless hardware state. Listen for
the
'properties-changed' signals, update the cached values and emit
notify.
* include/NetworkManager.h: Fix a typo in a comment.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2975 4912f4e0-d625-0410-9fb7-b9a5a253dbdc