Commit graph

103 commits

Author SHA1 Message Date
Dan Williams
0b9df92472 2007-08-14 Dan Williams <dcbw@redhat.com>
(force-commit to fix wrong comment and partial commit of r2685; this
	 commit actually applies to r2685)

	* src/NetworkManagerUtils.c
		- (nm_utils_same_ssid): add "ignore_trailing_null" parameter which
			ignores trailing nulls in the SSID to work around mismatches in
			expectations between WEXT and what the info-daemon passes back.  The
			info-daemon would pass back the correct length, but due to the
			ESSID length issues with WEXT 22 and greater and wpa_supplicant,
			the device would always have an SSID + 1 depending on what versions
			of wpa_supplicant, the kernel, and NM you have.  This was most often
			visible by just quitting the applet and relaunching, which caused
			NM to reassociated to the same network over again when reloading
			the save networks.

	* src/NetworkManagerPolicy.c
	  src/NetworkManagerUtils.h
	  src/nm-device-802-11-wireless.c
		- Update for new parameter to nm_utils_same_ssid()



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2686 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2007-08-15 01:59:19 +00:00
Dan Williams
ccb13f0bdd 2007-08-14 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerUtils.c
		- (nm_utils_escape_ssid): add "ignore_trailing_null" parameter which
			ignores trailing nulls in the SSID to work around mismatches in
			expectations between WEXT and what the info-daemon passes back.  The
			info-daemon would pass back the correct length, but due to the
			ESSID length issues with WEXT 22 and greater and wpa_supplicant,
			the device would always have an SSID + 1 depending on what versions
			of wpa_supplicant, the kernel, and NM you have.  This was most often
			visible by just quitting the applet and relaunching, which caused
			NM to reassociated to the same network over again when reloading
			the save networks.



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2685 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2007-08-15 01:56:02 +00:00
Dan Williams
931927a723 2007-08-12 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerPolicy.c
		- (nm_policy_device_change_check): fix policy to deactivate old device
			before activating new one, at least until the multiple active
			device support lands



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2668 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2007-08-13 01:57:15 +00:00
Dan Williams
b7df56d512 2007-08-12 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerPolicy.c
		- (nm_policy_new): hook up to connection-added / connection-removed
			signals instead of connections-changed



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2667 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2007-08-13 01:45:47 +00:00
Dan Williams
f4540f0412 2007-06-27 Dan Williams <dcbw@redhat.com>
* Make SSIDs GByteArrays everywhere
	* Rename "essid" -> "ssid" everywhere that's appropriate
	* Refcount activation_ap member of the 802.11 wireless device class



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2620 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2007-06-27 16:18:52 +00:00
Tambet Ingo
be798e43ab 2007-06-13 Tambet Ingo <tambet@ximian.com>
* src/nm-device.c (nm_device_state_changed): Emit the signal before handling it
	because the handling code will cause the next state change and signal listeners
	get the signals in wrong order.

	* src/NetworkManagerPolicy.c (nm_policy_device_change_check): Get the "old_dev"
	correctly in case of pending activation.




