Commit graph

124 commits

Author SHA1 Message Date
Dan Williams
a5dd14c305 2005-04-27 Dan Williams <dcbw@redhat.com>
* Merge the applet and the info-daemon, and move the converged
                applet under gnome/applet
        * Move libnm_glib to gnome/libnm_glib
        * Convert most dbus calls between the applet, info-daemon, and NM
                into async calls
        * Fix a few things valgrind noticed
        * Make NM broadcast state more reliably


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@586 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-04-27 18:05:16 +00:00
Dan Williams
7337e8132a 2005-04-15 Dan Williams <dcbw@redhat.com>
Patches from Tom Parker:
	- Fix memleaks
	- Join with worker thread rather than polling for its exit

	Patch from Bill Moss:
	- Cull duplicate ESSIDs from the scan list, taking highest strength AP


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@573 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-04-15 20:00:28 +00:00
Dan Williams
de1d417198 2005-04-15 Dan Williams <dcbw@redhat.com>
Initial VPN Support
		- supports 'vpnc'
		- reworks device IP configuration, backend files have changed and will need
			to be updated for all distributions.  I will try to do what I can for
			them, but I cannot test them.

	- Move named directory to src/named-manager
	- Make backends directory self-contained


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@571 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-04-15 15:43:42 +00:00
Dan Williams
66198cd398 Fix log message for ethtool check failure.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@562 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-04-06 19:16:31 +00:00
Dan Williams
7136220856 2005-04-06 Dan Williams <dcbw@redhat.com>
Add debug code for socket/file descriptor leaks.  We register every socket
	that we open (except for stuff in dhcpcd/) for tracking, and print out the
	list of sockets that we forgot to close on shutdown.  This also consolidates
	about 4 places where we opened sockets into 1 function in NetworkManagerUtils.c


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@559 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-04-06 16:45:48 +00:00
Dan Williams
044014b1be 2005-04-04 Dan Williams <dcbw@redhat.com>
* panel-applet/NMWirelessAppletDbus.c
		- (nmwa_dbus_call_nm_method): remove some commented code

	* src/NetworkManagerAPList.[ch]
		- (nm_ap_list_remove_ap_by_essid): new function

	* src/NetworkManagerDevice.c
		- (nm_device_wireless_force_use): remove access points from the ignore list
			when the user forces them

	* src/nm-dbus-device.c
		- (nm_dbus_device_get_active_network): fix up escaping of object paths


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@557 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-04-04 21:24:58 +00:00
Dan Williams
85aa633ec8 Remove duped code, done below somewhere
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@555 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-04-04 18:56:26 +00:00
Dan Williams
737dce1fd7 2005-04-01 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerDevice.c:
		- (nm_completion_scan_has_results): restore pre-completion-patch behavior
			of only erroring after the second consecutive scan times out.  Also
			don't exit when the card requires more time than we can give it, just
			log the event and continue.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@552 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-04-04 16:22:03 +00:00
Dan Williams
04eadd092c 2005-04-01 Dan Williams <dcbw@redhat.com>
Perform scans during device activation, if needed.  Both activation
	and scans run in the same GMainContext.  Therefore, if an access point
	is not found by the time the device starts activation, it will not
	be available until after activation.  We now try to scan during
	activation (in nm_wa_test) every 15s so that all available access
	points are more likely to be found and available for the activation
	procedure.

	Also change nm_wireless_link_state_handle() to only update the "best"
	AP if we are not forcing a device and if we are not about to change
	state.  This attempts to work around a race when forcing a device,
	where the forced AP would get cleared out too soon by the link state
	checking timeout in the main thread, and the activation attempt with
	that AP would fail.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@545 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-04-01 21:30:12 +00:00
