Commit graph

55 commits

Author SHA1 Message Date
Dan Williams
792b14dec4 2007-10-26 Dan Williams <dcbw@redhat.com>
Patch from Helmut Schaa <hschaa@suse.de> (and more bits from me)

	* src/NetworkManagerAP.c
	  src/NetworkManagerAP.h
	  libnm-glib/nm-access-point.c
	  libnm-glib/nm-access-point.h
		- Make 'rate' property a guint32 to better match with WEXT and
			wpa_supplicant and to allow representation of higher bitrates

	* src/nm-device-802-11-wireless.c
	  introspection/nm-device-802-11-wireless.xml
	  libnm-glib/nm-device-802-11-wireless.c
	  libnm-glib/nm-device-802-11-wireless.h
		- Make 'bitrate' property a guint32 to match AP 'rate' property type

	* src/nm-device-802-3-ethernet.c
	  src/nm-device-802-3-ethernet.h
	  introspection/nm-device-802-3-ethernet.xml
	  libnm-glib/nm-device-802-3-ethernet.c
	  libnm-glib/nm-device-802-3-ethernet.h
		- Make 'speed' property a guint32 to match other speed/rate types
		- Make nm_device_802_3_ethernet_get_speed() static

	* test/nm-tool.c
		- Update for the changes above



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3030 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2007-10-27 02:58:32 +00:00
Dan Williams
f0ecd6be34 2007-10-21 Dan Williams <dcbw@redhat.com>
* 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
2007-10-22 03:15:05 +00:00
Dan Williams
777d07673c 2007-10-08 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerAP.h
	  src/NetworkManagerAP.c
		- (nm_ap_has_manufacturer_default_ssid): remove, unused.  User clients
			should handle default SSIDs and whether or not to autoconnect
			to them



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2955 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2007-10-08 15:27:56 +00:00
Dan Williams
d92897393e 2007-09-19 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerAP.c
	  src/NetworkManagerAP.h
	  introspection/nm-access-point.xml
		- Change strength-changed signal into a properties-changed signal
			for all properties, not just strength.  Export that signal over dbus
			so listeners don't have to poll NM for changes.
		- (nm_ap_export_to_dbus, nm_ap_new): not every NMAccessPoint should
			get exported over D-Bus, so break up the logic and let other bits
			decided when to export the AP
		- (nm_ap_new_from_ap): remove, unused

	* src/nm-device-802-11-wireless.c
		- (merge_scanned_ap): only export APs that are actually on the device
			list, not every AP created internally

	* libnm-glib/nm-access-point.c
	  libnm-glib/nm-access-point.h
		- Cache properties internally and only hit DBus when needed.  Get
			property updates from NM signals



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2825 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2007-09-19 20:44:37 +00:00
Dan Williams
8b905b9762 2007-09-10 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerAP.c
	  src/NetworkManagerAP.h
	  introspection/nm-access-point.xml
		- Change 'freq' property to a guint32 instead of a double since we
			weren't using the floating point bits anyway



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2780 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2007-09-10 19:56:31 +00:00
Dan Williams
0930458ea4 2007-09-10 Dan Williams <dcbw@redhat.com>
* NetworkManagerAP.c
	  NetworkManagerAP.h
	  NetworkManagerPolicy.c
	  NetworkManagerSystem.c
	  NetworkManagerUtils.c
	  NetworkManagerUtils.h
	  nm-device-802-11-wireless.c
	  nm-device-802-3-ethernet.c
	  nm-hal-manager.c
	  nm-manager.c
	  vpn-manager/nm-dbus-vpn.c
		- Warning fixes; casts and removal of unused variables



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2779 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2007-09-10 19:51:25 +00:00
Dan Williams
4c028c7cef 2007-09-10 Dan Williams <dcbw@redhat.com>
* include/NetworkManager.h
		- Kill NMNetworkType; AP types don't matter any more

	* src/NetworkManagerAPList.c
	  src/NetworkManagerAPList.h
	  src/Makefile.am
		- Kill; NMAccessPointList has outlived it's usefulness

	* src/NetworkManagerAP.c
	  src/NetworkManagerAP.h
		- (match_cipher, security_compatible, nm_ap_check_compatible): new
			functions; check if an NMConnection object is compatible with the
			settings of this AP
		- (freq_to_channel, channel_to_freq): utility functions for
			channel <-> frequency conversion

	* src/nm-device.c
	  src/nm-device.h
		- (nm_device_get_best_connection): pass the specific object around
			 (which might be the object path of a specific AP to connect to).
			 The get_best_connection() call should populate this on return
			 if needed (wireless does).

	* src/nm-device-802-3-ethernet.c
		- (real_get_best_connection): handle specific_object argument

	* src/NetworkManager.c
	  src/NetworkManagerMain.h
		- Remove unused includes

	* src/nm-device-802-11-wireless.c
	  src/nm-device-802-11-wireless.h
		- Convert the ap_list into a GSList from an NMAccessPointList
		- No need for caching the 'activation_ap' since this is now determined
			from the specific_object of the activation request, which is
			populated from the get_best_connection() call or from a user request
		- (nm_device_802_11_wireless_update_bssid): fix warning
		- (get_wireless_capabilities): fix error message format arguments
		- (nm_device_802_11_wireless_copy_allowed_to_dev_list): remove, unused
		- (find_best_connection, real_get_best_connection): implement
		- (ap_list_get_ap_by_ssid, nm_device_802_11_wireless_ap_list_print):
			move here from NetworkManagerAPList
		- (ap_need_secrets): remove; moved to nm-connection.c where it belongs
		- (real_act_stage1_prepare): just ensure an AP exists, connection is
			already verified earlier
		- (real_act_stage2_config): use nm_connection_need_secrets()

	* src/NetworkManagerPolicy.c
		- (nm_policy_auto_get_best_device): handle specific objects
		- (create_connection): remove; automatic connection creation functionality
			is handled by the Connection objects
		- (nm_policy_device_change_check): handle specific_object

	* libnm-util/nm-connection.c
		- (wireless_sec_need_secrets, nm_connection_need_secrets): implement



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2778 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2007-09-10 19:11:40 +00:00
Dan Williams
3443abf3f9 2007-08-28 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerAP.c
	  src/NetworkManagerAP.h
		- Remove 'fallback' tag, to be replaced by NMConnection/NMSettings
			'autoconnect' property instead

	* src/NetworkManager.c
	  src/NetworkManagerMain.h
	  src/NetworkManagerPolicy.c
	  src/NetworkManagerPolicy.h
		- Remove the 'allowed_ap_list', which should be replaced by 
			NMConnection/NMSettings instead, since _those_ are the allowed
			things that NM can connect to

	* src/nm-device-802-11-wireless.c
		- Remove both allowed_ap_list usage and 'fallback' checking



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2740 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2007-08-28 15:17:48 +00:00
Dan Williams
7a8f33aa3d 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
2007-08-28 14:47:31 +00:00
Dan Williams
3c14aa3926 2007-08-20 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerAP.c
	* src/NetworkManagerAP.h
		- (nm_ap_print_self): new function

	* src/NetworkManagerAPList.c
		- (nm_ap_list_print_members): call nm_ap_print_self() rather than trying
			to do it all here



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2715 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2007-08-21 01:41:04 +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
229624b88f 2007-03-26 Tambet Ingo <tambet@ximian.com>
* src/vpn-manager/nm-dbus-vpn.c (dbus_message_handler): Implement DBUS message
	handler for VPN.

	* src/vpn-manager/nm-vpn-manager.c (nm_vpn_manager_new): Register VPN interface
	on DBUS again.