git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2593 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2007-06-13 11:58:25 +00:00
Tambet Ingo
77cdb55279 2007-06-13 Tambet Ingo <tambet@ximian.com>
* src/nm-device-802-11-wireless.c (nm_device_802_11_wireless_set_activation_ap):
	Convert the essid byte array to string correctly, including the terminating NULL.

	* src/NetworkManagerPolicy.c (create_connection): Create wireless ssid and
	mode with correct types.

	* src/nm-dbus-nmi.c (nm_dbus_get_user_key_for_network): Fix a typo, pass the
	constructed info to dbus call instead of the activation request.



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2592 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2007-06-13 09:30:44 +00:00
Tambet Ingo
ff0fd77b08 2007-05-07 Tambet Ingo <tambet@ximian.com>
* libnm-glib/Makefile.am: Link with libnm-util to gain access to
	NMConnection.

	* libnm-glib/nm-device-802-11-wireless.c:
	(nm_device_802_3_ethernet_activate): Remove.

	* libnm-glib/nm-device-802-3-ethernet.c
	(nm_device_802_3_ethernet_activate): Remove.

	* libnm-glib/nm-device.c (nm_device_activate): Implement.

	* src/nm-device-802-3-ethernet.c: Implement the new activation using
	NMConnection.

	* src/nm-device-802-11-wireless.c: Store an activation AP once the
	activation has started.
	Implement the new activation using NMConnection.

	* src/nm-activation-request.c: Store a generic connection object instead
	of a wireless-specific AP.

	* src/NetworkManagerPolicy.c (create_connection): Implement. Depending
	on device type, create a device specific connection object suitable for
	device activation.

	* src/nm-device.c (nm_device_activate): Re-implement. Call the device
	specific check to validate the connection and on success start the
	activation.

	* src/nm-device-interface.h: Add a activate virtual function to the
	interface definition.

	* src/nm-device-interface.c (nm_device_interface_activate): Implement.
	(impl_device_activate): Implement.

	* introspection/nm-device.xml: Add a generic device activation interface
	that accepts an abstract NMConnection structure that has device-specific
	information in it.

	* introspection/nm-device-802-3-ethernet.xml: Remove the wired-specific
	activation interface.

	* introspection/nm-device-802-11-wireless.xml: Remove the wireless-specific
	activation interface.



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2569 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2007-05-07 15:17:45 +00:00
Tambet Ingo
96c246cfc4 2007-03-02 Tambet Ingo <tambet@ximian.com>
* libnm-glib/nm-device-802-11-wireless.c
	(nm_device_802_11_wireless_get_capabilities): Implement.

	* libnm-glib/nm-device.c (nm_device_get_capabilities): Implement.

	* src/nm-device-802-11-wireless.c: Add "WirelessCapabilities" property.

	* src/named-manager/nm-named-manager.c (remove_one_zone_from_named): Unref the
	reply only if it's not NULL. Not sure why this started happening right now.

	* src/nm-manager.c (device_stop_and_free): Remove. No need to have different
	code paths for when devices get removed on shutdown or when a device is just
	removed.
	(finalize): Don't use a g_slist_foreach() when removing devices, the list data
	gets freed so any signal from a device (disconnected for instance) would invoke
	NMState update which would crash.
	(nm_manager_remove_device): Bring the device down when it gets removed.

	* src/NetworkManagerPolicy.c (nm_policy_auto_get_best_device): Remove
	the unused dev_type.

	* src/nm-hal-manager.c (create_device_and_add_to_list): Don't keep the
	reference to the added device, NMManager will own it (if it wants).

	* test/nm-tool.c: Rewrite using libnm-glib.



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2417 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2007-03-05 08:49:30 +00:00
Tambet Ingo
352caa34c6 2007-03-02 Tambet Ingo <tambet@ximian.com>
* 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
2007-03-02 09:30:48 +00:00
Tambet Ingo
537b30f99e 2007-02-20 Tambet Ingo <tambet@ximian.com>
* libnm-glib/nm-device-802-11-wireless.c: Add "network-added" and
	"network-removed" signals.

	* libnm-glib/libnm-glib.pc.in: Require NetworkManager >= 0.7.0.

	* libnm-glib/nm-access-point.c: Add "strength-changed" signal, emit it
	when receiving the signal from dbus.

	* src/nm-device-802-11-wireless.c (get_property): Fix PROP_ACTIVE_NETWORK
	property.

	* src/NetworkManagerPolicy.c (state_changed): Fix a typo to make the
	deactivation of the previously activated device working again.

	* src/nm-activation-request.c: Remove NMActStage property and it's getter
	and setter.

	* src/nm-device.c (nm_device_is_activated): Remove.
	state == NM_DEVICE_STATE_ACTIVATED is just as easy to use.

	* include/NetworkManager.h: Remove NM_DBUS_NO_DEVICES_ERROR,
	NM_DBUS_NO_DIALUP_ERROR, NM_DBUS_NO_NETWORKS_ERROR,
	NM_DBUS_NO_ACTIVE_DEVICE_ERROR, NM_DBUS_NO_ACTIVE_NET_ERROR errors and
	NM_DBUS_SIGNAL_STATE_CHANGE signal.
	Remove NMNetworkStatus and NMActStage enums.



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2345 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2007-02-20 15:24:42 +00:00
Tambet Ingo
3dcd9d2d17 2007-02-19 Tambet Ingo <tambet@ximian.com>
* src/vpn-manager/nm-vpn-manager.c: Handle the DBUS state changes itself.
	Handle device state changes and disconnect VPN if it's device deactivates.

	* src/nm-dbus-nm.c: 
	* src/nm-dbus-nm.h: 
	* src/nm-dbus-device.c: 
	* src/nm-dbus-device.c: 
	* src/nm-dbus-net.c: 
	* src/nm-dbus-net.h: Remove. All of it is implemented byt the new dbus API.

	* src/NetworkManagerMain.h: Get rid of all but 3 properties of NMData.

	* src/nm-device.c (nm_device_get_by_udi):
	(nm_device_get_by_iface): Remove. This doesn't belong here and is already
	implemented in the correct location (NMManager).
	Rip out all the test_device stuff.

	* src/NetworkManagerPolicy.c: Remove the leftover activation success and
	failure handlers, it's all done by NMDevice already.

	* src/NetworkManager.c: Move the signal handling here from nm-logging.c
	Remove the iochannel hack to route the unix signals to the main thread since
	we're not threaded anymore.

	* src/NetworkManagerAP.c: Implement HWAddress property.

	* src/NetworkManagerDbus.c: Remove the dbus signal sending code, it happens
	automatically with dbus-glib.

	* src/nm-netlink-monitor.c: 
	* src/nm-netlink-monitor.h:
		- Move it low in the class hierarchy, don't reference any NM types.
		- Remove private data from the header.
		- Use type safe checks in public API methods.
		- Make it a singleton so we don't have to pass the single reference around.



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2339 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2007-02-19 13:09:32 +00:00
Tambet Ingo
c40051389c 2007-02-16 Tambet Ingo <tambet@ximian.com>
* introspection/nm-ip4-config.xml: Implement.

	* libnm-glib/libnm-glib-test.c: Use new DBUS API in tests.

	* libnm-glib/nm-ip4-config.c:
	* libnm-glib/nm-ip4-config.c: Implement.

	* src/nm-ap-security[-*]: Remove circular dependencies between APs and AP
	securities. APs reference security.

	* src/nm-device-802-11-wireless.c: Implement missing properties that need to
	be exported over DBUS.

	* src/nm-device-802-3-ethernet.c: Ditto.

	* src/NetworkManagerAP.c:
	* src/NetworkManagerAP.h:
		- Convert to GObject, export over DBUS.

	* src/nm-ip4-config.h:
	* src/nm-ip4-config.h:
		- Convert to GObject, export over DBUS.