Dan Williams
c1979229b6 2005-03-31 Dan Williams <dcbw@redhat.com>
Tighten up handling of wireless devices that don't support wireless
	scanning (ie, Orinoco).  Due to restructuring of code, these devices
	hadn't been doing pseudo-scanning for a while either and would just
	spin waiting for an access point.  They are now manual devices where
	the user must choose the access point from the menu every time.  All
	"allowed" access points are listed in the applet's menu regardless
	of whether or not they can be seen by the card, since it can't scan
	anyway.

	* src/NetworkManager.c
		- (nm_wireless_link_state_handle): new function, but only update
			the "best" ap for non-scanning devices when its not activating,
			and when no device is being forced on the card
		- (nm_link_state_monitor): split wireless link state handling out
			into separate function

	* src/NetworkManagerDevice.c
		- (nm_device_copy_allowed_to_dev_list): new function
		- (nm_device_new): populate non-scanning cards' AP lists with
			access points from the "allowed" list
		- (nm_device_new): don't start a scanning timeout for devices that
			can't scan
		- (nm_device_activation_schedule_finish): new parameter, should be
			the AP that failed to be connected to, pass it on to the
			activation finish function in NetworkManagerPolicy.c
		- (nm_device_activate_wireless): don't ever try to get a new AP
			for non-scanning devices, just fail.  The user must choose
			a new access point manually.
		- (nm_device_activate): grab the AP that failed connection and
			pass it on
		- (nm_device_update_best_ap): Clear the best AP if we don't have
			a link to it, user must manually choose a new one
		- (nm_device_do_pseudo_scan): remove function
		- (nm_device_wireless_process_scan_results): remove bits for non-
			scanning cards since they never get here
		- (nm_device_wireless_scan): remove bits for non-scanning devices,
			and fake the scan list for test devices a bit earlier

	* src/NetworkManagerPolicy.c
		- (nm_policy_activation_finish): use the failed_ap that we get
			passed rather than getting the best_ap from the card, which
			may have changed since we were scheduled
		- (nm_policy_allowed_ap_list_update): for non-scanning devices,
			update their scan list directly from the allowed list when
			we get updates to the allowed list from NetworkManagerInfo

	* src/NetworkManagerPolicy.h
		- New member for failed access point in NMActivationResult

  -------------------------------------

	Driver Notification patch: notifies the user when their driver
		sucks.  Gives them the option to ignore further insertions
		of the card that has the sucky driver.

	* NetworkManager.h
		- Remove the SEMI_SUPPORTED member from the NMDriverSupportLevel
			enum and replace it with NO_CARRIER_DETECT and
			NO_WIRELESS_SCAN

	* panel-applet/NMWirelessApplet.[ch]
		- Merge essid.glade -> wireless-applet.glade
		- Implement the "Your driver sucks" notification dialog

	* panel-applet/NMWirelessAppletDbus.c
		- Change stuff from getSupportsCarrierDetect->getDriverSupportLevel
		- Grab hardware address for each device from NM too
		- Check whether the driver for each device sucks or not whenever
			a new device is noticed

	* panel-applet/NMWirelessAppletOtherNetworkDialog.c
		- Deal with stuff being in wireless-applet.glade now rather than essid.glade

	* src/NetworkManager.c
		- Fix a double-unref on device removal

	* src/NetworkManagerUtils.c
		- Set appropriate driver support level on a device that doesn't
			support scanning or carrier detection

	* src/nm-dbus-device.c
		- New "getHWAddress" dbus method on devices
		- getSupportsCarrierDetect -> getDriverSupportLevel


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@534 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-03-31 21:02:21 +00:00
Dan Williams
4c4be4c15e 2005-03-31 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerDevice.c
		- (nm_device_wireless_scan): Fix leak of scan results in some
			instances


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@532 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-03-31 16:13:06 +00:00
Dan Williams
66039f43b3 2005-03-29 Dan Williams <dcbw@redhat.com>
* src/NetworkManager.c
		- (nm_poll_and_update_wireless_link_state): make code less indented

	Patch from Bill Moss:
	* src/NetworkManager.c
		- (nm_device_update_link_state): Update signal strength on wireless
			devices every time we update link state too.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@531 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-03-30 04:39:35 +00:00
Dan Williams
17fd25ccf2 2005-03-29 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerDevice.c
		- (nm_device_set_essid): Work around Orinoco cards which need
			extra time after setting the ESSID


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@530 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-03-29 22:15:28 +00:00
Dan Williams
7142df50e0 2005-03-29 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerDevice.c
		- Merge one more bit of Peter Jones' completion patch


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@529 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-03-29 22:10:21 +00:00
Dan Williams
578f8d89f6 2005-03-29 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerDevice.c
		- (nm_device_force_use): Fix possible segfault


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@526 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-03-29 21:55:03 +00:00
Dan Williams
4c462f46de 2005-03-29 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerDevice.c
		- Use iw_get_ext() where we should rather than iw_set_ext()


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@524 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-03-29 21:44:38 +00:00
Dan Williams
767f1ea24f 2005-03-29 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerDevice.c
		- (nm_device_set_up_down): remove check for unsupported devices
			that caused NM to not bring devices up when they were
			added to the device list.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@523 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-03-29 16:47:21 +00:00