2007-03-26  Dan Williams  <dcbw@redhat.com>

	* src/NetworkManagerAPList.c
	* src/nm-device-802-11-wireless.c
	* src/NetworkManagerAP.c:
		- Store last seen as glong instead of GTimeVal.
		- Fix the upper bound of capabilities, it's a bitfield.




git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2500 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2007-03-26 12:29:49 +00:00
Tambet Ingo
8fa8ac4c80 2007-03-15 Tambet Ingo <tambet@ximian.com>
* src/nm-device-802-11-wireless.c (constructor): Initialize the iw_ext structures
	with zeroes before passing them to functions - the functions never do that and
	reading the values back may produce wrong values.
	(real_bring_up): Store the signal handler id ...
	(real_bring_down): ... So that it can be removed here.
	Disconnect the supplicant interface here as well.
	(nm_device_802_11_wireless_ap_list_get_ap_by_obj_path): Use the dbus object path
	from the access point instead of old $device/Networks/$essid.

	* src/nm-manager.c (nm_manager_get_state): Return NM_STATE_CONNECTED when the
	device state is connected (instead of just having link/carrier).

	* src/nm-activation-request.c: Don't store NMData in activation request, it's
	already easily accessible through the device.

	* src/NetworkManagerAP.c (nm_ap_init): Construct the dbus object path here and
	store it within the object.
	(nm_ap_get_dbus_path): Export it to public as well.

	* src/dhcp-manager/nm-dhcp-manager.c (nm_dhcp_manager_get): Keep the ownership
	of the singleton.



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2478 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2007-03-16 09:06:48 +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
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
Robert Love
75478a3768 2006-06-08 Robert Love <rml@novell.com>
Add 'fallback' support.  NetworkManager will attempt to brute-force
	connect to networks marked as fallback if there are no better wireless
	connections available.  This is useful as a method of last resort, to
	work around driver problems, and for use with hidden networks.
	* gnome/applet/applet-dbus-devices.c,
	  gnome/applet/applet-dbus-devices.h: Add fallback parameter.
	* gnome/applet/applet-dbus-info.c: Retrieve fallback bit from Gconf and
	  pass it on via DBUS.
	* gnome/applet/applet.c: No fallback by default.
	* gnome/applet/applet.glade, gnome/applet/other-network-dialog.c:
	  Update other-network-dialog to add UI checkbox toggling fallback.
	* src/NetworkManagerAP.c, src/NetworkManagerAP.h: Remove "trusted"
	  propery from AP object.  Add "fallback" property to AP object.
	* src/nm-dbus-nm.c: Grab the fallback parameter via DBUS.
	* src/nm-dbus-nmi.c: Grab the fallback parameter via DBUS.
	* src/nm-device-802-11-wireless.c: Break out blacklist logic into
	  separate function.  Add get_best_fallback_ap() for returning an AP
	  on which to attempt fallback.
	* src/backends/NetworkManagerSuSE.c: Set stored network as fallback.
	* test/nm-set-fallback: New file.  Sets a given network as fallback.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1814 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-06-08 21:01:37 +00:00
