Implement deferred activation support in the device class.
* src/nm-device-interface.c
src/nm-device-interface.h
- (nm_device_interface_activate): take more arguments to support
deferred activation; callers must pass one of (connection) OR
(service_name, connection_path)
- (impl_device_activate): connection validation is punted to the device
to be able to handle deferred activation. Yes, this means errors
don't get returned from the Activate() dbus call, and yes, that
should be fixed somehow later.
* src/nm-device.c
src/nm-device.h
- (clear_act_request): clear additional deferred activation stuff too
- (deferred_activation_timeout_cb): new function; clean up when
deferred activation times out.
- (deferred_activation_start_cb): new function; when the connection
finally becomes available, start device activation
- (nm_device_activate): attach to the right signals of the activation
request if we need to defer activation until the connection is valid
* src/NetworkManagerPolicy.c
- (nm_policy_device_change_check): update for additional arguments
required for nm_device_interface_activate(). Pass NULL for these
though because this function already knows exactly which
NMConnection to use
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2812 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Implement deferred activation handling in the NMActRequest class. When a
client wants to activate a device but must create the NMConnection details
on the fly, there likely hasn't been enough time yet for NM to receive the
new connection signal and grab all the connection details. So the
activation is deferred (and bounded by a timer) for a while, and if the
connection appears within the window, it is activated.
* src/nm-activation-request.c
src/nm-activation-request.h
- (nm_act_request_class_init): two new signals to support deferred
activation, to allow the listener to handle both timeout and success
- (nm_act_request_new_deferred): new function, starts the deferred
activation timeout handler and listens to the NMManager for
new-connection signals to notice when the connection comes in
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2811 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-manager.h
src/nm-manager.c
- (nm_manager_get_connection_service_name,
nm_manager_get_connection_dbus_path): get details about a connection
known internally by the NMManager
- (nm_manager_class_init): fix connection add/remove signal marshalers
because NMConnection is now a GObject subclass
- Use constant for the gobject data tag used on NMConnection objects for
storing the associated DBusGProxy
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2810 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-3-ethernet.c
- (real_bring_down, nm_device_802_3_ethernet_dispose): disconnect from
netlink monitor carrier signals on dispose, not bring down. The
carrier signals should be handled over the entire lifetime of the
device anyway, not created/destroyed on up or down.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2802 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/vpn-manager/nm-vpn-connection.[ch]:
* src/vpn-manager/nm-vpn-manager.[ch]:
* src/vpn-manager/nm-vpn-service.[ch]: Rewrite the vpn handling
* code. Using
dbus-glib, GObjects, signals etc.
* libnm-glib/nm-vpn-manager.[ch]:
* libnm-glib/nm-vpn-connection.[ch]: Now that the NM
* implementation changed
so much, rewrite these too.
* libnm-glib/Makefile.am: Add new files to build, build new
* binding files for
the new introspection files.
* libnm-glib/nm-client.[ch]: Remove all VPN related stuff from
* here.
* libnm-glib/nm-dbus-utils.[ch]: Renamed from nm-utils.[ch] that
* was shadowing
the header with the same name from libnm-utils.
* libnm-glib/nm-vpn-plugin.[ch]: Implement.
* libnm-util/Makefile.am: Add nm-utils.[ch] to build.
* introspection/nm-vpn-plugin.xml: Implement.
* introspection/nm-vpn-connection.xml: Implement.
* introspection/nm-vpn-manager.xml: Implement.
* src/NetworkManagerSystem.c
* (nm_system_vpn_device_set_from_ip4_config): Remove
the named manager argument, it can just as easily get it as the
caller.
(nm_system_vpn_device_unset_from_ip4_config): Ditto.
* src/vpn-manager/nm-dbus-vpn.[ch]: Remove.
* src/nm-dbus-manager.h: Fix up the name_owner signal signature.
* src/dhcp-manager/nm-dhcp-manager.c (garray_to_string): Remove,
* use one from
libnm-utils.
* libnm-util/nm-connection.c: Ditto.
* src/NetworkManagerMain.h: Remove, it's finally empty.
* configure.in: Remove utils/ from build.
* include/NetworkManagerVPN.h: Add some more defines to reduce
* the amount
of hard-coded strings.
* utils/: Move it over to libnm-util.
* test/Makefile.am: Link against libnm-util now that util/ is
* gone.
* dispatcher-daemon/Makefile.am: Ditto.
* src/Makefile.am: Ditto.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2798 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Wireless connections can be made with config data from the applet now.
Yay.
* src/supplicant-manager/nm-supplicant-config.h
src/supplicant-manager/nm-supplicant-config.c
- (nm_supplicant_config_new): kill unused init parameter 'iface'
- (nm_supplicant_config_add_setting_wireless,
nm_supplicant_config_add_setting_wireless_security): new functions;
add key/value pairs from the settings objects to the supplicant
config
* src/nm-device-802-11-wireless.c
- (cull_scan_list): fix check to not prune currently associated AP
- (build_supplicant_config, real_act_stage2_config): call the functions
of the NMSupplicantConfig that parse settings objects rather than
doing it manually here
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2796 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/supplicant-manager/nm-supplicant-interface.c
src/supplicant-manager/nm-supplicant-marshal.list
- (nm_supplicant_interface_class_init): fix stupid mistake, the
"connection-error" signal arguments should be STRING not CHAR
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2795 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-manager.c
- (connection_get_settings_cb): emit connection-added signal
- (connection_removed_cb): uncomment bits for system settings service,
send connection-removed when appropriate
- (nm_manager_get_connection_secrets, get_secrets_cb): don't clobber
the stack by trying to g_object_set_data() on something that's
not a GObject; handle case where settings service returns
empty settings hash table
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2793 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-11-wireless.c
- (nm_device_802_11_wireless_new): s/index/idx, stupid system header
somewhere defines 'index' and I missed this one when I fixed the
shadow declaration errors earlier
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2786 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* libnm-util/nm-setting.c
libnm-util/nm-setting.h
- (nm_setting_update_secrets): new function; add a virtual function that
subclasses can implement to update their secrets
- (setting_wireless_security_update_secrets): implement that function
for the 802-11-wireless-security subclass
* libnm-util/nm-connection.c
libnm-util/nm-connection.h
- (nm_connection_update_secrets): update secrets for a Setting and
emit a signal on success
* src/nm-manager.c
src/nm-manager.h
src/nm-marshal.list
- (connection_get_settings_cb): enable system settings bits
- (nm_manager_get_connection_secrets, get_secrets_cb): add function
to request secrets from the settings dbus service and to
push those secrets to the NMConnection itself
* src/nm-activation-request.c
src/nm-activation-request.h
- Attach to the 'secrets-updated' signal of the NMConnection that's
currently being activated, and proxy that signal to other listeners.
Goes through the activation request because the activation request
is the thing that manages the lifetime of the NMConnection that's
being activated.
* src/nm-device-802-11-wireless.c
- (real_connection_secrets_updated): implement the connection secrets
updated notification and restart activation when secrets are
received
- (real_act_stage2_config): request secrets from the settings dbus
service if secrets are needed
* src/nm-device.c
src/nm-device.h
- (clear_act_request, nm_device_activation_cancel,
nm_device_deactivate_quickly, nm_device_dispose): consolidate places
where the activation request is cleared
- (nm_device_activate, connection_secrets_updated_cb): attach to the
updated secrets signal of activation request and add a function
that subclasses can override to handle it easily
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2782 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/nm-manager.c
- (query_connections): fix uninitialized variable problem that caused
segfault
- (nm_manager_add_device): take devices down on startup so that we can
be assured that nm_device_is_up() won't short-circuit the init
process. Hack until the is_up check gets split into two pieces
that aren't behaviorally confusing.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2777 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* introspection/nm-device.xml
- The 'Activate' method now takes 3 arguments, a service name for the
settings service (user or system), the object path of the connection
to activate, and the specific object to activate, if any
* src/nm-device-interface.c
- (nm_device_interface_error_quark, nm_device_interface_error_get_type):
Add error bits
- (impl_device_activate): adapt to new Activate arguments; validate
the service name and get the Connection object from the NMManager
before starting to activate the device with the specified connection
* src/nm-device-802-3-ethernet.c
- (real_get_best_connection): find the best connection, or create a
default one if no existing connections can be used
* src/NetworkManagerPolicy.c
- (nm_policy_auto_get_best_device): Get the device's best connection
and only pick the device if it has one
- (nm_policy_device_change_check): disable wireless bits for now until
wireless get_best_connection() can be implemented (replacing "best_ap");
don't create a default connection here as the device subclass will do
that if needed
* src/nm-manager.h
src/nm-manager.c
- (nm_manager_get): make NMManager a singleton and expose the getter
internally
- Rework internal NMManager connection handling to use the same
routines for both the system and user settings services. Most calls
take a new NMConnectionType argument specifying either system or user
connections
- (nm_manager_get_connection_by_object_path): new function; get a
connection keyed on its object path
* src/NetworkManager.c
- (main): use nm_manager_get()
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2776 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device.h
src/nm-device.c
- (nm_device_get_best_connection): new function; get best connection
for the device at that time
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2774 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Stupid mistake on my part; object path and interface for settings service
and connection objects can be the same, only the service name must be
different for the system and user settings services.
* include/NetworkManager.h
src/nm-manager.c
introspection/nm-settings-connection.xml
introspection/nm-settings.xml
libnm-glib/nm-settings.c
- (nm_connection_settings_init, query_user_connections,
new_connection_cb): Unify NetworkManagerSettings and Connection
interface name and object path
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2772 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-manager.c
- (nm_manager_user_connections_destroy): clear the user connections hash
table, don't destroy it
- (finalize): only destroy the hash table on NMManager finalization
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2765 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* include/NetworkManager.h
libnm-glib/nm-settings.c
- defines for the user settings daemon D-Bus bits
* src/NetworkManager.c
- Remove stuff that referred to the old NetworkManagerInfo service
* src/vpn-manager/nm-dbus-vpn.h
- Move old NMI defines to the only place they are used still
* libnm-util/nm-connection.c
libnm-util/nm-connection.h
src/nm-activation-request.c
- Make NMConnection a GObject subclass so we can do spiffy stuff with it
* src/nm-manager.c
src/nm-manager.h
- Get connections and their settings from the user settings daemon
at the appropriate times
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2763 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/Makefile.am
src/NetworkManagerDbus.c
src/NetworkManagerDbus.h
src/vpn-manager/nm-dbus-vpn.c
- Remove, no longer necessary. Move last bits to the only place its
used, in nm-dbus-vpn.c
* src/NetworkManagerAPList.c
src/nm-device.c
src/NetworkManager.c
src/nm-device-802-11-wireless.c
src/vpn-manager/nm-vpn-manager.c
src/vpn-manager/nm-vpn-service.c
src/NetworkManagerPolicy.c
src/nm-manager.c
- Remove usage of NetworkManagerDbus.h, and kill the obfuscation
that was message_is_error()
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2757 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* libnm-util/nm-setting.h
libnm-util/nm-setting.c
libnm-util/nm-connection.c
src/NetworkManagerPolicy.c
- 'info' settings object should be 'connection' says the spec
at NetworkManagerConfigurationSpecification
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2746 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerMain.h
src/nm-device-802-11-wireless.c
src/NetworkManager.c
- Remove invalid AP list from NMData; need to rework this somewhat, but
for now we should set the 'invalid' property on individual APs, and when
we need to invalidate a whole ESS, set the 'invalid' on every member of
that ESS
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2741 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
* src/nm-device.c
src/named-manager/nm-named-manager.c
src/named-manager/nm-named-manager.h
src/NetworkManager.c
src/vpn-manager/nm-vpn-manager.c
src/NetworkManagerMain.h
src/NetworkManagerSystem.c
- Remove the named-manager object from NMData structure in preparation
for NMData's timely death. Make the NMNamedManager the singleton that
it really is
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2739 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/nm-device-802-3-ethernet.c
- (constructor): move connection of interface-connected/disconnected
signals here from real_bring_up(). Should be listening to netlink
for carrier events no matter what the initial state of the device
is.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2733 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Convert to using interface indexes as the primary method of identifying
devices inside NetworkManager. Indexes are (?) stable, but devices can
be renamed at any time. Device object paths now refer to the device
index rather than the name, and you can map those two manually if you like
by looking in the /sys/class/net/<name>/ifindex file. Also moves most
netlink-related code to nm-netlink.c, and cleans up nm-netlink-monitor.c
to use interface indexes rather than names.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2731 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-netlink-monitor.c
- (nm_netlink_monitor_class_init, nm_netlink_monitor_event_handler):
don't need the 'wireless-event' signal anymore since that's all
handled by wpa_supplicant
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2727 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
It's 2007. Remove support for drivers that don't support wireless scanning.
* test/nm-tool.c
include/NetworkManager.h
src/NetworkManagerUtils.c
src/NetworkManagerPolicy.c
src/nm-device-802-11-wireless.c
- Remove special handling for non-scanning devices and mark them
as unsupported/unhandled
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2726 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-11-wireless.c
src/nm-device-802-3-ethernet.c
- (real_is_up): move device-specific tests before generic IFF_UP test,
because when the card is pulled or the module removed, the device
is already !IFF_UP and then device-specific cleanup (removing
the supplicant interface, periodic checks, etc) never gets done
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2721 4912f4e0-d625-0410-9fb7-b9a5a253dbdc