summaryrefslogtreecommitdiff
path: root/src/NetworkManagerPolicy.c
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2007-10-07 23:33:28 +0000
committerDan Williams <dcbw@redhat.com>2007-10-07 23:33:28 +0000
commit9d318e9fae475fb010030704bfb22dd0a514e0fe (patch)
treeb1bebba0192dc6d28e2d29e8b34cae902ca34e8a /src/NetworkManagerPolicy.c
parentb6c662e442408dfff657aac5359473e94f5b6c83 (diff)
downloadNetworkManager-9d318e9fae475fb010030704bfb22dd0a514e0fe.tar.gz
2007-10-07 Dan Williams <dcbw@redhat.com>
* src/nm-manager.c src/nm-manager.h - Add a 'connections-added' signal to batch together updates of large numbers of connections, like when reading from a settings service the first time. Otherwise, the policy would just activate the first suitable connection it saw rather than waiting for the full list to arrive. - (nm_manager_class_init): register new signal - (get_type_for_proxy, connection_get_settings_cb, get_connection_for_proxy): centralize places where a proxy's setting service is determined - (free_get_settings_info): if the call being freed is the last call in a pending call group, fire off the connections-added signal - (internal_new_connection_cb): add call to a pending call group if requested - (list_connections_cb): always create a call group here, because this call results in a batch of new connections - (initial_get_connections): start getting system connections first - (nm_manager_connections_destroy, emit_removed): actually emit the removed signal when destroying connections * src/NetworkManagerPolicy.c - (nm_policy_new, connections_added): handle connections-added signal from the manager git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2951 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Diffstat (limited to 'src/NetworkManagerPolicy.c')
-rw-r--r--src/NetworkManagerPolicy.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/NetworkManagerPolicy.c b/src/NetworkManagerPolicy.c
index dc3601b1b9..3b7ae68724 100644
--- a/src/NetworkManagerPolicy.c
+++ b/src/NetworkManagerPolicy.c
@@ -476,6 +476,16 @@ state_changed (NMManager *manager, NMState state, gpointer user_data)
}
static void
+connections_added (NMManager *manager,
+ NMConnectionType connection_type,
+ gpointer user_data)
+{
+ NMPolicy *policy = (NMPolicy *) user_data;
+
+ schedule_change_check (policy);
+}
+
+static void
connection_added (NMManager *manager,
NMConnection *connection,
NMConnectionType connection_type,
@@ -544,6 +554,13 @@ nm_policy_new (NMManager *manager)
g_signal_connect (manager, "state-change",
G_CALLBACK (state_changed), policy);
+ /* Large batch of connections added, manager doesn't want us to
+ * process each one individually.
+ */
+ g_signal_connect (manager, "connections-added",
+ G_CALLBACK (connections_added), policy);
+
+ /* Single connection added */
g_signal_connect (manager, "connection-added",
G_CALLBACK (connection_added), policy);