Commit graph

85 commits

Author SHA1 Message Date
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
Dan Williams
5367649e73 2004-12-22 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerDevice.c
                - Silently fail when setting bitrate doesn't work


        Patch from j@bootlab.org:
        * src/backends/NetworkManagerDebian
                - Update backend to match functionality in RedHat backend


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@355 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-12-22 18:42:37 +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
eb755d2d3a Fix mode setting for non-encrypted ad-hoc networks
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@343 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-12-17 17:37:12 +00:00
Dan Williams
e96c5c2967 2004-12-17 Dan Williams <dcbw@redhat.com>
* Ad Ad-Hoc networking mode support.  In Ad-Hoc mode, we only try to get
		link-local addresses instead of doing DHCP.

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

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

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

	* Clean up some of those warnings in nm_ap_list_* functions

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


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

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

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


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@341 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-12-16 04:24:20 +00:00
Dan Williams
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
86ac9e930d 2004-11-22 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerDevicePrivate.h
		- Split out the NMDevice struct to a different file so that stuff like
			NetworkManagerDHCP.c and NetworkManagerSystem.c can use it

	* dhcpcd/client.c
		- fprintf->syslog
		- (dhcpSendAndRecv): do non-blocking sends and receives, and check to see if we
			need to cancel the dhcp request during the send and recv

	* dhcpcd/client.h
		- Move the DHCP option enum to dhcpcd.h

	* src/NetworkManagerDHCP.c
		- Split out the actual IP/netmask/etc setting code
		- New Renew/Rebind functions
		- New timer setup function for renew/rebind operations

	* src/NetworkManagerDevice.c
		- For device activation, if we are using DHCP then keep the activation thread
			alive until device deactivation.  We need to renew/rebind the DHCP address
			after the T1 (renew) and T2 (rebind) times have expired.
		- Increase some timeouts after bringing wireless cards up/down


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

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

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

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

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

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

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

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


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@319 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-11-17 17:51:36 +00:00
Dan Williams
956ad6fbb8 2004-11-16 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerDevice.[ch]
		- (nm_device_clear_activation_fail): new function

	* src/NetworkManagerPolicy.c
		- (nm_state_modification_monitor): clear the activation_failed flag on devices
			when we've dealt with the failure so the user doesn't get failure-dialog-spammed


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@317 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-11-16 16:34:14 +00:00
Dan Williams
687912bc96 2004-11-16 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerDevice.c
		- (nm_device_activate_wireless): Unref best_ap upon success so we don't
			leak the structure, better updating of now_scanning status
		- (nm_device_wireless_network_exists): Rewrite for better/faster checking


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@316 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-11-16 15:06:46 +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
b36e976315 2004-11-15 Dan Williams <dcbw@redhat.com>
Patch from Tom Parker <palfrey@tevp.net>:

        * src/NetworkManagerDevice.c
                - Less output to console when no access
                        points are found during a scan


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@313 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-11-15 14:54:33 +00:00
Dan Williams
237172d077 2004-11-10 Dan Williams <dcbw@redhat.com>
Patches from j bootlab org
	* src/NetworkManagerDevice.c
		- (nm_device_activate_wireless): wait 5 seconds before attempting to detect
			whether the card has a link or not, some cards are slow
		- (nm_device_activation_configure_ip): make ipv6 work a bit better

	* info-daemon/NetworkManagerInfoPassphraseDialog.c
		- Disable the "Login" button on the passphrase dialog until the user
			enters a valid passphrase or key

	Patches from Tom Parker <palfrey tevp net>
	* src/backends/NetworkManagerDebian.c
		- Add static IP support to the debian backend

	* src/backends/interface_parser.[ch]
		- Parse debian interface config files


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@303 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-11-11 02:24:04 +00:00
Dan Williams
a2ad36b9ad 2004-11-08 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerDevice.c
		- Some random fprintf->syslog conversions
		- (nm_device_wireless_network_exists): double-check for network
		- (nm_device_find_and_use_essid): Copy over encryption key no matter what

	* src/NetworkManagerWireless.[ch]
		- (nm_wireless_[128|64]bit_ascii_to_hex): make "ascii" argument unsigned again
			so that the binary->ascii conversion works (if unsigned, the bitshift
			will fill with zeros, which is what's required).  Also mask bitshift
			result with 0xF for futher assurance.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@300 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-11-08 19:00:04 +00:00
Dan Williams
8089b48442 2004-11-05 Dan Williams <dcbw@redhat.com>
* info-daemon/NetworkManagerInfoDbus.c
	  src/NetworkManagerDbus.[ch]
	  src/NetworkManagerDevice.c
		- Keep track of the # of attempts to get the WEP key
			from the user and pass that along to the info daemon


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@297 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-11-06 03:23:36 +00:00
Dan Williams
7c24f2af19 2004-11-03 Dan Williams <dcbw@redhat.com>
* panel-applet/NMWirelessAppletOtherNetworkDialog.c,
		- Disable OK button until valid data is entered
			for encryption stuff too

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

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

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

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


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@291 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-11-03 17:05:16 +00:00
Dan Williams
8cba7c5827 2004-11-03 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerDevice.[ch]
		- (nm_device_set_enc_key): Add parameter to set Authentication
			Mode (Open System, Shared Key, or None).  We're still using
			Shared Key for now though.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@289 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-11-03 07:47:32 +00:00
Dan Williams
e2ab9f50e2 2004-10-29 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerDevice.c
		- (nm_device_wireless_network_exists): Actually use the encryption
			key we got from the applet when attempting to find a wireless network
		- Don't bring devices down so much since on some cards it triggers
			firmware hotplugs each time

	* src/NetworkManagerDbus.c
		- (nm_dbus_nm_set_active_device): free the passphrase we may have gotten
			from the caller


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@279 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-10-29 19:52:35 +00:00
Dan Williams
d41af0af37 2004-10-29 Dan Williams <dcbw@redhat.com>
* panel-applet/NMWirelessAppletOtherNetworksDialog.[ch]
		- New files, implement the "Other wireless network" dialog

	* panel-applet/NMWirelessApplet.c
		- Move "other wireless network" dialog to separate file

	* panel-applet/NMWirelessAppletDbus.[ch]
		- Take key and key_type paramaters for the set_device function

	* panel-applet/essid.glade
		- Add UI bits for encryption settings

	* src/NetworkManagerDbus.c
		- Retrieve key and key_type params for "setActiveDevice" method call
			and pass them on
		- unref AP returned from nm_device_get_best_ap() when needed

	* src/NetworkManagerDevice.c
		- (nm_device_get_best_ap): ref the ap before returning it
		- unref AP returned from nm_device_get_best_ap() when needed
		- (nm_device_activate_wireless): add "ap" parameter so we don't
			need to call nm_device_get_best_ap() here, it was pretty much
			redundant anyway
		- (AP_NEED_KEY): break second link check condition out into separate
			function, and fix segfault when ap->enc_key_source was NULL
		- (nm_device_find_and_use_essid): take key and key_type parameters and
			pass them along to nm_device_wireless_network_exists().  If the
			network does exist, set the passed-in key+key_type on the AP

	* src/NetworkManagerPolicy.c
		- unref AP returned from nm_device_get_best_ap() when needed


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@277 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-10-29 16:37:43 +00:00
Dan Williams
8200b37f36 2004-10-28 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerUtils.c
		- (nm_spawn_process): Fix a potential dereference of NULL

	Patches from Peter Jones:

	* src/NetworkManagerDevice.c
		- (nm_device_test_wireless_extensions): Better check for
			wireless devices

	* src/NetworkManagerUtils.c
		- (nm_spawn_process): Pass in valid stdout and stderr so
			executed programs don't randomly SIGPIPE and fail
		- (nm_get_wired_driver_support_level): quash hal warning
			when checking for USB ethernet device


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@276 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-10-28 19:49:55 +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
2bfd017330 2004-10-23 Dan Williams <dcbw@redhat.com>
* info-daemon/NetworkManagerInfoDbus.c
		- Trap the "DeviceActivationFailed" signal

	* docs/NetworkManager DBUS API.txt
		- Add "DeviceActivationFailed" signal

	* panel-applet/NMWirelessAppletDbus.c
		- Quash the "NetworkManager service not available" message

	* src/NetworkManagerDbus.[ch]
		- Add the "DeviceActivationFailed" signal

	* src/NetworkManagerDevice.c
		- Add support for activation_failed flag
		- Fix deadlock where activation thread didn't clean itself up, making
			main thread still believe it was alive forever (didn't reset activation
			flags like activating, just_activated, etc when IP configuration
			failed)

	* src/NetworkManagerPolicy.c
		- Implement logic for DeviceActivationFailed signal, and when activation fails
			for wireless networks, try to fall back to some other access point


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@268 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-10-23 06:43:01 +00:00
Dan Williams
92202c6bca 2004-10-23 Dan Williams <dcbw@redhat.com>
* panel-applet/NMWirelessApplet.[ch]
		- Place the GtkMenuBar inside a GtkEventBox, and add the Event Box
			to the applet object, so we can get tooltips
		- Add tooltips (RH #136866)

	* src/NetworkManagerDevice.c
		- When trying to find a wireless network, try to connect with encryption
			turned on first, so that we can more accurately detect whether or not
			we need to use encryption for the actual association later on


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@267 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-10-23 05:19:28 +00:00
Dan Williams
3fbfa66df2 2004-10-21 Dan Williams <dcbw@redhat.com>
* Add some support for telling NetworkManagerInfo to tell the user
		that they are using a device that's not fully supported

	* Fix some assertions in debug messages due to null access point args


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@264 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-10-21 19:33:41 +00:00
Dan Williams
f145f77bf9 2004-10-21 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerDevice.c
                - Don't try to activate/bring up/down unsupported
                        devices

        * src/NetworkManagerUtils.c
                - Fix case of PCI ID checks for driver support levels


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@263 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-10-21 19:00:13 +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
a0a36acfd0 2004-10-15 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerAPList.c
		- (nm_ap_list_update_network): Disown AP after the list takes ownership

	* src/NetworkManagerDbus.c
		- (nm_dbus_nm_set_active_device): Simplify the device setting logic

	* src/NetworkManagerDevice.c
		- Disown APs after the device's AP list takes ownership


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

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


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@244 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-10-15 17:04:57 +00:00
Dan Williams
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
f65b6c9bb7 Patch from Robert Paskowitz:
* NEWS
	  src/NetworkManagerDevice.[ch]
	  src/backends/NetworkManagerDebian.c
	  src/backends/NetworkManagerGentoo.c
	  src/backends/NetworkManagerRedHat.c
	  src/backends/NetworkManagerSlackware.c
		- Add support for grabbing and using a broadcast address
			from system config files
		- Some Gentoo backend fixes for grabbing network config
		- Fix LOG_WARN->LOG_WARNING


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@239 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-10-15 00:06:14 +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
154a042555 2004-10-12 Dan Williams <dcbw@redhat.com>
* panel-applet/NMWirelessAppletDbus.c
		- New functions:
			wireless_network_new
			wireless_network_copy
			network_device_new
			network_device_copy

	* src/NetworkManagerDevice.[ch]
		- New functions:
			nm_device_set_mode_managed
			nm_device_set_mode_adhoc
		- Use these functions where appropriate
		- When creating a new wireless device, force the card
			to managed/Infrastructure mode as soon as possible


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@216 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-10-12 16:44:58 +00:00
Dan Williams
8a87f57d79 2004-10-12 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerDevice.c
		- Force wireless cards into Infrastructure mode before we use them


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@213 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-10-12 11:39:08 +00:00
Dan Williams
b6df634a51 2004-10-12 Dan Williams <dcbw@redhat.com>
* TODO
		- Remove bit about static IP address support

	* src/NetworkManagerUtils.c
		- (nm_spawn_process): Add some error reporting

	* src/NetworkManagerDevice.c
		- (nm_device_activation_configure_ip): hook up to the static config
			routines in the backends

	* src/backends/NetworkManagerRedHat.c
		- (nm_system_device_update_config_info): use shvar.c routines to
			parse the config file iformation, not our own
		- (nm_system_device_setup_static_ip4_config): new function, based
			heavily on 'ifup' script and 'ipcalc' tool code.  Set up a device
			with a static IP address and gateway

	* src/backends/shvar.[ch]
		- Parser (filched from initscripts package) for ifcfg-* files

	* src/backends/NetworkManagerSystem.h
	  src/backends/NetworkManagerGentoo.c
	  src/backends/NetworkManagerDebian.c
	  src/backends/NetworkManagerSlackware.c
		- Stub nm_system_device_update_config_info() and nm_system_device_setup_static_ip4_config()


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

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

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


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@210 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2004-10-11 21:32:19 +00:00
Dan Williams
901f7c8216 2004-10-08 Dan Williams <dcbw@redaht.com>
* src/NetworkManagerDevice.c
		- Be a bit more robust about link checking, ie make sure that
			the WEP key we were given actually has some data in it


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