Commit graph

60 commits

Author SHA1 Message Date
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
e1620a9946 2006-08-04 Robert Love <rml@novell.com>
Glib Memory Slices!
	* configure.in: Require glib 2.10 or later.
	* src/NetworkManager.c, src/NetworkManagerAP.c, src/nm-ip4-config.c,
	  src/NetworkManagerAPList.c, src/NetworkManagerDbus.c,
	  src/NetworkManagerDbusUtils.c, src/nm-dbus-nmi.c, src/wpa.c,
	  src/nm-device-802-11-wireless.c: Convert applicable g_malloc and
	  g_new calls to g_slice_new.  Likewise for g_free to g_slice_free.
	  Memory Slices are the greatest thing since bread slices.
	* src/NetworkManagerAP.c: Also, fix memory leak.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1923 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-08-04 15:46:06 +00:00
Dan Williams
3c10e4401f 2006-07-13 Dan Williams <dcbw@redhat.com>
Patch from Thiago Bauermann <thiago.bauermann@gmail.com>
	* gnome/applet/applet.glade
	  gnome/applet/Makefile.am
	  gnome/applet/nm-gconf-wso.c
	  gnome/applet/nm-gconf-wso-leap.c
	  gnome/applet/nm-gconf-wso-leap.h
	  gnome/applet/wireless-security-manager.c
	  gnome/applet/wso-leap.c
	  gnome/applet/wso-leap.h
	  include/NetworkManager.h
	  libnm-util/dbus-helpers.c
	  libnm-util/dbus-helpers.h
	  src/Makefile.am
	  src/NetworkManagerAP.c
	  src/nm-ap-security.c
	  src/nm-ap-security-leap.c
	  src/nm-ap-security-leap.h
		- Add LEAP authentication support


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1881 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-07-13 17:03:31 +00:00
Dan Williams
e16831d1a4 2006-06-19 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerAP.c
		- Clarify usage of user_created

	* 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
		- s/user_created/adhoc, because we really do mean adhoc

	Patch from Bernard Blackham <bernard@blackham.com.au>
	* src/nm-device-802-11-wireless.c
		- (supplicant_send_network_config): instead of user_created,
			use adhoc, and do AP_SCAN 2 for adhoc networks


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1846 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-06-20 02:24:57 +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
7301a244b2 2006-02-25 Robert Love <rml@novell.com>
Add WPA Enterprise support:
	* gnome/applet/Makefile.am: Build the files nm-gconf-wso-wpa-eap.c and
	  nm-gconf-wso-wpa-eap.h.
	* gnome/applet/nm-gconf-wso-wpa-eap.c,
	  gnome/applet/nm-gconf-wso-wpa-eap.h:  Add WPA Enterprise Gconf
	  serialization and deserialization.
	* gnome/applet/nm-gconf-wso-wpa-psk.c, gnome/applet/nm-gconf-wso.c,
	  gnome/applet/wireless-security-option.c, gnome/applet/wso-wpa-psk.c,
	  gnome/applet/wso-wpa-psk.h: Clean up, support new defines.
	* gnome/applet/wireless-applet.glade: Add UI for configurating security
	  settings related to WPA Enterprise.
	* gnome/applet/wireless-security-manager.c: Invoke wso_wpa_eap_new() to
	  instantiate WPA Enterprise wireless-security-option.
	* gnome/applet/wso-wpa-eap.c, gnome/applet/wso-wpa-eap.h: New files.
	  Implement WPA Enterprise wireless-security-option object.
	* include/NetworkManager.h: Add new NM_AUTH_TYPE_* and NM_EAP_METHOD_*
	  defines.  Cleanup.
	* libnm-util/cipher-wpa-psk-hex.c,
	  libnm-util/cipher-wpa-psk-passphrase.c: Cleanup.
	* libnm-util/dbus-helpers.c, libnm-util/dbus-helpers.h: Add
	  nmu_security_serialize_wpa_eap() to serialize input to DBUS method,
	  nmu_security_serialize_wpa_eap_with_cipher() to serialize input
	  including the cipher to DBUS method, and
	  nmu_security_deserialize_wpa_eap() to deserialize from DBUS return
	  to output.
	* src/Makefile.am: Build the files nm-ap-security-wpa-eap.c and
	  nm-ap-security-wpa-eap.h
	* src/NetworkManagerAP.c: Add NM_AUTH_TYPE_WPA_EAP to
	  NM_802_11_CAP_KEY_MGMT_802_1X cipher to capability mapping.
	* src/nm-ap-security-wpa-eap.c, src/nm-ap-security-wpa-eap.h: New
	  files.  Implement NMAPSecurityWPA_EAP object.
	* src/nm-ap-security-wpa-psk.c: Cleanup.
	* src/nm-ap-security.c: Support NM_AUTH_TYPE_EAP cipher and instantiate
	  an NMAPSecurityWPA_EAP object via the method
	  nm_ap_security_wpa_eap_new_deserialize().
	* src/nm-dbus-nm.c: Cleanup.
	* test/nm-tool.c: Display "Enterprise" for wireless networks providing
	  WPA Enterprise support.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1493 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-02-26 02:16:53 +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