Dan Williams
b09c5c6d27 2005-03-28 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerDevice.c
		- (mdio_read): Fix two bugs that caused all devices to fail
			the MII carrier detection support checks


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@514 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-03-28 15:29:46 +00:00
Dan Williams
2c976390c5 2005-03-26 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerDevice.c
		- (nm_device_wireless_scan): Remove duplicated scanning code


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@513 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-03-27 01:04:48 +00:00
Dan Williams
4acd2f31dc 2005-03-25 Dan Williams <dcbw@redhat.com>
* panel-applet/NMWirelessApplet.c
		- (nmwa_about_cb): Add some more contributors
		- (nmwa_update_state): show the applet when there's no connection
		- Enable the "Stop/Resume all wireless devices" option in the
			context menu
		- New "no connection" icon

	* src/NetworkManager.c
		- (nm_poll_and_update_wireless_link_state): don't do anything if
			wireless is disabled or we're asleep

	* src/NetworkManagerDHCP.c
		- Remove trailing "\n" on debug messages

	* src/NetworkManagerDbus.c
		- (nm_dbus_network_status_from_data): new state "asleep"

	* src/NetworkManagerDevice.c
		- Merge most of Peter Jones' "completion" patch that greatly reduces
			latency and wait times for most operations
		- (nm_device_wireless_scan): Don't scan when asleep

	* src/NetworkManagerPolicy.c
		- (nm_policy_get_best_device): return no device when asleep
		- (nm_policy_allowed_ap_list_update): From Bill Moss: merge properties
			for all wireless devices on update, not just active device

	* src/NetworkManagerUtils.c
		- Merge Peter Jones' "completion" patch

	* src/nm-dbus-nm.c
		- (nm_dbus_nm_set_wireless_enabled): bring down wireless devices when
			we're told to disable them
		- (nm_dbus_nm_sleep, nm_dbus_nm_wake): new functions for sleep/wake

	* utils/nm-utils.h
		- New variants of the warn/info/error/debug print functions that can take
			variables rather than static strings


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@510 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-03-26 03:42:05 +00:00
Dan Williams
809915938f 2005-03-17 Dan Williams <dcbw@redhat.com>
Patch from Tom Parker:
	* src/nm-netlink-monitor.c
		- Include unistd.h
	* info-daemon/NetworkManagerInfoDbus.c
		- (nmi_dbus_update_network_auth_method): free GConf values

	Patch from Nathaniel McCallum <npmccallum@gentoo.org>:
	* src/NetworkManagerDevice.c
		- (nm_device_set_wireless_config): wait for successful
			association longer for some cards (Atheros a/b/g)


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@502 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-03-17 21:43:21 +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
Ray Strode
0790d2fc3e 2005-03-11 Ray Strode <rstrode@redhat.com>
Third (unfinished, partially working) cut at porting to
	dbus 0.30 api and new hal.

	* info-daemon/NetworkManagerInfoDbus.c:
		don't free null arrays.

	* panel-applet/NMWirelessAppletDbus.c:
	* src/nm-dbus-device.c:
	* src/nm-dbus-net.c:
	* src/NetworkManagerDbus.c: more
 	STRING -> OBJECT_PATH fun
	* src/NetworkManagerDevice.c:
	* src/NetworkManagerDevice.h:
	(rename nm_device_get_link_active): rename to
	nm_device_has_active_link
	(nm_device_wireless_link_active): rename to
	nm_device_probe_wireless_link_state
	(nm_device_wired_link_active): rename to
	nm_device_probe_wired_link_state.  Rewrite to
	use carrier file since hal doesn't maintain
	link state anymore.
	(nm_device_update_link_active): rename to
	nm_device_update_link_state
	* src/NetworkManagerPolicy.c
	  (nm_policy_activation_finish): check for NULL
	  MAC address.

	* src/Makefile.am:
	* src/NetworkManagerMain.h:
	* src/NetworkManager.c:
	* src/nm-netlink-monitor.c:
	* src/nm-netlink-monitor.h: New class to support
	monitoring wired ethernet link status, since HAL
	doesn't export that information anymore.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@495 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-03-11 20:12:57 +00:00
