* src/NetworkManagerPolicy.c: Always prefer wired to wireless, as the
user plugging in a network cable signals their preference for to
switch, unless the user explicitly selected a wireless network and
therefore signaled their preference for said wireless network over
wired. In other words, do exactly what makes sense.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1279 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* refactor NMDevice into a GObject-based framework with separate
objects for wired and wireless. The following files are no
longer used but should stick around for a bit so we don't
loose code through the cracks:
NetworkManagerDevice.c
NetworkManagerDevice.h
NetworkManagerWireless.c
NetworkManagerWireless.h
The intent here is to allow each device type to manage its own
connection & activation life-cycle, ie to allow wireless devices
to interface with wpa_supplicant, etc. There's a fair bit of
encapsulation breakage right now that should gradually get pulled
back into each device, along with things like periodic property
updates and link probing.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1244 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* Kill auth_method for access points, since that's now done
by NMAPSecurity objects
* Add a copy-constructor of sorts to NMAPSecurity
(how do you do this properly in glib???)
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1200 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* Convert NETWORK_MODE_* constants to IW_MODE_*
* Make all the get_mode/set_mode functions take and return 'int'
* Convert D-BUS calls that pass mode to DBUS_TYPE_INT32 rather than UINT32
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1142 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* Replace the "driver support level" stuff with capabilities. The
capability field is a bitfield that is more flexible than the
old driver support level thing. It's mostly so we can easily
figure out what supports WPA and what doesn't, but should be
quite useful later.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1007 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerPolicy.c
- (nm_policy_device_change_check): clarify switching rules if
both new and old devices are valid; mainly, don't switch
away from user-requested wireless connection back to a wired
one
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@859 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Patch from Bill Moss <bmoss@clemson.edu>
* gnome/applet/applet-dbus-info.[ch]
- (nmi_save_network_info): save timestamp for network if it
was a change requested by the user
- (nmi_dbus_update_network_info): get user_requested from dbus
message and pass to nmi_save_network_info()
* gnome/applet/applet.c
- (nmwa_update_network_timestamp): remove
- (nmwa_menu_item_activate): don't set timestamp on networks
here, only after a successful connect in nmi_save_network_info()
* src/NetworkManagerDbus.[ch]
- (nm_dbus_update_network_info): pass user_requested into the
dbus message
* src/NetworkManagerPolicy.c
- (nm_policy_activation_finish): pass user_requested to
nm_dbus_update_network_info()
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@857 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Patch from Bill Moss <bmoss@clemson.edu>
* Consolidate writes of access point information updates to the info daemon
so that we only do it when the connection to the access point was
successful. Also consolidates updates to GConf in the Gnome applet.
* src/nm-netlink-monitor.c
- Silence compile warning when calling g_object_new()
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@830 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerDevice.[ch]
src/NetworkManagerPolicy.c
src/NetworkManager.c
src/nm-dbus-nm.c
- Remove the "just_added" parameter from nm_device_deactivate(). We no
longer send the DeviceNoLongerActive signal unconditionally, but only
when the device is actually active.
* dispatcher-daemon/NetworkManagerDispatcher.c
- (nmd_execute_scripts): convert to GLib directory functions from opendir(),
and simplify the logic
- (nmd_get_device_name): copy value from dbus reply so we don't segfault when
we free it later on
* initscript/RedHat/Makefile.am
initscript/RedHat/NetworkManagerDispatcher
- Add initscript for NetworkManagerDispatcher
Patch from Bill Moss:
* dispatcher-daemon/NetworkManagerDispatcher.c
- Remove IP4AddressChange signal code including nmd_get_device_ip4_address()
* src/NetworkManagerDbus.c
- (nm_dbus_signal_device_ip4_address_change): remove. If the device goes up,
and DeviceNowActive gets signaled, then the device has a new IP address
anyway. There's no need for a separate signal.
* src/NetworkManagerDevice.c
- (nm_device_update_ip4_address): Don't send IP4AddressChange signal
* src/NetworkManagerPolicy.c
- (nm_policy_activation_finish): Send DeviceNowActive signal when the device
activates successfully. This kind of went missing when I reworked the
activation code.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@634 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerPolicy.c
- (nm_policy_activation_finish): Don't set NM_ACT_STAGE_ACTIVATED here, instead...
- (nm_policy_schedule_activation_finish): Set NM_ACT_STAGE_ACTIVATED here to
fix a situation where NM is told to terminate and the device stops activation,
but the main thread isn't aware of that because it would never have run
nm_policy_activation_finish() to set the ACTIVATED flag, because the main loop
had already quit.
* src/NetworkManagerDevice.c
- (nm_device_probe_wired_link_state): cosmetic fixes
- (nm_device_activate_stage5_ip_config_commit): Don't check link state if
we've failed to activate or been canceled.
- (nm_ac_test): nm_debug -> nm_info for "waiting for device to cancel" message
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@616 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* gnome/applet/applet-dbus-device.c
gnome/applet/applet-dbus-info.c
gnome/applet/applet-dbus.c
gnome/applet/applet.c
gnome/applet/applet.h
- (nmwa_get_device_for_nm_device) -> (nmwa_get_device_for_nm_path)
* gnome/applet/applet-dbus.c
- (nmwa_dbus_filter): trap DeviceCarrierOn/DeviceCarrierOff signals
so we notice when wired device's carriers come back on. Should
fix issue with wired devices being grayed out even if the cable
is in, for devices that support carrier detection.
* gnome/applet/applet.c
- (nmwa_driver_notify): bash focus-stealing prevention in the face
- (nmwa_act_stage_to_pixbuf): Clarify wireless ACT_STAGE_DEVICE_CONFIG
tooltip message
- (nmwa_menu_item_activate, nmwa_menu_add_device_item, nmwa_menu_item_data_free):
Fix situation where applet wouldn't respond to menu selections
* src/NetworkManager.c
src/NetworkManagerDevice.c
src/NetworkManagerDbus.c
src/NetworkManagerDbus.h
- (nm_dbus_signal_device_status_change) -> (nm_dbus_schedule_device_status_change_signal)
* src/NetworkManagerDbus.c
- (nm_dbus_send_network_not_found, nm_dbus_schedule_network_not_found_signal):
Remove, no longer used or relevant
- (nm_dbus_signal_device_status_change): Better signal enum->string matching
- (nm_dbus_schedule_device_status_change_signal): add
* src/NetworkManagerDevice.c
- (nm_device_worker_thread_stop): don't try to join a NULL worker thread
- (nm_device_set_link_active): Fix up switching for non-carrier-detect devices,
ie don't deactivate them unless explicitly told to by the user. Also send
CARRIER_OFF / CARRIER_ON signals when link changes
- (nm_device_set_essid, nm_device_set_enc_key, nm_device_is_up, nm_device_set_mode):
Don't print error message when device is no longer around
- (nm_device_deactivate): kill any current DHCP process attached to this device,
not just during activation
* src/NetworkManagerPolicy.c
- (nm_policy_auto_get_best_device): Ignore semi-supported devices completely from
auto-device-selection.
- (nm_policy_device_change_check): Don't interrupt semi-supported devices
* src/NetworkManagerSystem.c
- (nm_system_device_set_up_down_with_iface): Quiet first warning message when device
is no longer present (Bill Moss)
* src/backends/shvar.c
- (svOpenFile): Open read-only to make SELinux happy
* src/backends/NetworkManagerRedHat.c
- (nm_system_device_get_system_config): Use SYSCONFDIR rather than hardcoding
the path to the ifcfg-* files
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@613 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* Expose activation stages to NetworkManager clients, like the applet
* Add Diana's progress icons to the applet, cued off NM activation stage
* Use more descriptive tooltips, cued off NM activation stage
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@611 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* gnome/applet/main.c
- Fix session management so the applet is actually managed now
* gnome/applet/passphrase-dialog.c
- (nmi_passphrase_dialog_show): bash focus-stealing prevention in the face
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@609 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* Remove NM_STATE_SCANNING from NetworkManager.h and applet code
* Fix some holes in device activation and retaining the currently connected
access point
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@602 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* Kill dhcpcd. We now use "dhcdbd", a dbus daemon that controls dhclient.
This means that NetworkManager shouldn't have DHCP issues anymore. It also
means you need dhcdbd, which you can get here (get the latest one):
http://people.redhat.com/jvdias/dhcdbd/
Technically NetworkManager can use any DHCP daemon that uses the same DBUS
interface as dhcdbd.
* Rewrite device activation to facilitate the new DHCP infrastructure and
future improvements. Its now "activation request" based, ie there is a single
activation request composed of the device, access point, and other info which
follows the entire activation process. There are 5 stages of the activation
process which correspond to:
1) Device preparation
2) Device configuration (bring it up, set ESSID/Key/etc)
3) IP Config Start (fire off DHCP if we're using it)
4) IP Config Get (grab config from DHCP or static config files)
5) IP Config Commit (set device's IP address, DNS, etc)
Note that there is no longer a "scanning" step, since the access point must
be known _before_ activation starts. If the access point drops out or does
not exist for some reason, the entire activation process fails and must be
restarted for a different access point or device.
Patch from Bill Moss:
* gnome/applet/applet.c
- Fix type of vpn_failure dialog -> vpn_banner dialog
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@597 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* Merge the applet and the info-daemon, and move the converged
applet under gnome/applet
* Move libnm_glib to gnome/libnm_glib
* Convert most dbus calls between the applet, info-daemon, and NM
into async calls
* Fix a few things valgrind noticed
* Make NM broadcast state more reliably
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@586 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Patches from Tom Parker:
- Fix memleaks
- Join with worker thread rather than polling for its exit
Patch from Bill Moss:
- Cull duplicate ESSIDs from the scan list, taking highest strength AP
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@573 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Initial VPN Support
- supports 'vpnc'
- reworks device IP configuration, backend files have changed and will need
to be updated for all distributions. I will try to do what I can for
them, but I cannot test them.
- Move named directory to src/named-manager
- Make backends directory self-contained
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@571 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Tighten up handling of wireless devices that don't support wireless
scanning (ie, Orinoco). Due to restructuring of code, these devices
hadn't been doing pseudo-scanning for a while either and would just
spin waiting for an access point. They are now manual devices where
the user must choose the access point from the menu every time. All
"allowed" access points are listed in the applet's menu regardless
of whether or not they can be seen by the card, since it can't scan
anyway.
* src/NetworkManager.c
- (nm_wireless_link_state_handle): new function, but only update
the "best" ap for non-scanning devices when its not activating,
and when no device is being forced on the card
- (nm_link_state_monitor): split wireless link state handling out
into separate function
* src/NetworkManagerDevice.c
- (nm_device_copy_allowed_to_dev_list): new function
- (nm_device_new): populate non-scanning cards' AP lists with
access points from the "allowed" list
- (nm_device_new): don't start a scanning timeout for devices that
can't scan
- (nm_device_activation_schedule_finish): new parameter, should be
the AP that failed to be connected to, pass it on to the
activation finish function in NetworkManagerPolicy.c
- (nm_device_activate_wireless): don't ever try to get a new AP
for non-scanning devices, just fail. The user must choose
a new access point manually.
- (nm_device_activate): grab the AP that failed connection and
pass it on
- (nm_device_update_best_ap): Clear the best AP if we don't have
a link to it, user must manually choose a new one
- (nm_device_do_pseudo_scan): remove function
- (nm_device_wireless_process_scan_results): remove bits for non-
scanning cards since they never get here
- (nm_device_wireless_scan): remove bits for non-scanning devices,
and fake the scan list for test devices a bit earlier
* src/NetworkManagerPolicy.c
- (nm_policy_activation_finish): use the failed_ap that we get
passed rather than getting the best_ap from the card, which
may have changed since we were scheduled
- (nm_policy_allowed_ap_list_update): for non-scanning devices,
update their scan list directly from the allowed list when
we get updates to the allowed list from NetworkManagerInfo
* src/NetworkManagerPolicy.h
- New member for failed access point in NMActivationResult
-------------------------------------
Driver Notification patch: notifies the user when their driver
sucks. Gives them the option to ignore further insertions
of the card that has the sucky driver.
* NetworkManager.h
- Remove the SEMI_SUPPORTED member from the NMDriverSupportLevel
enum and replace it with NO_CARRIER_DETECT and
NO_WIRELESS_SCAN
* panel-applet/NMWirelessApplet.[ch]
- Merge essid.glade -> wireless-applet.glade
- Implement the "Your driver sucks" notification dialog
* panel-applet/NMWirelessAppletDbus.c
- Change stuff from getSupportsCarrierDetect->getDriverSupportLevel
- Grab hardware address for each device from NM too
- Check whether the driver for each device sucks or not whenever
a new device is noticed
* panel-applet/NMWirelessAppletOtherNetworkDialog.c
- Deal with stuff being in wireless-applet.glade now rather than essid.glade
* src/NetworkManager.c
- Fix a double-unref on device removal
* src/NetworkManagerUtils.c
- Set appropriate driver support level on a device that doesn't
support scanning or carrier detection
* src/nm-dbus-device.c
- New "getHWAddress" dbus method on devices
- getSupportsCarrierDetect -> getDriverSupportLevel
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@534 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* panel-applet/NMWirelessApplet.c
- (nmwa_about_cb): Add some more contributors
- (nmwa_update_state): show the applet when there's no connection
- Enable the "Stop/Resume all wireless devices" option in the
context menu
- New "no connection" icon
* src/NetworkManager.c
- (nm_poll_and_update_wireless_link_state): don't do anything if
wireless is disabled or we're asleep
* src/NetworkManagerDHCP.c
- Remove trailing "\n" on debug messages
* src/NetworkManagerDbus.c
- (nm_dbus_network_status_from_data): new state "asleep"
* src/NetworkManagerDevice.c
- Merge most of Peter Jones' "completion" patch that greatly reduces
latency and wait times for most operations
- (nm_device_wireless_scan): Don't scan when asleep
* src/NetworkManagerPolicy.c
- (nm_policy_get_best_device): return no device when asleep
- (nm_policy_allowed_ap_list_update): From Bill Moss: merge properties
for all wireless devices on update, not just active device
* src/NetworkManagerUtils.c
- Merge Peter Jones' "completion" patch
* src/nm-dbus-nm.c
- (nm_dbus_nm_set_wireless_enabled): bring down wireless devices when
we're told to disable them
- (nm_dbus_nm_sleep, nm_dbus_nm_wake): new functions for sleep/wake
* utils/nm-utils.h
- New variants of the warn/info/error/debug print functions that can take
variables rather than static strings
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@510 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Fourth (probably working) cut at porting to
dbus 0.30 api and new hal. This cut adds
some new logging macros to make debugging
easier.
* dispatcher-daemon/NetworkManagerDispatcher.c:
* info-daemon/NetworkmanagerInfo.c:
* info-daemon/NetworkManagerInfoPassphraseDialog.c:
* info-daemon/NetworkManagerInfoVPN.c:
* src/NetworkManager.c:
* src/NetworkManagerAP.c:
* src/NetworkManagerAPList.c:
* src/NetworkManagerDHCP.c:
* src/NetworkManagerDbus.c:
* src/NetworkManagerDevice.c:
* src/NetworkManagerPolicy.c:
* src/NetworkManagerSystem.c:
* src/NetworkManagerUtils.c:
* src/NetworkManagerWireless.c:
* src/autoip.c:
* src/nm-dbus-nm.c:
* src/backends/NetworkManagerDebian.c:
* src/backends/NetworkManagerGentoo.c:
* src/backends/NetworkManagerRedHat.c:
* src/backends/NetworkManagerSlackware.c:
use new logging macros.
* dispatcher-daemon/NetworkManagerDispatcher.c:
(nmd_dbus_filter): s/dbus_free/g_free/
* info-daemon/Makefile.am: link in utils library.
* info-daemon/NetworkmanagerInfo.c: use new logging
macros.
(nmi_dbus_get_network): don't assume enumerations
are 32-bit.
(nmi_dbus_nmi_message_handler): don't free what
doesn't belong to us.
* libnm_glib/libnm_glib.c:
(libnm_glib_get_nm_status):
(libnm_glib_init): don't free what doesn't
belong to us.
(libnm_glib_dbus): strdup result, so it doesn't get
lost when message is unref'd.
* panel-applet/NMWirelessAppletDbus.c:
(nmwa_dbus_update_devices): s/dbus_free/g_free/
* src/NetworkManager.c:
(nm_monitor_wired_link_state): request initial status
dump of all cards when we start up, instead of relying
on /sys/.../carrier.
(nm_info_handler), (nm_set_up_log_handlers):
log handlers to specify what syslog priorites
the logging macros default to.
* src/NetworkManagerAPList.c:
(nm_ap_list_populate_from_nmi):
s/dbus_free_string_array/g_strfreev/
* src/NetworkManagerDbus.c:
(nm_dbus_get_network_object):
validate d-bus message argument types.
Advance message iterator after reading argument,
prepend instead of append to GSList.
* src/NetworkManagerDevice.c:
(nm_device_probe_wired_link_status):
remove redundant /sys in /sys path. remove wrong
contents == NULL means has carrier assumption.
* src/nm-netlink-monitor.c
(nm_netlink_monitor_request_status): implement
function to ask kernel to dump interface link
status over netlink socket.
* test/*.c: s/dbus_free/g_free/
* utils/nm-utils.h:
(nm_print_backtrace): new macro to print backtrace.
(nm_get_timestamp): new macro to get sub-second precise
unix timestamp.
(nm_info), (nm_debug), (nm_warning), (nm_error):
new logging functions. nm_info just prints,
nm_debug includes timestamp and function,
nm_warning includes function, nm_error includes
backtrace and sigtrap.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@497 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Third (unfinished, partially working) cut at porting to
dbus 0.30 api and new hal.
* info-daemon/NetworkManagerInfoDbus.c:
don't free null arrays.
* panel-applet/NMWirelessAppletDbus.c:
* src/nm-dbus-device.c:
* src/nm-dbus-net.c:
* src/NetworkManagerDbus.c: more
STRING -> OBJECT_PATH fun
* src/NetworkManagerDevice.c:
* src/NetworkManagerDevice.h:
(rename nm_device_get_link_active): rename to
nm_device_has_active_link
(nm_device_wireless_link_active): rename to
nm_device_probe_wireless_link_state
(nm_device_wired_link_active): rename to
nm_device_probe_wired_link_state. Rewrite to
use carrier file since hal doesn't maintain
link state anymore.
(nm_device_update_link_active): rename to
nm_device_update_link_state
* src/NetworkManagerPolicy.c
(nm_policy_activation_finish): check for NULL
MAC address.
* src/Makefile.am:
* src/NetworkManagerMain.h:
* src/NetworkManager.c:
* src/nm-netlink-monitor.c:
* src/nm-netlink-monitor.h: New class to support
monitoring wired ethernet link status, since HAL
doesn't export that information anymore.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@495 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerPolicy.c
- (nm_policy_activation_finish): Deactivate a device if its activation fails,
and NULL out data->active_device so that we have to choose another one.
This may make NetworkManager keep attempting to connect to a wired network
if it fails, but if it keeps failing the wired network has more problems than
just NetworkManager.
* src/backends/NetworkManagerRedHat.c
- (nm_system_update_dns): fix to actually run nscd -i hosts when nscd
is already running
* named/nm-named-manager.c
- (rewrite_resolv_conf): Call nm_system_update_dns() when not using
named so that the distro can flush whatever name service caching
daemon it uses
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@468 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* panel-applet/NMWirelessApplet.[ch]
- Add a context menu that contains:
Pause/Resume Wireless Scanning
Stop/Start All Wireless Devices
About...
- Grab active device strength off active device,
not its network
* panel-applet/NMWirelessAppletDbus.[ch]
- Add DBUS accessors for "getSupportsCarrierDetect", "setScanningEnabled",
"getScanningEnabled", "setWirelessEnabled", and "getWirelessEnabled"
- Update active device strength every 2 seconds, not every 1 second
* panel-applet/menu-info.c
- Only disable wired devices in the menu when they support carrier detection,
and don't currently have a link. Non-carrier-detect devices will always
remain choosable
* src/Makefile.am
src/NetworkManagerDbusUtils.[ch]
- Add new new dbus utils sources
* src/NetworkManager.c
- Fixes for new link detection, we no longer need to call nm_device_update_link_active()
with the boolean parameter
- Set scanning_enabled & wireless_enabled to TRUE
* src/NetworkManagerDbus.c
- Use new dbus util method dispatcher functions for org.freedesktop.NetworkManager methods
- Implement scanning & wireless enable/disable calls
- Remove the dbus vtable unregister handlers, weren't doing anything with them anyway
* src/NetworkManagerDevice.c
- New link detection stuff again...
o Create device's mainloop earlier (but don't run it earlier)
o Hook up new carrier-detect support stuff
o Add in the ethtool & mii support detection code
- Don't scan if scanning is disabled
* src/NetworkManagerPolicy.c
- Never automatically choose a device that doesn't support carrier detection
- Don't automatically choose a wireless device if wireless is disabled
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@416 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerAPList.c
- (nm_ap_list_merge_scanned_ap): merge strength too
* src/NetworkManagerUtils.c
- (nm_lock_mutex, nm_register_mutex_desc): new calls to facilitate debugging
of locking issues by printing out prettier information than g_mutex_lock
- Print out names of mutexes registered with nm_register_mutex_desc()
- (nm_try_lock_mutex): don't do the waiting thing when trying to lock, causes
us to seemingly block here for too long
* src/NetworkManager.c
src/NetworkManagerAPList.c
src/NetworkManagerDevice.c
- Convert to using nm_lock_mutex/nm_unlock_mutex rather than the glib variants
so we get better debug information printed
* src/NetworkManagerDbus.c
- (nm_dbus_devices_handle_request): reduce usage of nm_device_need_ap_switch()
since it sometimes has locking side effects
- (nm_device_get_association_pause_value): Reduce 802.11a card pause value to 8s
from 10s
- (nm_device_need_ap_switch): If we can't acquire the scan lock, return saying
we don't need a switch. This gets called often enough that we can't block
until the scan mutex is acquired, because we'll block on device activation
and a few other things, which hangs main thread for too long.
* src/NetworkManagerPolicy.c
- (nm_policy_auto_get_best_device): reduce the possiblity that
nm_device_need_ap_switch() will be called
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@407 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* initscript/RedHat/NetworkManager
- Don't spit out sysctl stuff to console
* libnm_glib/libnm_glib.c
- (libnm_glib_init): call dbus_g_thread_init()
* panel-applet/NMWirelessAppletDbus.c
- (nmwa_dbus_worker): call dbus_g_thread_init()
* src/NetworkManager.c
- (main): call dbus_g_thread_init()
* src/NetworkManagerAPList.c
- (nm_ap_list_print_members): use LOG_ERR instead of LOG_DEBUG
so we can actually see what's there in a normal syslog
* src/NetworkManagerDevice.c
- (nm_device_activate_wireless): print out the "waiting for access point"
message only once, then say what access point we actually got after
the wait.
- (nm_device_need_ap_switch): If a scan is in progress when we're in this
function, wait until the scan is done. Scans may change the ESSID of
the card, making this function think we need to switch access points
- (nm_device_wireless_process_scan_results): for artificial access points
don't check against the card's ESSID, but the best_ap's ESSID. This
prevents collisions with the scanning code, which may change the card's
ESSID and cause the access point to get dropped from the device's AP
list. Also increase the keep-around time to 2m from 60s since the max
scan interval could be 60s in some cases.
* src/NetworkManagerPolicy.c
- (nm_policy_activation_finish): Don't add invalid MAC addresses to GConf
- (nm_policy_allowed_ap_list_update): When we update, make sure we copy over
the new properties and ESSIDs to the device's AP list. Fixes some races
between NM and NMI.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@401 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* 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