Commit graph

8 commits

Author SHA1 Message Date
Dan Williams
ef9674ce75 2006-03-04 Dan Williams <dcbw@redhat.com>
Clean up activation cancellation.  Should be a lot faster now.  Observed
	an issue with wireless devices between stage 2 and 3 of activation, where
	activation would be cancelled, but the device thread wouldn't notice until
	the supplicant association timed out.  Reorganize activation such that
	a cancellation handler gets immediately scheduled in the device's thread,
	and devices have a chance to perform any custom cleanup too.

	* src/nm-device.[ch]
		- (activation_cancel_handler): new device-type-specific function
			for cleaning up device-type-specific stuff on cancellation
		- (cancel_activation): removed
		- (nm_device_activation_cancel): subsume functionality of
			real_cancel_activation, but instead of doing anything, punt
			operation to a handler that's run in device-thread context
		- (nm_device_schedule_activation_handle_cancel): fix spelling of
			a warning message
		- (activation_handle_cancel_helper): cancellation handler run in
			device-thread context, calls device-type-specific cancelation,
			then tears down the activation request
		- (real_activation_cancel_handler): generic cancellation handler,
			deals with cancelling any in-process DHCP request
		- (nm_device_activate_stage1_device_prepare,
		   nm_device_activate_stage2_device_config,
		   nm_device_activate_stage3_ip_config_start,
		   nm_device_activate_stage4_ip_config_get,
		   nm_device_activate_stage4_ip_config_timeout,
		   nm_device_activate_stage5_ip_commit): don't call
			nm_device_schedule_activation_handle_cancel() any more, since
			cancellation will have been already scheduled for us by
			nm_device_activation_cancel().  Just exit the function and
			assume that the cancel handler will be called next.

	* src/nm-device-802-3-ethernet.c
		- (real_act_stage2_config): remove; didn't do anything anyway

	* src/nm-device-802-11-wireless.c
		- (supplicant_status_cb): ensure we don't do anything if the activation
			got cancelled
		- (real_activation_cancel_handler): implement; cancel user key request
			on activation cancellation


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1549 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-03-04 06:44:05 +00:00
Dan Williams
2864ede525 2006-01-22 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerAP.[ch]
		- (nm_ap_get_matched, nm_ap_set_matched): remove

	* src/NetworkManagerAPList.[ch]
		- (nm_ap_list_diff): removed
		- (nm_ap_list_merge_scanned_ap): move AP dbus signal logic here,
			deal with access points changing essids on us

	* src/nm-device-802-11-wireless.c
		- (add_new_ap_to_device_list): move AP dbus signal logic to
			src/NetworkManagerAPList.c
		- (real_can_interrupt_activation): new function; allow interruption
			of device activation if we are waiting for a network key

	* src/NetworkManagerPolicy.c
		- (nm_policy_device_change_check): allow interruption of currently
			activating devices if the device allows it.  Previous behavior
			would refuse to activate a just-plugged wired device if a
			wireless device was waiting for a key.

	* src/nm-device.[ch]
		- (nm_device_can_interrupt_activation): new function; ask devices
			whether their activation can be interrupted


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1375 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-01-22 22:40:14 +00:00
Dan Williams
8b1b8ee7a5 2006-01-13 Dan Williams <dcbw@redhat.com>
* src/nm-device.c
	  src/nm-device.h
		- Allow subclasses to implement deactivate_quickly()
		- (nm_device_deactivate_quickly): call subclass
			deactivate_quickly() methods
		- (nm_device_set_active_link): small cleanups, and don't
			deactivate the device right away because we risk a deadlock
			when called from device thread, waiting for the device
			thread to cancel activation

	* src/nm-device-802-11-wireless.c
		- (real_deactivate_quickly): new function
		- (nm_device_802_11_wireless_class_init): hook in real_deactivate_quickly
		- (real_deactivate): move supplicant cleanup to real_deactivate_quickly
			so that we kill the supplicant when we sleep too
		- (supplicant_interface_init): work around naive naming attempts of
			wpa_ctrl when naming sockets


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1326 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-01-13 16:53:55 +00:00
Dan Williams
becb92ea92 Remove unused prototype
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1287 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-01-08 03:19:49 +00:00
Dan Williams
7f07df2466 2006-01-03 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerPolicy.c
	  src/nm-device.[ch]
	  src/nm-device-802-11-wireless.c
		- Move wireless-specific activation failure and success code
			into wireless device class


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1259 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-01-03 22:11:35 +00:00
Dan Williams
d242edf282 2006-1-3 Dan Williams <dcbw@redhat.com>
* src/nm-device-802-11-wireless.c
	  src/nm-device.[ch]
		- Add hooks to subclasses for stage3_ip_config_start and
			stage4_ip_config_timeout

	* src/nm-device-802-3-ethernet.c
		- (real_get_generic_capabilities): make devices NM-supported
			by default


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1251 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-01-03 17:47:38 +00:00
Dan Williams
d639dbeac0 2006-1-3 Dan Williams <dcbw@redhat.com>
* src/NetworkManager.c
		- Move link-checking/probing into the device subclasses
			themselves

	* src/nm-device.[ch]
	  src/nm-device-802-11-wireless.c
	  src/nm-device-802-3-ethernet.c
		- Do periodic link checking in device subclasses rather
			than being triggered from NetworkManager.c
		- discover_wireless_capabilities -> get_wireless_capabilities
		- discover_generic_capabilities -> get_generic_capabilities
		- Device subclass activation routines now return a value of type
			NMActStageReturn to indicate what step to perform next
		- Devices now override stage4_get_ip4_config if they choose


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1249 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-01-03 17:07:07 +00:00
Dan Williams
4ed4b491fa 2005-12-31 Dan Williams <dcbw@redhat.com>
* refactor NMDevice into a GObject-based framework with separate
		objects for wired and wireless.  The following files are no
		longer used but should stick around for a bit so we don't
		loose code through the cracks:
			NetworkManagerDevice.c
			NetworkManagerDevice.h
			NetworkManagerWireless.c
			NetworkManagerWireless.h

	The intent here is to allow each device type to manage its own
	connection & activation life-cycle, ie to allow wireless devices
	to interface with wpa_supplicant, etc.  There's a fair bit of
	encapsulation breakage right now that should gradually get pulled
	back into each device, along with things like periodic property
	updates and link probing.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1244 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-12-31 08:21:24 +00:00