git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2322 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2007-02-16 11:23:49 +00:00
Tambet Ingo
a8191ddaa3 2007-02-09 Tambet Ingo <tambet@ximian.com>
* src/nm-device-802-11-wireless.c:
		- Add "network-added" and "network-removed" signals.
		- Use gobject boilerplate macros to define the GObject.
		- Implement wireless device activation.
		- Remove activation_failure_handler and activation_success_handler
		  and instead listen on state-changed signals and run the same code
		  from there.

	* src/nm-device.c:
		- Implment NMDeviceInterface::deactivate.
		- Remove activation_failure_handler and activation_success_handler
		  virtual methods. Each device which is interested in these events
		  can just listen on it's state changed signals.

	* src/NetworkManagerPolicy.c:
		- Move a bit more NMData usage to NMManager.
		- Remove activation scheduling bits.
		- Add listeners for wireless device's "network-added" and
		  "network-removed" signals.
		- Listen device changed signals and deactivate currently activated
		  device when another device start activating (for now).
		- Remove (nm_policy_schedule_device_change_check): There's never a need
		  for calling this, the policy code knows exactly when this should happen,
		  by listening on events from NMManager and NMDevices.

	* src/nm-device-802-3-ethernet.c (nm_device_802_3_ethernet_activate):
	Implement.

	* src/nm-dbus-nm.c (nm_dbus_nm_set_active_device): Call the activation
	method on the specific device instead of going to through policy code
	and determining the device type by passed in AP's existance.

	* src/nm-device-interface.c (nm_device_interface_deactivate): Implement the
	abstract NMDevice deactivation.



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2298 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2007-02-09 08:50:35 +00:00
Tambet Ingo
371de4c2d0 2007-02-08 Tambet Ingo <tambet@ximian.com>
* src/NetworkManager.c:
		- Set up all the shiny new managers.

	* src/NetworkManagerPolicy.c:
		- Add the beginnings of new NMPolicy code. Instead of requireing all
		  classes to call into policy code, make the policy code kind of like
		  a supervisor that monitors what's going on and drives the whole NM.

	* src/nm-hal-manager.c: 
	* src/nm-hal-manager.h:
		- Collect all libhal code scattered around NM to this one class.
		- Listen libhal and NMManager events and add/remove devices to
		  NMManager.

	* src/nm-manager.c:
	* src/nm-manager.h:
		- Implment a replacement for NMData. NMData is now officially
		deprecated.



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2291 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2007-02-08 15:34:26 +00:00
Tambet Ingo
a88e1dd3a2 2007-02-05 Tambet Ingo <tambet@ximian.com>
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
2007-02-05 12:14:09 +00:00
Dan Williams
0df1e42c39 2007-01-04 Dan Williams <dcbw@redhat.com>
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
2007-01-04 12:06:26 +00:00
Dan Williams
a6f5833cb3 2006-12-19 Dan Williams <dcbw@redhat.com>
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
2006-12-19 19:15:31 +00:00
Dan Williams
3834255f8c 2006-12-19 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerPolicy.c
		- (nm_policy_device_change_check, nm_policy_schedule_device_change_check):
			better locking of the device change check handler ID.  Incorrect
			locking was causing lost device change requests


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2191 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-12-19 19:04:04 +00:00
Dan Williams
84678fc9fe 2006-10-13 Dan Williams <dcbw@redhat.com>
* Huge DBus refactor:
		- Create a "DBus Manager" object which manages the connection and
		sends signals on NameOwnerChanged and connection/disconnection events,
		handles reconnection to the bus if NM gets kicked off, and abstracts
		signal handling
		- Remove DBusConnection members from places where they are no
		longer needed due to the refactor, like the dbus-connection
		property of the named manager, and from NMData
		- Reformats a bunch of the code to gnome style
		(8-space tabs, braces on same line as statement, 80-col width).
		Consider it open season to reformat any bits to gnome style.
		style that aren't already.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2061 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-10-13 19:41:47 +00:00
