Patch from Helmut Schaa <hschaa@suse.de> (and more bits from me)
* src/NetworkManagerAP.c
src/NetworkManagerAP.h
libnm-glib/nm-access-point.c
libnm-glib/nm-access-point.h
- Make 'rate' property a guint32 to better match with WEXT and
wpa_supplicant and to allow representation of higher bitrates
* src/nm-device-802-11-wireless.c
introspection/nm-device-802-11-wireless.xml
libnm-glib/nm-device-802-11-wireless.c
libnm-glib/nm-device-802-11-wireless.h
- Make 'bitrate' property a guint32 to match AP 'rate' property type
* src/nm-device-802-3-ethernet.c
src/nm-device-802-3-ethernet.h
introspection/nm-device-802-3-ethernet.xml
libnm-glib/nm-device-802-3-ethernet.c
libnm-glib/nm-device-802-3-ethernet.h
- Make 'speed' property a guint32 to match other speed/rate types
- Make nm_device_802_3_ethernet_get_speed() static
* test/nm-tool.c
- Update for the changes above
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3030 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerAP.c
src/NetworkManagerAP.h
- Rename 'articifical' -> 'fake' since that's what they are until
noticed in scans
- (nm_ap_new_fake_from_connection): new function to create a 'fake' AP
from the attributes in an NMConnection object
- (security_compatible): better handle Dynamic WEP and LEAP; handle
WPA Enterprise
- (nm_ap_match_in_list): find a matching AP in a scan list
* src/nm-device-802-11-wireless.c
- (get_active_ap): add an 'ignore_ap' argument to ignore a specific
AP when searching the scan list; match on frequency and mode too
- (nm_device_802_11_wireless_get_frequency): implement
- (merge_scanned_ap): replace duplicate matching logic with
nm_ap_match_in_list()
- (real_act_stage1_prepare): handle a NULL specific object; ie where
the user is trying to connect to a hidden network that is not yet
known from the scan list
- (activation_success_handler): now that the card knows the AP's BSSID,
there may already be a scanned AP in the scan list that is what
we really wanted to connect to, but didn't know at the time. Use
that instead of the 'fake' AP created at activation start and get
rid of the 'fake' AP
- (cull_scan_list): don't remove fake APs
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2993 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerAP.h
src/NetworkManagerAP.c
- (nm_ap_has_manufacturer_default_ssid): remove, unused. User clients
should handle default SSIDs and whether or not to autoconnect
to them
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2955 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerAP.c
src/NetworkManagerAP.h
introspection/nm-access-point.xml
- Change strength-changed signal into a properties-changed signal
for all properties, not just strength. Export that signal over dbus
so listeners don't have to poll NM for changes.
- (nm_ap_export_to_dbus, nm_ap_new): not every NMAccessPoint should
get exported over D-Bus, so break up the logic and let other bits
decided when to export the AP
- (nm_ap_new_from_ap): remove, unused
* src/nm-device-802-11-wireless.c
- (merge_scanned_ap): only export APs that are actually on the device
list, not every AP created internally
* libnm-glib/nm-access-point.c
libnm-glib/nm-access-point.h
- Cache properties internally and only hit DBus when needed. Get
property updates from NM signals
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2825 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerAP.c
src/NetworkManagerAP.h
introspection/nm-access-point.xml
- Change 'freq' property to a guint32 instead of a double since we
weren't using the floating point bits anyway
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2780 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* include/NetworkManager.h
- Kill NMNetworkType; AP types don't matter any more
* src/NetworkManagerAPList.c
src/NetworkManagerAPList.h
src/Makefile.am
- Kill; NMAccessPointList has outlived it's usefulness
* src/NetworkManagerAP.c
src/NetworkManagerAP.h
- (match_cipher, security_compatible, nm_ap_check_compatible): new
functions; check if an NMConnection object is compatible with the
settings of this AP
- (freq_to_channel, channel_to_freq): utility functions for
channel <-> frequency conversion
* src/nm-device.c
src/nm-device.h
- (nm_device_get_best_connection): pass the specific object around
(which might be the object path of a specific AP to connect to).
The get_best_connection() call should populate this on return
if needed (wireless does).
* src/nm-device-802-3-ethernet.c
- (real_get_best_connection): handle specific_object argument
* src/NetworkManager.c
src/NetworkManagerMain.h
- Remove unused includes
* src/nm-device-802-11-wireless.c
src/nm-device-802-11-wireless.h
- Convert the ap_list into a GSList from an NMAccessPointList
- No need for caching the 'activation_ap' since this is now determined
from the specific_object of the activation request, which is
populated from the get_best_connection() call or from a user request
- (nm_device_802_11_wireless_update_bssid): fix warning
- (get_wireless_capabilities): fix error message format arguments
- (nm_device_802_11_wireless_copy_allowed_to_dev_list): remove, unused
- (find_best_connection, real_get_best_connection): implement
- (ap_list_get_ap_by_ssid, nm_device_802_11_wireless_ap_list_print):
move here from NetworkManagerAPList
- (ap_need_secrets): remove; moved to nm-connection.c where it belongs
- (real_act_stage1_prepare): just ensure an AP exists, connection is
already verified earlier
- (real_act_stage2_config): use nm_connection_need_secrets()
* src/NetworkManagerPolicy.c
- (nm_policy_auto_get_best_device): handle specific objects
- (create_connection): remove; automatic connection creation functionality
is handled by the Connection objects
- (nm_policy_device_change_check): handle specific_object
* libnm-util/nm-connection.c
- (wireless_sec_need_secrets, nm_connection_need_secrets): implement
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2778 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerAP.c
src/NetworkManagerAP.h
- Remove 'fallback' tag, to be replaced by NMConnection/NMSettings
'autoconnect' property instead
* src/NetworkManager.c
src/NetworkManagerMain.h
src/NetworkManagerPolicy.c
src/NetworkManagerPolicy.h
- Remove the 'allowed_ap_list', which should be replaced by
NMConnection/NMSettings instead, since _those_ are the allowed
things that NM can connect to
* src/nm-device-802-11-wireless.c
- Remove both allowed_ap_list usage and 'fallback' checking
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2740 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Remove NMAPSecurity objects, they are replaced with flags on the APs for
each AP's capabilities, and by NMConnection/NMSettings objects for user
defined connections.
* include/NetworkManager.h
- Redefine 802.11 security properties. There are now device capabilities
and AP flags and AP security flags. It was way to unclear before.
* src/Makefile.am
src/nm-ap-security-leap.h
src/nm-ap-security-leap.c
src/nm-ap-security-wpa-eap.c
src/nm-ap-security-wpa-eap.h
src/nm-ap-security-private.h
src/nm-ap-security-wpa-psk.c
src/nm-ap-security-wpa-psk.h
src/nm-ap-security-wep.c
src/nm-ap-security-wep.h
src/nm-ap-security.c
src/nm-ap-security.h
- Removed, to be replaced with NMConnection/NMSettings objects
* src/nm-dbus-nmi.c
src/nm-dbus-nmi.h
- Removed, to be replaced by code that talks to the new info daemon
interface and gets NMConnection/NMSettings objects
* src/backends/NetworkManagerSuSE.c
- Remove usage of NMAPSecurity; should be replaced by a system-level
info-daemon that does the same thing but talks the new info-daemon
D-Bus interface
* src/NetworkManagerAP.h
src/NetworkManagerAP.c
src/NetworkManagerAPList.c
libnm-glib/libnm-glib-test.c
- Remove usage of NMAPSecurity objects and adjust to new flags for
WPA/RSN
* libnm-glib/nm-access-point.c
libnm-glib/nm-access-point.h
introspection/nm-access-point.xml
test/nm-tool.c
- Adjust to new flags for AP security
* utils/nm-utils.c
utils/nm-utils.h
src/vpn-manager/nm-dbus-vpn.c
- Remove D-Bus pending call stuff from nm-utils and put it in the VPN
stuff which is the only place it's used
* src/nm-device-interface.c
src/nm-device-interface.h
introspection/nm-device.xml
src/nm-activation-request.c
src/nm-activation-request.h
src/nm-device.c
- Add a new 'specific_object' argument that hints to NM what actual
AP or other device-specific thing the connection should apply to.
NMConnection objects can apply to more than one actual device/AP.
* libnm-util/nm-connection.c
* libnm-util/nm-connection.h
- Add 'have_secrets" call stubs
* libnm-util/cipher.h
- Move NM_AUTH_TYPE_* defines here for now
* src/nm-device-802-11-wireless.c
- Remove usage of NMAPSecurity, to be replaced with NMConnection/
NMSettings objects
* src/NetworkManagerDbus.c
* src/NetworkManagerPolicy.c
- Remove usage of update_allowed_networks, should be pushing data in
a different manner
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2738 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerAP.c
* src/NetworkManagerAP.h
- (nm_ap_print_self): new function
* src/NetworkManagerAPList.c
- (nm_ap_list_print_members): call nm_ap_print_self() rather than trying
to do it all here
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2715 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/vpn-manager/nm-dbus-vpn.c (dbus_message_handler): Implement DBUS message
handler for VPN.
* src/vpn-manager/nm-vpn-manager.c (nm_vpn_manager_new): Register VPN interface
on DBUS again.
2007-03-26 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerAPList.c
* src/nm-device-802-11-wireless.c
* src/NetworkManagerAP.c:
- Store last seen as glong instead of GTimeVal.
- Fix the upper bound of capabilities, it's a bitfield.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2500 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-11-wireless.c (constructor): Initialize the iw_ext structures
with zeroes before passing them to functions - the functions never do that and
reading the values back may produce wrong values.
(real_bring_up): Store the signal handler id ...
(real_bring_down): ... So that it can be removed here.
Disconnect the supplicant interface here as well.
(nm_device_802_11_wireless_ap_list_get_ap_by_obj_path): Use the dbus object path
from the access point instead of old $device/Networks/$essid.
* src/nm-manager.c (nm_manager_get_state): Return NM_STATE_CONNECTED when the
device state is connected (instead of just having link/carrier).
* src/nm-activation-request.c: Don't store NMData in activation request, it's
already easily accessible through the device.
* src/NetworkManagerAP.c (nm_ap_init): Construct the dbus object path here and
store it within the object.
(nm_ap_get_dbus_path): Export it to public as well.
* src/dhcp-manager/nm-dhcp-manager.c (nm_dhcp_manager_get): Keep the ownership
of the singleton.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2478 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/vpn-manager/nm-vpn-manager.c: Handle the DBUS state changes itself.
Handle device state changes and disconnect VPN if it's device deactivates.
* src/nm-dbus-nm.c:
* src/nm-dbus-nm.h:
* src/nm-dbus-device.c:
* src/nm-dbus-device.c:
* src/nm-dbus-net.c:
* src/nm-dbus-net.h: Remove. All of it is implemented byt the new dbus API.
* src/NetworkManagerMain.h: Get rid of all but 3 properties of NMData.
* src/nm-device.c (nm_device_get_by_udi):
(nm_device_get_by_iface): Remove. This doesn't belong here and is already
implemented in the correct location (NMManager).
Rip out all the test_device stuff.
* src/NetworkManagerPolicy.c: Remove the leftover activation success and
failure handlers, it's all done by NMDevice already.
* src/NetworkManager.c: Move the signal handling here from nm-logging.c
Remove the iochannel hack to route the unix signals to the main thread since
we're not threaded anymore.
* src/NetworkManagerAP.c: Implement HWAddress property.
* src/NetworkManagerDbus.c: Remove the dbus signal sending code, it happens
automatically with dbus-glib.
* src/nm-netlink-monitor.c:
* src/nm-netlink-monitor.h:
- Move it low in the class hierarchy, don't reference any NM types.
- Remove private data from the header.
- Use type safe checks in public API methods.
- Make it a singleton so we don't have to pass the single reference around.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2339 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* introspection/nm-ip4-config.xml: Implement.
* libnm-glib/libnm-glib-test.c: Use new DBUS API in tests.
* libnm-glib/nm-ip4-config.c:
* libnm-glib/nm-ip4-config.c: Implement.
* src/nm-ap-security[-*]: Remove circular dependencies between APs and AP
securities. APs reference security.
* src/nm-device-802-11-wireless.c: Implement missing properties that need to
be exported over DBUS.
* src/nm-device-802-3-ethernet.c: Ditto.
* src/NetworkManagerAP.c:
* src/NetworkManagerAP.h:
- Convert to GObject, export over DBUS.
* src/nm-ip4-config.h:
* src/nm-ip4-config.h:
- Convert to GObject, export over DBUS.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2322 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Make NMDevice abstract class, remove almost all references to it's
subclasses (the last place gets removed with new policy manager). Add
NMDeviceInterface (which NMDevice implements) so that when we have
NMDevice exported over DBUS, there's a common NMDevice interface which
all instances have, plus there's a device specific interface for each
specific type.
Remove functions (nm_device_is_802_3_ethernet) and
(nm_device_is_802_11_wireless). There are already standard GObject macros
for type safe checks.
Use the updated supplican manager API.
* src/nm-device-interface.h:
* src/nm-device-interface.c:
* src/nm-call-store.h:
* src/nm-call-store.c: Implement.
* src/supplicant-manager/nm-supplicant-interface.c:
* src/supplicant-manager/nm-supplicant-interface.h:
* src/supplicant-manager/nm-supplicant-manager.c:
* src/supplicant-manager/nm-supplicant-manager.h:
- Remove all private data type references from public header files.
- Remove all references to other NM classes, this class is just a
proxy between wpa_supplicant and NM so it doesn't have to know
any internals.
- Convert to dbus-glib bindings.
- Type safe checks for public methods' arguments.
- Store pending DBUS call ids to NMCallStore.
* src/supplicant-manager/nm-supplicant-config.c:
- Store config values in a GHashTable instead of GSList.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2285 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Add 'fallback' support. NetworkManager will attempt to brute-force
connect to networks marked as fallback if there are no better wireless
connections available. This is useful as a method of last resort, to
work around driver problems, and for use with hidden networks.
* gnome/applet/applet-dbus-devices.c,
gnome/applet/applet-dbus-devices.h: Add fallback parameter.
* gnome/applet/applet-dbus-info.c: Retrieve fallback bit from Gconf and
pass it on via DBUS.
* gnome/applet/applet.c: No fallback by default.
* gnome/applet/applet.glade, gnome/applet/other-network-dialog.c:
Update other-network-dialog to add UI checkbox toggling fallback.
* src/NetworkManagerAP.c, src/NetworkManagerAP.h: Remove "trusted"
propery from AP object. Add "fallback" property to AP object.
* src/nm-dbus-nm.c: Grab the fallback parameter via DBUS.
* src/nm-dbus-nmi.c: Grab the fallback parameter via DBUS.
* src/nm-device-802-11-wireless.c: Break out blacklist logic into
separate function. Add get_best_fallback_ap() for returning an AP
on which to attempt fallback.
* src/backends/NetworkManagerSuSE.c: Set stored network as fallback.
* test/nm-set-fallback: New file. Sets a given network as fallback.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1814 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
Fix problem since change to "deal with APs changing settings on us," checked
in on the fifth of February in the year of the dog, wherein connecting to
non-broadcast encrypted networks always fails because nm_ap_get_encrypted()
always returns FALSE, even when the user provided a key, because the
newly-created fake AP does not have any capabilities set, which is a sypmtom
of security settings not matching capabilities (Novell bug #150787):
* src/NetworkManagerAP.c, src/NetworkManagerAP.h: Add new interface,
nm_ap_add_capabilities_from_security(), which sets the given AP's
capabilities off the given security settings. Also improve our handling of
capabilities w.r.t. NM_802_11_CAP_PROTO_NONE and NM_AUTH_CIPHER_AUTO.
* src/nm-device-802-11-wireless.c: Call nm_ap_add_capabilities_from_security
to ensure that capabilities match newly updated security settings.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1470 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerAP.c: Add 'broadcast' property to the NMAccessPoint
structure, which denotes whether or not the AP is hidden. This is a
superset of 'artificial' -- we need 'broadcast' because a hidden AP
can show up in the scan list. Add nm_ap_get_broadcast() and
nm_ap_set_broadcast() accessor interfaces.
* src/NetworkManagerAP.h: Add prototypes for nm_ap_get_broadcast() and
nm_ap_set_broadcast().
* src/nm-dbus-net.c: Add new argument, boolean broadcast, to the
"getProperties" method, which denotes whether or not the given
network is hidden.
* src/nm-device-802-11-wireless.c: Set broadcast to FALSE when creating
an artificial network. Set broadcast to TRUE when scanning returns
an ESSID and FALSE when not.
* gnome/applet/applet-dbus-devices.c: Retrieve 'broadcast' argument
from "getProperties" method on a network. Possible TODO is to
somehow display this.
* test/nm-tool.c: Display "Hidden" if the AP does not broadcast.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1429 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerAP.[ch]
- (nm_ap_new_from_ap): copy original essid too
- (nm_ap_unref): free original essid
- (nm_ap_get_orig_essid): new function
- (nm_ap_set_essid): Convert essid to UTF-8 for display and dbus,
but keep original essid around too
* src/nm-device-802-11-wireless.c
- (supplicant_send_network_config): send wpa_supplicant the
_original_ essid, and not as a string, but in hex. Should
allow us to connect to more APs that use wierd character
encodings for their essids
* utils/nm-utils.[ch]
- (nm_utils_essid_to_utf8): make a best-effort to convert the essid
to UTF-8. If it's not already valid UTF-8, we check LANG and
use the current locale as a hint for what encoding the essid
might be in. Obviously not 100% accurate, but the idea here is
that if a user's locale is ex. ja_JP, they are more likely than
not to be in Japan, where access points will likely be in some
Japanese encoding.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1385 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerAP.[ch]
- (nm_ap_get_matched, nm_ap_set_matched): remove
* src/NetworkManagerAPList.[ch]
- (nm_ap_list_diff): removed
- (nm_ap_list_merge_scanned_ap): move AP dbus signal logic here,
deal with access points changing essids on us
* src/nm-device-802-11-wireless.c
- (add_new_ap_to_device_list): move AP dbus signal logic to
src/NetworkManagerAPList.c
- (real_can_interrupt_activation): new function; allow interruption
of device activation if we are waiting for a network key
* src/NetworkManagerPolicy.c
- (nm_policy_device_change_check): allow interruption of currently
activating devices if the device allows it. Previous behavior
would refuse to activate a just-plugged wired device if a
wireless device was waiting for a key.
* src/nm-device.[ch]
- (nm_device_can_interrupt_activation): new function; ask devices
whether their activation can be interrupted
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1375 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
* gnome/applet/nm-gconf-wso*
- Make the serialize functions return gboolean
rather than int
* gnome/applet/nm-gconf-wso.c
- (nm_gconf_wso_dispose, nm_gconf_wso_finalize): fix up
parent class handling so we don't segfault
* src/NetworkManagerAP.[ch]
- (nm_ap_get_capabilities): new function, return capabilities
now that something can use them
- (nm_ap_set_encrypted): assume that an access point supports
both WEP104 and WEP40 if its set encrypted. FIXME: can
we even tell whether it just supports WEP40?
* src/NetworkManagerDevice.c
- (ap_need_key): resurrect and update for the New World Order
- (nm_device_wireless_get_activation_ap): if we're not given
security info to use, create some based on access point
capabilities
* src/nm-ap-security-wep.c
- (nm_ap_security_wep_new_from_ap): create a new object
based on a certain access point's capabilities
* src/nm-ap-security.c
- (nm_ap_security_new_from_ap): delegate creation of a new
object based on access point capabilities to a subclass
- (nm_ap_security_copy_properties): don't segfault if we
don't have a key yet
* src/nm-dbus-nm.c
- (nm_dbus_nm_set_active_device): provide more informative
output when errors occur. Also construct security info
for a given access point if we weren't given any
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1219 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
* Exorcise encryption key hashing on APs
* Use libnm-util's serialization/deserialization in both the
applet and NM
* Random other stuff
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1198 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* include/NetworkManager.h
src/NetworkManagerWireless.c
- Rearrange 802.11 wireless-specific capabilities again
* src/Makefile.am
- Forgot to add wpa.c/wpa.h to the makefiles
* src/NetworkManagerAP.[ch]
- Implement access point capabilities and parse the
WPA/RSN IEs into the capability bitfield
- Switch the "encrypted" attribute to utilize the bitfield
and capabilities rather than being independent
* src/NetworkManagerDevice.c
- (nm_device_wireless_get_activation_ap): break it horribly
until we can push NMAPSecurity objects into access point
objects and through the activation chain
- Stuff WPA & RSN IEs into AP capabilities
* src/nm-dbus-nm.c
- Take a shot at actually making setActiveDevice work
* src/wpa.[ch]
- Make the API a bit saner
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1191 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* include/NetworkManager.h
- Add 802.11-specific capability for 802.1x key
management
* src/wpa.[ch]
- Pull in WPA IE and RSN IE parsing code from
wpa_supplicant so we can determine access point
capabilities
- Move WPA-related constants here from NetworkManagerAP.h
and NetworkManagerDevice.c
* src/NetworkManagerDevice.c
src/NetworkManagerAP.[ch]
- Use WPA-related constants from wpa.h
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1190 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* libnm-util/cipher-wep-passphrase.c,
libnm-util/cipher-wpa-psk-passphrase.c, src/NetworkManagerAP.c,
src/NetworkManagerAP.h, src/NetworkManagerDevice.c,
src/NetworkManagerWireless.c, src/NetworkManagerWireless.h: Treat
all WEP/WPA keys as "char *" and not explicitly signed or unsigned.
When handling keys, we don't care what the sign is. The compiler
guarantees us that we get our 8-bits, which is all we care about.
* configure.in: Remove "-Wno-pointer-sign" flag. We are sign-aware!
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1172 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* gnome/applet/applet-dbus-info.c, include/NetworkManager.h,
src/NetworkManagerAP.c, src/NetworkManagerAP.h,
src/NetworkManagerAPList.c, src/NetworkManagerDbus.c,
src/NetworkManagerDevice.c, src/NetworkManagerDevice.h,
src/nm-dbus-nm.c: Convert NM_DEVICE_AUTH_METHOD_* to use the
wireless-tools constants directly. UNKNOWN is now -1 and NONE is
zero.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1144 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
Move scanning code into NetworkManager rather than use iwlib's
iw_scan() function, so that we can figure out AP capabilities.
* NetworkManager.h
- Add AP capability bits
* src/NetworkManagerAP.[ch]
- Add capability field to NMAccessPoint structure
- Add WPA & RSN Information Element fields and accessor
functions to NMAccessPoint
* src/NetworkManagerDevice.c
- Remove usage of iw_scan
- Add scanning code to NetworkManager rather than use
iw_scan() from iwlib
* src/NetworkManagerUtils.[ch]
- (nm_dispose_scan_results): remove, unused
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1023 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerAP.c:
* src/NetworkManagerAP.h:
* src/NetworkManagerDevice.c:
Set a blacklist for certain common manufacturer default ESSIDs:
APs with these ESSIDs are extremely likely to be completely
different networks: connecting to one should not make NM
auto-connect to every other AP with the same default ESSID.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@963 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* gnome/applet/applet-dbus-info.c
gnome/applet/applet-dbus-info.h
- (nmi_dbus_update_network_auth_method->nmi_save_network_info): generalize
to store key, key type, and auth method rather than just auth method
- (nmi_dbus_update_network_info): new function
- (nmi_dbus_info_message_handler): updateNetworkAuthMethod -> updateNetworkInfo
* gnome/applet/passphrase-dialog.c
- (nmi_passphrase_dialog_ok_clicked): call nmi_save_network_info() instead
of saving the info ourselves
* gnome/libnm_glib/libnm_glib.c
- Remove the stupid version check for dbus
* src/NetworkManagerAP.c
src/NetworkManagerAP.h
- (nm_ap_get_enc_key_source): return 'const char *' rather than 'char *'
* src/NetworkManagerDbus.c
src/NetworkManagerDbus.h
- (nm_dbus_update_network_auth_method -> nm_dbus_update_network_info): Update
more than just the auth method
* src/NetworkManagerDevice.c
- Update network info at the appropriate times
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@817 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
* 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
* 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
Patch from Tom Parker
* Add autoip/Link Local Addressing support when we fail to get a DHCP
address
* Longer pause after setting ESSID on cards that support a larger number
of channels to give the card time to find the right channel
* Add system hook to restart mDNSResponder (or whatever the local implementation
of Multicast DNS is) when we activate interfaces
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@341 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
* 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/NetworkManagerAP.[ch]
- Add "artificial" get/set functions, set for APs that
aren't discovered as part of a scan but instead
discovered by force-setting the ESSID
* src/NetworkManagerDevice.[ch]
- (nm_device_wireless_network_exists): pass back whether
or not the discovered AP was encrypted. Also, try
falling back to encrypted mode on the card if unencrypted
association doesn't work
- (nm_device_find_and_use_essid): If the network requested
did in fact exists, but it wasn't in our scan list, add
an "artificial" entry for it. Some Cisco cards don't
see non-ESSID-broadcasting APs in their scan but can still
associate with them if you know the ESSID, this works around
that behavior
- (nm_device_do_normal_scan): Carry "artificial" APs over from scan
to scan if the card is currently associated with that AP
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@244 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
* info-daemon/NetworkManagerInfo.[ch]
info-dameon/NetworkManagerInfoDbus.[ch]
info-daemon/NetworkManagerInfoPassphraseDialog.[ch]
- Preserve original label text in the passphrase dialog so that
it actually gets updated with the new network name the next
time around. Previously, we were overwriting it so you'd get
the wrong network name to enter a key for
- Add a "Key Type" combo to the passphrase dialog, user selects
encryption key type now, type is stored in GConf too
- Adjust NM<->NMI DBUS protocol to pass the key type back to NM too
* src/NetworkManagerAP.[ch]
- Remove all the encyption method magic. It's now set by the user
and NetworkManager retrieves the type of encryption key from
NetworkManagerInfo
* src/NetworkManagerAPList.[ch]
src/NetworkManagerDbus.[ch]
- Adjust to new way of setting encryption key and method
- Pull encryption method down from NMI along with key
* src/NetworkManagerDevice.[ch]
- Removed encryption method fallback magic as the method is now
determined by the user. This greatly simplifies the connection
logic.
- More robust connection/link logic. Besides removing the encryption
method fallback magic, check whether or not the card is receiving
invalidly encrypted packets, which usually indicates that we have
a bad WEP key set.
- Don't blindly forge ahead when DHCP fails (still not completely fixed)
* test/nminfotest.c
- Test out new "Key Type" stuff in the NMI passphrase dialog
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@195 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* TODO: fix typo
* docs/NetworkManager DBUS API.txt
- Update for new signal strength changes
* panel-applet/NMWirelessApplet.c
- Make panel icon show strength of the current connection
- Cleanups and memleak fixes
* panel-applet/NMWirelessApplet.h
- Add data members for signal strength on devices and networks
* panel-applet/NMWirelessAppletDbus.c
- Free more DBusErrors
- Update for new signal strength changes
- Make devices and networks more like real objects, use ref/unref methods
- Actually unlock the mutex when updating the active device
* src/NetworkManagerAP.c
- Change AP functions and data members from "quality"->"strength"
* src/NetworkManagerDbus.c
- Kill "getMaxQuality" and "getQuality" methods
- Add "getStrength" methods for Networks and Devices
* src/NetworkManagerDevice.[ch]
- Add accessors for device strength
- Add functions to update strength for a device. Note that not all drivers
actually support signal strength for scanned access points (Atmel drivers
being one)
- Calculate signal strength for each AP during scan
* src/NetworkManagerWireless.[ch]
- Add function to return signal strength % from a device and a raw quality struct
* test/nmclienttest.c
- Update for new signal strength changes
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@156 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* 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
* src/NetworkManagerDbus.c (nm_dbus_get_network_timestamp): Return
a GTimeVal instead of time_t. This is easier to work with,
since time_t may be a long or double, we don't know.
* src/NetworkManagerDbus.h: Update prototype.
* src/NetworkManagerAP.c (struct NMAccessPoint): Store a GTimeVal
instead of time_t.
(nm_ap_get_timestamp): Update to return GTimeVal.
(nm_ap_set_timestamp): Update to take GTimeVal.
* src/NetworkManagerAPList.c (nm_ap_list_update_network): Handle
GTimeVal change.
(nm_ap_list_print_members): Fix warnings in printf format.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@103 4912f4e0-d625-0410-9fb7-b9a5a253dbdc