Ray Strode
a5d937a62e 2005-03-07 Ray Strode <rstrode@redhat.com>
* info-daemon/NetworkManagerInfoDbus.c:
	* libnm_glib/libnm_glib.c:
	* panel-applet/NMWirelessAppletDbus.c:
	* src/NetworkManager.c:
	* src/NetworkManagerDbus.c:
	* src/NetworkManagerDevice.c:
	* src/NetworkManagerUtils.c:
	* src/nm-dbus-device.c:
	* src/nm-dbus-dhcp.c:
	* src/nm-dbus-net.c:
	* src/nm-dbus-nm.c:
	* test/nminfotest.c:
	First (unfinished, unworking) cut at porting to dbus 0.30 api.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@493 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-03-08 03:44:27 +00:00
Dan Williams
bbbd00d4c5 2005-02-27 Dan Williams <dcbw@redhat.com>
* panel-applet/NMWirelessApplet.[ch]
	  panel-applet/NMWirelessAppletDbus.[ch]
		- Move to incremental network updates.  Instead of blowing away our list
			of devices every time we get a signal from NetworkManager, we now
			incrementally add/remove networks when NetworkManager notifies us that
			a new network has appeared or disappered.  Strength updates now happen
			on-the-fly for each access point as well.  There are now two copies of
			data from NetworkManager: one for the dbus side, and one for the gui side.
			When the dbus side data is modified, it is copied over to the gui side
			so we don't have to hold the data_mutex for long periods of time (and
			therefore block animation of the applet's icon).
		- Clean up some memleaks too

	* panel-applet/NMWirelessAppletOtherNetworkDialog.c
		- Minor code beautification

	* src/NetworkManagerAPList.c
		- (nm_ap_list_merge_scanned_ap): return whether or not the access point is
			completely new and whether or not an existing one's strength was updated.
			Try to fix multiple access points and signal strength by using the highest
			signal strength in each scan for any given ESSID.

	* src/NetworkManagerDbus.[ch]
		- (nm_dbus_signal_wireless_network_change): consolidate signals that deal with
			wireless networks; now we have only WirelessNetworkUpdate which includes
			a UINT32 for Appeared, Disappeared, or StrengthChanged (see NetworkManager.h).
		- Kill usage of DbusMessageIter

	* src/NetworkManagerDevice.c
		- (nm_device_wireless_process_scan_results): Use the same timestamp for all APs
			in the same scan result list.  Copy ESSIDs-by-address earlier on, for each
			AP rather than all-at-once.  Also don't ever remove the AP a card is
			currently associated with from the network list.
		- Update for new signals during scan, send out Appeared, Disappeared, or
			StrengthChanged when necessary.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@477 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-02-27 06:11:16 +00:00
Dan Williams
d7bd32d03c 2005-02-21 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerDHCP.[ch]
		- (nm_device_dhcp_remove_timeouts): new function

	* src/NetworkManagerDevice.c
		- Use nm_device_dhcp_remove_timeouts() everywhere that we need to
			remove the DHCP timeouts.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@466 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-02-22 00:30:46 +00:00
Dan Williams
6411cc5ade 2005-02-18 Dan Williams <dcbw@redhat.com>
* panel-applet/essid.glade
	  panel-applet/NMWirelessAppletOtherNetworksDialog.c
		- Correct spelling of "adaptor"->"adapter"

2005-02-18  William Jon McCann  <mccann@jhu.edu>

	* panel-applet/NMWirelessApplet.c: Use GTK_CHECK_VERSION() macro.
	(nmwa_about_cb): Use standard copyright string.  Update comment
	text to reflect that it is a notification area applet.  Remove
	leading newline in authors list.
	(nmwa_menu_show_cb, nmwa_setup_widgets): Populate menu on show
	instead of on parent menu item activation.  Fixes #167550.