Robert Love
16ad005600 2006-03-09 Robert Love <rml@novell.com>
* src/NetworkManagerAP.c, src/NetworkManagerAP.h: Have the function
	  nm_ap_set_timestamp() take the second and micro-second parameters as
	  direct arguments, which avoids both a dynamic memory allocation and a
	  structure-to-structure copy!  Add a new interface, the aptly named
	  nm_ap_set_timestamp_via_timestamp(), to set the timestamp from an
	  existing GTimeVal, as nm_ap_set_timestamp() once did, for use with
	  the return from nm_ap_get_timestamp().  New users should use the new
	  nm_ap_set_timestamp(), not nm_ap_set_timestamp_via_timestamp(), for
	  the extreme benefit to performance.
	* src/NetworkManagerAPList.c, src/nm-dbus-nmi.c,
	  src/backends/NetworkManagerSuSE.c: Use the new functions as needed.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1569 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-03-09 15:24:30 +00:00
Robert Love
8ab357c1b5 2006-02-14 Robert Love <rml@novell.com>
Fix problem since change to "deal with APs changing settings on us," checked
	in on the fifth of February in the year of the dog, wherein connecting to
	non-broadcast encrypted networks always fails because nm_ap_get_encrypted()
	always returns FALSE, even when the user provided a key, because the
	newly-created fake AP does not have any capabilities set, which is a sypmtom
	of security settings not matching capabilities (Novell bug #150787):
	* src/NetworkManagerAP.c, src/NetworkManagerAP.h: Add new interface,
	  nm_ap_add_capabilities_from_security(), which sets the given AP's
	  capabilities off the given security settings.  Also improve our handling of
	  capabilities w.r.t. NM_802_11_CAP_PROTO_NONE and NM_AUTH_CIPHER_AUTO.
	* src/nm-device-802-11-wireless.c: Call nm_ap_add_capabilities_from_security
	  to ensure that capabilities match newly updated security settings.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1470 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-02-14 19:46:20 +00:00
Robert Love
2f71e13495 2006-02-02 Robert Love <rml@novell.com>
* src/NetworkManagerAP.c: Add 'broadcast' property to the NMAccessPoint
	  structure, which denotes whether or not the AP is hidden.  This is a
	  superset of 'artificial' -- we need 'broadcast' because a hidden AP
	  can show up in the scan list.  Add nm_ap_get_broadcast() and
	  nm_ap_set_broadcast() accessor interfaces.
	* src/NetworkManagerAP.h: Add prototypes for nm_ap_get_broadcast() and
	  nm_ap_set_broadcast().
	* src/nm-dbus-net.c: Add new argument, boolean broadcast, to the
	  "getProperties" method, which denotes whether or not the given
	  network is hidden.
	* src/nm-device-802-11-wireless.c: Set broadcast to FALSE when creating
	  an artificial network.  Set broadcast to TRUE when scanning returns
	  an ESSID and FALSE when not.
	* gnome/applet/applet-dbus-devices.c: Retrieve 'broadcast' argument
	  from "getProperties" method on a network.  Possible TODO is to
	  somehow display this.
	* test/nm-tool.c: Display "Hidden" if the AP does not broadcast.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1429 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-02-02 18:05:19 +00:00
Dan Williams
0498d9b486 2006-01-23 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerAP.[ch]
		- (nm_ap_new_from_ap): copy original essid too
		- (nm_ap_unref): free original essid
		- (nm_ap_get_orig_essid): new function
		- (nm_ap_set_essid): Convert essid to UTF-8 for display and dbus,
			but keep original essid around too

	* src/nm-device-802-11-wireless.c
		- (supplicant_send_network_config): send wpa_supplicant the
			_original_ essid, and not as a string, but in hex.  Should
			allow us to connect to more APs that use wierd character
			encodings for their essids

	* utils/nm-utils.[ch]
		- (nm_utils_essid_to_utf8): make a best-effort to convert the essid
			to UTF-8.  If it's not already valid UTF-8, we check LANG and
			use the current locale as a hint for what encoding the essid
			might be in.  Obviously not 100% accurate, but the idea here is
			that if a user's locale is ex. ja_JP, they are more likely than
			not to be in Japan, where access points will likely be in some
			Japanese encoding.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1385 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-01-24 00:46:52 +00:00
Dan Williams
4b5253469b 2006-01-22 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerAP.[ch]
	  src/nm-dbus-nmi.c
	  src/nm-device-802-11-wireless.c
		- Make nm_ap_get_essid return "const char *"


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1376 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-01-23 01:05:22 +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
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
b5c3269266 2005-12-21 Dan Williams <dcbw@redhat.com>
* gnome/applet/nm-gconf-wso*
		- Make the serialize functions return gboolean
			rather than int

	* gnome/applet/nm-gconf-wso.c
		- (nm_gconf_wso_dispose, nm_gconf_wso_finalize): fix up
			parent class handling so we don't segfault

	* src/NetworkManagerAP.[ch]
		- (nm_ap_get_capabilities): new function, return capabilities
			now that something can use them
		- (nm_ap_set_encrypted): assume that an access point supports
			both WEP104 and WEP40 if its set encrypted.  FIXME: can
			we even tell whether it just supports WEP40?

	* src/NetworkManagerDevice.c
		- (ap_need_key): resurrect and update for the New World Order
		- (nm_device_wireless_get_activation_ap): if we're not given
			security info to use, create some based on access point
			capabilities

	* src/nm-ap-security-wep.c
		- (nm_ap_security_wep_new_from_ap): create a new object
			based on a certain access point's capabilities

	* src/nm-ap-security.c
		- (nm_ap_security_new_from_ap): delegate creation of a new
			object based on access point capabilities to a subclass
		- (nm_ap_security_copy_properties): don't segfault if we
			don't have a key yet

	* src/nm-dbus-nm.c
		- (nm_dbus_nm_set_active_device): provide more informative
			output when errors occur.  Also construct security info
			for a given access point if we weren't given any


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1219 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-12-21 21:08:00 +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
7b37a13850 2005-12-15 Dan Williams <dcbw@redhat.com>
* Exorcise encryption key hashing on APs
	* Use libnm-util's serialization/deserialization in both the
		applet and NM
	* Random other stuff


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1198 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-12-16 03:23:36 +00:00
Dan Williams
7ae6819f31 2005-12-14 Dan Williams <dcbw@redhat.com>
* include/NetworkManager.h
	  src/NetworkManagerWireless.c
		- Rearrange 802.11 wireless-specific capabilities again

	* src/Makefile.am
		- Forgot to add wpa.c/wpa.h to the makefiles

	* src/NetworkManagerAP.[ch]
		- Implement access point capabilities and parse the
			WPA/RSN IEs into the capability bitfield
		- Switch the "encrypted" attribute to utilize the bitfield
			and capabilities rather than being independent

	* src/NetworkManagerDevice.c
		- (nm_device_wireless_get_activation_ap): break it horribly
			until we can push NMAPSecurity objects into access point
			objects and through the activation chain
		- Stuff WPA & RSN IEs into AP capabilities

	* src/nm-dbus-nm.c
		- Take a shot at actually making setActiveDevice work

	* src/wpa.[ch]
		- Make the API a bit saner


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1191 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-12-14 20:48:08 +00:00
Dan Williams
423383c0e5 2005-12-14 Dan Williams <dcbw@redhat.com>
* include/NetworkManager.h
		- Add 802.11-specific capability for 802.1x key
			management

	* src/wpa.[ch]
		- Pull in WPA IE and RSN IE parsing code from
			wpa_supplicant so we can determine access point
			capabilities
		- Move WPA-related constants here from NetworkManagerAP.h
			and NetworkManagerDevice.c

	* src/NetworkManagerDevice.c
	  src/NetworkManagerAP.[ch]
		- Use WPA-related constants from wpa.h


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1190 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-12-14 19:12:20 +00:00
Robert Love
12095c0f04 2005-12-12 Robert Love <rml@novell.com>
* libnm-util/cipher-wep-passphrase.c,
	  libnm-util/cipher-wpa-psk-passphrase.c, src/NetworkManagerAP.c,
	  src/NetworkManagerAP.h, src/NetworkManagerDevice.c,
	  src/NetworkManagerWireless.c, src/NetworkManagerWireless.h: Treat
	  all WEP/WPA keys as "char *" and not explicitly signed or unsigned.
	  When handling keys, we don't care what the sign is.  The compiler
	  guarantees us that we get our 8-bits, which is all we care about.
	* configure.in: Remove "-Wno-pointer-sign" flag.  We are sign-aware!


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1172 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-12-12 19:57:59 +00:00
Robert Love
231c04097c 2005-12-07 Robert Love <rml@novell.com>
* gnome/applet/applet-dbus-info.c, include/NetworkManager.h,
	  src/NetworkManagerAP.c, src/NetworkManagerAP.h,
	  src/NetworkManagerAPList.c, src/NetworkManagerDbus.c,
	  src/NetworkManagerDevice.c, src/NetworkManagerDevice.h,
	  src/nm-dbus-nm.c: Convert NM_DEVICE_AUTH_METHOD_* to use the
	  wireless-tools constants directly.  UNKNOWN is now -1 and NONE is
	  zero.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1144 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-12-07 20:21:29 +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
994948d758 2005-10-15 Dan Williams <dcbw@redhat.com>
Move scanning code into NetworkManager rather than use iwlib's
	iw_scan() function, so that we can figure out AP capabilities.

	* NetworkManager.h
		- Add AP capability bits

	* src/NetworkManagerAP.[ch]
		- Add capability field to NMAccessPoint structure
		- Add WPA & RSN Information Element fields and accessor
			functions to NMAccessPoint

	* src/NetworkManagerDevice.c
		- Remove usage of iw_scan
		- Add scanning code to NetworkManager rather than use
			iw_scan() from iwlib

	* src/NetworkManagerUtils.[ch]
		- (nm_dispose_scan_results): remove, unused


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1023 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-10-15 04:11:01 +00:00
Christopher Aillon
fd92ca40d8 2005-09-15 Christopher Aillon <caillon@redhat.com>
* src/NetworkManagerAP.c:
	* src/NetworkManagerAP.h:
	* src/NetworkManagerDevice.c:
	Set a blacklist for certain common manufacturer default ESSIDs:
	APs with these ESSIDs are extremely likely to be completely
	different networks: connecting to one should not make NM
	auto-connect to every other AP with the same default ESSID.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@963 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-09-15 14:47:17 +00:00
Dan Williams
438d37f1c8 2005-08-04 Dan Williams <dcbw@redhat.com>
* gnome/applet/applet-dbus-info.c
	  gnome/applet/applet-dbus-info.h
		- (nmi_dbus_update_network_auth_method->nmi_save_network_info): generalize
			to store key, key type, and auth method rather than just auth method
		- (nmi_dbus_update_network_info): new function
		- (nmi_dbus_info_message_handler): updateNetworkAuthMethod -> updateNetworkInfo

	* gnome/applet/passphrase-dialog.c
		- (nmi_passphrase_dialog_ok_clicked): call nmi_save_network_info() instead
			of saving the info ourselves

	* gnome/libnm_glib/libnm_glib.c
		- Remove the stupid version check for dbus

	* src/NetworkManagerAP.c
	  src/NetworkManagerAP.h
		- (nm_ap_get_enc_key_source): return 'const char *' rather than 'char *'

	* src/NetworkManagerDbus.c
	  src/NetworkManagerDbus.h
		- (nm_dbus_update_network_auth_method -> nm_dbus_update_network_info): Update
			more than just the auth method

	* src/NetworkManagerDevice.c
		- Update network info at the appropriate times


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@817 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-08-04 11:37:51 +00:00
Dan Williams
567b5e3d31 2005-05-03 Dan Williams <dcbw@redhat.com>
* Kill dhcpcd.  We now use "dhcdbd", a dbus daemon that controls dhclient.
	  This means that NetworkManager shouldn't have DHCP issues anymore.  It also
	  means you need dhcdbd, which you can get here (get the latest one):

		http://people.redhat.com/jvdias/dhcdbd/

	  Technically NetworkManager can use any DHCP daemon that uses the same DBUS
	  interface as dhcdbd.

	* Rewrite device activation to facilitate the new DHCP infrastructure and
	  future improvements.  Its now "activation request" based, ie there is a single
	  activation request composed of the device, access point, and other info which
	  follows the entire activation process.  There are 5 stages of the activation
	  process which correspond to:

		1) Device preparation
		2) Device configuration (bring it up, set ESSID/Key/etc)
		3) IP Config Start (fire off DHCP if we're using it)
		4) IP Config Get (grab config from DHCP or static config files)
		5) IP Config Commit (set device's IP address, DNS, etc)

	  Note that there is no longer a "scanning" step, since the access point must
	  be known _before_ activation starts.  If the access point drops out or does
	  not exist for some reason, the entire activation process fails and must be
	  restarted for a different access point or device.

	Patch from Bill Moss:
	* gnome/applet/applet.c
		- Fix type of vpn_failure dialog -> vpn_banner dialog


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@597 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-05-03 20:41:36 +00:00
Dan Williams
a8dfb489fb 2005-03-04 Dan Williams <dcbw@redhat.com>
Patch from Peter Jones:
	- Make stuff work with gcc 4.0


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@490 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-03-04 21:25:45 +00:00
Dan Williams
9e154261fb 2005-01-21 Dan Williams <dcbw@redhat.com>
* Cache last-known-good wireless authentication method in
		NetworkManagerInfo, and use that method first during
		wireless device activation.  Should speed up devices that
		need Shared Key authentication method since Open System is
		now the default.

	* Remove the hack to not do full activation on wired connections
		that are active when we launch, it causes too many problems
		with name resolution and was a hack in the first place.

	* Re-work wireless device activation again somewhat to have a
		clearer chain of events and to use last-known-good
		authentication method of the access point.  Also provide
		better status throughout activation to ensure the applet
		can tell the user exactly what's going on.

	* Remove the "find wireless network" code and now simply attempt
		to activate with that access point.  This reduces the delay
		between selecting "Other wireless Network" and actually
		connecting to that network.

	* Correctly stop the device's worker thread when its removed.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@388 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-01-21 19:32:08 +00:00
Dan Williams
c9b41bb448 2005-01-18 Dan Williams <dcbw@redhat.com>
* dhcpcd/client.c
		- Remove some debug messages
		- Wrap others in #ifdef DEBUG/#endif

	* src/NetworkManager.c
		- Remove some debug messages
		- Clarify some debug messages
		- Remove code related to old single-thread wireless scanning

	* src/NetworkManagerAP.[ch]
		- New AP property "last_seen" to track how recently an AP was
			found in a scan
		- Start using 'const' more in function arguments

	* src/NetworkManagerAPList.[ch]
		- (nm_ap_list_merge_scanned_ap): new, selectively update attributes
			of an AP found in an AP list from a source AP, or if not found
			in the list add the source AP
		- (nm_ap_list_combine): remove, no longer needed

	* src/NetworkManagerDevice.c
		- Each device now has a "worker" thread from start to end of its life.
			Scanning for wireless devices now happens in that thread,
			not in a single "wireless scanning thread" for all devices as
			previously.  Activation consists of adding an idle handler to the
			thread's main loop/context, which gets run at the next available
			opportunity.
		- Wireless scanning is also simplified, there is now only one list of
			access points per wireless device, and APs older than 60s are
			removed from the list.  Previously, we kept results for the last
			3 scans and merged whole lists, which was complicated.
		- Cleaned up activation debug messages.
		- Wireless activation and access-point search routines now use Open System
			authentication before trying Shared Key.
		- Removed some code in nm_device_update_best_ap() that could cause cards
			to loose their link to the access point.
		- Scanning now uses a backoff algorithm, where the inverval becomes
			progressively longer between scans when the list of scanned access
			points doesn't change.  A change will revert to the shortest scan
			interval (20s).

	* src/NetworkManagerWireless.[ch]
		- Remove code related to old single-thread wireless scanning


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@382 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-01-18 22:08:22 +00:00
Dan Williams
e96c5c2967 2004-12-17 Dan Williams <dcbw@redhat.com>
* Ad Ad-Hoc networking mode support.  In Ad-Hoc mode, we only try to get
		link-local addresses instead of doing DHCP.

	* In the panel applet, there's a new "Create new Wireless Network..." item

	* The panel applet also sticks around now even if NetworkManager dies, but
		it doesn't hide its icon when NM isn't around.  Not hiding the icon is
		a bug, I'll fix that later.

	* We also don't use 'nscd' anymore in the RH backend, it was impeding name
		lookups after a switch rather than actually doing them.

	* Clean up some of those warnings in nm_ap_list_* functions

	* Delay between scans changed to 15s instead of 10s


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@342 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-12-17 17:16:22 +00:00
Dan Williams
cd475e6d0c 2004-12-15 Dan Williams <dcbw@redhat.com>
Patch from Tom Parker
	* Add autoip/Link Local Addressing support when we fail to get a DHCP
		address

	* Longer pause after setting ESSID on cards that support a larger number
		of channels to give the card time to find the right channel

	* Add system hook to restart mDNSResponder (or whatever the local implementation
		of Multicast DNS is) when we activate interfaces


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@341 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-12-16 04:24:20 +00:00
Dan Williams
498d3f8773 2004-11-17 Dan Williams <dcbw@redhat.com>
* Cache access point MAC addresses in NetworkManagerInfo after you've explicitly
		connected to them.  Then, after a scan, match up non-ESSID-broadcasting access
		points with any cached MAC addresses from NetworkManagerInfo.  Allows us to
		show known access points that don't broadcast their ESSID in the menus without
		any user intervention whatsoever.

	* info-daemon/NetworkManagerInfoDbus.c
		- (nmi_dbus_get_network_addresses, nmi_dbus_add_network_address): new functions
			for dbus method calls "getNetworkAddresses" and "addNetworkAddress"

	* src/NetworkManagerAP.[ch]
		- Add a "user_addresses" data member to the NMAccessPoint structure
		- (nm_ap_get_user_addresses, nm_ap_set_user_addresses): new functions for accessing
			the user_addresses data member

	* src/NetworkManagerAPList.c
		- (nm_ap_list_get_ap_by_address): check user_addresses list too, instead of just
			the AP's reported address
		- (nm_ap_list_update_network): grab the user_addresses list from NetworkManagerInfo

	* src/NetworkManagerDHCP.c
		- Increase DHCP timeout from 25s -> 30s

	* src/NetworkManagerDbus.[ch]
		- (nm_dbus_get_network_addresses, nm_dbus_add_network_address): have NMI get/set
			user addresses

	* src/NetworkManagerDevice.c
		- (nm_device_set_wireless_config): bring down the interface, wait 4s, bring it up,
			wait 2s, then configure it.  Sometimes Prism54 cards will freeze up with
			"mgnt tx queue full", seemingly in response to NM controlling the card too much.
			So, we take the card down to clear it out.
		- (nm_device_do_normal_scan): Copy over AP ESSIDs from the allowed access point list
			too, since that's where the user_addresses are

	* src/NetworkManagerPolicy.c
		- (nm_state_modification_monitor): Tell NMI to add an AP's hardware address to
			that wireless networks' user_addresses list upon successful activation


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@319 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-11-17 17:51:36 +00:00
Colin Walters
3c23d9c628 2004-11-01 Colin Walters <walters@verbum.org>
* src/NetworkManagerWireless.h, src/NetworkManagerWireless.c
	(nm_wireless_128bit_key_from_passphrase): Add const.

	* src/NetworkManagerAP.h, src/NetworkManagerAP.c
	(nm_ap_set_enc_key_source): Add const.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@287 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-11-02 04:54:39 +00:00
Dan Williams
faae8945db 2004-10-21 Dan Williams <dcbw@redhat.com>
* NetworkManager.h
		- New file, now contains commonly used structures and bits
			for the dbus API of NetworkManager

	* Makefile.am
		- Deliver NetworkManager.h to ${includedir}/NetworkManager

	* src/NetworkManager.h
		- Rename -> src/NetworkManagerMain.c

	* Various fixups all around to use NetworkManager.h and new
		src/NetworkManagerMain.h, remove redundant bits that got
		moved into NetworkManager.h

	* src/NetworkManagerDevice.[ch]
	  src/NetworkManagerUtils.[ch]
	  src/NetworkManagerPolicy.c
	  src/NetworkManagerDbus.c
		- Whitelist wireless drivers, and blacklist some wired
			drivers.  Also blacklist cipsec and ethernet-over-usb
			devices at this time (RH #135722, RH #135648)
		- Don't leak unsupported devices out over dbus, or allow
			them to be set as the active device.  Skip over them
			during automatic device picking

	* test/nmclienttest.c
		- Clean up the dbus code a lot


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@261 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-10-21 17:42:14 +00:00
Dan Williams
b6a637edb4 2004-10-15 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerAP.[ch]
		- Add "artificial" get/set functions, set for APs that
			aren't discovered as part of a scan but instead
			discovered by force-setting the ESSID

	* src/NetworkManagerDevice.[ch]
		- (nm_device_wireless_network_exists): pass back whether
			or not the discovered AP was encrypted.  Also, try
			falling back to encrypted mode on the card if unencrypted
			association doesn't work
		- (nm_device_find_and_use_essid): If the network requested
			did in fact exists, but it wasn't in our scan list, add
			an "artificial" entry for it.  Some Cisco cards don't
			see non-ESSID-broadcasting APs in their scan but can still
			associate with them if you know the ESSID, this works around
			that behavior
		- (nm_device_do_normal_scan): Carry "artificial" APs over from scan
			to scan if the card is currently associated with that AP


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@244 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-10-15 17:04:57 +00:00
Dan Williams
6b4bfea2de 2004-10-11 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerAP.c
		- (nm_ap_new, nm_ap_new_from_ap): Don't crash when we don't have
			enough RAM to allocate new AP structures, but return NULL instead

	* src/NetworkManagerAPList.[ch]
		- (nm_ap_list_is_empty): new function
		- (nm_ap_list_combine): new function, combine two access point lists
		- (nm_ap_list_copy_keys): new function, copy keys from one list
			into another

	* src/NetworkManagerDevice.[ch]
		- Rename some functions to be clearer:
			nm_device_get_best_ap_frozen -> nm_device_is_best_ap_frozen
			nm_device_just_activated     -> nm_device_is_just_activated
			nm_device_activating         -> nm_device_is_activating
			nm_device_now_scanning       -> nm_device_is_scanning
		- Cache the last 4 scans so that the access point list is more stable.
			We combine the lastest two scans and use that as the AP list,
			and diff that combined list against the combination of the earliest
			two cached scans for the WirelessNetworkAppeared/Dissappeared signals


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@210 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-10-11 21:32:19 +00:00
Dan Williams
f39b3344c1 2004-10-08 Dan Williams <dcbw@redhat.com>
* info-daemon/NetworkManagerInfo.[ch]
	  info-dameon/NetworkManagerInfoDbus.[ch]
	  info-daemon/NetworkManagerInfoPassphraseDialog.[ch]
		- Preserve original label text in the passphrase dialog so that
			it actually gets updated with the new network name the next
			time around.  Previously, we were overwriting it so you'd get
			the wrong network name to enter a key for
		- Add a "Key Type" combo to the passphrase dialog, user selects
			encryption key type now, type is stored in GConf too
		- Adjust NM<->NMI DBUS protocol to pass the key type back to NM too

	* src/NetworkManagerAP.[ch]
		- Remove all the encyption method magic.  It's now set by the user
			and NetworkManager retrieves the type of encryption key from
			NetworkManagerInfo

	* src/NetworkManagerAPList.[ch]
	  src/NetworkManagerDbus.[ch]
		- Adjust to new way of setting encryption key and method
		- Pull encryption method down from NMI along with key

	* src/NetworkManagerDevice.[ch]
		- Removed encryption method fallback magic as the method is now
			determined by the user.  This greatly simplifies the connection
			logic.
		- More robust connection/link logic.  Besides removing the encryption
			method fallback magic, check whether or not the card is receiving
			invalidly encrypted packets, which usually indicates that we have
			a bad WEP key set.
		- Don't blindly forge ahead when DHCP fails (still not completely fixed)

	* test/nminfotest.c
		- Test out new "Key Type" stuff in the NMI passphrase dialog


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@195 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-10-08 05:22:17 +00:00
Dan Williams
ee710f0377 2004-09-13 Dan Williams <dcbw@redhat.com>
* TODO: fix typo

	* docs/NetworkManager DBUS API.txt
		- Update for new signal strength changes

	* panel-applet/NMWirelessApplet.c
		- Make panel icon show strength of the current connection
		- Cleanups and memleak fixes

	* panel-applet/NMWirelessApplet.h
		- Add data members for signal strength on devices and networks

	* panel-applet/NMWirelessAppletDbus.c
		- Free more DBusErrors
		- Update for new signal strength changes
		- Make devices and networks more like real objects, use ref/unref methods
		- Actually unlock the mutex when updating the active device

	* src/NetworkManagerAP.c
		- Change AP functions and data members from "quality"->"strength"

	* src/NetworkManagerDbus.c
		- Kill "getMaxQuality" and "getQuality" methods
		- Add "getStrength" methods for Networks and Devices

	* src/NetworkManagerDevice.[ch]
		- Add accessors for device strength
		- Add functions to update strength for a device.  Note that not all drivers
			actually support signal strength for scanned access points (Atmel drivers
			being one)
		- Calculate signal strength for each AP during scan

	* src/NetworkManagerWireless.[ch]
		- Add function to return signal strength % from a device and a raw quality struct

	* test/nmclienttest.c
		- Update for new signal strength changes


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@156 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-09-13 17:43:16 +00:00
Dan Williams
b0d1e68dd4 2004-09-08 Dan Williams <dcbw@redhat.com>
* panel-applet/no-networkmanager.png
	  panel-applet/Makefile.am
	  panel-applet/NMWirelessApplet.c
		- Add a "NetworkManager not running" icon and use it
		- Use new consolidated GConf keys rather than Preferred/Trusted

	* TODO: update

	* info-daemon/NetworkManagerInfo.c
	  info-daemon/NetworkManagerInfoDbus.[ch]
	  info-daemon/NetworkManagerInfoPassphraseDialog.c
		- There are now no longer two separate lists of wireless networks,
			but one list where each network is "trusted" or not trusted
		- Add a "getNetworkTrusted" dbus method
		- "WirelessNetworkUpdate" signal now sent rather than
			"PreferredNetworkUpdate/TrustedNetworkUpdate" signals
		- Start freeing some dbus errors (not completed yet)

	* info-daemon/passphrase.glade
		- Remove the "don't show" hints for pager and taskbar
		- Add a title since its going to be in the taskbar

	* src/NetworkManager.[ch]
	  src/NetworkManagerAPList.[ch]
		- There are now no longer two separate lists of wireless networks,
			but one list where each network is "trusted" or not trusted

	* src/NetworkManagerAP.[ch]
		- Add get/set "trusted" accessors and data bit

	* src/NetworkManagerDbus.[ch]
		- Add function to get "trusted" status of a network from NetworkManagerInfo
		- Trap new WirelessNetworkUpdate signal rather than old separate signals

	* src/NetworkManagerDevice.[ch]
		- Add per-device config data (ip4 addr, gateway, netmask) and accessors
		- (nm_device_new): Get device config from backend when initializing devices
		- (nm_device_activation_worker): Split out device configuration on
			activation to deal with static/dynamic IP differences, and try encryption
			fallbacks on a device if the encryption method for the best AP is not good
		- (nm_device_update_best_ap): convert to new consolidated access point lists from
			NetworkManagerInfo, and copy over latest NMI info to best_ap when setting it

	* src/NetworkManagerWireless.c
		- libgcrypt code wasn't converting the MD5 digest to an ascii string, fix it

	* src/backends/NetworkManagerRedHat.c
	  src/backends/NetworkManagerSystem.h
		- (nm_system_device_update_config_info): Add function to get device configuration
			from system data in ifcfg-* files

	* src/backends/NetworkManagerDebian.c
	  src/backends/NetworkManagerGentoo.c
	  src/backends/NetworkManagerSlackware.c
		- Add stub functions for getting device configuration


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@131 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-09-08 18:14:42 +00:00
Colin Walters
fbf832d9c3 2004-08-29 Colin Walters <walters@verbum.org>
* src/NetworkManagerDbus.c (nm_dbus_get_network_timestamp): Return
	a GTimeVal instead of time_t.  This is easier to work with,
	since time_t may be a long or double, we don't know.

	* src/NetworkManagerDbus.h: Update prototype.

	* src/NetworkManagerAP.c (struct NMAccessPoint): Store a GTimeVal
	instead of time_t.
	(nm_ap_get_timestamp): Update to return GTimeVal.
	(nm_ap_set_timestamp): Update to take GTimeVal.

	* src/NetworkManagerAPList.c (nm_ap_list_update_network): Handle
	GTimeVal change.
	(nm_ap_list_print_members): Fix warnings in printf format.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@103 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-08-29 05:40:32 +00:00