Dan Williams
e18e59e356 2006-05-28 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerPolicy.c
		- (nm_policy_device_change_check): don't switch devices if the "best"
			AP is essentially the same as the current activation request, but
			the current activation request isn't done activating yet.  Fixes
			multiple requests for keyring password on startup for Gnome applet.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1775 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-05-28 20:08:11 +00:00
Robert Love
6fd1cc39d2 2006-04-20 Robert Love <rml@novell.com>
Fix bug where hidden ESSID's would not show up in the applet, even
	if NMI provided a BSSID -> ESSID mapping from Gconf.  This occurred
	because nm_policy_device_list_update_from_allowed_list() would merge
	the data, putting a name to the hidden networks, but never notify NMI
	of the changes.  Simple fix is to invoke the function
	nm_dbus_signal_wireless_network_change() if we make a mapping.
	* src/NetworkManagerAPList.c: Call the function
	  nm_dbus_signal_wireless_network_change() if we made a successful
	  BSSID to ESSID mapping, notifying the applet of the "new" network.
	* src/NetworkManagerAPList.h: Update the prototypes for both
	  nm_ap_list_copy_essids_by_address() and
	  nm_ap_list_copy_one_essid_by_address().


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1700 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-04-20 20:40:25 +00:00
Robert Love
992f148ffa * src/NetworkManagerDbus.c: Fix comment.
* src/NetworkManagerPolicy.c: Fix crasher.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1664 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-03-30 14:42:43 +00:00
Dan Williams
f5876bbd07 2006-03-03 Dan Williams <dcbw@redhat.com>
Fix a crash if an "Other wireless network" was chosen, failed, then
	chosen again from the applet's menu.  If the other network wasn't
	noticed in a scan, it wouldn't have any capabilities, but would still
	be listed because the user forced the network.  To fix this, we set
	sensible capabilities on the forced network, which will get overwritten
	with the correct ones if the network shows up later in a scan.

	* src/nm-ap-security.h
		- Add a new "get_default_capabilities_func" member to the
			NMAPSecurity class

	* src/nm-ap-security.c
		- (nm_ap_security_get_default_capabilities): new function

	* src/nm-ap-security.c
	  src/nm-ap-security-wep.c
	  src/nm-ap-security-wpa-psk.c
	  src/nm-ap-security-wpa-eap.c
		- Implement get_default_capabilities_func() for all, which
			uses the information contained in a specific NMAPSecurity
			object to determine default AP capabilites necessary
			to support that object

	As a secondary measure, we now prune artificial access points that fail
	to be activated right away.  The thing failed, and we have no scan data for
	it, so it's pretty much useless since security information is only saved
	in the applets when a connection is successful.

	* src/NetworkManagerAPList.c
		- (nm_ap_list_merge_scanned_ap): mark any ap noticed in a scan
			not artificial.  If we see it, it's no longer a figment of the
			user's imagination :)

	* src/NetworkManagerPolicy.c
		- (nm_policy_activation_failed): send along the failed AP if we
			have it

	* src/nm-device-802-11-wireless.c
		- (real_activation_failure_handler): remove artificial APs from
			the device list, because activation failed


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1542 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-03-03 17:46:35 +00:00
Dan Williams
ad38b25413 2006-02-26 Dan Williams <dcbw@redhat.com>
* configure.in
	  gnome/applet/Makefile.am
		- Conditionalize all the notify stuff

	Merge most of Chris Aillon's notification patch:

	* gnome/applet/applet-notifications.[ch]
		- New files; show a notification

	* gnome/applet/applet-dbus-devices.[ch]
		- (nmwa_dbus_device_activated, nmwa_dbus_device_activated_cb,
		   nmwa_dbus_device_deactivated, nmwa_dbus_device_deactivated_cb):
			new functions, do the right thing when a device change occurs

	* gnome/applet/applet-dbus.c
		- (nmwa_dbus_filter): Split out DeviceNowActive and DeviceNoLongerActive
			signals, so we can handle them specially

	* gnome/applet/applet.[ch]
		- nmwa_schedule_vpn_login_banner -> nmwa_show_vpn_login_banner
		- nmwa_schedule_vpn_failure_alert -> nmwa_show_vpn_failure_alert
		- (nmwa_notify_state): remove
		- (nmwa_update_state); remove call to nmwa_notify_state, since the
			notification work is now done when the appropriate dbus signals
			are received.
		- (nmwa_show_vpn_login_banner, nmwa_show_vpn_failure_alert): don't
			defer execution of the notification/dialog stuff.  That was an
			artifact of the previous multi-threaded nature of the applet
			and is now pointless.
		- (nmwa_notify_vpn_failure, nmwa_notify_vpn_login_banner): remove,
			no longer needed.  Function folded into applet-notifications.c

	* src/NetworkManagerPolicy.c
		- (nm_policy_activation_finish): send the AP along with the device
			status change signal, if the connection is wireless.  Should
			fix the race where applet would show a connection to "unknown"


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1498 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-02-26 06:52:26 +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
b225c2a019 2006-01-16 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerPolicy.c
		- (nm_policy_device_change_check): switch devices if we lose the link
			on an ethernet device.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1340 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-01-16 19:10:10 +00:00