2005-02-18  William Jon McCann  <mccann@jhu.edu>

	* panel-applet/essid.glade: Capitalize items as per HIG.
	  Fixes #167632


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@458 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-02-18 18:15:54 +00:00
Dan Williams
1cc2f8c3b5 2005-02-11 Dan Williams <dcbw@redhat.com>
* dhcpcd/client.c
		- (dhcp_init): only print out client ID and class ID if they are specified

	* src/NetworkManagerDbus.[ch]
	  src/nm-dbus-nm.[ch]
	  src/nm-dbus-device.[ch]
	  src/nm-dbus-net.[ch]
		- Move NM, Device, and Net functions to separate files and use the
			dbus method list stuff in NetworkManagerDbusUtils.c to do
			method dispatching

	* src/NetworkManagerDbusUtils.c
		- Add new validate_method called before each dispatch (if present)
			that can validate the method call

	* src/NetworkManagerWireless.c
		- (nm_wireless_qual_to_percent): Fix misplaced "!" that caused signal
			levels never to be evaluated

	Patch from j@bootlab.org
	* src/NetworkManagerDevice.c
		- Add typedef for "u64"

	* src/backends/NetworkManagerDebian.c
		- Copy in Dave Woodhouse's fixes for IPv6


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@438 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-02-11 21:44:35 +00:00
Dan Williams
5049b74cfa 2005-02-11 Dan Williams <dcbw@redhat.com>
Patch from Dave Woodhouse for IPv6:
	* src/NetworkManagerUtils.c
		- (nm_ethernet_address_is_valid): Check for prism54 dummy MAC address
			and multicast addresses

	* src/NetworkManagerDevice.c
		- (nm_device_set_up_down): make sure our cached MAC address is up-to-date
			after bringing up a card.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@435 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-02-11 14:54:40 +00:00
