Commit Graph

44 Commits

Author SHA1 Message Date
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
Colin Walters
f9d46351f6 2005-01-14 Colin Walters <walters@redhat.com>
Patch from ed@catmur.co.uk (Ed Catmur)

	* named/nm-named-manager.c: Add "context" property.
	Use it to add child watch source in specific GMainContext.

	* src/NetworkManager.c (nm_data_new): Initialize
	named with correct main context.  Start named only
	after forking.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@377 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-01-15 03:21:00 +00:00
Dan Williams
99cfa54d0f 2005-01-12 Dan Williams <dcbw@redhat.com>
* libnm_glib/
		- Client library for applications using glib

	* configure.in
	  various Makefiles
		- Split NM_CFLAGS and NM_LIBS into separate variables
			like DBUS_*, HAL_* and GLIB_*

	* src/NetworkManager.c
	  src/NetworkManagerMain.h
		- (nm_schedule_status_signal_broadcast): at the earliest convenience,
			broadcast a status changed signal over DBUS from the main thread.
			Still unused anywhere for the moment.

	Patch from j@bootlab.org
	* panel_applet/NMWirelessAppletDbus.c
	  src/NetworkManagerDbus.c
		- Correct INT32->UINT32 mistmatch between NM and the panel applet
			for the "getMode" method call


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@368 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-01-12 18:40:04 +00:00
Dan Williams
9724e4eb3c 2005-01-09 Dan Williams <dcbw@redhat.com>
* dhcpcd/client.c
		- Use correct timeout value

	* info-daemon/NetworkManagerInfoDbus.c
	  src/NetworkManagerDbus.c
		- Consolidate communication between NM and NMI by doing only 1 dbus
			method call to get Wireless Network info from NMI instead of 6

	* src/NetworkManager.c
		- Make sure to cancel activation when we receive a SIGTERM, otherwise
			when we didn't have an AP to use, we'd wait for one forever without
			quitting

	* src/NetworkManagerDevice.c
		- nm_device_activation_cancel(): Fix a race between dhcp and quitting
			activation, dhcp might not have started yet but we don't quit activation
			before starting it, so the quit signal gets lost


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@363 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-01-09 23:15:36 +00:00
Dan Williams
ff6dbffeb1 2005-01-07 Dan Williams <dcbw@redhat.com>
* dhcpcd/client.c
		- Rework the DHCP client code to be much less chatty when
			it receives non-DHCP UDP packets during the DHCP run
			(reported by and preliminary patches from Bill Moss)

	* Move wireless scanning to a separate thread.  This thread forwards the
		results to the main thread when done where they are integrated into
		the device's access point lists.  This keeps the main thread (which
		does all the DBUS communication) from being blocked for long periods
		of time by wireless scanning.

	* Make state modification an idle routine in the main loop, and trigger
		state changes rather than polling for them.

	* src/backends/NetworkManagerGentoo.c
		- Fix up invalid C90 code (reported by Christoph Ruessler)

	* src/NetworkManagerDevice.c
		- Revert IPv6 patch for wired devices from 2004-12-22 for
			router advertisements, causing problems and infinite loop
			during "best" device determination due to link going up/down
			(reported by Bill Moss)

	Apply patch from Peter Jones
	* src/NetworkManagerDevice.c
		- Shortcut for link-checking for ipw2x00 cards
		- Split out association check into separate routine


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@360 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-01-07 18:07:06 +00:00
Colin Walters
33bd873ec4 2004-12-21 Colin Walters <walters@redhat.com>
* src/NetworkManager.c (nm_data_new): Initialize named.
	Also, set up a signal handler for SIGINT/SIGTERM, and exit
	the mainloop when these signals are received.
	(nm_data_free): Unref named.
	(sigterm_handler, sigterm_pipe_handler): New functions for
	exiting mainloop.

	* src/NetworkManagerMain.h (NMData): Add signal handling and
	nameserver bits.

	* src/NetworkManager.c (nm_device_unref): Quit device mainloop on
	unref.

	* src/NetworkManagerDHCP.c (set_nameservers): New function;
	set nameservers from DHCP response data.
	(set_domain_search): Set domain search from DHCP response.
	(nm_device_dhcp_configure): Invoke them.

	* src/NetworkManagerSystem.c
	(nm_system_device_update_resolv_conf): Delete.  Deleting
	code is totally sweet.

	* src/Makefile.am (NetworkManager_LDADD): Add libnamed.

	* named/nm-named-manager.h, named/nm-named-manager.c: New files;
	implements an object which controls a nameserver.  Currently
	uses bind 9.

	* configure.in: Check for named.

	* Makefile.am (SUBDIRS): Add named dir.

	* named/named.conf: New template config file.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@352 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-12-21 06:49:21 +00:00
