Patch from Bill Nottingham
* src/supplicant-manager/nm-supplicant-config.c
- (ADD_STRING_VAL): use correct length for binary blobs when sending
data to the supplicant
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2913 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/supplicant-manager/nm-supplicant-manager.c
- (poke_supplicant_cb, nm_supplicant_manager_init,
nm_supplicant_manager_dispose, nm_supplicant_manager_name_owner_changed,
nm_supplicant_manager_startup): when the supplicant isn't running,
try to start it periodically via system bus activation. Fixes
a problem where if wpa_supplicant goes away, NM gets stuck waiting
for the supplicant to come back
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2875 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/supplicant-manager/nm-supplicant-manager.c
- (nm_supplicant_manager_init): poke the supplicant at startup to
activate it on the system bus
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2846 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/supplicant-manager/nm-supplicant-config.c
- (nm_supplicant_config_add_setting_wireless_security): uppercase
string list keywords too since that's what wpa_supplicant wants
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2836 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Wireless connections can be made with config data from the applet now.
Yay.
* src/supplicant-manager/nm-supplicant-config.h
src/supplicant-manager/nm-supplicant-config.c
- (nm_supplicant_config_new): kill unused init parameter 'iface'
- (nm_supplicant_config_add_setting_wireless,
nm_supplicant_config_add_setting_wireless_security): new functions;
add key/value pairs from the settings objects to the supplicant
config
* src/nm-device-802-11-wireless.c
- (cull_scan_list): fix check to not prune currently associated AP
- (build_supplicant_config, real_act_stage2_config): call the functions
of the NMSupplicantConfig that parse settings objects rather than
doing it manually here
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2796 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/supplicant-manager/nm-supplicant-interface.c
src/supplicant-manager/nm-supplicant-marshal.list
- (nm_supplicant_interface_class_init): fix stupid mistake, the
"connection-error" signal arguments should be STRING not CHAR
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2795 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/supplicant-manager/nm-supplicant-interface.c
- (interface_disconnect_done): don't try to dispose of the net proxy
when it may already have been disposed of
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2719 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/supplicant-manager/nm-supplicant-interface.c
- (try_remove_iface): new function, ask wpa_supplicant to remove
an interface
- (nm_supplicant_interface_dispose): call try_remove_iface() when
disposing of the NMSupplicantInterface. Otherwise weird stuff
happens on hotplug if wpa_supplicant doesn't tear down and readd
the interface internally
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2699 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-dbus-manager.c
(proxy_name_owner_changed, nm_dbus_manager_class_init): Remove the
DbusConnection argument from 'name-owner-changed' signal. The manager
is already passed as a first argument to the signal and the connection
is easy enough to get from it.
* src/vpn-manager/nm-vpn-service.c (nm_vpn_service_name_owner_changed):
Update the signature of the function.
* src/vpn-manager/nm-vpn-manager.c (nm_name_owner_changed_handler):
Ditto.
* src/NetworkManager.c: Ditto.
* src/named-manager/nm-named-manager.c
(nm_named_manager_name_owner_changed): Ditto.
* src/supplicant-manager/nm-supplicant-manager.c
(nm_supplicant_manager_name_owner_changed): Ditto.
* src/nm-hal-manager.c (name_owner_changed): Ditto.
* src/dhcp-manager/nm-dhcp-manager.c
(nm_dhcp_manager_name_owner_changed): Ditto.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2567 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/supplicant-manager/nm-supplicant-config.c (get_hash_cb): Marshal the
data to correct types instead of always using string.
* src/NetworkManagerAP.c (get_property): AP is encrypted if capabilities does
_not_ have NM_802_11_CAP_PROTO_NONE.
(foreach_property_cb): Set AP capabilities if it's not set or if the protocol
is not set.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2507 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* libnm-glib/nm-device-802-11-wireless.c: Cache networks (bssids) list.
We get signalled when it changes.
* libnm-glib/nm-client.c: Cache NMState and device list, we get signalled
when it changes.
* libnm-glib/nm-device.c: Cache the device state property.
* libnm-glib/nm-access-point.c: Cache the strength property.
* src/nm-device-802-11-wireless.c: Fix wireless device scanning scheduler.
The new algorithm is to start from SCAN_INTERVAL_MIN (currently defined as 0)
and add a SCAN_INTERVAL_STEP (currently 20 seconds) with each successful scan
until SCAN_INTERVAL_MAX (currently 120 seconds) is reached. Do not scan while
the device is down, activating, or activated (in case of A/B/G cards).
Remove some old dead ifdef'ed out code that used to configure wireless devices,
it's all done through supplicant now.
* src/supplicant-manager/nm-supplicant-interface.c: Fix the reference
counting issues with pending calls which caused leaks and crashes when
interface was removed (now that the interface actually gets removed).
* src/nm-call-store.c: Make a copy of data before running a foreach
with user callback on it - The most common usage pattern is to cancel
(and thus remove) all pending calls with foreach which would modify
the hash table we're iterating over.
* src/nm-manager.c: When a device is added, make sure it is "up". When
it's removed or disabled due to disabling wireless or networking, bring
it down.
* include/NetworkManager.h: Add new device state NM_DEVICE_STATE_DOWN.
* src/nm-device-802-11-wireless.c:
* src/nm-device-802-3-ethernet.c:
* src/nm-device.c:
- Remove "init" virtual function, all gobjects have a place for that
already (constructor).
- Replace "start" virtual function with "bring_up", devices can be
brought up and down more than just on startup now.
- Add "is_up" virtual function.
- Implement one way to bring a device down instead of previous 4 different
ways, each of witch did something different.
* src/NetworkManagerUtils.c (nm_dev_sock_open): This doesn't need an NMDevice,
all it needs is the device interface.
Get rid of NMData.dev_list (3 members to go).
Get rif of NMData in a lot of places.
* gnome/libnm_glib/libnm_glib.c: Make it compile again.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2395 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Make NMDevice abstract class, remove almost all references to it's
subclasses (the last place gets removed with new policy manager). Add
NMDeviceInterface (which NMDevice implements) so that when we have
NMDevice exported over DBUS, there's a common NMDevice interface which
all instances have, plus there's a device specific interface for each
specific type.
Remove functions (nm_device_is_802_3_ethernet) and
(nm_device_is_802_11_wireless). There are already standard GObject macros
for type safe checks.
Use the updated supplican manager API.
* src/nm-device-interface.h:
* src/nm-device-interface.c:
* src/nm-call-store.h:
* src/nm-call-store.c: Implement.
* src/supplicant-manager/nm-supplicant-interface.c:
* src/supplicant-manager/nm-supplicant-interface.h:
* src/supplicant-manager/nm-supplicant-manager.c:
* src/supplicant-manager/nm-supplicant-manager.h:
- Remove all private data type references from public header files.
- Remove all references to other NM classes, this class is just a
proxy between wpa_supplicant and NM so it doesn't have to know
any internals.
- Convert to dbus-glib bindings.
- Type safe checks for public methods' arguments.
- Store pending DBUS call ids to NMCallStore.
* src/supplicant-manager/nm-supplicant-config.c:
- Store config values in a GHashTable instead of GSList.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2285 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Threading removal related cleanups:
- Use the glib default main context. Remove the device main context
member from NMDevice, and the main_context member from NMData. Change
all the idle and timeout scheduler functions to use plain
g_idle_add() and g_timeout_add().
- As a side-effect of the first change, nm_dbus_manager_get() no longer
takes an argument; fix that up too.
- Remove all locking, which is useless since we no longer use threads. For
example, nm_get_device_by_iface_locked() has been removed. The global
device list lock, the AP List lock, and all static locks in
NetworkManagerPolicy.c have been removed. The locking utility functions
in NetworkManagerUtils.c have also been removed.
- Other cleanups in spacing and code style
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2205 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Found by Bill Moss:
* src/supplicant-manager/nm-supplicant-interface.c
- (nm_supplicant_interface_disconnect): fix cleanup logic when
the supplicant interface wasn't already disconnected. Always
call removeNetwork and disconnect unless the supplicant interface
is in the DISCONNECTED or INACTIVE state.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2202 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Big wpa_supplicant + dbus update; need latest wpa_supplicant from CVS
plus a few other patches from wpa_supplicant bugzilla.
* src/Makefile.am
src/NetworkManagerPolicy.c
src/NetworkManagerUtils.c
src/NetworkManagerUtils.h
src/nm-ap-security-leap.c
src/nm-ap-security-wep.c
src/nm-ap-security-wpa-eap.c
src/nm-ap-security-wpa-psk.c
src/nm-ap-security.c
src/nm-ap-security.h
src/nm-device-802-11-wireless.c
src/nm-device-802-11-wireless.h
src/supplicant-manager/nm-supplicant-config.c
src/supplicant-manager/nm-supplicant-config.h
src/supplicant-manager/nm-supplicant-interface.c
src/supplicant-manager/nm-supplicant-interface.h
src/supplicant-manager/nm-supplicant-marshal.list
src/supplicant-manager/nm-supplicant-settings-verify.c
src/supplicant-manager/nm-supplicant-settings-verify.h
- Move all connection management and association handling to
wpa_supplicant over dbus, rather than spawning a private copy
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2192 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/supplicant-manager/nm-supplicant-interface.c
- (iface_state_cb, wpas_iface_get_state): new functions; query initial
wpa_supplicant interface state
- (nm_supplicant_interface_add_cb): query initial wpa_supplicant interface
state before transitioning to READY state
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2181 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/supplicant-manager/nm-supplicant-interface.c
- (nm_supplicant_interface_set_property): track signal handler ID
- (nm_supplicant_interface_dispose): remove signal handler on dispose
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2162 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/supplicant-manager/nm-supplicant-interface.[ch]
- (nm_supplicant_interface_get_connection_state): new function
- define new supplicant connection states
- send a signal when the supplicant connection state changes
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2157 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Patch by Timo Hoenig <thoenig@suse.de>:
* src/nm-dbus-manager.c (nm_dbus_manager_start_service): Make it work with
DBUS-1.0.
* src/supplicant-manager/Makefile.am: Add nm-supplicant-marshal here, since
we can't use the one from the main source directory.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2133 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Scan using wpa_supplicant over DBus.
* src/nm-device-802-11-wireless.c
- remove wireless extensions netlink event handler bits
(wireless_event_helper, nm_device_802_11_wireless_event)
- remove wireless extensions scan event handler bits
(process_scan_results, add_new_ap_to_device_list, hexstr2bin,
hex2byte, hex2num, request_and_convert_scan_results,
free_process_scan_cb_data, scan_results_timeout,
schedule_scan_results_timeout, cancel_scan_results_timeout)
- Rename nm_device_802_11_wireless_scan() -> request_wireless_scan()
and request scans from the supplicant interface rather than directly
- Move functionality of convert_scan_results() to cull_scan_list() and
supplicant_iface_scanned_ap_cb()
- (supplicant_iface_scan_result_cb): new function; schedule a new scan
at the scan interval when the current scan has finished
- (supplicant_iface_state_cb): start scanning when the supplicant
interface enters the READY state, and stop scanning when it
enters the DOWN state
- (cull_scan_list): weed out old access points from the scan list
- (supplicant_iface_scanned_ap_cb): convert a supplicant scanned access
point into an NMAccessPoint and merge it into the device's scan list
* src/supplicant-manager/nm-supplicant-interface.c
src/supplicant-manager/nm-supplicant-interface.h
- Add a new signal "scan-result" which is issued when the supplicant
notifies NM that a scan has completed
- Add a new signal "scanned-ap" that notifies listeners of a new access
point found in the scan. Called once for each access point that
the supplicant interface object receives from the supplicant as a
result of the "scanResults" method call
- (wpas_iface_query_scan_results): don't wait 4s before querying
for the initial scan results
- (scan_request_cb): new function; send listeners the result
(success, error) of a wireless scan request
- (nm_supplicant_interface_request_scan): new function; ask the
supplicant to perform an immediate wireless scan
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2128 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/supplicant-manager/Makefile.am
- Since we're including NetworkManagerMain.h in nm-supplicant-interface.c,
add HAL cflags/includes and named-manager includes directory
* src/supplicant-manager/nm-supplicant-interface.h
- New state STARTING to handle transition from INIT to READY where
the addInterface pending call is still outstanding
* src/supplicant-manager/nm-supplicant-interface.c
- track pending calls differently since we may have more than one
going on at any given time
- request scan results from wpa_supplicant; but don't do it more often
than every 4 seconds. Drivers that do background scanning
(like the 'ipw' drivers) send a continuous stream of scan completion
notifications, so we don't want to hammer the supplicant or dbus
with requests for all scan results every time we get a completion
notification.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2126 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/supplicant-manager/nm-supplicant-types.h
- new file; move all supplicant manager object typedefs here for
#include sanity
* src/supplicant-manager/nm-supplicant-interface.c
src/supplicant-manager/nm-supplicant-interface.h
- new file; an object that interfaces an NMDevice object to the
supplicant and handles signals from the supplicant. This object
does all necessary DBus communication with wpa_supplicant.
* src/supplicant-manager/nm-supplicant-manager.c
src/supplicant-manager/nm-supplicant-manager.h
- Actually do something. Track the state of the wpa_supplicant service
and deal with its comings & goings. Handle life events of
supplicant interfaces too.
- Move NMSupplicantManager typedef to nm-supplicant-types.h
* src/supplicant-manager/nm-supplicant-connection.h
- Move NMSupplicantConnection typedef to nm-supplicant-types.h
* src/supplicant-manager/Makefile.am
- Add new files to build, and add libnm-util to includes
* src/nm-marshal.list
- New marshaler type: VOID:UINT,UINT
* src/nm-device-802-3-ethernet.c
- (real_init): grab a supplicant interface
- (nm_device_802_3_ethernet_dispose): release the supplicant interface
- (supplicant_iface_state_cb): new function, stub for handling
supplicant interface state changes
* src/nm-device-802-11-wireless.c
- (real_init): grab a supplicant interface
- (nm_device_802_11_wireless_dispose): release the supplicant interface
- (supplicant_iface_state_cb): new function, stub for handling
supplicant interface state changes
* src/NetworkManager.c
- (main): create and keep the supplicant manager around for the lifetime
of NetworkManager
* src/Makefile.am
- Link to the supplicant manager sub-library and use the supplicant
manager includes
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2125 4912f4e0-d625-0410-9fb7-b9a5a253dbdc