* info-daemon/NetworkManagerInfoDbus.c
- (nmi_dbus_add_network_address): if the network doesn't yet exist in
GConf, make a minimal entry for it (essid & timestamp)
* src/NetworkManagerAPList.c
- (nm_ap_list_populate_from_nmi): Don't try to grab network data if
NetworkManagerInfo isn't running
* src/NetworkManagerDbus.[ch]
- (nm_dbus_nmi_is_running): new function
* src/NetworkManagerDevice.c
- (nm_device_wireless_force_use): Don't set the created AP's MAC
address to garbage.
* src/NetworkManagerPolicy.c
- (nm_policy_activation_finish): On successful activation, make sure
the "best" AP has a MAC address, and don't tell NMI to add the
current AP's MAC address to GConf if the AP is an Ad-hoc AP.
- (nm_policy_allowed_ap_list_update): Update a wireless card's "best"
access point after refreshing our allowed list if it doesn't already
have a "best" access point.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@400 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* configure.in
- Check DBUS version in configure, and set the C macros
DBUS_VERSION_[MAJOR,MINOR,MICRO]
* info-daemon/NetworkManagerInfoDbus.c
- Remove #if 0-d section of code that quit NMI if NM went away.
* panel-applet/NMWirelessAppletDbus.c
- Trap the "ServiceOwnerChanged" signal that's new in dbus-0.23
* src/NetworkManager.c
src/NetworkManagerMain.h
src/NetworkManagerDbus.c
- Trap the "ServiceOwnerChanged" signal that's new in dbus-0.23
- Make updating of our Allowed Wireless Network lists from NMI
an idle function in the main thread now, with a high priority.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@398 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* panel-applet/NMWirelessApplet.c
panel-applet/NMWirelessAppletDbus.c
- Start using NetworkDevice/WirelessNetwork structures in more places
- Update for unified device/network forcing in NetworkManager
* src/NetworkManager.c
- some code consolidation
* src/NetworkManagerDbus.c
- (nm_dbus_nm_set_active_device): "setActiveDevice" now takes either one
or two arguments: the first is the NM ID of the device to switch to,
and the second (optional) argument is the ESSID of a wireless network
to use as well.
- Get rid of "setNetwork" method due to above change
* src/NetworkManagerDevice.c
- (nm_device_new): perform scan and update best AP on device creation
- nm_device_activation_cancel_if_needed()->nm_device_activation_should_cancel()
- nm_device_activation_signal_cancel()->nm_device_activation_cancel(), and
spin waiting for cancellation to finish before returning
* src/NetworkManagerPolicy.c
- Changes here clarify the situations in which a device switch occurs, and
make sure to keep using a forced device and network if the user gives
us one
- Remove old unused code
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@149 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* panel-applet/NMWirelessAppletDbus.c
- Pull fresh devices and networks from NM when wireless networks
change. Provides faster feedback of a forced wireless network
* src/NetworkManagerDbus.c
- Return error when "getMaxQuality" is called on a wired device
- Make best_ap freezing actually work again, and signal cancellation
of activation if there's already a device activation when the user
freezes the best_ap
* src/NetworkManagerDevice.c
- Don't clear out the best_ap for wireless devices when the link goes
down, that's done elsewhere
- Kill any dhcp daemons when cancelling device activation since they
may be stuck waiting for a DHCP address, and since we're cancelling
activation we don't care about that anymore
* src/NetworkManagerPolicy.c
- Make sure to unref the device we ref earlier (we refed it to make sure
it stuck around during device activation and such)
- If we were going to change the best device, but its activating currently
(and therefore the change didn't occur due to the check earlier)
we mark the state changed to we come back to it later when device
activation has canceled and its no longer activating
* src/backends/NetworkManagerRedHat.c
- SIGKILL dhcp daemons rather than SIGTERM-ing them
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@143 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
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
* panel-applet/no-networkmanager.png
panel-applet/Makefile.am
panel-applet/NMWirelessApplet.c
- Add a "NetworkManager not running" icon and use it
- Use new consolidated GConf keys rather than Preferred/Trusted
* TODO: update
* info-daemon/NetworkManagerInfo.c
info-daemon/NetworkManagerInfoDbus.[ch]
info-daemon/NetworkManagerInfoPassphraseDialog.c
- There are now no longer two separate lists of wireless networks,
but one list where each network is "trusted" or not trusted
- Add a "getNetworkTrusted" dbus method
- "WirelessNetworkUpdate" signal now sent rather than
"PreferredNetworkUpdate/TrustedNetworkUpdate" signals
- Start freeing some dbus errors (not completed yet)
* info-daemon/passphrase.glade
- Remove the "don't show" hints for pager and taskbar
- Add a title since its going to be in the taskbar
* src/NetworkManager.[ch]
src/NetworkManagerAPList.[ch]
- There are now no longer two separate lists of wireless networks,
but one list where each network is "trusted" or not trusted
* src/NetworkManagerAP.[ch]
- Add get/set "trusted" accessors and data bit
* src/NetworkManagerDbus.[ch]
- Add function to get "trusted" status of a network from NetworkManagerInfo
- Trap new WirelessNetworkUpdate signal rather than old separate signals
* src/NetworkManagerDevice.[ch]
- Add per-device config data (ip4 addr, gateway, netmask) and accessors
- (nm_device_new): Get device config from backend when initializing devices
- (nm_device_activation_worker): Split out device configuration on
activation to deal with static/dynamic IP differences, and try encryption
fallbacks on a device if the encryption method for the best AP is not good
- (nm_device_update_best_ap): convert to new consolidated access point lists from
NetworkManagerInfo, and copy over latest NMI info to best_ap when setting it
* src/NetworkManagerWireless.c
- libgcrypt code wasn't converting the MD5 digest to an ascii string, fix it
* src/backends/NetworkManagerRedHat.c
src/backends/NetworkManagerSystem.h
- (nm_system_device_update_config_info): Add function to get device configuration
from system data in ifcfg-* files
* src/backends/NetworkManagerDebian.c
src/backends/NetworkManagerGentoo.c
src/backends/NetworkManagerSlackware.c
- Add stub functions for getting device configuration
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@131 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* 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
* panel-applet/NMWirelessApplet.[ch]
- Rework menu code to add devices to menu, and to show
signal strength for each access point. Code cleanups
too.
* panel-applet/NMWirelessAppletDbus.c
- Grab network devices from NetworkManager too
- Grab quality information from NM for wireless networks
* src/NetworkManagerDbus.[ch]
- Add dbus methods for getting the HAL UDI from a device and
for getting its base quality, if its wireless
- Consolidate some functions (wireless network notifications,
device notifications)
- Add method for requesting NM to use a particular device
* src/NetworkManager.c
- Change for function consolidations from NetworkManagerDbus.c
- Implement active device locking and user-requested devices
(ie, tell NM to use a particular device instead of the one
it autochose)
* src/NetworkManagerDevice.c
- Add method for getting the base quality of a device, if its
wireless
- Grab device base quailty info from iwlib during scans
* src/NetworkManagerPolicy.c
- Use a user-requested device rather than the auto-chosen device
if we are told to
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@81 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* 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
* panel-applet/*
- Add panel applet
* src/NetworkManagerPolicy.c
src/NetworkManager.c
- Get access point lists from NetworkManagerInfo on-demand,
and look for ServiceCreate/ServiceDeleted signals to see when
we should query NMI for lists
* src/NetworkManagerAPList.c
- Make sure to init the list's mutex
- Convert traversals of the list over to the list iter functions
* src/NetworkManagerDbus.[ch]
- Use more aptly-named path/service/interface constants
- Treat both active and pending devices the same for "getActiveDevice"
- Add a "status" method returning "connected", "connecting", or "disconnected"
* src/NetworkManagerDevice.c
- Honor "ignored" network list when picking best ap to use
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@39 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* 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
* 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
* src/Makefile.am
- Turn on warnings
* src/NetworkManager.c
- nm_create_device_and_add_to_list(): call nm_device_deactivate() rather
that doing the deactivation ourselves
- Cancel an pending actions on a device if its being removed
- Break up link state checking a bit, make non-active wireless cards
deactivated to save power
- Remove unused variables
* src/NetworkManager.h
- Add support for "pending" device
* src/NetworkManagerAP.h
src/NetworkManagerAP.c
- Add support for determining whether and AP has encryption enabled or not
- AP address is now "struct ether_addr" rather than a string
* src/NetworkManagerDbus.h
src/NetworkManagerDbus.c
- Add signal NeedKeyForNetwork, method SetKeyForNetwork (testing only)
- Changes for AP address from struct ether_addr->string
* src/NetworkManagerDevice.h
src/NetworkManagerDevice.c
- Remove unused variables, fix warnings
- Add support for Pending Actions (things that block a device from being "active"
until they are completed).
- First pending action: Get a WEP key from the user
- Add nm_device_is_wire[d|less](), rename nm_device_is_wireless()
- Clean up explicit testing of dev->iface_type to use nm_device_is_wireless()
- Update wireless link checking to try to determine if the AP we are associated
with is correct, but the WEP key we are using is just wrong. If its wrong,
trigger the GetUserKey pending action on the device
- If dhclient can't get an IP address, it brings the device down. Bring it back
up in that case, otherwise we can't scan or link-check on it
- Add IP address change notifications at appropriate points (still needs some work)
- Add nm_device_need_ap_switch(), checks whether we need to switch access points or not
* src/NetworkManagerPolicy.h
src/NetworkManagerPolicy.c
- Split out "best" access point determiniation into separate function
- Make device activation 2-stage: first the device is pending, then
in the next iteration through it becomes "active" unless it has
pending actions
* src/NetworkManagerUtils.h
src/NetworkManagerUtils.c
- Clean up unused variables and warnings
- Wrap our debug macros in {} to prevent possible confusion
* src/NetworkManagerWireless.c
- Forgot to return current best priority, which lead to last available AP always
being chosen no matter what its priority was. Corrected.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@15 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManager.c
- Add IPv4 address update for active device during link state check
- Don't allow wireless cards to be powered up when they are not the
active device
* src/NetworkManagerDbus.c
src/NetworkManagerDbus.h
- Add DBUS IPv4 address change signal
- Add DBUS IPv4 address get method for devices
* src/NetworkManagerDevice.c
- Make setting the WEP key actually work
- Move IP address get/set/update stuff here, per-device
- Power down/bring down wireless device when deactivated
- For scanning wireless devices, if first scan returned ENODATA, try again
* src/NetworkManagerPolicy.c
- Only set the WEP key for an allowed access point if there is one.
We were setting it to be blank if one wasn't specified.
* src/NetworkManagerUtils.h
src/NetworkManagerUtils.c
- Move the IP address stuff to NetworkManagerDevice.c
* dispatcher-daemon/NetworkManagerDispatcher.c
- Add device IPv4 address change notification stuff
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@13 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* 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
* NetworkManager.c
- Spacing cleanups
- Flush device routes and ip addresses when added to the device list
* NetworkManagerDbus.c
- Spacing cleanups
- Add missing returns in the two signal functions
* NetworkManagerPolicy.c
- Spacing and variable cleanups
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@10 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* Makefile.am
Makefile.in
configure.in
dispatcher-daemon/Makefile.am
dispatcher-daemon/Makefile.in
dispatcher-daemon/NetworkManagerDispatcher.c
Add a daemon that receives signals from NetworkManager
and will (eventually) call scripts in /etc/somewhere
when devices go up or down.
* NetworkManager.c
NetworkManagerDbus.c
Spacing cleanups.
* NetworkManagerPolicy.c
- Rename nm_policy_switch_interface->nm_policy_switch_device
- nm_policy_switch_device():
Use kill (pid) instead of system ("kill <pid>")
- nm_state_modification_monitor():
Add wireless essid to output of debug statements
Correct typo in device compare to switch or not (should be !=)
Don't sleep after sending "no longer active" signal, was useless
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@9 4912f4e0-d625-0410-9fb7-b9a5a253dbdc