Dan Williams
a888de7ea1 2005-02-10 Dan Williams <dcbw@redhat.com>
Patch from Dave Woodhouse:
	* src/NetworkManagerSystem.h
	  src/backends/NetworkManagerDebian.c
	  src/backends/NetworkManagerGentoo.c
	  src/backends/NetworkManagerSlackware.c
		- New nm_system_device_add_ip6_link_address() function to add link-local
			address on an interface.  Stubbed in Debian, Gentoo, and Slackware.

	* src/backends/NetworkManagerRedHat.c
		- (nm_system_device_add_ip6_link_address): implement
		- (nm_system_device_flush_addresses): revert to previous behavior of
			flushing all addresses


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@432 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-02-10 21:16:03 +00:00
Dan Williams
383f4aff56 2005-02-10 Dan Williams <dcbw@redhat.com>
Patch from Tom Parker:
	* src/NetworkManagerDevice.c
		- Remove the "#include <pci/types.h>" since both the ethtool.h and
			mii.h headers are broken, and instead use our own typedefs


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@430 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-02-10 20:59:10 +00:00
Dan Williams
91ae7543e6 Remove unecessary debug syslog
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@424 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-02-10 05:14:09 +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
901e3d01d8 2005-02-07 Dan Williams <dcbw@redhat.com>
* panel-applet/NMWirelessApplet.[ch]
		- Add a context menu that contains:
			Pause/Resume Wireless Scanning
			Stop/Start All Wireless Devices
			About...
		- Grab active device strength off active device,
			not its network

	* panel-applet/NMWirelessAppletDbus.[ch]
		- Add DBUS accessors for "getSupportsCarrierDetect", "setScanningEnabled",
			"getScanningEnabled", "setWirelessEnabled", and "getWirelessEnabled"
		- Update active device strength every 2 seconds, not every 1 second

	* panel-applet/menu-info.c
		- Only disable wired devices in the menu when they support carrier detection,
			and don't currently have a link.  Non-carrier-detect devices will always
			remain choosable

	* src/Makefile.am
	  src/NetworkManagerDbusUtils.[ch]
		- Add new new dbus utils sources

	* src/NetworkManager.c
		- Fixes for new link detection, we no longer need to call nm_device_update_link_active()
			with the boolean parameter
		- Set scanning_enabled & wireless_enabled to TRUE

	* src/NetworkManagerDbus.c
		- Use new dbus util method dispatcher functions for org.freedesktop.NetworkManager methods
		- Implement scanning & wireless enable/disable calls
		- Remove the dbus vtable unregister handlers, weren't doing anything with them anyway

	* src/NetworkManagerDevice.c
		- New link detection stuff again...
			o  Create device's mainloop earlier (but don't run it earlier)
			o  Hook up new carrier-detect support stuff
			o  Add in the ethtool & mii support detection code
		- Don't scan if scanning is disabled

	* src/NetworkManagerPolicy.c
		- Never automatically choose a device that doesn't support carrier detection
		- Don't automatically choose a wireless device if wireless is disabled


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@416 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-02-07 23:04:05 +00:00
Dan Williams
9a46c8dbed 2005-02-02 Dan Williams <dcbw@redhat.com>
* Clean up unused variables and the like


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@408 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-02-02 21:57:29 +00:00
Dan Williams
a03d8042c3 2005-02-02 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerAPList.c
		- (nm_ap_list_merge_scanned_ap): merge strength too

	* src/NetworkManagerUtils.c
		- (nm_lock_mutex, nm_register_mutex_desc): new calls to facilitate debugging
			of locking issues by printing out prettier information than g_mutex_lock
		- Print out names of mutexes registered with nm_register_mutex_desc()
		- (nm_try_lock_mutex): don't do the waiting thing when trying to lock, causes
			us to seemingly block here for too long

	* src/NetworkManager.c
	  src/NetworkManagerAPList.c
	  src/NetworkManagerDevice.c
		- Convert to using nm_lock_mutex/nm_unlock_mutex rather than the glib variants
			so we get better debug information printed

	* src/NetworkManagerDbus.c
		- (nm_dbus_devices_handle_request): reduce usage of nm_device_need_ap_switch()
			since it sometimes has locking side effects
		- (nm_device_get_association_pause_value): Reduce 802.11a card pause value to 8s
			from 10s
		- (nm_device_need_ap_switch): If we can't acquire the scan lock, return saying
			we don't need a switch.  This gets called often enough that we can't block
			until the scan mutex is acquired, because we'll block on device activation
			and a few other things, which hangs main thread for too long.

	* src/NetworkManagerPolicy.c
		- (nm_policy_auto_get_best_device): reduce the possiblity that
			nm_device_need_ap_switch() will be called


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@407 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-02-02 21:49:14 +00:00
Dan Williams
4f28a1ce27 2005-01-31 Dan Williams <dcbw@redhat.com>
* info-daemon/NetworkManagerInfoDbus.c
		- (nmi_dbus_nmi_message_handler): make sure 'dialog' exists before using it

	* src/NetworkManagerDevice.c
		- (nm_device_new): Don't store the entire range struct, use only what we need
			(which is currently avg_quality, max_quality, and frequencies).  Also
			zero device structure when we've free'd it to maybe expose errors down
			the line.
		- (nm_device_update_signal_strength): grab the scan mutex before getting
			quality data from the card since quality will be useless during a scan.
			Call updated wireless qual-to-percent function with values stored in
			nm_device_new() earlier.
		- Remove some unused functions (nm_device_get_max_quality(), nm_device_get_noise(),
			nm_device_get_bad_crypt_packets())
		- (nm_device_activate_wireless_adhoc): use new frequency values we go in
			nm_device_new()
		- (get_initial_auth_method): always use the Auth method that's in the allowed
			list if available.  Problem was this: when the WEP key is wrong, NM will
			try OS then SK modes, and then get stuck in SK mode after that.  This
			should reset it.
		- (nm_device_wireless_process_scan_results): work with new qual-to-percent
			function

	* src/NetworkManagerWireless.c
		- (nm_wireless_qual_to_percent): try to make this function actually work and
			mimic iwlib behavior.  Use card's idea of quality divided by max_qual
			if that's all present, otherwise fall back to signal-to-noise ratios.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@402 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-01-31 19:53:38 +00:00
Dan Williams
2827e5129c 2005-01-29 Dan Williams <dcbw@redhat.com>
* initscript/RedHat/NetworkManager
		- Don't spit out sysctl stuff to console

	* libnm_glib/libnm_glib.c
		- (libnm_glib_init): call dbus_g_thread_init()

	* panel-applet/NMWirelessAppletDbus.c
		- (nmwa_dbus_worker): call dbus_g_thread_init()

	* src/NetworkManager.c
		- (main): call dbus_g_thread_init()

	* src/NetworkManagerAPList.c
		- (nm_ap_list_print_members): use LOG_ERR instead of LOG_DEBUG
			so we can actually see what's there in a normal syslog

	* src/NetworkManagerDevice.c
		- (nm_device_activate_wireless): print out the "waiting for access point"
			message only once, then say what access point we actually got after
			the wait.
		- (nm_device_need_ap_switch): If a scan is in progress when we're in this
			function, wait until the scan is done.  Scans may change the ESSID of
			the card, making this function think we need to switch access points
		- (nm_device_wireless_process_scan_results): for artificial access points
			don't check against the card's ESSID, but the best_ap's ESSID.  This
			prevents collisions with the scanning code, which may change the card's
			ESSID and cause the access point to get dropped from the device's AP
			list.  Also increase the keep-around time to 2m from 60s since the max
			scan interval could be 60s in some cases.

	* src/NetworkManagerPolicy.c
		- (nm_policy_activation_finish): Don't add invalid MAC addresses to GConf
		- (nm_policy_allowed_ap_list_update): When we update, make sure we copy over
			the new properties and ESSIDs to the device's AP list.  Fixes some races
			between NM and NMI.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@401 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-01-29 23:34:31 +00:00
