Commit Graph

190 Commits

Author SHA1 Message Date
Dan Williams
567b5e3d31 2005-05-03 Dan Williams <dcbw@redhat.com>
* Kill dhcpcd.  We now use "dhcdbd", a dbus daemon that controls dhclient.
	  This means that NetworkManager shouldn't have DHCP issues anymore.  It also
	  means you need dhcdbd, which you can get here (get the latest one):

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

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

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

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

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

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


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@597 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-05-03 20:41:36 +00:00
Dan Williams
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
d5c549dc55 2005-03-24 Dan Williams <dcbw@redhat.com>
* test/nmtest.c
		- Escape some forgotten object paths before we shove them through dbus


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@508 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-03-24 18:41:25 +00:00
Dan Williams
ce7587a331 2005-03-24 Dan Williams <dcbw@redhat.com>
* dhcpcd/dhcpcd.[ch]
	  src/NetworkManagerDHCP.c
		- Switch names from "*_record_*" -> "*_element_*" to clarify things a bit
			(ie, dhcp_option_record_len -> dhcp_option_element_len)

	* src/NetworkManagerDbus.c
		- spacing cleanups

	* src/nm-dbus-dhcp.c
		- Make the API suck less.  There is now only 1 type of each function,
			ie only "getInteger" and no longer also "getIntegerv".  All types
			are returned encapsulated in a DBUS_TYPE_ARRAY, even for options
			that will never have more than 1 element.  This should simplify
			things greatly.

	* test/nm-dhcp-opt-test.c
		- Make the tool not segfault
		- adapt to new DHCP Options API


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@506 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-03-24 18:25:36 +00:00
Ray Strode
278e500f99 2005-03-14 Ray Strode <rstrode@redhat.com>
Fourth (probably working) cut at porting to
	dbus 0.30 api and new hal. This cut adds
	some new logging macros to make debugging
	easier.

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

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

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

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

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

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

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

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

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

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

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

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


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@497 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-03-15 05:30:15 +00:00
Ray Strode
587a50e6e8 2005-03-09 Ray Strode <rstrode@redhat.com>
Second (unfinished, unworking) cut at porting to
	dbus 0.30 api.

	* dispatcher-daemon/NetworkManagerDispatcher.c
	* info-daemon/NetworkManagerInfoDbus.c:
	* panel-applet/NMWirelessAppletDbus.c:
	* src/NetworkManagerDbusUtils.c:
	* src/NetworkManagerDbusUtils.h:
	* src/nm-dbus-device.c:
	* src/nm-dbus-nm.c:
	* test/nmtest.c: support dbus "object path" type

	* configure.in:
	* Makefile.am:
	* info-daemon/Makefile.am:
	* libnm_glib/Makefile.am:
	* panel-applet/Makefile.am:
	* dispatcher-daemon/Makefile.am
	* src/Makefile.am:
	* test/Makefile.am:
	* utils/Makefile.am:
	* utils/nm-utils.c:
	* utils/nm-utils.h: new utils static lib


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@494 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-03-09 16:39:15 +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
12bc1bb923 2005-02-25 Dan Williams <dcbw@redhat.com>
* info-daemon/NetworkManagerInfoDbus.c
		- (nmi_dbus_get_network_properties): whack usage of DbusMessageIter

	* test/nminfotest.c
		- Whack usage of DbusMessageIter
		- Clean up DbusError and DbusMessage handling and freeing
		- Remove unused unregister handler

	* test/nmtest.c
		- Whack usage of DbusMessageIter

	* test/nmtestdevices.c
		- Whack usage of DbusMessageIter


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@471 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-02-25 20:48:58 +00:00
Dan Williams
0899278ed9 2005-02-18 Dan Williams <dcbw@redhat.com>
* libnm_glib/libnm_glib.[ch]
	  test/libnm_glib_test.c
		- Clean up libnm_glib API a bit, callback is now passed a libnm_glib_ctx
			and its data, and doesn't have to free the callback data anymore


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@461 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-02-18 20:25:24 +00:00
Dan Williams
fc408b3998 2005-02-14 Dan Williams <dcbw@redhat.com>
Patch from Peter Jones:
	* dhcpcd/client.c
		- Ensure we return RET_DHCP_CEASED everywhere we should
	* dhcpcd/udpipgen.c
		- Use faster TOS for IP packets
		- Don't set ip_id since we're UDP

	Patch from Tomislav Vujec:
	* src/nm-dbus-dhcp.c
	  test/nm-dhcp-opt-test.c
		- Clean up warnings to enable cvs tree compilation.
	* configure.in
		- Set AM_MAINTAINER_MODE


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@451 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-02-14 17:47:59 +00:00
Dan Williams
df9976aef0 2005-02-13 Dan Williams <dcbw@redhat.com>
Patch from Dan Reed:  DHCP options D-BUS API
		Exposes the DHCP options that a device receives to clients over D-BUS.

	* configure.in
		- A few cleanups

	* dhcpcd/client.h
		- Correct names, option length, and types for DHCP options

	* dhcpcd/dhcpcd.[ch]
		- Clarify function names that access DHCP options & data

	* src/NetworkManagerDHCP.c
		- Use new DHCP data access functions

	* src/NetworkManagerDbus.c
		- Message handler for DHCP functions

	* src/nm-dbus-dhcp.[ch] (new)
		- DHCP dbus methods

	* test/nm-dhcp-opt-test.c
		- Test DHCP D-BUS API and return all present DHCP options


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@444 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-02-13 22:10:03 +00:00
Dan Williams
7848edae7c 2005-02-12 Dan Williams <dcbw@redhat.com>
* test/Makefile.am
	  test/nmclienttest.c
	  test/nmtest.c
		- Move nmclienttest.c -> nmtest.c


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@442 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-02-13 00:27:42 +00:00
Dan Williams
65f570b0a0 2005-01-24 Dan Williams <dcbw@redhat.com>
* panel-applet/gtkcellview.[ch]
          panel-applet/menu-info.c
                - Fix GTK version checks to be <= rather than <

        * test/Makefile.am
                - Include the libtool archive of libnm_glib rather than
                        trying to pull in the .so


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@397 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-01-25 01:45:55 +00:00
Dan Williams
3e1c1c6544 Add libnm_glib_test to cvsignore
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@372 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-01-12 18:46:25 +00:00
Dan Williams
075196b93c Fix up library location
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@370 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2005-01-12 18:44:57 +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
Colin Walters
0402864d0a 2004-12-01 Colin Walters <walters@redhat.com>
* configure.in: Suck in gcc warnings code from Rhythmbox,
	but use fewer default flags, and in particular add -Wno-unused,
	since the codebase has a lot of unused variables.

	* test/nmtestdevices.c (create_device):
	* test/nminfotest.c (get_network_string_property)
	(get_networks_of_type):
	* test/nmclienttest.c (main):
	* src/NetworkManagerDbus.c (nm_dbus_create_error_message):
	* initscript/NMLaunchHelper.c (get_nm_status):
	* info-daemon/NetworkManagerInfoPassphraseDialog.c (update_button_cb):
	* info-daemon/NetworkManagerInfoDbus.c (nmi_dbus_create_error_message):
	Fix declarations after statements.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@331 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-12-01 22:45:10 +00:00