Robert Love
46efeb868a 2006-01-11 Robert Love <rml@novell.com>
* configure.in: Add the gcc flags '-Wshadow' and '-Wfloat-equal'.
	* gnome/applet/applet.c, gnome/vpn-properties/nm-vpn-properties.c,
	  src/NetworkManagerAPList.c, src/NetworkManagerDbus.c,
	  src/NetworkManagerPolicy.c, src/NetworkManagerSystem.c,
	  src/nm-dbus-device.c, src/nm-device-802-3-ethernet.c,
	  src/nm-ip4-config.c, src/vpn-manager/nm-vpn-manager.c,
	  test/nmtestdevices.c: Fix shadowed variable usage as appropriate.
	* src/nm-device-802-11-wireless.c: Fix floating point comparison by
	  comparing values within DBL_EPSILON.  Also fix shadowed variable
	  usage.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1318 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-01-11 21:07:29 +00:00
Dan Williams
5cac86fdd2 2006-01-09 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerPolicy.c
		- (nm_policy_device_change_check): don't autoswitch away from
			Ad-Hoc networks, since there's really no concept of "link"

	* src/nm-dbus-nm.c
		- (nm_dbus_nm_create_wireless_network): mark created networks
			as Ad-Hoc networks

	* src/nm-device-802-11-wireless.c
		- (real_activation_success_handler): add user-created Ad-Hoc
			networks to the device's scan list


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1300 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-01-09 05:11:29 +00:00
Robert Love
5e62f41321 2006-01-06 Robert Love <rml@novell.com>
* src/NetworkManagerPolicy.c: Always prefer wired to wireless, as the
	  user plugging in a network cable signals their preference for to
	  switch, unless the user explicitly selected a wireless network and
	  therefore signaled their preference for said wireless network over
	  wired.  In other words, do exactly what makes sense.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1279 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-01-06 22:04:03 +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
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
Dan Williams
036e35a5ca 2005-12-21 Dan Williams <dcbw@redhat.com>
* Consolidate the info-daemon's "updateNetworkInfo" and
		"addNetworkAddress" calls into just "updateNetworkInfo"


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1224 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-12-22 00:24:11 +00:00
Dan Williams
f003ba8ef7 2005-12-17 Dan Williams <dcbw@redhat.com>
* include/NetworkManager.h
		- Finally kill NMEncKeyType

	* gnome/applet/applet-dbus-info.c
		- (nmi_save_network_info): convert to NMGConfWSO

	* gnome/applet/nm-gconf-wso-*.c
		- Implement gconf serialization functions

	* src/NetworkManagerPolicy.c
		- (nm_policy_activation_finish): fix up meaning of
			automatic/user_requested


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1211 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-12-17 21:39:19 +00:00
Dan Williams
b822a5cdc2 2005-12-16 Dan Williams <dcbw@redhat.com>
* Finally move info-daemon related stuff out of
		NetworkManagerDbus.c to nm-dbus-nmi.c


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1201 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-12-16 15:16:54 +00:00
Dan Williams
a22b039c11 2005-12-16 Dan Williams <dcbw@redhat.com>
* Kill auth_method for access points, since that's now done
		by NMAPSecurity objects

	* Add a copy-constructor of sorts to NMAPSecurity
		(how do you do this properly in glib???)


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1200 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-12-16 15:04:40 +00:00
Dan Williams
eff693f386 2005-12-07 Dan Williams <dcbw@redhat.com>
* Convert NETWORK_MODE_* constants to IW_MODE_*
	* Make all the get_mode/set_mode functions take and return 'int'
	* Convert D-BUS calls that pass mode to DBUS_TYPE_INT32 rather than UINT32


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1142 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-12-07 17:40:37 +00:00
Dan Williams
df786181e4 2005-12-06 Dan Williams <dcbw@redhat.com>
* Change nm_device_is_* functions to better names:
		nm_device_is_wireless() -> nm_device_is_802_11_wireless()
		nm_device_is_wired() -> nm_device_is_802_3_ethernet()


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1132 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-12-07 00:38:33 +00:00
Christopher Aillon
d52b45a03a 2005-11-02 Christopher Aillon <caillon@redhat.com>
* src/NetworkManagerPolicy.c:
	(nm_policy_device_change_check) Clarify wireless switch nm_info text


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1088 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-11-02 06:29:06 +00:00
Dan Williams
d41e3a4244 2005-10-10 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerPolicy.c
		- Fix some bugs introduced by the capabilities patch


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1013 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-10-10 12:57:49 +00:00
Dan Williams
69d77f6b56 2005-10-09 Dan Williams <dcbw@redhat.com>
* Replace the "driver support level" stuff with capabilities.  The
		capability field is a bitfield that is more flexible than the
		old driver support level thing.  It's mostly so we can easily
		figure out what supports WPA and what doesn't, but should be
		quite useful later.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1007 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-10-09 04:39:49 +00:00
