* src/nm-device-802-11-wireless.c
- (set_current_ap): consolidate current_ap handling code into one place
to ensure that PropertiesChanged signals are emitted in all cases
- (periodic_update, real_deactivate_quickly, real_act_stage1_prepare,
nm_device_802_11_wireless_dispose): use set_current_ap()
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2936 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* introspection/nm-device-802-11-wireless.xml
src/nm-device-802-11-wireless.h
src/nm-device-802-11-wireless.c
- Add a PropertiesChanged signal for wireless device
- Store currently associated access point
- (periodic_update): generalize; update rate here too and emit the
correct PropertiesChanged signal when stuff changes
- (real_deactivate_quickly, nm_device_802_11_wireless_dispose,
real_activation_cancel_handler): clear current_ap when device is
deactivated
- (link_to_specific_ap, get_ap_blacklisted,
nm_device_802_11_wireless_get_best_ap): remove obsolete and unused
code
- (nm_device_802_11_wireless_get_bitrate): make static; unused anywhere
outside this file
- (real_set_hw_address): emit property changed signal if the card's
MAC address changes
- (real_act_stage1_prepare): set the initial current_ap to the AP
the card is supposed to be connecting to
- (activation_success_handler): send out property updates on successful
activation
- (get_property): pull bitrate from cached value; use OBJECT_PATH type
for ACTIVE_ACCESS_POINT property because sometimes there won't be
one and dbus-glib doesn't like marshalling NULL G_TYPE_OBJECTs
- (nm_device_802_11_wireless_class_init): ACTIVE_ACCESS_POINT property
is now boxed; add PropertiesChanged signal
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2934 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-3-ethernet.c
- (real_get_best_connection): don't create automatic connections
internally; clients should provide a setting that applies to
the device with 'autoconnect: True'. Problem was that these
internally auto-created connections don't have a proxy or service
name becuase they weren't created by a settings daemon, and therefore
clients have no idea what to do with them.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2929 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Add a GetActiveConnections() method on the Manager object.
* src/nm-manager.c
src/nm-manager.h
introspection/nm-manager.xml
- (connection_get_settings_cb): keep connection type around too
- (impl_manager_get_active_connections, add_one_connection_element):
implement; returns all active connections and what devices they
apply to
* libnm-glib/nm-client.c
libnm-glib/nm-client.h
introspection/nm-manager-client.xml
- (nm_client_get_devices): GPtrArray elements are allocated and owned
by the caller; free here to avoid memory leak
- (nm_client_get_active_connections): implement; return the list of
active connections
- (nm_client_free_active_connection_element): implement; free an element
of the GSList returned by nm_client_get_active_connections()
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2927 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-11-wireless.c
- (nm_device_802_11_wireless_update_bssid): remove
- (get_active_ap): new function; find the AP in the scan list which
matches the current BSSID and SSID of the wireless device
- (nm_device_802_11_periodic_update): get current AP using
get_active_ap() and print AP roam messages
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2926 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-manager.c
- (impl_manager_activate_device): ensure the D-Bus method sends a return
value when the connection can be activated immediately
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2922 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* include/NetworkManagerVPN.h
- define VPN connection state change reason codes
* src/vpn-manager/Makefile.am
src/vpn-manager/nm-vpn-marshal.list
src/vpn-manager/nm-vpn-marshal-main.c
- Add marshallers for StateChanged signal
* introspection/nm-vpn-connection.xml
- New Banner property
- StateChanged signal now includes a 'reason' argument
* src/vpn-manager/nm-vpn-connection.c
src/vpn-manager/nm-vpn-connection.h
- Add a "Banner" property that contains the returned VPN server login
banner (if any); valid only in the ACTIVATED state
- (nm_vpn_connection_set_state, nm_vpn_connection_disconnect): now takes
a 'reason' argument and emits that reason along with the
state-changed signal
- Fix up calls to nm_vpn_connection_set_state() to include a reason
- (nm_vpn_connection_ip4_config_get): save banner for later
- (nm_vpn_connection_get_banner, get_property,
nm_vpn_connection_class_init): implement Banner property
* src/vpn-manager/nm-vpn-service.c
- (nm_vpn_service_connections_stop): take a reason argument; copy the
connection list because elements may get added/removed from it
while iterating over the list
- (connection_state_changed): signal now includes the 'reason' argument
* libnm-glib/nm-vpn-connection.c
libnm-glib/nm-vpn-connection.h
- (nm_vpn_connection_get_banner): new function
- (state_changed_proxy): handle reason argument
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2916 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-manager.c:
* src/nm-manager.h:
Implement device activation through NMManager.
Implement "pending device activation" here - If the connection
isn't found,
we try to wait for up to 5 seconds for the connection to be
provided.
Add NMConnectionType argument to "connection-added" and
"connection-removed"
signals.
(nm_manager_get): Remove. Finally.
* src/nm-activation-request.c:
* src/nm-activation-request.h:
Remove all the deferred activation code.
* src/nm-device.c: Remove all the deferred activation code. Once
* the device
activation is started, it's started. Update the activation
virtual function
signature.
* src/nm-device-interface.c:
* src/nm-device-interface.h:
Device activation now takes only NMActRequest argument.
Don't expose device activation directly on dbus, it's supposed
to go through
NMManager now.
* src/NetworkManagerPolicy.c (nm_policy_device_change_check):
* Make the code
a bit more compact.
Use the new device activation methods through NMManager.
* introspection/nm-manager-client.xml:
* introspection/nm-manager.xml:
* libnm-glib/nm-client.c:
* libnm-glib/nm-client.h:
Add device activation method.
* libnm-glib/nm-device.c:
* libnm-glib/nm-device.h:
* introspection/nm-device.xml:
Remove device activation method. It's done through NMManager
now.
* src/vpn-manager/nm-vpn-manager.c (impl_vpn_manager_connect):
* Use the shiny
new (nm_manager_get_device_by_path) function, get rid of our own
)find_device).
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2915 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Patch from Bill Nottingham
* src/supplicant-manager/nm-supplicant-config.c
- (ADD_STRING_VAL): use correct length for binary blobs when sending
data to the supplicant
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2913 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerSystem.c
- (nm_system_vpn_device_set_from_ip4_config): clean up indentation;
and all address manipulation here should be happening on the
_VPN_ device, not the active device
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2905 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-manager.c
src/nm-manager.h
src/nm-activation-request.c
src/nm-activation-request.h
- Move the GetSecrets stuff out of the NMManager instance because it
doesn't really need to be there and complicates things
* src/nm-device.c
- (connection_secrets_failed_cb, device_activation_go): connect to the
connection-secrets-failed signal and deactivate the device if
the GetSecrets call fails
* src/nm-device-802-11-wireless.c
- (link_timeout_cb, supplicant_connection_timeout_cb,
real_act_stage2_config, real_act_stage4_ip_config_timeout): request
secrets and give correct hints about whether new secrets should be
asked for by the client or not
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2899 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/vpn-manager/nm-vpn-connection.c
- (nm_vpn_connection_set_state, clear_need_auth, finalize,
connection_secrets_updated_cb, get_secrets_cb): don't need to attach
to the secrets-updated signal of the NMConnection since updating
the secrets is done within the scope of the NMVPNConnection object
already
- (get_connection_secrets): fix an uninialized variable usage error
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2898 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* include/NetworkManagerVPN.h
- Add a NEED_AUTH state
* src/vpn-manager/nm-vpn-connection.c
- Implement the NEED_AUTH state. First ask the VPN service plugin if
the connection needs secrets, and if so, then ask the settings
service to fill in the secrets. Then start the connection.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2895 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-manager.c
src/nm-manager.h
- (nm_manager_get_connection_secrets): make static, unused outside
the file
- Provide NM_MANAGER_CONNECTION_PROXY_TAG for other users
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2891 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* libnm-glib/nm-vpn-plugin.c (nm_vpn_plugin_connect): Update the
* plugin activation
method.
(impl_vpn_plugin_connect): Convert properties hash to
NMConnection, activate, and
unreference the connection.
* introspection/nm-vpn-plugin.xml: Modify the 'Connect' method
* arguments: instead of
passing properties hash and routes string list, pass
NMConnection (in hashed form).
* src/vpn-manager/nm-vpn-connection.c
* (nm_vpn_connection_get_routes): Return routes
as GSList, no need to copy stuff around anymore.
(nm_vpn_connection_activate): Update the plugin activation
method.
* src/NetworkManagerSystem.c
* (nm_system_vpn_device_set_from_ip4_config): Convert
routes argument to GSList.
* vpn-daemons/vpnc/src/nm-vpnc-service.c (real_connect):
The arguments have changed, update.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2890 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-manager.c (manager_device_state_changed): Listen to
* device' NEED_AUTH
state and try to get the secrets.
* src/NetworkManagerPolicy.c (nm_policy_auto_get_best_device):
* Get the list of
connections from NMManager and let the device to choose the best
from the list.
Since the connection list is sorted by system ones first and
user ones later,
the devices still prefer system connections like they did
before.
(deactivate_old_device): Implement. When a device starts
activation, we have a
policy (for now at least) to deactivate any other device that
might be either
active or still activating.
* src/vpn-manager/nm-vpn-manager.c: Add NMManager back to the
* private structure.
It's set on construction, there will be no other way to access
it.
* src/nm-device-802-11-wireless.c: Don't touch NMManager,
* NMManager can listen to
device events and drive the device, not the other way around.
* src/nm-device-802-3-ethernet.c: Ditto.
* src/nm-device.c (nm_device_get_best_connection): The
* connections list is now
sent along, pass it on to virtual functions.
* src/nm-device-interface.c (nm_device_interface_get_iface):
* Implement. It's static
for now, but should really be public instead of
nm_device_get_iface() since iface
is a property of the DeviceInterface, not Device.
(impl_device_activate): Don't touch NMManager!
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2889 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-3-ethernet.c (real_get_best_connection):
* Don't leak NMManager.
The problem with leaking NMManager is that on shutdown, it
doesn't get destroyed,
which means none of the devices get brought down properly, which
in turn leaves
DHCP client running.
* src/nm-device-802-11-wireless.c (real_get_best_connection):
* Ditto.
(supplicant_connection_timeout_cb): Ditto.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2887 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device.c
- (device_activation_go): small hack to work around race when
activating deferred connections; should solve this in a better way
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2886 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-11-wireless.c
- (ap_auth_enforced): also return the encryption status of the AP so
that callers can differentiate easily between unencrypted APs
and encrypted ones, in addition to whether the AP has an
authenticator
- (link_timeout_cb, supplicant_connection_timeout_cb,
real_act_stage4_ip_config_timeout): handle unencrypted APs better,
previously would request secrets from unencrypted APs at times
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2883 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-manager.c
- (nm_manager_update_state): new function; updates state and emits
appropriate signals ensuring a state-change signal for the same state
never gets emitted twice in a row.
- (manager_device_state_changed): handle more device state to get a
better picture of the overall NM state
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2882 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/supplicant-manager/nm-supplicant-manager.c
- (poke_supplicant_cb, nm_supplicant_manager_init,
nm_supplicant_manager_dispose, nm_supplicant_manager_name_owner_changed,
nm_supplicant_manager_startup): when the supplicant isn't running,
try to start it periodically via system bus activation. Fixes
a problem where if wpa_supplicant goes away, NM gets stuck waiting
for the supplicant to come back
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2875 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Ensure that old activation requests are forgotten about; previously
hitting Cancel in the password dialog would deactivate whatever device
that password was requested for, even if that wasn't the currently
activating connection.
* src/nm-manager.c
src/nm-manager.h
- (nm_manager_get_connection_secrets): track the pending call
object so it can be canceled later if needed
- (nm_manager_cancel_get_connection_secrets): cancel a pending
GetSecrets call for a particular connection
* src/nm-activation-request.c
- (dispose): cancel any outstanding GetSecrets calls on the
connection
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2874 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerPolicy.c
- (nm_policy_device_change_check): handle devices that have a
deferred activation. These devices are not really active _yet_,
but need to be treated as such here. Don't interrupt them
automatically.
* src/nm-device-interface.c
- (impl_device_activate): handle devices that have a deferred activation
like activating or active devices. When multiple active devices
get committed, the device shouldn't be deactivated until the
connection details are available to avoid DoS and such. Currently,
any active, activating, or deferred activation device is deactivated
here before starting the new activation request.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2873 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Properly re-query secrets from the settings daemon when stuff fails.
* src/nm-device-802-11-wireless.c
- (ap_auth_enforced): handle static WEP correctly here by differentiating
between Shared Key and Open System auth modes
- (link_timeout_cb, supplicant_connection_timeout_cb,
real_act_stage4_ip_config_timeout): clear existing secrets and
request new ones when something fails due to a suspected wrong key
- (real_act_stage2_config): fix for new request_new argument to
nm_manager_get_connection_secrets()
* src/nm-manager.c
src/nm-manager.h
- (nm_manager_get_connection_secrets): return error status; pass
new request_new argument on to the settings daemon
* introspection/nm-settings-connection.xml
- New 'request_new' argument to the GetSecrets call that hints to the
settings daemon to ask the user for completely new secrets
* libnm-glib/nm-settings.c
libnm-glib/nm-settings.h
- (impl_connection_settings_get_secrets): handle new 'request_new'
argument
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2872 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerPolicy.c
- (nm_policy_auto_get_best_device): don't interrupt activation of a
device by deactivating it because it doesn't have a "best connection".
Since autoconnect=False connections aren't automatically chosen,
NM would interrupt activation of such a connection because it
would never be "best" due to autoconnect=False.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2867 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-manager.c
- (nm_manager_get_connection_secrets): Add a long timeout so the user
actually has some time to enter a key before the GetSecrets call
times out
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2866 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-11-wireless.c
- (real_bring_up): update signal strength every 6 seconds, not 2. No
real reason to do it so often, and reduces wakeups for clients.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2854 4912f4e0-d625-0410-9fb7-b9a5a253dbdc