Dan Williams
37fa2d08a4 2005-01-27 Dan Williams <dcbw@redhat.com>
* info-daemon/NetworkManagerInfoDbus.c
		- (nmi_dbus_add_network_address): if the network doesn't yet exist in
			GConf, make a minimal entry for it (essid & timestamp)

	* src/NetworkManagerAPList.c
		- (nm_ap_list_populate_from_nmi): Don't try to grab network data if
			NetworkManagerInfo isn't running

	* src/NetworkManagerDbus.[ch]
		- (nm_dbus_nmi_is_running): new function

	* src/NetworkManagerDevice.c
		- (nm_device_wireless_force_use): Don't set the created AP's MAC
			address to garbage.

	* src/NetworkManagerPolicy.c
		- (nm_policy_activation_finish): On successful activation, make sure
			the "best" AP has a MAC address, and don't tell NMI to add the
			current AP's MAC address to GConf if the AP is an Ad-hoc AP.
		- (nm_policy_allowed_ap_list_update): Update a wireless card's "best"
			access point after refreshing our allowed list if it doesn't already
			have a "best" access point.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@400 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-01-27 20:14:12 +00:00
Dan Williams
2ba55c0e32 2005-01-24 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerDevice.c
	  src/NetworkManagerDevicePrivate.h
		- Block nm_device_new() until our device's worker thread has had a
			chance to start up.  Fixes a race between main thread and worker
			thread starting that caused activation requests to get lost.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@396 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-01-24 21:53:39 +00:00
Dan Williams
594dbaecbf 2005-01-21 Dan Williams <dcbw@redhat.com>
* panel-applet/NMWirelessApplet.[ch]
	  panel-applet/NMWirelessAppletDbus.c
	  panel-applet/menu-info.c
	  src/NetworkManagerDevice.c
		- Disable wired devices in the menu when they have no link.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@389 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-01-21 19:54:18 +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
2b5062ba21 2005-01-13 Dan Williams <dcbw@redhat.com>
* named/nm-named-manager.c
		- Use syslog(LOG_WARNING) rather than g_warning() (gnome.org #163961)

	* src/NetworkManagerDevice.c
		- Rework wireless link detection code to be more reliable


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@374 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-01-13 19:04:26 +00:00
Dan Williams
e0a4c74fcc 2005-01-10 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerDevice.c
		- Minor fixups & corrections to "auto" frequency mode, make it
			less chatty with syslog


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@367 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-01-10 15:22:21 +00:00
Dan Williams
d2567b098e 2005-01-10 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerDevice.c
		- Implement "auto" frequency/channel support, since cards like Atheros
			can't use other frequencies at all when you've told it to use a
			specific one, even for scanning.
		- Grab the scan mutex around places where we can't tolerate wireless
			settings changing underneath us, like nm_device_wireless_network_exists()
			and nm_device_activate_wireless()

	* src/NetworkManagerWireless.c
		- Back scan interval off to 20s instead of 14s


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@366 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-01-10 06:41:02 +00:00
Dan Williams
62ca4dc643 2005-01-09 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerDevice.c
		- Don't set mode/freq/bitrate if that mode/freq/bitrate is
			already set.  Stops some drivers like Atmel from continually
			reloading the firmware, which they do upon every configuration
			change.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@365 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-01-10 02:14: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
Dan Williams
3c6d1afa66 Patch from j@bootlab.org
* src/NetworkManagerDevice.c
                - Take down then bring up wired devices after connection so
                they send out ipv6 router advertisements


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@356 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-12-22 18:45:11 +00:00