489eaac499 2006-02-14 Robert Love <rml@novell.com>
* src/nm-device-802-11-wireless.c: Clean up nm_warning calls: Print the error
	  as a string, not an integer, if possible; do not print the function name
	  twice; always give the interface, if possible; misc. cleanup.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1469 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-02-14 17:37:40 +00:00
Robert Love
7f96832191 2006-02-03 Robert Love <rml@novell.com>
* src/NetworkManagerAP.c: In nm_ap_new(), default new networks to
	  broadcast == TRUE.  Also, copy broadcast and artificial properties
	  from source network to destination in nm_ap_copy().
	* src/nm-device-802-11-wireless.c: Don't set broadcast flag to TRUE,
	  since we now default new networks to non-hidden.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1435 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-02-03 15:37:28 +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
Robert Love
b25439083b 2006-01-31 Robert Love <rml@novell.com>
* src/NetworkManagerAP.c: Add two new manufacturer default network
	  names: linksys-a and linksys-g.  These are found (at least) on the
	  Linksys WAP55AG, which does both 802.11a and 802.11b, each with their
	  own ESSID.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1419 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-01-31 18:54:11 +00:00
Robert Love
f30946e156 2006-01-31 Robert Love <rml@novell.com>
* src/NetworkManagerAP.c: Optimize the function
	  nm_ap_has_manufacturer_default_essid().  I did not like its resulting
	  machine code.  This is the first in a series of code tweaks aiming to
	  generate better machine code and make NetworkManager all the better.
	  Just kidding.  Who has time to go through the assembly generated for
	  every function?  I certainly don't.  I have a wife, a kid, a job,
	  a mortgage, a mistress.  But this function was so bad, I was called
	  to arms.  Like the book.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1418 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-01-31 18:52:06 +00:00
Robert Love
b60c770dab 2006-01-26 Robert Love <rml@novell.com>
* configure.in: Change '-Wno-unused' to '-Wno-unused-parameter'
	* gnome/applet/applet-compat.c, gnome/applet/applet-dbus-devices.c,
	  gnome/applet/applet-dbus-info.c, gnome/applet/applet-dbus.c,
	  gnome/applet/applet.c, gnome/applet/applet.h, src/nm-dbus-device.c,
	  gnome/applet/nm-gconf-wso-wep.c, gnome/applet/nm-gconf-wso-wpa-psk.c,
	  gnome/applet/nm-gconf-wso.c, gnome/applet/nm-gconf-wso.h,
	  gnome/applet/other-network-dialog.c, src/nm-device.c, test/nm-tool.c,
	  gnome/applet/passphrase-dialog.c, src/nm-device-802-11-wireless.c,
	  gnome/applet/wireless-security-manager.c, src/nm-ip4-config.c,
	  gnome/applet/wireless-security-option.c, src/nm-ap-security.c,
	  gnome/applet/wso-wep-ascii.c, gnome/applet/wso-wep-hex.c,
	  gnome/applet/wso-wep-passphrase.c, gnome/applet/wso-wpa-psk.c,
	  libnm-util/dbus-helpers.c, src/NetworkManagerAP.c, src/nm-dbus-nmi.c,
	  src/NetworkManagerSystem.c, src/nm-ap-security-wep.c,
	  src/nm-device-802-11-wireless.h, test/libnm-util/test-ciphers.c,
	  src/named-manager/nm-named-manager.c, test/test-common/test-common.c:
	  Kill unused variables, labels, and static functions.  Don't pass
	  string literals as the format string for printf-like functions.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1391 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-01-26 21:08:44 +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
