* src/nm-device-802-11-wireless.c
- (nm_device_802_11_wireless_set_wep_enc_key): convert to
nm_device_802_11_wireless_disable_encryption() since that's all
we use it for anymore; we don't ever set WEP keys ourselves.
- (real_deactivate_quickly): reset SSID and encryption keys
- (real_deactivate): move SSID and encryption key reset to
real_deactivate_quickly(), which gets run before us anyway
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1721 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManager.c: Set the umask to 0022 when daemonizing, in case
root has a wacky default of its own (or, more common, a user has a
bad umask and uses su/sudo to restart NetworkManager). Anything other
than 0022 does not do what we want with, for example, resolv.conf. This
problem is amplified by our judicious use of fopen(), which uses mode
0666 -- implying that the only way to get the permissions we want is
with a umask of 0022.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1719 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/backends/NetworkManagerSuSE.c: Respect the variable
dhcp:DHCLIENT_MODIFY_RESOLV_CONF, not
config:MODIFY_RESOLV_CONF_DYNAMICALLY, when deciding whether or not
to dynamically update /etc/resolv.conf.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1716 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-ap-security-wep.c: Bug fix: We stopped setting the
key mode (the authentication algorithm), e.g. open or shared, when we
moved to using wpa_supplicant. wpa_supplicant defaults to open, so
only shared was broken. If the user specified a shared key, set it
explicitly, otherwise let wpa_supplicant go with the default.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1705 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Commit the async scanning patch
* src/nm-device-802-11-wireless.c
- get rid of scan_mutex
- (wireless_event_helper): act on wireless scan events
- (real_start): schedule a pending scan
- (link_to_specific_ap): fake the link to the AP during a scan
- (nm_device_802_11_wireless_update_signal_strength): ignore signal
strength during scans
- (nm_device_get_frequency, nm_device_set_frequency, nm_device_get_bitrate,
nm_device_set_bitrate): unused with new scanning code, disable
- (nm_device_wireless_schedule_scan): removed
- (nm_device_wireless_process_scan_results): renamed to convert_scan_results()
- (request_and_convert_scan_results): new function; retrieve scan
results from the driver and schedule the processing function
- (scan_results_timeout): timeout triggered when card doesn't send
a scan results wireless event during a certain interval
- (schedule_scan_results_timeout): new function; schedule the scan
results timeout
- (cancel_scan_results_timeout): new function; cancel the scan
results timeout
- (nm_device_802_11_wireless_scan): if wpa_supplicant is running, ask it
to do the scanning. Otherwise, just request a scan but don't
grab results here; instead schedule a timeout for scan results and
let netlink notify us of scan completion events
- (nm_device_wireless_schedule_scan): new function; schedule a wireless scan
- (cancel_pending_scan): new function; cancel a pending wireless scan
- (supplicant_status_cb): ignore disconnect events while scanning
- (supplicant_exec): wait a bit longer for the supplicant to start up
- (nm_device_802_11_wireless_dispose): cancel pending scans and results
timeouts
- (get_scan_results): removed; folded into request_and_convert_scan_results()
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1703 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Fix bug where hidden ESSID's would not show up in the applet, even
if NMI provided a BSSID -> ESSID mapping from Gconf. This occurred
because nm_policy_device_list_update_from_allowed_list() would merge
the data, putting a name to the hidden networks, but never notify NMI
of the changes. Simple fix is to invoke the function
nm_dbus_signal_wireless_network_change() if we make a mapping.
* src/NetworkManagerAPList.c: Call the function
nm_dbus_signal_wireless_network_change() if we made a successful
BSSID to ESSID mapping, notifying the applet of the "new" network.
* src/NetworkManagerAPList.h: Update the prototypes for both
nm_ap_list_copy_essids_by_address() and
nm_ap_list_copy_one_essid_by_address().
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1700 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Fix bad but simple bug where an active modem connection did not update
NM's connection state, breaking any app that did online/offline:
* src/NetworkManagerMain.h: Add 'modem_active' member to NMData,
represented whether a dial up connection is active, or not.
* src/nm-dbus-nm.c: Set and unset 'modem_active' in response
to modem activation and deactivation.
* src/NetworkManagerDbus.c: When asked our state, do not return
disconnected if the modem is active.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1674 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* initscript/Arch/networkmanager.in: Added checks for HAL and dhcdbd
in start of service.
* src/backends/NetworkManagerArch.c: (nm_system_get_mtu): Added to
get Archlinux backend up to date.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1669 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Patch by Vinay R <rvinay@novell.com> and Robert Love <rml@novell.com>,
to add support for per-route MSS and improve support for per-interface
MTU:
* src/NetworkManagerSystem.c: Modify nm_system_device_set_ip4_route to
optionally take an MSS parameter and set it for the given route.
Remove nm_system_device_set_ip4_route_with_iface. Pass in the
NMIP4Config's stored MSS, if any.
* src/nm-ip4-config.c: Add 'mtu' and 'mss' to NMIP4Config, representing
the interface's MTU and the route's MSS, respectively. Add functions
nm_ip4_config_get_mtu, nm_ip4_config_set_mtu, nm_ip4_config_get_mss,
and nm_ip4_config_set_mss for retrieving and setting the MTU and the
MSS.
* src/nm-ip4-config.h: Add prototypes for nm_ip4_config_get_mtu,
nm_ip4_config_set_mtu, nm_ip4_config_get_mss, and
nm_ip4_config_set_mss.
* src/vpn-manager/nm-vpn-service.c: Modify to receive the MSS from the
VPN daemon.
* src/backends/NetworkManager{Arch,Debian,Gentoo,RedHat,Slackware,SUSE}.c:
Change the retval of nm_system_get_mtu to guint32.
* src/dhcp-manager/nm-dhcp-manager.c: Set the MTU on the new DHCP-given
NMIP4Config to the MTU provided by the system, if any. TODO: If DHCP
servers can specify MTU's, we should set it here if the MTU was not
provided.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1660 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Patch from Diffe <diffie@blazebox.homeip.net>
* src/backends/NetworkManagerSlackware.c
- Don't restart howl, since it's been replaced by Avahi
in most distributions
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1652 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Patch by Jürg Billeter <j@bitron.ch>:
* src/nm-logging.c: Add printf modifier to fix warning on 64-bit
systems.
* src/nm-netlink-monitor.c: Include <net/if.h> instead of <linux/if.h>
as we prefer glibc over kernel headers, if possible.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1641 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Patch by Jon Escombe <list@dresco.co.uk>:
* gnome/applet/nm-gconf-wso.c: Add missing NM_AUTH_TYPE_WPA_EAP case.
* gnome/applet/nm-gconf-wso-wpa-eap.c: If retrieving the gconf values
fail, don't bail out. We don't expect all of the various WPA-EAP
values to be present.
* src/nm-ap-security.c: We need to match all capabilities for each
encryption type, not any one of them.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1640 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/backends/NetworkManagerSuSE.c: Revert 2006-03-17 commit and again
restart, not reload, ypbind. Unfortunately there is no superior
solution.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1639 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/dhcp-manager/nm-dhcp-manager.c: Create NM_DHCP_TIMEOUT
preprocessor define and use it instead of open-coded the DHCP
timeout, which is currently 25 seconds, everywhere.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1629 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Implement "Dynamic WEP", which is basically WPA authentication and WEP
key exchange via WPA, ostensibly providing good security without
requiring hardware that supports full WPA. Also, add UI elements to
allow the user to select the pairwise & group cipher for WPA Enterprise
networks, too:
* gnome/applet/applet.glade: Update glade file.
* gnome/applet/nm-gconf-wso-wpa-eap.c: Serialize and deserialize the
key type, too, to and from gconf.
* gnome/applet/wireless-security-option.c: Add "wpa_eap" parameter to
wso_wpa_create_key_type_model(), noting whether we are handling PSK
or EAP configuration, and in the latter case add in "Dynamic WEP" if
the capabilities match.
* gnome/applet/wso-private.h: Update wso_wpa_create_key_type_model()'s
prototype.
* gnome/applet/wso-wpa-eap.c: Manage UI elements for the key type and
serialize from UI to DBUS.
* gnome/applet/wso-wpa-psk.c: Cannot fail and always returns at least
one element.
* libnm-util/dbus-helpers.c: Update nmu_security_serialize_wpa_eap(),
nmu_security_serialize_wpa_eap_with_cipher(), and
nmu_security_deserialize_wpa_eap() to take a "key_type" parameter and
serialize/deserialize the key type via DBUS as the new third DBUS
parameter.
* libnm-util/dbus-helpers.h: Update prototypes.
* src/nm-ap-security-wpa-eap.c: Deserialize the key type from DBUS,
too. If the key type is WEP104, do Dynamic WEP, which means
"IEEE8021X" for "key_mgmt". Also add support for user-specified
pairwise and group ciphers (fixes a FIXME).
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1628 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerSystem.c, src/NetworkManagerSystem.h: Add
nm_system_get_mtu(), which returns a user-provided or system-mandated
MTU value for a given device, if any, or zero if no such value
exists. Add nm_system_set_mtu() to set the MTU for a given device
if we have a provided value.
* src/nm-device.c: Set the MTU of devices.
* src/backends/NetworkManagerSuSE.c: Read MTU, if any, from sysconfig.
* src/backends/NetworkManagerDebian.c,
src/backends/NetworkManagerGentoo.c,
src/backends/NetworkManagerRedHat.c,
src/backends/NetworkManagerSlackware.c: Implement stub functions.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1626 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/backends/NetworkManagerSuSE.c: Do "rcypbind reload" to send the
signal SIGHUP to ypbind, not "rcypbind restart" to physically restart
it, in case it is not running in the first place. We just want its
configuration reloaded. Also, do not "rcypbind stop" on device down.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1615 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/backends/NetworkManagerSuSE.c: Do "rcypbind reload" to send the
signal SIGHUP to ypbind, not "rcypbind restart" to physically restart
it, in case it is not running in the first place. We just want its
configuration reloaded.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1614 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/dhcp-manager/nm-dhcp-manager.c: Do not start dhcdbd, but rely on
the system init scripts (or some other mechanism) starting it (or a
compatible DBUS service) before NetworkManager runs. This means that
distributions might need to update their init scripts. This fixes
possible races and is quite a bit cleaner.
* initscript/SUSE/networkmanager.in: Update to start dhcdbd before
starting the NetworkManager daemon.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1607 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerAP.c, src/NetworkManagerAP.h: Have the function
nm_ap_set_timestamp() take the second and micro-second parameters as
direct arguments, which avoids both a dynamic memory allocation and a
structure-to-structure copy! Add a new interface, the aptly named
nm_ap_set_timestamp_via_timestamp(), to set the timestamp from an
existing GTimeVal, as nm_ap_set_timestamp() once did, for use with
the return from nm_ap_get_timestamp(). New users should use the new
nm_ap_set_timestamp(), not nm_ap_set_timestamp_via_timestamp(), for
the extreme benefit to performance.
* src/NetworkManagerAPList.c, src/nm-dbus-nmi.c,
src/backends/NetworkManagerSuSE.c: Use the new functions as needed.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1569 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/dhcp-manager/nm-dhcp-manager.c: Use preprocessor defines and not
open-coded integer constants. Add state_to_string() to map a given
state to a textual description, and provide that when notifying of
state change.
* src/dhcp-manager/nm-dhcp-manager.h: Provide defines for the dhcdbd
states, copied and cleaned up from dhcdbd.d. Ideally, we would use
this header directly, but it is currently not installed on most
systems.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1559 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Process netlink messages in device subclasses rather than in
NetworkManager.c. Also add support for recognizing Wireless Events.
* configure.in
- Find GLIB_GENMARSHAL
* src/Makefile.am
- Since we're marshalling custom types for wireless event signals,
we get to create our own marshallers using GLIB_GENMARSHAL
* src/NetworkManager.c
- (nm_monitor_wired_link_state): renamed to nm_monitor_setup
- (nm_monitor_setup): renamed from nm_monitor_wired_link_state, and
cut down somewhat. We no longer process signals here.
- (nm_data_new): create the netlink monitor here, and remove a
useless call to nm_policy_schedule_device_change_check()
- (nm_data_free): get rid of the netlink monitor here
- (nm_device_link_activated, nm_device_link_deactivated): removed
- (main): don't create the netlink monitor here, let nm_data_new
do that. Call nm_policy_schedule_device_change_check() right
before we jump to the mainloop to figure out which device
to use first
* src/NetworkManagerSystem.[ch]
- (nm_system_get_rtnl_index_from_iface, nm_system_get_iface_from_rtnl_index):
convert back and forth from interface names to interface
indexes
* src/nm-device-802-11-wireless.c
- (real_init): connect to wireless-event signals from the netlink
monitor object
- (nm_device_802_11_wireless_event): new function, schedule handler
for wireless event signals from the netlink monitor object. We
want the handler to run in the device's context
- (wireless_event_helper): handle wireless-event signals from netlink
- (nm_device_802_11_wireless_dispose): disconnect wireless-event
signal handler
* src/nm-device-802-11-wireless.h
- remove unused prototype for nm_device_802_11_wireless_new
* src/nm-device-802-3-ethernet.c
- (real_init): new function; set up signal handlers for link events
- (nm_device_802_3_ethernet_link_activated): new function, schedule
handler for netlink link activated events on device's main loop
- (link_activated_helper): when we get a link activated event, set
the device's link to be active
- (nm_device_802_3_ethernet_link_deactivated): new function; schedule
handler for netlink link deactivated events on device's main loop
- (link_deactivated_helper): when we get a link deactivated event, set
the device's link to be inactive
- (nm_device_802_3_ethernet_dispose): disconnect signal handler on
dispose
* src/nm-device-802-3-ethernet.h
- remove unused prototype for nm_device_802_3_ethernet_new
* src/nm-device.[ch]
- (nm_get_device_by_iface_locked): variant of nm_get_device_by_iface
but locks the device list
- (nm_device_set_active_link): a little bit of cleanup and de-indenting
* src/nm-netlink-monitor.[ch]
- (nm_netlink_monitor_class_install_signals): New signal
"wireless-event"
- (nm_netlink_monitor_new): keep reference to NMData so we can get
at the device list
- (nm_netlink_monitor_event_handler): expand for wireless events too
* src/nm-marshal-main.c
- Include generated nm-marshal.c and nm-marshal.h
* src/nm-marshal.list
- List of custom marshal functions
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1555 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Clean up activation cancellation. Should be a lot faster now. Observed
an issue with wireless devices between stage 2 and 3 of activation, where
activation would be cancelled, but the device thread wouldn't notice until
the supplicant association timed out. Reorganize activation such that
a cancellation handler gets immediately scheduled in the device's thread,
and devices have a chance to perform any custom cleanup too.
* src/nm-device.[ch]
- (activation_cancel_handler): new device-type-specific function
for cleaning up device-type-specific stuff on cancellation
- (cancel_activation): removed
- (nm_device_activation_cancel): subsume functionality of
real_cancel_activation, but instead of doing anything, punt
operation to a handler that's run in device-thread context
- (nm_device_schedule_activation_handle_cancel): fix spelling of
a warning message
- (activation_handle_cancel_helper): cancellation handler run in
device-thread context, calls device-type-specific cancelation,
then tears down the activation request
- (real_activation_cancel_handler): generic cancellation handler,
deals with cancelling any in-process DHCP request
- (nm_device_activate_stage1_device_prepare,
nm_device_activate_stage2_device_config,
nm_device_activate_stage3_ip_config_start,
nm_device_activate_stage4_ip_config_get,
nm_device_activate_stage4_ip_config_timeout,
nm_device_activate_stage5_ip_commit): don't call
nm_device_schedule_activation_handle_cancel() any more, since
cancellation will have been already scheduled for us by
nm_device_activation_cancel(). Just exit the function and
assume that the cancel handler will be called next.
* src/nm-device-802-3-ethernet.c
- (real_act_stage2_config): remove; didn't do anything anyway
* src/nm-device-802-11-wireless.c
- (supplicant_status_cb): ensure we don't do anything if the activation
got cancelled
- (real_activation_cancel_handler): implement; cancel user key request
on activation cancellation
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1549 4912f4e0-d625-0410-9fb7-b9a5a253dbdc