Christopher Aillon
314e6fc426 2005-09-10 Christopher Aillon <caillon@redhat.com>
* gnome/applet/applet.c:
	* gnome/applet/applet-dbus-devices.c:
	* gnome/applet/applet-dbus-info.c:
	* gnome/applet/passphrase-dialog.c:
	* gnome/libnm_glib/libnm_glib.c:
	* gnome/vpn-properties/nm-vpn-properties.c:
	* src/autoip.c:
	* src/backends/NetworkManagerRedHat.c:
	* src/named-manager/nm-named-manager.c:
	* src/NetworkManagerAPList.c:
	* src/NetworkManager.c:
	* src/NetworkManagerDbus.c:
	* src/NetworkManagerDevice.c:
	* src/NetworkManagerPolicy.c:
	* src/NetworkManagerSystem.c:
	* src/nm-dbus-device.c:
	* src/nm-dbus-nm.c:
	* src/vpn-manager/nm-vpn-manager.c:
	* src/vpn-manager/nm-vpn-service.c:
	* test/libnm_glib_test.c:
	* test/nminfotest.c:
	* test/nmtestdevices.c:
	Fix up a bunch of 'unused variable' compiler warnings


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@959 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-09-11 02:32:30 +00:00
Dan Williams
5c46be7149 2005-09-07 Dan Williams <dcbw@redhat.com>
* The great VPN Manager rewrite of 2005


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@946 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-09-07 19:12:52 +00:00
Dan Williams
8c4b6c6a91 2005-08-17 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerPolicy.c
		- (nm_policy_device_change_check): clarify switching rules if
			both new and old devices are valid; mainly, don't switch
			away from user-requested wireless connection back to a wired
			one


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@859 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-08-17 04:23:25 +00:00
Dan Williams
49ded958b4 2005-08-17 Dan Williams <dcbw@redhat.com>
Patch from Bill Moss <bmoss@clemson.edu>

	* gnome/applet/applet-dbus-info.[ch]
		- (nmi_save_network_info): save timestamp for network if it
			was a change requested by the user
		- (nmi_dbus_update_network_info): get user_requested from dbus
			message and pass to nmi_save_network_info()

	* gnome/applet/applet.c
		- (nmwa_update_network_timestamp): remove
		- (nmwa_menu_item_activate): don't set timestamp on networks
			here, only after a successful connect in nmi_save_network_info()

	* src/NetworkManagerDbus.[ch]
		- (nm_dbus_update_network_info): pass user_requested into the
			dbus message

	* src/NetworkManagerPolicy.c
		- (nm_policy_activation_finish): pass user_requested to
			nm_dbus_update_network_info()


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@857 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-08-17 04:19:43 +00:00
Dan Williams
ca7c51f6c4 2005-08-10 Dan Williams <dcbw@redhat.com>
Patch from Bill Moss <bmoss@clemson.edu>
	* Consolidate writes of access point information updates to the info daemon
		so that we only do it when the connection to the access point was
		successful.  Also consolidates updates to GConf in the Gnome applet.

	* src/nm-netlink-monitor.c
		- Silence compile warning when calling g_object_new()


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@830 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-08-10 14:30:41 +00:00
Robert Love
28d334748b 2005-06-21 Robert Love <rml@novell.com>
* applet/applet-dbus-devices.c: mark non-static functions static.
	* applet/applet-dbus-vpn.c: (ditto)
	* applet/applet.c: (ditto)
	* applet/nm-device.h: (ditto)
	* applet/other-network-dialog.c: (ditto)
	* applet/passphrase-dialog.c: (ditto)
	* NetworkManager.c: (ditto)
	* NetworkManagerDbus.c: (ditto)
	* NetworkManagerDevice.c: (ditto)
	* NetworkManagerPolicy.c: (ditto)
	* NetworkManagerUtils.c: (ditto)
	* NetworkManagerWireless.c: (ditto)
	* NetworkManagerWireless.h: (ditto)
	* nm-netlink-monitor.c: (ditto)
	* applet/applet-dbus-info.c: (ditto), add FIXME's.
	* vpn-manager/nm-dbus-vpn.c: (ditto), remove shadowed variable.
	* autoip.c: include autoip.h.
	* autoip.h: new file.  define get_autoip().
	* nm-netlink-monitor.h: define nm_netlink_close_connection().
	* NetworkManagerDbus.h: remove duplicate definitions.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@728 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-06-21 15:07:01 +00:00