Dan Williams
d12bd5843a Revert scanning interval back to 10s, blow away resolv.conf for ad-hoc networks
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@344 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-12-17 21:39:23 +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
d0c93d3c69 2004-12-05 Dan Williams <dcbw@redhat.com>
* Major rework of the DHCP code, taking some cues from pump.  We don't
		write raw Ethernet packets anymore, which simplifies the code quite
		a bit.  The new code should be more robust, not hang in recvfrom()
		as much, and generally work better.  This also means that we need
		to force HAL/dbus to use a created GMainContext rather than the
		default context, since having the DHCP renew/rebind thread using
		its own GMainContext seemed to give dbus a fit.  There is also more
		debugging information printed from the DHCP loop to help with future
		problems.

	* Also, if the DHCP server doesn't give us the "routersOnSubnet" option,
		assume that the default gateway should be the DHCP server.

	Patch from Matthew Schick <matt oss-institute org>
	* src/backends/NetworkManagerGentoo.c
		- Fix compilation error due to missing "ip4_broadcast"


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@336 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-12-05 21:28:42 +00:00
Dan Williams
2ad25b238e 2004-11-15 Dan Williams <dcbw@redhat.com>
Major rework of link detection code.  We now use DHCP
	as part of the link detection which proves to be much more robust,
	and also supports Open System authentication for wireless networks.

	We no longer use external DHCP client programs.  Instead, we use
	our own DHCP client, based on substantially reworked bits of 'dhcpcd'
	which was written by:
		Yoichi Hariguchi <yoichi@fore.com>
		Sergei Viznyuk <sv@phystech.com>
		http://www.phystech.com/download/
	It resides in the "dhcpcd" directory and was refactored into a general
	purpose DHCP client library by me.

	Also misc fixes (CPPFLAGS->AM_CPPFLAGS, move some stuff around),
	move src/backends/NetworkManagerSystem.h -> src/NetworkManagerSystem.h


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@314 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-11-16 02:41:53 +00:00
Colin Walters
1d421e5227 2004-11-11 Colin Walters <walters@verbum.org>
* src/NetworkManager.c (main): Use daemon(3).

	* info-daemon/NetworkManagerInfo.c (main): Ditto.

	* dispatcher-daemon/NetworkManagerDispatcher.c (main): Ditto.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@304 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-11-12 01:46:16 +00:00
Dan Williams
fd3cd7d1ea 2004-10-29 Dan Williams <dcbw@redhat.com>
* src/NetworkManager.c
		- (nm_hal_device_property_modified): unlock a locked active
			wireless device when a wired connection gets a link.
			(Means you'll switch to wired whenever you plug in no
			matter what).


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@278 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-10-29 17:59: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
c396b6b27d 2004-10-18 Dan Williams <dcbw@redhat.com>
Patches from Thom May:
	* test/nmtestdevices.c
		- Include <string.h>
	* src/backends/NetworkManagerDebian.c:
		- (nm_system_device_run_dhcp, nm_system_device_stop_dhcp)
			(nm_system_device_flush_routes, nm_system_device_flush_addresses)
			Move to using g_strdup_printf rather than arbitrary buffers
		- (nm_system_device_setup_static_ip4_config) Implement function.
		- (nm_system_kill_all_dhcp_daemons) Use killall -q rather than killall


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@256 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-10-19 02:27:04 +00:00
Dan Williams
267a0803f6 2004-10-15 Dan Williams <dcbw@redhat.com>
---- We have a website ----
	http://people.redhat.com/dcbw/NetworkManager

	Patch from Robert Paskowitz:
	* src/NetworkManager.c
		- (main): Make sure we are run as root
	* src/NetworkManagerDevice.c
		- Fix type in ad-hoc setting function

	Patch from Thom May:
	* src/backends/NetworkManagerDebian.c
		- Make Debian backend compile again


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@243 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-10-15 15:59:25 +00:00
Dan Williams
fc2dcd1fd4 2004-10-14 Dan Williams <dcbw@redhat.com>
* src/NetworkManager.c
		- Only accept and manager 802.3 and 802.11 devices

	* src/NetworkManagerDbus.[ch]
		- (nm_dbus_nm_set_active_device): move most of the actual activation
			logic into NetworkManagerDevice.c
		- (nm_dbus_network_status_from_data): new function
		- (nm_dbus_signal_network_status_change): new function, unused for now
		- (nm_dbus_nm_message_handler): use nm_dbus_network_status_from_data () now

	* src/NetworkManagerDevice.[ch]
		- (nm_device_find_and_use_essid): new function.  Search for, and if found use,
			a random ESSID.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@231 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-10-14 20:31:35 +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
356e922bf5 2004-09-28 Dan Williams <dcbw@redhat.com>
* src/NetworkManager.c
	  src/NetworkManagerDevice.c
	  src/NetworkManagerPolicy.c
		- Don't blow away an active wired connection on startup


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@177 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-09-28 19:50:37 +00:00
clarkbw
14653e2021 2004-09-22 <clarkbw@cvs.gnome.org>
* initscript/Debian/.cvsignore:
	* initscript/Slackware/.cvsignore:
	Added new cvsignores for Makefile, Makefile.in

	* test/.cvsignore:
	Added nmtestdevices

	* src/NetworkManagerDevice.c:
	* src/NetworkManager.c:
	Updated the wireless/wired HAL device strings from net.ethernet to
	net.80203 or net.80211 depending on wired or wireless respectively
	Should probably update the configure.in to ask for the correct HAL
	version now.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@168 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-09-22 17:34:15 +00:00
