* src/nm-device-802-3-ethernet.c: In case local copies of glibc do not
define if_mii(), open code the same results, and do so without any
type punning.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1320 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* gnome/applet/wireless-security-manager.c: Fix crash by not asserting
that wso_foo_new() returned non-NULL. Instead, only append the new
wso to wsm->options if the wso is non-NULL. The crux is that we
assume that the relevant key types are implied by WEP and WPA as
appropriate. To be sure, they should be, but we should not expect
drivers to not be oozing piles of wolf fecal matter.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1319 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Add options for WPA2 and WPA1+CCMP (AES).
* gnome/applet/wireless-applet.glade
- Add UI bits for WPA+CCMP
* gnome/applet/other-network-dialog.c
- (nmwa_ond_init): pass capabilities into the WirelessSecurityManager,
and don't allow creation of WPA2 Ad-Hoc networks since
wpa_supplicant doesn't support them
* gnome/applet/wireless-security-manager.c
- (wsm_set_capabilities): Add WPA2 options, and pass capability
on to the specific wireless security option being created
* gnome/applet/wireless-security-option.[ch]
- (wso_wpa_create_key_type_model): new utility function to create
the model required for WPA Key Type combo box
* gnome/applet/wso-private.h
gnome/applet/wireless-security-option.h
- Move private function prototypes into wso-private.h
* gnome/applet/wso-wpa-psk-hex.[ch]
gnome/applet/wso-wpa-psk-passphrase.[ch]
- (append_dbus_params_func): get WPA version from checkbox and pass
it to the dbus serialization helper
- (key_type_combo_changed_cb): Set the cipher's WE Cipher when the
key type combo changes
- (wso_wpa_psk_hex_new): set up the key type combo with the correct
model and options
* libnm-util/cipher-wpa-psk-hex.c
libnm-util/cipher-wpa-psk-passphrase.c
- (cipher_wpa_psk_hex_set_we_cipher, cipher_wpa_psk_passphrase_set_we_cipher):
new function; allow the cipher to be changed after object creation
* src/nm-ap-security-wpa-psk.c
- (set_description): Do WPA2 descriptions too
* src/nm-ap-security.c
- (nm_ap_security_new_from_ap): allow CCMP with WPA1 too
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1317 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-3-ethernet.c: Use the if_mii() inline function that
is defined in <linux/mii.h> to return the mii_ioctl_data structure
from the ifreq structure in lieu of an open coded solution. Removes
a life-threatening type-punning.
* configure.in: Remove '-Wno-strict-aliasing' as we no longer pun any
types, ever, whatsoever, baby.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1316 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* gnome/applet/applet-dbus-devices.c, gnome/applet/applet-dbus.c,
gnome/applet/applet.c, gnome/applet/applet.h: Consolidating
assignments to applet->nm_state into a new nmwa_set_state() function
for both cleanliness and to help debugging.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1314 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/autoip.c: Fix FIXME. In performing the link-local zeroconf IP
assignment dance, we want to sleep between PROBE_MIN and PROBE_MAX
seconds, exclusive. That is, we want to sleep x seconds such that
1 < x < 2.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1313 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* gnome/applet/applet-dbus-info.c: Remove FIXME, we do not have to free
the attr fields according to the example in the email available at
mail.gnome.org/archives/desktop-devel-list/2004-May/msg00230.html.
Conversely, we do have to free 'name', so we do so, fixing a leak.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1311 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-11-wireless.c, src/nm-device-802-11-wireless.h,
src/nm-device-802-3-ethernet.c, src/nm-device-802-3-ethernet.h,
src/nm-device.c: Fix a FIXME! Reimplement the function
nm_device_update_hw_address() in device subclass variants,
nm_device_802_3_ethernet_set_address() and
nm_device_802_11_wireless_set_address(), hook them up, and use them.
This fixes the existing bug where MAC addresses are all zeros.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1309 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* gnome/applet/applet-dbus-devices.c, gnome/applet/applet-dbus.h,
gnome/applet/applet.c, gnome/applet/applet.h: Add 'Enable Networking'
option to give users ability to globally disconnect and put NM to
sleep. This is useful as a 'lockdown mode' for flying, security, and
clean disconnect.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1308 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-3-ethernet.h: The kernel headers <linux/mii.h> and
<linux/ethtool.h> leak the kernel-only types u16, u32, et al.
User-space does not supply these types, so we have to define them
ourselves. The relevant kernel maintainer refused to accept a patch
switching these headers to the propre C99 types.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1304 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Apply Robert's 'tray icon redo' patch with fixes
* gnome/applet/applet.c
gnome/applet/applet.h
- Instead of using a menu bar + menu item, simulate menu
behavior using a popup menu. Highlight the area around
the icon more like a menu too, by playing with the applet's
size requisition
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1303 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* libnm-util/dbus-helpers.c
libnm-util/dbus-helpers.h
- (nmu_create_dbus_error_message): rename parameter 'namespace'
to 'exception_namespace' (:namespace is a keyword in C++)
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1301 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerPolicy.c
- (nm_policy_device_change_check): don't autoswitch away from
Ad-Hoc networks, since there's really no concept of "link"
* src/nm-dbus-nm.c
- (nm_dbus_nm_create_wireless_network): mark created networks
as Ad-Hoc networks
* src/nm-device-802-11-wireless.c
- (real_activation_success_handler): add user-created Ad-Hoc
networks to the device's scan list
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1300 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-ap-security.c
src/nm-ap-security.h
- Add a user_created argument to the write_supplicant_config
functions
* src/nm-ap-security-wep.c
src/nm-ap-security-wpa-psk.c
src/nm-device-802-11-wireless.c
- Make Ad-Hoc mode somewhat work, at least write the
correct options to wpa_supplicant
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1298 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
(forgot to commit ChangeLog with changes)
* include/NetworkManager.h
- Add NMI_DBUS_USER_KEY_CANCELED_ERROR as a constant for
applet/info-daemons
* gnome/applet/passphrase-dialog.c
- Use the constant. Fixes a bug where the arguments to
dbus_message_new_error() were incorrect
* src/nm-dbus-nmi.c
- Use the constant
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1290 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-11-wireless.c
- Add a link timeout so we allow the supplicant time to
reassociate if it can, before we deactivate the card
- Fix up link status and link updating so things work better
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1288 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-11-wireless.c
- Switch over to using wpa_supplicant
- Add a timeout of 10s for association of the supplicant
- Start the monitor callback of the supplicant
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1286 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-private.h
src/nm-device.c
- (nm_device_activate_schedule_stage3_ip_config_start): make this
function available to subclasses
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1283 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* 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
* src/NetworkManagerDevice.c, src/NetworkManagerDevice.h,
src/NetworkManagerDevicePrivate.h, src/NetworkManagerWireless.c,
src/NetworkManagerWireless.h: Remove, no longer used and they keep
showing up in my greps.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1278 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* gnome/applet/applet-dbus-devices.c,
gnome/applet/other-network-dialog.c, gnome/applet/wso-none.c,
libnm-util/dbus-helpers.c, libnm-util/dbus-helpers.h,
src/nm-dbus-nm.c: Fix several issues. 'Connect to Other' and 'Create
New Network' both failed in the non-encrypted case because we were
not appending the security options to the DBUS message. And
'Connect to Other' was also failing in the encrypted case because
we were not incrementing to the next DBUS parameter. All fixed.
Thanks to dcdw for some debugging help.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1276 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* gnome/applet/applet-dbus-devices.c, gnome/applet/applet.c,
gnome/applet/applet-dbus-devices.h, src/nm-dbus-nm.c: Remove global
hangup code and add per-device hangup. Tie last commit into the
GNOME applet. TODO: Save, understand, and respond to the state of
each dialup device.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1273 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* gnome/applet/applet-dbus-devices.c,
gnome/applet/applet-dbus-devices.h, gnome/applet/applet.c,
src/nm-dbus-nm.c: Expose a menu item for hanging up active dialup
connections.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1269 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
First dump of wpa_supplicant-related code. It's not hooked up to
anything yet though. Thanks to Kay Sievers for
wpa_supplicant_wrapper.c, which formed the basis for this work,
and to Jouni Malinen for writing wpa_ctrl.c and wpa_ctrl.h.
* src/Makefile.am
src/wpa_ctrl.[ch]
- Add wpa_ctrl stuff from wpa_supplicant so we can talk to it
* src/NetworkManagerUtils.[ch]
- (nm_utils_supplicant_request, nm_utils_supplicant_request_with_check):
Add convenience functions for talking to wpa_supplicant
* src/nm-ap-security.[ch]
src/nm-ap-security-wep.c
src/nm-ap-security-wpa-psk.[ch]
- Update and implement real_write_supplicant_config functions
in all security types
- (nm_ap_security_wpa_psk_new_from_ap): implement in
nm-ap-security-wpa-psk.c
* src/nm-device-802-11-wireless.c
- (supplicant_cleanup, supplicant_watch_cb, supplicant_monitor_status_cb,
wpa_supplicant_start, wpa_supplicant_interface_init,
wpa_supplicant_send_network_config): add functions to talk to
wpa_supplicant and write network config to it
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1267 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerDialup.h: add 'type' field and NM_DIALUP_TYPE
values so that distribution-backends can differentiate between the
various types (modem, ISDN, et cetera) of dialup device that they
support.
* src/backends/NetworkManagerSuSE.c: perform isdnctrl on interface, as
needed.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1265 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Patch by Preggna S:
* src/NetworkManagerSystem.c, src/vpn-manager/nm-vpn-connection.c:
IPsec does not require that a VPN client be bound to an interface,
due to the use of the in-kernel IPSec bits. So make the tunnel
device optional.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1258 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerAP.c
- (nm_ap_add_capabilities_from_ie): presume no WEP unless
the WPA IE specifies that WEP is supported
* src/nm-device-802-11-wireless.c
- (process_scan_results): don't mark an AP as supporting WEP
if there's already other encryption capability info
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1256 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/dhcp-manager/nm-dhcp-manager.c
- Recognize activation cancellation when waiting for DHCP
configuration from dhcdbd
- Ignore non-dhcdbd messages
* src/nm-device.c
- (real_act_stage3_ip_config_start): return to correct behavior
of letting the dhcp-manager notify us of failure or
success rather than incorrectly doing that ourselves
- (nm_device_activate_stage4_ip_config_get): deal with
activation cancellation a bit earlier
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1253 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-11-wireless.c
src/nm-device.[ch]
- Add hooks to subclasses for stage3_ip_config_start and
stage4_ip_config_timeout
* src/nm-device-802-3-ethernet.c
- (real_get_generic_capabilities): make devices NM-supported
by default
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1251 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/backends/NetworkManagerSuSE.c: update to newer API (no more
nm_device_get_hw_address); use inet_aton in lieu of inet_addr as the
latter cannot differentiate between error and the address -1; misc.
clean up.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1250 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManager.c
- Move link-checking/probing into the device subclasses
themselves
* src/nm-device.[ch]
src/nm-device-802-11-wireless.c
src/nm-device-802-3-ethernet.c
- Do periodic link checking in device subclasses rather
than being triggered from NetworkManager.c
- discover_wireless_capabilities -> get_wireless_capabilities
- discover_generic_capabilities -> get_generic_capabilities
- Device subclass activation routines now return a value of type
NMActStageReturn to indicate what step to perform next
- Devices now override stage4_get_ip4_config if they choose
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1249 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-11-wireless.c
- (real_init): don't chain up to parent init because we don't
need to do that anymore
* src/nm-device.c
- (discover_device_type): fix arguments to ioctl() to correctly
pass interface name
- (nm_device_new): consolidate generic device initialization into
nm_device_new()
- (real_init): remove, consolidated to nm_device_new()
- (nm_device_deactivate, real_deactivate): consolidate
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1247 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-activation-request.c
- Change dhcp_state member of the NMActRequest structure
from guint8 to guint32
* src/dhcp-manager/nm-dhcp-manager.[ch]
- (nm_dhcp_manager_get_state_for_device): return guint32 rather
than guint8 to match the dbus argument. Turns out we were
overwriting memory since we were passing in only a guint8
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1245 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
* include/NetworkManager.h
- Add NM_802_11_CAP_PROTO_NONE since we need to recognize
between networks that don't have any encryption at all
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1241 4912f4e0-d625-0410-9fb7-b9a5a253dbdc