Dan Williams
c1069ccac5 2005-05-15 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerDevice.[ch]
	  src/NetworkManagerPolicy.c
	  src/NetworkManager.c
	  src/nm-dbus-nm.c
		- Remove the "just_added" parameter from nm_device_deactivate().  We no
			longer send the DeviceNoLongerActive signal unconditionally, but only
			when the device is actually active.

	* dispatcher-daemon/NetworkManagerDispatcher.c
		- (nmd_execute_scripts): convert to GLib directory functions from opendir(),
			and simplify the logic
		- (nmd_get_device_name): copy value from dbus reply so we don't segfault when
			we free it later on

	* initscript/RedHat/Makefile.am
	  initscript/RedHat/NetworkManagerDispatcher
		- Add initscript for NetworkManagerDispatcher


	Patch from Bill Moss:
	* dispatcher-daemon/NetworkManagerDispatcher.c
		- Remove IP4AddressChange signal code including nmd_get_device_ip4_address()

	* src/NetworkManagerDbus.c
		- (nm_dbus_signal_device_ip4_address_change): remove.  If the device goes up,
			and DeviceNowActive gets signaled, then the device has a new IP address
			anyway.  There's no need for a separate signal.

	* src/NetworkManagerDevice.c
		- (nm_device_update_ip4_address): Don't send IP4AddressChange signal

	* src/NetworkManagerPolicy.c
		- (nm_policy_activation_finish): Send DeviceNowActive signal when the device
			activates successfully.  This kind of went missing when I reworked the
			activation code.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@634 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-05-16 01:28:45 +00:00