Dan Williams
53e50a9c7e 2004-09-11 Dan Williams <dcbw@redhat.com>
* src/NetworkManager.c
		- Fix race condition between initscripts and NM on card insertion
			which could cause a card to keep an IP address and routes around
			even when it was not the active device

	* src/NetworkManagerDbus.c
		- Fix compile errors, free more DBusErrors


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@154 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-09-12 15:39:05 +00:00
Dan Williams
ae080994c7 2004-09-11 Dan Williams <dcbw@redhat.com>
* panel-applet/NMWirelessApplet.c
	  panel-applet/NMWirelessAppletDbus.c
		- Start using NetworkDevice/WirelessNetwork structures in more places
		- Update for unified device/network forcing in NetworkManager

	* src/NetworkManager.c
		- some code consolidation

	* src/NetworkManagerDbus.c
		- (nm_dbus_nm_set_active_device): "setActiveDevice" now takes either one
			or two arguments:  the first is the NM ID of the device to switch to,
			and the second (optional) argument is the ESSID of a wireless network
			to use as well.
		- Get rid of "setNetwork" method due to above change

	* src/NetworkManagerDevice.c
		- (nm_device_new): perform scan and update best AP on device creation
		- nm_device_activation_cancel_if_needed()->nm_device_activation_should_cancel()
		- nm_device_activation_signal_cancel()->nm_device_activation_cancel(), and
			spin waiting for cancellation to finish before returning

	* src/NetworkManagerPolicy.c
		- Changes here clarify the situations in which a device switch occurs, and
			make sure to keep using a forced device and network if the user gives
			us one
		- Remove old unused code


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@149 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-09-12 03:06:44 +00:00
Dan Williams
2b782920d6 2004-09-09 Dan Williams <dcbw@redhat.com>
NOTE: this commit changes the behavior of wireless devices in
	NetworkManager.  They are now up all the time, scanning all
	the time.  Only the active device has an IP address and routing
	information set up however.  Also, NetworkManager will no longer
	opportunistically switch wireless networks when a better one
	comes in range, it will remain associated with one wireless network
	until that one drops out.

	* panel-applet/NMWirelessApplet.c
	  panel-applet/NMWirelessAppletDbus.c
		- List all wireless cards and their respective networks

	* src/NMLoadModules
		- Use full path to /sbin/ip

	* src/NetworkManager.c
		- Keep wireless devices up all the time so they can scan

	* src/NetworkManagerDbus.c
		- On a WirelessNetworkUpdate signal from NMI, don't update
			the "best" AP

	* src/NetworkManagerDevice.c
		- (nm_device_set_link_active): clear out the best ap for
			wireless devices when the link is set to FALSE
		- Scan on all wireless cards, all the time
		- (nm_device_activation_worker): split out the wireless card
			link-waiting code to a separate function
		- Keep wireless cards up even if device activation fails
		- Don't update the "best" ap as much

	* src/NetworkManagerPolicy.c
		- Don't update the best ap when checking if its frozen,
			let link checking clear out a frozen best ap for us

	* src/NetworkManagerWireless.c
		- Scan on all wireless cards, all the time


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@140 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-09-09 20:02:59 +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
Dan Williams
4de66efbd4 2004-08-31 Dan Williams <dcbw@redhat.com>
* Remove 'debug' extern global from all files since we now
		use syslog()

	* src/NetworkManager.[ch]
		- Break out routine that get the net.interface property from HAL,
			removing that logic from nm_create_device_and_add_to_list()
		- (nm_create_device_and_add_to_list): make this a bit more general so
			it doesn't do the talking to HAL.  Also add arguments to facilitate
			the create of test devices.
		- (nm_data_mark_state_changed): rename from nm_data_set_state_modified()
		- (nm_data_new, main, nm_print_usage): add new argument "--enable-test-devices"
			which makes NetworkManager listen for dbus commands to create test
			devices, which have no backing hardware.  Use when you're on a plane
			for example, and/or forgot your wireless card at home.  Test devices
			_cannot_ be created unless NM is started with --enable-test-devices.

	* src/NetworkManagerDbus.[ch]
		- New "getLinkActive" method for devices
		- New "setLinkActive" method for devices (only works on test devices)
		- New "createTestDevice" method on NetworkManager object to create a test
			device of a specified type (ie wired, wireless).  UDI is created from
			scratch, as is the interface name.  Only works when NM is started with
			--enable-test-devices switch.
		- New "removeTestDevice" method on NetworkManager object which removes a
			test device.  Only works when NM is started with --enable-test-devices

	* src/NetworkManagerDevice.[ch]
		- Logic to facilitate test devices.  Add variables to NMDevice struct to indicate
			whether a device is a test device or not, and what its link status is.
		- Deal with test devices in most functions.  For those that work directly on hardware
			special-case test devices.
		- (nm_device_new): don't create a test device if test devices weren't enabled on the
			command-line.
		- (nm_device_update_link_active): split out logic for wired and wireless device link
			checking to separate functions to facilitate test device link checking.
		- (nm_device_set_enc_key): Since some drivers for wireless cards are daft and
			don't make a distinction between System Authentication and Encryption
			(namely Cisco aironet), we use Open System auth when setting a WEP key
			on the card.  We don't deal with Shared Key auth yet.
		- (nm_device_activation_worker): split the activation cancel check logic out into
			a separate routine nm_device_activation_cancel_if_needed()
		- (nm_device_activation_signal_cancel): rename from nm_device_activation_cancel()
		- (nm_device_fake_ap_list): Test wireless devices obviously cannot scan, so create
			a list of fake access points that they can "see"
		- (nm_device_is_test_device): return whether or not a device is a test device

	* src/NetworkManagerPolicy.c
		- (nm_policy_get_best_device): attempt to deal with wireless network selection,
			previously if you "locked"/forced NM to use a wireless device but then
			selected a wireless network for NM to use, it would switch to a wired device.
			So, if the active device is wireless and it has a "forced" best AP, use it
			if the "forced" best AP is still valid
		- (nm_state_modification_monitor): deal with NULL best devices, for example
			there were no usable network devices, or the last one was removed

	* src/backends/NetworkManager*.c
		- Deal with test devices, mostly just return success for operations like getting
			a DHCP address

	* test/nmtestdevices.c
		- Test tool to create/remove/link-switch test devices


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@112 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-08-31 16:09:15 +00:00
Colin Walters
6871fe28bc 2004-08-29 Colin Walters <walters@verbum.org>
* test/nminfotest.c: Include string.h and stdlib.h.
	(get_network_string_property, get_networks_of_type): Return NULL.

	* test/nmclienttest.c (get_device_name, get_active_device): Return
	NULL.

	* src/backends/NetworkManagerRedHat.c (nm_system_device_stop_dhcp): Just
	use strlen, fgets always NULL-terminates the string.

	* src/NetworkManagerDbus.c (nm_dbus_nmi_filter,
	dbus_message_get_member): Remove /* in comment.

	* src/NetworkManagerUtils.c (LOCKING_DEBUG): Ditto.

	* src/NetworkManager.c (quit): Unused, delete.
	(nm_data_free): Cast arg to GFunc.

	* panel-applet/NMWirelessAppletDbus.c: Need to include
	string.h, and dbus-glib-lowlevel.h (the latter is needed
	for dbus_connection_setup_with_g_main at present).
	(nmwa_dbus_update_wireless_network_list): Parenthesize
	assignment in conditional.
	(nmwa_dbus_worker): Return NULL.

	* panel-applet/NMWirelessApplet.c (nmwa_redraw)
	(nmwa_get_menu_pos, nmwa_toplevel_menu_activate)
	(nmwa_menu_add_text_item, nmwa_setup_widgets): Kill unused variables.
	(nmwa_populate_menu): Return NULL on failure, instead of just
	return;

	* initscript/NMLaunchHelper.c (g_timeout_add): Cast arg to GSourceFunc.

	* info-daemon/NetworkManagerInfoNetworksDialog.c (nmi_networks_dialog_init): Kill unused
	variables.

	* info-daemon/NetworkManagerInfo.c (nmi_print_usage): Unused,
	delete.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@105 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-08-29 06:06:51 +00:00
Dan Williams
305ff0adb0 Thu Aug 26 2004 Dan Williams <dcbw@redhat.com>
* panel-applet/NMWirelessApplet.[ch]
		- Rework menu code to add devices to menu, and to show
			signal strength for each access point.  Code cleanups
			too.

	* panel-applet/NMWirelessAppletDbus.c
		- Grab network devices from NetworkManager too
		- Grab quality information from NM for wireless networks

	* src/NetworkManagerDbus.[ch]
		- Add dbus methods for getting the HAL UDI from a device and
			for getting its base quality, if its wireless
		- Consolidate some functions (wireless network notifications,
			device notifications)
		- Add method for requesting NM to use a particular device

	* src/NetworkManager.c
		- Change for function consolidations from NetworkManagerDbus.c
		- Implement active device locking and user-requested devices
			(ie, tell NM to use a particular device instead of the one
			it autochose)

	* src/NetworkManagerDevice.c
		- Add method for getting the base quality of a device, if its
			wireless
		- Grab device base quailty info from iwlib during scans

	* src/NetworkManagerPolicy.c
		- Use a user-requested device rather than the auto-chosen device
			if we are told to


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@81 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-08-26 20:05:24 +00:00
Dan Willemsen
6dbc6cfd03 2004-08-24 Dan Willemsen <dan@willemsen.us>
* src/NetworkManager.c
	  src/backends/NetworkManagerGentoo.c
	  src/backends/NetworkManagerRedHat.c
	  src/backends/NetworkManagerSystem.h
		- Implement preliminary Gentoo support, adding a
			nm_system_init function to the backend specification

	* configure.in
		- Distribution auto-detection, lowercase any user-fed
			distribution names

	* initscript/.cvsignore
	  initscript/Makefile.am
	  initscript/RedHat/Makefile.am
	  initscript/RedHat/NetworkManager
	  initscript/Gentoo/Makefile.am
	  initscript/Gentoo/NetworkManager
		- Refactored initscript code separately for each
			distribution


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@64 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-08-25 20:52:19 +00:00
Dan Williams
ae6f88b3dd 2004-08-23 Dan Williams <dcbw@redhat.com>
* configure.in
	  src/Makefile.am
	  src/NetworkManagerDevice.c
	  src/NetworkManager.c
	  src/NetworkManagerUtils.[ch]
	  src/backends/NetworkManagerSystem.h
	  src/backends/NetworkManagerRedHat.c
	  src/backends/NetworkManagerGentoo.c
		- Refactor system-specific code into separate backends for
			each distribution


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@62 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-08-24 00:31:47 +00:00
Dan Willemsen
a4afafce03 2004-08-23 Dan Willemsen <dan@willemsen.us>
* dispatcher-daemon/NetworkManagerDispatcher.c
	  info-daemon/NetworkManagerInfo.[ch]
	  info-daemon/NetworkManagerInfoDbus.c
	  info-daemon/NetworkManagerInfoPassphraseDialog.c
	  src/NetworkManager.c
	  src/NetworkManagerAP.c
	  src/NetworkManagerAPList.c
	  src/NetworkManagerDbus.c
	  src/NetworkManagerDevice.c
	  src/NetworkManagerPolicy.c
	  src/NetworkManagerUtils.[ch]
	  src/NetworkManagerWireless.c
		- Used syslog functions for logging instead of NM_DEBUG_DISPLAY & fprintf

	* src/NetworkManager.c
		- Fixed usage wording for --no-daemon


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@61 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-08-23 19:20:49 +00:00
Dan Williams
098099929e 2004-08-16 Dan Williams <dcbw@redhat.com>
* initscript/NetworkManager
		- Check for /sbin/ip
		- Do sysctl magic that network service does
		- sleep 4s after start to allow network time to come up [hack]

	* src/Makefile.am
	  src/NMLoadModules
		- Load all network device kernel modules (hal doesn't know devices
			are ethernet until the module is loaded, and therefore we don't know)

	* src/NetworkManager.c
		- (main): daemonize later, launch NMLoadModules to alert HAL of our
			network devices, and bring up the loopback device explicitly

	* src/NetworkManagerUtils.[ch]
		- (nm_enable_loopback): new function


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@55 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-08-16 19:46:43 +00:00
Dan Williams
0895829142 2004-08-12 Dan Williams <dcbw@redhat.com>
* info-daemon/passphrase.glade
		- Set window title to " "

	* panel-applet/Makefile.am
	  panel-applet/keyring.png
		- Deliver to correct place

	* panel-applet/NMWirelessApplet.[ch]
		- Add comments
		- Remove applet->have_active_device as its no longer used
		- (nmwa_load_theme): load keyring.png too
		- (error_dialog): remove
		- (show_warning_dialog): subsume functionality of error dialog too
		- (nmwa_destroy, nmwa_new): create and dispose of an application-wide GConfClient
		- (nmwa_handle_network_choice): add to deal with user clicking on an item from
			the networks menu
		- (nmwa_menu_item_activated): GtkMenuItem "activate" signal handler
		- (nmwa_button_clicked, nmwa_setup_widgets): create and populate the menu on startup
			and when we get broadcasts of changed wireless access points only, not when the
			user clicks on the button to display the menu (too long of a wait)
		- (nmwa_add_menu_item): Make active network bold, and place a keyring icon beside
			networks that are encrypted
		- (nmwa_dispose_menu, nmwa_menu_item_data_free): dispose of the data we place on each
			menu item with g_object_set_data()

	* panel-applet/NMWirelessAppletDbus.[ch]
		- (nmwa_dbus_get_bool): add method to return boolean value from dbus message
		- (nmwa_dbus_get_active_network): add (nmwa_dbus_get_string() wrapper to get active network)
		- (nmwa_dbus_add_networks_to_menu): clean up, only show one instance of each ESSID in the menu
		- (nmwa_dbus_set_network): force NetworkManager to use a particular network for wireless cards
		- (nmwa_dbus_init, nmwa_dbus_filter): Trap network appear/disappear and device
			activation/deactivation signals and rebuild the menu when they happen

	* src/NetworkManager.c
		- (main): use new nm_spawn_process() rather than system()

	* src/NetworkManagerDbus.c
		- (nm_dbus_devices_handle_request): don't compare AP structure addresses directly, but essids
			instead.  Since we can now force best_aps to stick around, the AP structure to which
			dev->options.wireless.best_ap points to won't necessarily be in the device's device list
			if a scan has happened since the best_ap was frozen.  Also add "setNetwork" method
			to freeze the best_ap.

	* src/NetworkManagerDevice.[ch]
		- (nm_device_activation_worker): Use new nm_spawn_process() call rather than system()
		- (nm_device_*_best_ap): add freeze/unfreeze/get_frozen functions, and don't really update
			the best_ap in nm_device_update_best_ap() if the best_ap is frozen AND in the device's
			ap list

	* src/NetworkManagerUtils.[ch]
		- (nm_spawn_process): add replacement for system() usage


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@48 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-08-12 19:58:01 +00:00
Dan Williams
d06aa3e6ff 2004-08-11 Dan Williams <dcbw@redhat.com>
* info-daemon/NetworkManagerInfo.c:
		- (main): clean up Seth's code style

	* info-daemon/NetworkManagerInfoDbus.c:
		- Use the more aptly-named path/service/interface constants from NetworkManager
		- Don't return empty strings ("") as object paths ever, instead return errors

	* panel-applet/NMWirelessApplet.c:
		- Clean up Seth's code style

	* src/NetworkManager.[ch]
		- (nm_remove_device_from_list): remove anything having to do with pending_device
		- (main, nm_print_usage): change --daemon=[yes|no] -> --no-daemon

	* src/NetworkManagerAPList.[ch]
		- Move Iter struct right above the iter functions to preserve opacity
		- (nm_ap_list_remove_ap): implement
		- (nm_ap_list_update_network): deal with errors returned from nm_dbus_get_network_priority(),
			remove AP if NetworkManagerInfo doesn't know anything about it
		- (nm_ap_list_diff): user NMAPList iterators
		- (nm_ap_list_print_members): implement debugging function

	* src/NetworkManagerDbus.[ch]
		- (nm_dbus_nm_get_active_device): remove anything to do with pending_device
		- (nm_dbus_get_user_key_for_network): remove DBusPendingCall stuff (unused),
			and move the actual key setting stuff into NetworkManagerDevice.c
		- (nm_dbus_get_network_priority): return -1 now on errors
		- (nm_dbus_nmi_filter): fix strcmp() error that caused PreferredNetworkUpdate signals to
			get lost, and force the active device to update its "best" ap when AP lists change
		- (nm_dbus_nm_message_handler): Update conditions for returning "connecting" for a "status"
			method call due to pending_device member removal

	* src/NetworkManagerDevice.[ch]
		- Move NMDevice structure to the top
		- Add a wireless scan mutex and a best_ap mutex to the Wireless Options structure
		- Remove Pending Action stuff from everywhere
		- (nm_device_activation_*): We now "begin" activation and start a thread to do the
			activation for us.  This thread blocks until all conditions for activation have
			been met (ie for wireless devices, we need a valid WEP key and a "best" ap), and
			then setup up the interface and runs dhclient.  We have to do this because there
			is no guaruntee how long dhclient takes, and while we are blocking on it, we cannot
			run our main loop and respond to dbus method calls or HAL device removals/inserts
		- (nm_device_set_user_key_for_network): Move logic here from NetworkManagerDbus.c so we
			can tell nm_device_activation_worker() that we've got a key
		- (nm_device_*_best_ap): lock access to best_ap member of Wireless Options structure
		- (nm_device_get_path_for_ap): dumb it down so the list doesn't lock against itself when
			diffing (AP appear/disappear signal functions make sure the AP is actually in the device's
list)
		- (nm_device_update_best_ap): move logic from nm_wireless_is_ap_better() here

	* src/NetworkManagerPolicy.c
		- Remove anything to do with pending_device
		- Adjust device activation to deal with activation-in-worker-thread

	* src/NetworkManagerUtils.c
		- Clean up locking debugging a bit

	* src/NetworkManagerWireless.[ch]
		- (nm_wireless_is_ap_better): remove, stick logic in nm_device_update_best_ap().  This function
			was badly named and is better as a device function

	* panel-applet/.cvsignore: add


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@46 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-08-11 18:14:02 +00:00
Dan Williams
e8b7b7c07d 2004-08-06 Dan Williams <dcbw@redhat.com>
* panel-applet/*
		- Add panel applet

	* src/NetworkManagerPolicy.c
	  src/NetworkManager.c
		- Get access point lists from NetworkManagerInfo on-demand,
			and look for ServiceCreate/ServiceDeleted signals to see when
			we should query NMI for lists
	* src/NetworkManagerAPList.c
		- Make sure to init the list's mutex
		- Convert traversals of the list over to the list iter functions

	* src/NetworkManagerDbus.[ch]
		- Use more aptly-named path/service/interface constants
		- Treat both active and pending devices the same for "getActiveDevice"
		- Add a "status" method returning "connected", "connecting", or "disconnected"

	* src/NetworkManagerDevice.c
		- Honor "ignored" network list when picking best ap to use


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@39 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-08-06 18:19:06 +00:00
Dan Williams
f76484abc3 2004-08-05 Dan Williams <dcbw@redhat.com>
* An assload of changes


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@34 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-08-05 18:54:29 +00:00
Dan Williams
3151e9092e 2004-08-02 Dan Williams <dcbw@redhat.com>
* TODO
		- new task: proper logging support

	* info-daemon/NetworkManagerInfo.c
		- Correct spelling of "canceled"
		- Correct casting of objects for g_signal_connect()

	* info-daemon/NetworkManagerInfoDbus.c
		- Add defines for NetworkManager namespace and object path, and use them
		- Add filter function to trap new signals from NetworkManager:
			WirelessNetworkAppeared, WirelessNetworkDisappeared

	* info-daemon/passphrase.glade
		- Change name of "ok" button to "Login to Network..."
		- Mark invisible

	* src/NetworkManager.c
		- Code and debug message cleanups
		- Rename "nm_add_current_devices"->"nm_add_initial_devices"
		- (nm_add_initial_devices) Check returned string array of devices
			and don't try to add devices if array is NULL
		- (main) Initialize libhal a bit later, make code a bit clearer

	* src/NetworkManagerAP.[ch]
		- New accessor and data member "matched": used to speed up AP list
			diffing
		- New accessor and data member "enc_method": will be used during key
			fallback to cache which passphrase->key conversion actually works
			so we don't have to do it every time

	* src/NetworkManagerAPList.[ch]
		- (nm_ap_list_find_ap_in_list) New: find an AP by essid in an AP list
		- (nm_ap_list_diff) New: given two lists of access points, find the differences
			between them, and send WirelessNetworkAppeared/Disappeared signals over
			dbus in response to those differences

	* src/NetworkManagerDbus.[ch]
		- (nm_dbus_get_object_path_from_ap) New: given a device and an access point,
			make an object path for that access point (NOTE that we don't yet check to
			make sure that access point is actually in the device's AP list yet)
		- (nm_dbus_get_ap_from_object_path) Renamed from nm_dbus_get_network_from_object_path
		- (nm_dbus_signal_wireless_network_appeared, nm_dbus_signal_wireless_network_disappeared)
			New: signal appearance/disappearance of wireless networks
		- (nm_dbus_set_user_key_for_network) Mark the network/ap as invalid if the user cancelled
			key entry

	* src/NetworkManagerDevice.[ch]
		- (nm_device_ap_list_clear) Use nm_ap_list_free rather than doing it ourselves
		- (nm_device_ap_list_get) New: return the AP list (static function)
		- (nm_device_do_normal_scan) Destroy old AP list later, so that we can diff the
			new one resulting from the scan with the old one

	* src/NetworkManagerWireless.c
		- (nm_wireless_is_most_prefered_ap) "invalid" access points cannot be "best" access points

	* test/nminfotest.c
		- #define object paths and namespaces and use the #defines rather than static strings
		- Test out user-key functionality of NetworkManagerInfo too


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@33 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-08-02 21:12:40 +00:00
Dan Williams
814cfbc5fc 2004-07-27 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerAPList.[ch]
	  src/Makefile.am
		- Add.  Deal with allowed network list additions, deletions, and updates

	* dispatcher-daemon/NetworkManagerDispatcher.c
		- Add missing <dbus/dbus.h> header

	* info-daemon/NetworkManagerInfo.[ch]
		- Add missing <dbus/dbus.h> header
		- Implement the GConf notify callback to signal NetworkManager of an allowed
			network change
		- Better error checking

	* info-daemon/NetworkManagerInfoDbus.[ch]
		- Add missing <dbus/dbus.h> header
		- Convert to using dbus_message_append_args/dbus_message_get_args
		- Implement nmi_dbus_signal_update_allowed_network() to signal NetworkManager
			that an allowed network changed.  We don't want to signal on individual
			keys _inside_ an allowed network really, just want NM to query the info
			daemon for updated info on all keys.
		- Better error checking

	* src/NetworkManager.[ch]
		- Add missing <dbus/dbus.h> header
		- Move allowed_ap_list free functions to NetworkManagerAPList.[ch]
		- Zero out NMData structure on free
		- No longer use a thread for allowed_ap_list updating, instead its now done
			through dbus queries against NetworkManagerInfo
		- Populate allowed_ap_list initially before adding existing network devices
			to the device list, so wireless devices can get their "best" AP

	* src/NetworkManagerDbus.[ch]
		- Convert to using dbus_message_append_args/dbus_message_get_args
		- Better error checking
		- Implement Allowed Network info functions to request allowed network
			info from NetworkManagerInfo
		- Implement the filter function to process signals from NetworkManagerInfo
			about changing allowed networks

	* src/NetworkManagerDevice.c
		- Fix file descriptor leak in nm_device_update_ip4_address()

`CVS: Modified Files:


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@22 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-07-27 16:15:36 +00:00
Dan Williams
8ae95bf594 2004-07-24 Dan Williams <dcbw@redhat.com>
* src/NetworkManager.[ch]
	  src/NetworkManagerDbus.[ch]
	  src/NetworkManagerDevice.[ch]
	  src/NetworkManagerPolicy.c
	  src/NetworkManagerWireless.[ch]
		- Add many more g_return_if_fail()/g_return_val_if_fail() checks
		- Pass the NMData application data structure through all calls
			that need it so we can get rid of nm_get_global_data()
		- Change deallocation of the allowed_ap_list GSList in preparation
			for not completely clearing it every time we get an update,
			but instead getting incremental updates via GConf/dbus


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@20 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-07-25 02:40:19 +00:00
Dan Williams
088b0d8eb2 2004-07-15 Dan Williams <dcbw@redhat.com>
* src/Makefile.am
		- Turn on warnings

	* src/NetworkManager.c
		- nm_create_device_and_add_to_list(): call nm_device_deactivate() rather
			that doing the deactivation ourselves
		- Cancel an pending actions on a device if its being removed
		- Break up link state checking a bit, make non-active wireless cards
			deactivated to save power
		- Remove unused variables

	* src/NetworkManager.h
		- Add support for "pending" device

	* src/NetworkManagerAP.h
	  src/NetworkManagerAP.c
		- Add support for determining whether and AP has encryption enabled or not
		- AP address is now "struct ether_addr" rather than a string

	* src/NetworkManagerDbus.h
	  src/NetworkManagerDbus.c
		- Add signal NeedKeyForNetwork, method SetKeyForNetwork (testing only)
		- Changes for AP address from struct ether_addr->string

	* src/NetworkManagerDevice.h
	  src/NetworkManagerDevice.c
		- Remove unused variables, fix warnings
		- Add support for Pending Actions (things that block a device from being "active"
			until they are completed).
		- First pending action:  Get a WEP key from the user
		- Add nm_device_is_wire[d|less](), rename nm_device_is_wireless()
		- Clean up explicit testing of dev->iface_type to use nm_device_is_wireless()
		- Update wireless link checking to try to determine if the AP we are associated
			with is correct, but the WEP key we are using is just wrong.  If its wrong,
			trigger the GetUserKey pending action on the device
		- If dhclient can't get an IP address, it brings the device down.  Bring it back
			up in that case, otherwise we can't scan or link-check on it
		- Add IP address change notifications at appropriate points (still needs some work)
		- Add nm_device_need_ap_switch(), checks whether we need to switch access points or not

	* src/NetworkManagerPolicy.h
	  src/NetworkManagerPolicy.c
		- Split out "best" access point determiniation into separate function
		- Make device activation 2-stage:  first the device is pending, then
			in the next iteration through it becomes "active" unless it has
			pending actions

	* src/NetworkManagerUtils.h
	  src/NetworkManagerUtils.c
		- Clean up unused variables and warnings
		- Wrap our debug macros in {} to prevent possible confusion

	* src/NetworkManagerWireless.c
		- Forgot to return current best priority, which lead to last available AP always
			being chosen no matter what its priority was.  Corrected.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@15 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-07-15 16:51:48 +00:00
Dan Williams
0073d4dd55 2004-07-06 Dan Williams <dcbw@redhat.com>
* src/NetworkManager.c
		- Add IPv4 address update for active device during link state check
		- Don't allow wireless cards to be powered up when they are not the
			active device

	* src/NetworkManagerDbus.c
	  src/NetworkManagerDbus.h
		- Add DBUS IPv4 address change signal
		- Add DBUS IPv4 address get method for devices

	* src/NetworkManagerDevice.c
		- Make setting the WEP key actually work
		- Move IP address get/set/update stuff here, per-device
		- Power down/bring down wireless device when deactivated
		- For scanning wireless devices, if first scan returned ENODATA, try again

	* src/NetworkManagerPolicy.c
		- Only set the WEP key for an allowed access point if there is one.
			We were setting it to be blank if one wasn't specified.

	* src/NetworkManagerUtils.h
	  src/NetworkManagerUtils.c
		- Move the IP address stuff to NetworkManagerDevice.c

	* dispatcher-daemon/NetworkManagerDispatcher.c
		- Add device IPv4 address change notification stuff


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@13 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-07-06 04:45:00 +00:00
Dan Williams
019e2337bf 2004-07-05 Dan Williams <dcbw@redhat.com>
* dispatcher-daemon/NetworkManagerDispatcher.c
		- A bit more descriptive state message
		- Don't segfault when reading directory

	* src/NetworkManager.h
		- Remove NMData desired_ap member, its now
			per-device rather than global

	* src/NetworkManager.c
		- Remove references to desired_ap
		- Move the allowed AP list refresh stuff into a thread

	* src/NetworkManagerDevice.c
	  src/NetworkManagerDevice.h
		- Each wireless device now has a "best ap"
		- Make device activate/deactivate functions per-device
		- Make wireless scanning per-device
		- Add IPv4 address discover functions, stub IPv6 ones
		- Move ethernet address validation functions to NetworkManagerUtils.c
		- Add wireless access point accessor function
		- Get/Set functions for "best ap"

	* src/NetworkManagerPolicy.c
		- Move activate/deactivate stuff into NetworkManagerDevice.c, per-device
		- Deal with per-device "best ap" rather than data->desired_apa
		- Implement allowed access point worker thread
		- Add nm_policy_essid_is_allowed() function

	* src/NetworkManagerUtils.c
	  src/NetworkManagerUtils.h
	  	- Add nm_ethernet_address_is_valid() function
		- Add IPv4/IPv6 address get functions

	* src/NetworkManagerWireless.c
	  src/NetworkManagerWireless.h
		- Move scanning stuff into NetworkManagerDevice.c, per-device


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@12 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-07-06 01:34:10 +00:00
Dan Williams
80f835caed 2004-06-24 Dan Williams <dcbw@redhat.com>
* NetworkManager.c
	    - Spacing cleanups
	    - Flush device routes and ip addresses when added to the device list

	* NetworkManagerDbus.c
	    - Spacing cleanups
	    - Add missing returns in the two signal functions

	* NetworkManagerPolicy.c
	    - Spacing and variable cleanups


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@10 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-06-24 18:20:48 +00:00
Dan Williams
873738b61b 2004-06-24 Dan Williams <dcbw@redhat.com>
* Makefile.am
	  Makefile.in
	  configure.in
	  dispatcher-daemon/Makefile.am
	  dispatcher-daemon/Makefile.in
	  dispatcher-daemon/NetworkManagerDispatcher.c

	    Add a daemon that receives signals from NetworkManager
	  and will (eventually) call scripts in /etc/somewhere
	  when devices go up or down.

	* NetworkManager.c
	  NetworkManagerDbus.c

	    Spacing cleanups.

	* NetworkManagerPolicy.c

	    - Rename nm_policy_switch_interface->nm_policy_switch_device
	    - nm_policy_switch_device():
				Use kill (pid) instead of system ("kill <pid>")
	    - nm_state_modification_monitor():
				Add wireless essid to output of debug statements
				Correct typo in device compare to switch or not (should be !=)
				Don't sleep after sending "no longer active" signal, was useless


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@9 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-06-24 17:55:51 +00:00
Dan Williams
c39587c1c2 Initial revision
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-06-24 14:18:37 +00:00