Colin Walters
2e661cc3f1 2004-12-01 Colin Walters <walters@redhat.com>
* test/nmtestdevices.c, test/nmclienttest.c: Add missing
	includes.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@328 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-12-01 20:45:25 +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
Dan Williams
f34c49eded Fix up includes for distcheck
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@281 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-10-29 20:24:34 +00:00
Dan Williams
9eab1fd014 fix NM service path
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@265 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-10-21 19:44:15 +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
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
f39b3344c1 2004-10-08 Dan Williams <dcbw@redhat.com>
* info-daemon/NetworkManagerInfo.[ch]
	  info-dameon/NetworkManagerInfoDbus.[ch]
	  info-daemon/NetworkManagerInfoPassphraseDialog.[ch]
		- Preserve original label text in the passphrase dialog so that
			it actually gets updated with the new network name the next
			time around.  Previously, we were overwriting it so you'd get
			the wrong network name to enter a key for
		- Add a "Key Type" combo to the passphrase dialog, user selects
			encryption key type now, type is stored in GConf too
		- Adjust NM<->NMI DBUS protocol to pass the key type back to NM too

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

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

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

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


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@195 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-10-08 05:22:17 +00:00
Dan Williams
2f00a08a11 2004-09-30 Dan Williams <dcbw@redhat.com>
* info-daemon/NetworkManagerInfo.c
	  info-daemon/NetworkManagerInfoDbus.c
	  test/nminfotest.c
		- Escape ESSIDs in gconf


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@181 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-10-01 00:44:30 +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
ee710f0377 2004-09-13 Dan Williams <dcbw@redhat.com>
* TODO: fix typo

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

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

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

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

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

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

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

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

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


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@156 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-09-13 17:43:16 +00:00
Dan Williams
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
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
f9b8cb84d1 2004-08-11 Dan Williams <dcbw@redhat.com>
* panel-applet/NMWirelessApplet.[ch]
		- Fix up copyright and credits to include Bastien and Eskil,
			who created the gnome-applets wireless applet, from whose
			skeleton this one was created
		- Rework nmwa_update_state()/nmwa_draw() so that state and which
			pixmap to draw is computed during nmwa_update_state()
		- Applet now shows itself all the time due to panel packing issues
			which caused the applet to previously never come back after hiding.
			When a wired device is the active device, the applet shows "not connected"

	* panel-applet/NMWirelessAppletDbus.[ch]
		- Clean up error messages and show what function they are from
		- nmwa_dbus_get_active_wireless_device()->nmwa_dbus_get_active_device()
		- Add new device type getters, and a status getter

	* src/NetworkManagerDbus.c
		- (nm_dbus_devices_handle_request): Don't return an active network unless that
			network is actually in the device's ap list
		- (nm_dbus_nm_message_handler): Fix silly mistake returning status

	* src/NetworkManagerDevice.c
		- (nm_device_update_best_ap): If the best AP is NULL, clear out the ESSID of the
			card

	* test/nmclienttest.c
		- Report status of NetworkManager too


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@47 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-08-11 19:31:41 +00:00
Dan Williams
1be4ee2556 2004-08-05 Dan Williams <dcbw@redhat.com>
* test/nminfotest.c
		- Update to new NMI dbus API, check different network types

	* info-daemon/NetworkManagerInfoDbus.c
		- Update to new NM dbus API, ie network type sent in query message


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@36 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-08-05 20:15:58 +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
b0d607f91a 2004-07-27 Dan Williams <dcbw@redhat.com>
* Remove various Makefile.in files

	* TODO
		- Add some more items

	* configure.in
		- Add checks for OpenSSL/md5 headers and libs

	* src/Makefile.am
		- Use OpenSSL CFLAGS

	* src/NetworkManagerAP.[ch]
		- Remove 'stamp' functions, replace with 'invalid' functions
			to support user cancelling WEP key entry

	* src/NetworkManagerDbus.c
		- Remove 'stamp' return functions
		- Treat returned user key as a passphrase and convert to a WEP key,
			but don't actually use the WEP key yet.  We use the returned user
			key as a hexadecimal WEP key until we can figure out a UI for
			passphrase-vs-hex key

	* src/NetworkManagerWireless.[ch]
		- Add passphrase-to-128bit-key function


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@28 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-07-28 02:49:33 +00:00
Dan Williams
3a05be0ce5 2004-07-27 Dan Williams <dcbw@redhat.com>
* test/nmclienttest.c
	  test/nminfotest.c
		- Add missing <dbus/dbus.h> headers
		- Add GPL message at top


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@23 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-07-27 16:24:48 +00:00
Dan Williams
4d6a840768 2004-07-27 Dan Williams <dcbw@redhat.com>
* .cvsignore
	  src/.cvsignore
	  test/.cvsignore
	  dispatcher-daemon/.cvsignore
	  info-daemon/.cvsignore
		- Add .cvsignore files to reduce noise when diffing


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@21 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-07-27 15:58:22 +00:00
Dan Williams
846858e487 2004-07-22 Dan Williams <dcbw@redhat.com>
* configure.in
		- Add checks for GConf libs & headers & flags

	* info-daemon/Makefile.am
		- Add GConf flags & libs to compile/link stages of NetworkManagerInfo

	* info-daemon/NetworkManagerInfo.[ch]
		- Don't use gquarks for data storage, just use normal data storage
		- Add gconf bits to watch /system/networking/wireless/allowed_networks

	* info-daemon/NetworkManagerDbus.[ch]
		- Add method call for getting allowed networks
		- Add method calls for getting an allowed network's essid, priority, and key
		- Hook the method calls up to GConf
		- Split user key dialog code into separate function (nmi_dbus_get_key_for_network)
		- nmi_dbus_nmi_message_handler(): make sure to unref the reply message after sending

	* src/NetworkManagerDbus.[ch]
		- Switch for enumeration of networks to using essid instead

	* test/Makefile.am
	  test/nminfotest.c
	  	- Add test program for NetworkManagerInfo


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@19 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-07-22 05:17:36 +00:00
Dan Williams
aab500146f 2004-07-19 Dan Williams <dcbw@redhat.com>
* Makefile.am
		- Add info-daemon directory

	* configure.in
		- Check for glade libs and headers
		- Add info-daemon directory

	* src/NetworkManagerAP.c
		- nm_ap_new_from_ap(): Fix bug that resulted in an APs encryption status not getting
			copied over to the new AP.

	* src/NetworkManagerDbus.c
	  src/NetworkManagerDbus.h
		- Deal with nm_device_ap_list_get_ap()->nm_device_ap_list_get_ap_by_index() change
		- Remove nm_dbus_signal_need_key_for_network()
		- Add disabled code for asynchronous user wep key callbacks
		- Add functions for getting, setting, and cancelling user key operations
		- Remove "setKeyForNetwork" device dbus method call, its on NetworkManager object instead
		- Add "setKeyForNetwork" dbus method call on NetworkManager object

	* src/NetworkManagerDevice.c
	  src/NetworkManagerDevice.h
		- nm_device_update_link_active(): revert changes for wireless link detection, the WEP-key-is-wrong
			logic is in device activation now
		- nm_device_activate(): for wireless devices, if we can't associate with access point (perhaps
			key is wrong) trigger get-user-key pending action
		- Implement get-user-key pending action stuff, tie to dbus messages
		- Rename nm_device_ap_list_get_ap() -> nm_device_ap_list_get_ap_by_index()
		- Add nm_device_ap_list_get_ap_by_essid()
		- Instead of copying "best" access points, ref them instead so that the key we set
			sticks around

	* src/NetworkManagerPolicy.c
		- Deal with wrong WEP key, but right access point (and if so, return link_active = TRUE)
		- Don't cancel pending actions on a device if its the same device as last iteration
		- Only promote pending_device->active_device if activation was successfull

	* src/Makefile.am
		- Rename nmclienttest->nmtest

	* info-daemon/Makefile.am
	  info-daemon/NetworkManagerInfo.c
	  info-daemon/NetworkManagerInfo.h
	  info-daemon/NetworkManagerInfoDbus.c
	  info-daemon/NetworkManagerInfoDbus.h
	  info-daemon/passphrase.glade
	  info-daemon/NetworkManagerInfo.conf
	  info-daemon/keyring.png
	  	- Import sources for info-daemon, which pops up dialog for passphrase/key when
	  		NetworkManager asks for it, and also will (soon) provide "allowed" access point
	  		lists to NetworkManager by proxying user's GConf


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@16 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-07-19 06:08:52 +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