d23aba6524 2006-01-03 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerAP.c
		- (nm_ap_add_capabilities_from_ie): presume no WEP unless
			the WPA IE specifies that WEP is supported

	* src/nm-device-802-11-wireless.c
		- (process_scan_results): don't mark an AP as supporting WEP
			if there's already other encryption capability info


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1256 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2006-01-03 19:00:09 +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
fad972d5a0 2005-12-17 Dan Williams <dcbw@redhat.com>
* Fix bugs


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1212 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-12-18 02:53:32 +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
Ray Strode
278e500f99 2005-03-14 Ray Strode <rstrode@redhat.com>
Fourth (probably working) cut at porting to
	dbus 0.30 api and new hal. This cut adds
	some new logging macros to make debugging
	easier.

	* dispatcher-daemon/NetworkManagerDispatcher.c:
	* info-daemon/NetworkmanagerInfo.c:
	* info-daemon/NetworkManagerInfoPassphraseDialog.c:
	* info-daemon/NetworkManagerInfoVPN.c:
	* src/NetworkManager.c:
	* src/NetworkManagerAP.c:
	* src/NetworkManagerAPList.c:
	* src/NetworkManagerDHCP.c:
	* src/NetworkManagerDbus.c:
	* src/NetworkManagerDevice.c:
	* src/NetworkManagerPolicy.c:
	* src/NetworkManagerSystem.c:
	* src/NetworkManagerUtils.c:
	* src/NetworkManagerWireless.c:
	* src/autoip.c:
	* src/nm-dbus-nm.c:
	* src/backends/NetworkManagerDebian.c:
	* src/backends/NetworkManagerGentoo.c:
	* src/backends/NetworkManagerRedHat.c:
	* src/backends/NetworkManagerSlackware.c:
	use new logging macros.

	* dispatcher-daemon/NetworkManagerDispatcher.c:
	(nmd_dbus_filter): s/dbus_free/g_free/

	* info-daemon/Makefile.am: link in utils library.
	* info-daemon/NetworkmanagerInfo.c: use new logging
	macros.
	(nmi_dbus_get_network): don't assume enumerations
	are 32-bit.
	(nmi_dbus_nmi_message_handler): don't free what
	doesn't belong to us.

	* libnm_glib/libnm_glib.c:
	(libnm_glib_get_nm_status):
	(libnm_glib_init): don't free what doesn't
	belong to us.
	(libnm_glib_dbus): strdup result, so it doesn't get
	lost when message is unref'd.

	* panel-applet/NMWirelessAppletDbus.c:
	(nmwa_dbus_update_devices): s/dbus_free/g_free/

	* src/NetworkManager.c:
	(nm_monitor_wired_link_state): request initial status
	dump of all cards when we start up, instead of relying
	on /sys/.../carrier.
	(nm_info_handler), (nm_set_up_log_handlers):
	log handlers to specify what syslog priorites
	the logging macros default to.

	* src/NetworkManagerAPList.c:
	(nm_ap_list_populate_from_nmi):
	s/dbus_free_string_array/g_strfreev/

	* src/NetworkManagerDbus.c:
	(nm_dbus_get_network_object):
	validate d-bus message argument types.
	Advance message iterator after reading argument,
	prepend instead of append to GSList.

	* src/NetworkManagerDevice.c:
	(nm_device_probe_wired_link_status):
	remove redundant /sys in /sys path. remove wrong
	contents == NULL means has carrier assumption.

	* src/nm-netlink-monitor.c
	(nm_netlink_monitor_request_status): implement
	function to ask kernel to dump interface link
	status over netlink socket.

	* test/*.c: s/dbus_free/g_free/

	* utils/nm-utils.h:
	(nm_print_backtrace): new macro to print backtrace.
	(nm_get_timestamp): new macro to get sub-second precise
	unix timestamp.
	(nm_info), (nm_debug), (nm_warning), (nm_error):
	new logging functions. nm_info just prints,
	nm_debug includes timestamp and function,
	nm_warning includes function, nm_error includes
	backtrace and sigtrap.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@497 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-03-15 05:30:15 +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
a88c6427ef 2005-02-09 Dan Williams <dcbw@redhat.com>
* Clean up usage of GSList objects and looping through their members
	* Clean up DHCP rebind/renew timeouts, hopefully they will work correctly
		now.
	* Fix problem where even if scanning was turned off, card would still
		cycle through frequencies.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@423 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-02-10 04:39:40 +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
Dan Williams
7c24f2af19 2004-11-03 Dan Williams <dcbw@redhat.com>
* panel-applet/NMWirelessAppletOtherNetworkDialog.c,
		- Disable OK button until valid data is entered
			for encryption stuff too

	* panel-applet/NMWirelessApplet.c
		- Report card strength for current AP if the card
			doesn't report strength data for scanned access
			points

	* src/NetworkManagerDevice.c
		- Smooth out cards reported quality, Atmel card was
			intermittently reporting no quality data but soon
			recovers

	* src/NetworkManagerWireless.c
		- Better quality data percentage calculation.  Atmel
			cards (mine at least) seem to report the quality
			in percentage format already, so honor that

	Patch from <j@bootlab.org>
	* NetworkManager.h
	  info-daemon/NetworkManagerInfoPassphraseDialog.c
	  info-daemon/passphrase.glade
	  panel-applet/NMWirelessAppletOtherNetworkDialog.c
	  panel-applet/essid.glade
	  src/NetworkManagerAP.c
	  src/NetworkManagerDevice.c
	  src/NetworkManagerWireless.[ch]
		- Support ASCII WEP keys, in both 40/64 bit and 104/128 bit


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@291 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-11-03 17:05:16 +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
6000e6f062 2004-10-27 Dan Williams <dcbw@redhat.com>
* info-daemon/NetworkManagerInfo.c
	  info-daemon/NetworkManagerInfoDbus.c
	  info-daemon/NetworkManagerInfoPassphraseDialog.c
	  panel-applet/NMWirelessApplet.c
		- Properly escape gconf keys

	* src/NetworkManager.c
		- remove unused variables

	* src/NetworkManagerAP.c
		- (nm_ap_new_from_ap): Don't redundantly set new APs
			refcount since it got set in nm_ap_new()

	* src/NetworkManagerAPList.c
		- (nm_ap_list_combine): Give up ownership of newly created
			access points to the ap list, fixes memleak

	* src/NetworkManagerDevice.c
		- Remove cached_ap_list4 member since its not really needed
		- (nm_device_wireless_network_exists): Try to get correct
			encryption status of a found AP if its already in our
			device list
		- (nm_device_do_normal_scan): Clean up scanning a bit, make
			memory allocs/deallocs a bit clearer and shorter-lived


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@275 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-10-27 19:02:07 +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
Robert Paskowitz
3ad9d0615c 2004-10-13 Dan Williams <dcbw@redhat.com>
* panel-applet/NMWirelessApplet.c
		- Add function to print out applet_state in a readable
			manner

	* src/NetworkManager.c
		- (main): Don't segfault when nm_dbus_init() fails, we had
			a left-over call to hal_shutdown() into which we passed NULL

	* src/NetworkManagerAP.c
		- (nm_ap_set_essid): Allow NULL essids

	* src/NetworkManagerAPList.[ch]
		- More use of nm_ap_list_[un]lock ()
		- (nm_ap_list_get_ap_by_essid): don't warn when looking for a NULL
			network/essid, just return nothing.  Also skip over NULL
			essid access points in the list when searching
		- (nm_ap_list_get_ap_by_address): new function
		- (nm_ap_list_update_network): set the access point's key source to
			NULL when the key returned from NetworkManagerInfo is NULL or
			of 0 length
		- nm_ap_list_update_keys() -> nm_ap_list_update_properties(), and
			copy timestamp over too
		- (nm_ap_list_copy_essids_by_address): new function, attempt to
			find the correct ESSID for a blank-essid access point by searching
			through another list and matching access point MAC addresses
		- (nm_ap_list_diff): exclude blank-essid access points from the diffs

	* src/NetworkManagerDbus.c
		- (nm_dbus_nm_set_active_device): deal with random networks the user
			may specify.  This is mainly for access points that don't
			broadcast their essid.  So if the user tells us to associate with
			some random ESSID that's not in our access point list, we find
			out if the access point does in fact exist (by attempting association
			and then matching that access point's MAC address with the essid the
			user gave us) and then we switch to it.
		- (nm_dbus_devices_handle_request): don't add blank-essid access points
			to the returned list of networks for the "getNetworks" method

	* src/NetworkManagerDevice.[ch]
		- Extra debugging info for link detection
		- (nm_device_ap_list_get_ap_by_address): new function, return an AP
			based on MAC address
		- (nm_device_get_path_for_ap): ignore blank-essid access points
		- (nm_device_wireless_network_exists): new function, find out whether
			a random ESSID exists by attempting to associate with it
		- (nm_device_do_normal_scan): allow blank-essid access points in our
			device list as long as they have an AP MAC address we can use.
			Also send WirelessNetwork[Dis]Appeared signals for non-active
			devices too.  Lets the applet update more frequently.

	* src/backends/NetworkManagerGentoo.c
		- Patch from: Robert Paskowitz
			- Update backend code for Gentoo
			- Implement nm_system_device_update_config_info ()

	* test/nmclienttest.c
		- (set_network_device): new function, takes a command-line argument
			and tells NetworkManager to use that wireless network


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@222 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-10-13 20:57:23 +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