* NetworkManager.h:
* gnome/applet/applet-dbus-info.c:
* gnome/applet/applet-dbus-info.h:
* gnome/applet/applet.c:
* gnome/applet/applet.h:
* src/NetworkManager.c:
* src/NetworkManagerDbus.c:
* src/NetworkManagerDbus.h:
* src/NetworkManagerDevice.c:
* src/NetworkManagerDevice.h:
* src/NetworkManagerMain.h:
* src/NetworkManagerWireless.c:
* src/NetworkManagerWireless.h:
* src/nm-dbus-nm.c:
Make NetworkManager be smart about how frequently to scan
based on its current state. Remove the UI for choosing when
to scan. Scanning still may disabled completely by the user
via the "Wireless Enabled" menu item.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@958 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* 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
* 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
* 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
* 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
* 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
* 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
* info-daemon/NetworkManagerInfo.c:
- (main): clean up Seth's code style
* info-daemon/NetworkManagerInfoDbus.c:
- Use the more aptly-named path/service/interface constants from NetworkManager
- Don't return empty strings ("") as object paths ever, instead return errors
* panel-applet/NMWirelessApplet.c:
- Clean up Seth's code style
* src/NetworkManager.[ch]
- (nm_remove_device_from_list): remove anything having to do with pending_device
- (main, nm_print_usage): change --daemon=[yes|no] -> --no-daemon
* src/NetworkManagerAPList.[ch]
- Move Iter struct right above the iter functions to preserve opacity
- (nm_ap_list_remove_ap): implement
- (nm_ap_list_update_network): deal with errors returned from nm_dbus_get_network_priority(),
remove AP if NetworkManagerInfo doesn't know anything about it
- (nm_ap_list_diff): user NMAPList iterators
- (nm_ap_list_print_members): implement debugging function
* src/NetworkManagerDbus.[ch]
- (nm_dbus_nm_get_active_device): remove anything to do with pending_device
- (nm_dbus_get_user_key_for_network): remove DBusPendingCall stuff (unused),
and move the actual key setting stuff into NetworkManagerDevice.c
- (nm_dbus_get_network_priority): return -1 now on errors
- (nm_dbus_nmi_filter): fix strcmp() error that caused PreferredNetworkUpdate signals to
get lost, and force the active device to update its "best" ap when AP lists change
- (nm_dbus_nm_message_handler): Update conditions for returning "connecting" for a "status"
method call due to pending_device member removal
* src/NetworkManagerDevice.[ch]
- Move NMDevice structure to the top
- Add a wireless scan mutex and a best_ap mutex to the Wireless Options structure
- Remove Pending Action stuff from everywhere
- (nm_device_activation_*): We now "begin" activation and start a thread to do the
activation for us. This thread blocks until all conditions for activation have
been met (ie for wireless devices, we need a valid WEP key and a "best" ap), and
then setup up the interface and runs dhclient. We have to do this because there
is no guaruntee how long dhclient takes, and while we are blocking on it, we cannot
run our main loop and respond to dbus method calls or HAL device removals/inserts
- (nm_device_set_user_key_for_network): Move logic here from NetworkManagerDbus.c so we
can tell nm_device_activation_worker() that we've got a key
- (nm_device_*_best_ap): lock access to best_ap member of Wireless Options structure
- (nm_device_get_path_for_ap): dumb it down so the list doesn't lock against itself when
diffing (AP appear/disappear signal functions make sure the AP is actually in the device's
list)
- (nm_device_update_best_ap): move logic from nm_wireless_is_ap_better() here
* src/NetworkManagerPolicy.c
- Remove anything to do with pending_device
- Adjust device activation to deal with activation-in-worker-thread
* src/NetworkManagerUtils.c
- Clean up locking debugging a bit
* src/NetworkManagerWireless.[ch]
- (nm_wireless_is_ap_better): remove, stick logic in nm_device_update_best_ap(). This function
was badly named and is better as a device function
* panel-applet/.cvsignore: add
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@46 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* 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
* src/NetworkManager.[ch]
src/NetworkManagerDbus.[ch]
src/NetworkManagerDevice.[ch]
src/NetworkManagerPolicy.c
src/NetworkManagerWireless.[ch]
- Add many more g_return_if_fail()/g_return_val_if_fail() checks
- Pass the NMData application data structure through all calls
that need it so we can get rid of nm_get_global_data()
- Change deallocation of the allowed_ap_list GSList in preparation
for not completely clearing it every time we get an update,
but instead getting incremental updates via GConf/dbus
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@20 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* dispatcher-daemon/NetworkManagerDispatcher.c
- A bit more descriptive state message
- Don't segfault when reading directory
* src/NetworkManager.h
- Remove NMData desired_ap member, its now
per-device rather than global
* src/NetworkManager.c
- Remove references to desired_ap
- Move the allowed AP list refresh stuff into a thread
* src/NetworkManagerDevice.c
src/NetworkManagerDevice.h
- Each wireless device now has a "best ap"
- Make device activate/deactivate functions per-device
- Make wireless scanning per-device
- Add IPv4 address discover functions, stub IPv6 ones
- Move ethernet address validation functions to NetworkManagerUtils.c
- Add wireless access point accessor function
- Get/Set functions for "best ap"
* src/NetworkManagerPolicy.c
- Move activate/deactivate stuff into NetworkManagerDevice.c, per-device
- Deal with per-device "best ap" rather than data->desired_apa
- Implement allowed access point worker thread
- Add nm_policy_essid_is_allowed() function
* src/NetworkManagerUtils.c
src/NetworkManagerUtils.h
- Add nm_ethernet_address_is_valid() function
- Add IPv4/IPv6 address get functions
* src/NetworkManagerWireless.c
src/NetworkManagerWireless.h
- Move scanning stuff into NetworkManagerDevice.c, per-device
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@12 4912f4e0-d625-0410-9fb7-b9a5a253dbdc