Dan Williams
5d7d819af9 2005-05-08 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerPolicy.c
		- (nm_policy_activation_finish): Don't set NM_ACT_STAGE_ACTIVATED here, instead...
		- (nm_policy_schedule_activation_finish): Set NM_ACT_STAGE_ACTIVATED here to
			fix a situation where NM is told to terminate and the device stops activation,
			but the main thread isn't aware of that because it would never have run
			nm_policy_activation_finish() to set the ACTIVATED flag, because the main loop
			had already quit.

	* src/NetworkManagerDevice.c
		- (nm_device_probe_wired_link_state): cosmetic fixes
		- (nm_device_activate_stage5_ip_config_commit): Don't check link state if
			we've failed to activate or been canceled.
		- (nm_ac_test): nm_debug -> nm_info for "waiting for device to cancel" message


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@616 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-05-08 16:31:03 +00:00
Dan Williams
130b42a902 2005-05-06 Dan Williams <dcbw@redhat.com>
* gnome/applet/applet-dbus-device.c
	  gnome/applet/applet-dbus-info.c
	  gnome/applet/applet-dbus.c
	  gnome/applet/applet.c
	  gnome/applet/applet.h
		- (nmwa_get_device_for_nm_device) -> (nmwa_get_device_for_nm_path)

	* gnome/applet/applet-dbus.c
		- (nmwa_dbus_filter): trap DeviceCarrierOn/DeviceCarrierOff signals
			so we notice when wired device's carriers come back on.  Should
			fix issue with wired devices being grayed out even if the cable
			is in, for devices that support carrier detection.

	* gnome/applet/applet.c
		- (nmwa_driver_notify): bash focus-stealing prevention in the face
		- (nmwa_act_stage_to_pixbuf): Clarify wireless ACT_STAGE_DEVICE_CONFIG
			tooltip message
		- (nmwa_menu_item_activate, nmwa_menu_add_device_item, nmwa_menu_item_data_free):
			Fix situation where applet wouldn't respond to menu selections

	* src/NetworkManager.c
	  src/NetworkManagerDevice.c
	  src/NetworkManagerDbus.c
	  src/NetworkManagerDbus.h
		- (nm_dbus_signal_device_status_change) -> (nm_dbus_schedule_device_status_change_signal)

	* src/NetworkManagerDbus.c
		- (nm_dbus_send_network_not_found, nm_dbus_schedule_network_not_found_signal):
			Remove, no longer used or relevant
		- (nm_dbus_signal_device_status_change): Better signal enum->string matching
		- (nm_dbus_schedule_device_status_change_signal): add

	* src/NetworkManagerDevice.c
		- (nm_device_worker_thread_stop): don't try to join a NULL worker thread
		- (nm_device_set_link_active): Fix up switching for non-carrier-detect devices,
			ie don't deactivate them unless explicitly told to by the user.  Also send
			CARRIER_OFF / CARRIER_ON signals when link changes
		- (nm_device_set_essid, nm_device_set_enc_key, nm_device_is_up, nm_device_set_mode):
			Don't print error message when device is no longer around
		- (nm_device_deactivate): kill any current DHCP process attached to this device,
			not just during activation

	* src/NetworkManagerPolicy.c
		- (nm_policy_auto_get_best_device): Ignore semi-supported devices completely from
			auto-device-selection.
		- (nm_policy_device_change_check): Don't interrupt semi-supported devices

	* src/NetworkManagerSystem.c
		- (nm_system_device_set_up_down_with_iface): Quiet first warning message when device
			is no longer present (Bill Moss)

	* src/backends/shvar.c
		- (svOpenFile): Open read-only to make SELinux happy

	* src/backends/NetworkManagerRedHat.c
		- (nm_system_device_get_system_config): Use SYSCONFDIR rather than hardcoding
			the path to the ifcfg-* files


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@613 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-05-06 21:20:42 +00:00