NetworkManager r3335 - in trunk: . src



Author: dcbw
Date: Thu Feb 21 03:04:18 2008
New Revision: 3335
URL: http://svn.gnome.org/viewvc/NetworkManager?rev=3335&view=rev

Log:
2008-02-20  Dan Williams  <dcbw redhat com>

	* src/NetworkManagerPolicy.c
		- (nm_policy_device_change_check): get scope off the connection, not
			using the manager helper

	* src/nm-manager.c
	  src/nm-manager.h
		- (get_scope_for_proxy): rename from get_type_for_proxy()
		- (connection_get_settings_cb): set scope and path on connection, not
			using GObject data items
		- (get_connection_for_proxy): don't need to return path, since that
			can be gotten from the connection
		- (get_connection_for_proxy): get path off the connection, not from
			parameters
		- (connection_removed_cb, connection_updated_cb): don't need to get
			path from get_connection_for_proxy(); get scope off the connection
			instead of using GObject data items
		- (connection_added_default_handler, add_one_connection_element): use
			nm_connection_get_path() not nm_manager_get_connection_dbus_path()
		- (nm_manager_get_connection_dbus_path): remove
		- (nm_manager_get_connection_scope): remove



Modified:
   trunk/ChangeLog
   trunk/src/NetworkManagerPolicy.c
   trunk/src/nm-manager.c
   trunk/src/nm-manager.h

Modified: trunk/src/NetworkManagerPolicy.c
==============================================================================
--- trunk/src/NetworkManagerPolicy.c	(original)
+++ trunk/src/NetworkManagerPolicy.c	Thu Feb 21 03:04:18 2008
@@ -321,12 +321,12 @@
 		 * don't switch.
 		 */
 		if (   old_connection
-		    && (nm_manager_get_connection_scope (old_connection) == NM_CONNECTION_SCOPE_SYSTEM)
-		    && (nm_manager_get_connection_scope (connection) == NM_CONNECTION_SCOPE_USER))
+		    && (nm_connection_get_scope (old_connection) == NM_CONNECTION_SCOPE_SYSTEM)
+		    && (nm_connection_get_scope (connection) == NM_CONNECTION_SCOPE_USER))
 			goto out;
 
-		if (   (nm_manager_get_connection_scope (connection) == NM_CONNECTION_SCOPE_SYSTEM)
-		    && (nm_manager_get_connection_scope (old_connection) == NM_CONNECTION_SCOPE_USER)) {
+		if (   (nm_connection_get_scope (connection) == NM_CONNECTION_SCOPE_SYSTEM)
+		    && (nm_connection_get_scope (old_connection) == NM_CONNECTION_SCOPE_USER)) {
 			do_switch = TRUE;
 			nm_info ("SWITCH: found system connection '%s (%s)', overrides"
 			         " current connection '%s (%s)'.",

Modified: trunk/src/nm-manager.c
==============================================================================
--- trunk/src/nm-manager.c	(original)
+++ trunk/src/nm-manager.c	Thu Feb 21 03:04:18 2008
@@ -28,9 +28,6 @@
 
 static gboolean impl_manager_sleep (NMManager *manager, gboolean sleep, GError **err);
 
-static const char * nm_manager_get_connection_dbus_path (NMManager *manager,
-                                                         NMConnection *connection);
-
 static gboolean poke_system_settings_daemon_cb (gpointer user_data);
 
 /* Legacy 0.6 compatibility interface */
@@ -432,7 +429,7 @@
 #define DBUS_TYPE_G_DICT_OF_DICTS (dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, DBUS_TYPE_G_STRING_VARIANT_HASHTABLE))
 
 static NMConnectionScope
-get_type_for_proxy (DBusGProxy *proxy)
+get_scope_for_proxy (DBusGProxy *proxy)
 {
 	const char *bus_name = dbus_g_proxy_get_bus_name (proxy);
 
@@ -468,7 +465,7 @@
 			g_signal_emit (info->manager,
 			               signals[CONNECTIONS_ADDED],
 			               0,
-			               get_type_for_proxy (info->proxy));
+			               get_scope_for_proxy (info->proxy));
 		}
 	}
 
@@ -516,6 +513,11 @@
 		if (connection == NULL)
 			goto out;
 
+		scope = get_scope_for_proxy (proxy);
+
+		nm_connection_set_path (connection, path);
+		nm_connection_set_scope (connection, scope);
+
 		g_object_set_data_full (G_OBJECT (connection),
 		                        NM_MANAGER_CONNECTION_PROXY_TAG,
 		                        proxy,
@@ -527,7 +529,6 @@
 		                        (GDestroyNotify) g_object_unref);
 
 		priv = NM_MANAGER_GET_PRIVATE (manager);
-		scope = get_type_for_proxy (proxy);
 		switch (scope) {
 			case NM_CONNECTION_SCOPE_USER:
 				g_hash_table_insert (priv->user_connections,
@@ -545,10 +546,6 @@
 				break;
 		}
 
-		g_object_set_data (G_OBJECT (connection),
-		                   NM_MANAGER_CONNECTION_TYPE_TAG,
-		                   GUINT_TO_POINTER (scope));
-
 		/* If the connection-added signal is supposed to be batched, don't
 		 * emit the single connection-added here.
 		 */
@@ -569,17 +566,13 @@
 static NMConnection *
 get_connection_for_proxy (NMManager *manager,
                           DBusGProxy *proxy,
-                          GHashTable **out_hash,
-                          const char **out_path)
+                          GHashTable **out_hash)
 {
 	NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (manager);
 	NMConnection *connection = NULL;
 	const char *path = dbus_g_proxy_get_path (proxy);
 
-	if (out_path)
-		*out_path = path;
-
-	switch (get_type_for_proxy (proxy)) {
+	switch (get_scope_for_proxy (proxy)) {
 		case NM_CONNECTION_SCOPE_USER:
 			*out_hash = priv->user_connections;
 			connection = g_hash_table_lookup (priv->user_connections, path);
@@ -599,19 +592,17 @@
 static void
 remove_connection (NMManager *manager,
                    NMConnection *connection,
-                   GHashTable *hash,
-                   const char *path)
+                   GHashTable *hash)
 {
-	NMConnectionScope scope;
-
 	/* Destroys the connection, then associated DBusGProxy due to the
 	 * weak reference notify function placed on the connection when it
 	 * was created.
 	 */
 	g_object_ref (connection);
-	g_hash_table_remove (hash, path);
-	scope = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (connection), NM_MANAGER_CONNECTION_TYPE_TAG));
-	g_signal_emit (manager, signals[CONNECTION_REMOVED], 0, connection, scope);
+	g_hash_table_remove (hash, nm_connection_get_path (connection));
+	g_signal_emit (manager, signals[CONNECTION_REMOVED], 0,
+	               connection,
+	               nm_connection_get_scope (connection));
 	g_object_unref (connection);
 }
 
@@ -621,11 +612,10 @@
 	NMManager * manager = NM_MANAGER (user_data);
 	NMConnection *connection = NULL;
 	GHashTable *hash = NULL;
-	const char *path;
 
-	connection = get_connection_for_proxy (manager, proxy, &hash, &path);
+	connection = get_connection_for_proxy (manager, proxy, &hash);
 	if (connection)
-		remove_connection (manager, connection, hash, path);
+		remove_connection (manager, connection, hash);
 }
 
 static void
@@ -635,30 +625,26 @@
 	NMConnection *new_connection;
 	NMConnection *old_connection;
 	GHashTable *hash;
-	const char *path;
 	gboolean valid = FALSE;
 
-	old_connection = get_connection_for_proxy (manager, proxy, &hash, &path);
-	if (!old_connection)
-		return;
+	old_connection = get_connection_for_proxy (manager, proxy, &hash);
+	g_return_if_fail (old_connection != NULL);
 
 	new_connection = nm_connection_new_from_hash (settings);
 	if (!new_connection) {
 		/* New connection invalid, remove existing connection */
-		remove_connection (manager, old_connection, hash, path);
+		remove_connection (manager, old_connection, hash);
 		return;
 	}
 	g_object_unref (new_connection);
 
 	valid = nm_connection_replace_settings (old_connection, settings);
 	if (valid) {
-		NMConnectionScope scope;
-
-		scope = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (old_connection),
-		                                            NM_MANAGER_CONNECTION_TYPE_TAG));
-		g_signal_emit (manager, signals[CONNECTION_UPDATED], 0, old_connection, scope);
+		g_signal_emit (manager, signals[CONNECTION_UPDATED], 0,
+		               old_connection,
+		               nm_connection_get_scope (old_connection));
 	} else {
-		remove_connection (manager, old_connection, hash, path);
+		remove_connection (manager, old_connection, hash);
 	}
 }
 
@@ -947,10 +933,10 @@
 {
 	NMManager *manager = NM_MANAGER (user_data);
 	NMConnection *connection = NM_CONNECTION (value);
-	NMConnectionScope scope;
 
-	scope = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (connection), NM_MANAGER_CONNECTION_TYPE_TAG));
-	g_signal_emit (manager, signals[CONNECTION_REMOVED], 0, connection, scope);
+	g_signal_emit (manager, signals[CONNECTION_REMOVED], 0,
+	               connection,
+	               nm_connection_get_scope (connection));
 }
 
 static void
@@ -1361,7 +1347,6 @@
 {
 	NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (manager);
 	PendingConnectionInfo *info = priv->pending_connection_info;
-	const char *path;
 	gboolean success;
 	GError *error = NULL;
 
@@ -1371,8 +1356,7 @@
 	if (scope != info->scope)
 		return;
 
-	path = nm_manager_get_connection_dbus_path (manager, connection);
-	if (strcmp (info->connection_path, path))
+	if (strcmp (info->connection_path, nm_connection_get_path (connection)))
 		return;
 
 	/* Will destroy below; can't be valid during the initial activation start */
@@ -1504,16 +1488,13 @@
 	const char *service_name = NULL;
 	NMConnection *connection;
 	const char *specific_object;
-	gpointer type_ptr;
 
 	req = nm_device_get_act_request (device);
  	g_assert (req);
 
 	connection = nm_act_request_get_connection (req);
-	type_ptr = g_object_get_data (G_OBJECT (connection), NM_MANAGER_CONNECTION_TYPE_TAG);
-	g_return_val_if_fail (type_ptr != NULL, NULL);
 
-	switch ((NMConnectionScope) GPOINTER_TO_UINT (type_ptr)) {
+	switch (nm_connection_get_scope (connection)) {
 		case NM_CONNECTION_SCOPE_USER:
 			service_name = NM_DBUS_SERVICE_USER_SETTINGS;
 			break;
@@ -1548,7 +1529,7 @@
 	g_value_take_boxed (&entry, dbus_g_type_specialized_construct (type));
 	dbus_g_type_struct_set (&entry,
 	                        0, service_name,
-	                        1, nm_manager_get_connection_dbus_path (manager, connection),
+	                        1, nm_connection_get_path (connection),
 	                        2, specific_object ? specific_object : "/",
 	                        3, dev_array,
 	                        G_MAXUINT);
@@ -1793,21 +1774,3 @@
 	return connection;
 }
 
-static const char *
-nm_manager_get_connection_dbus_path (NMManager *manager,
-                                     NMConnection *connection)
-{
-	DBusGProxy *proxy;
-
-	g_return_val_if_fail (NM_IS_MANAGER (manager), NULL);
-	g_return_val_if_fail (NM_IS_CONNECTION (connection), NULL);
-
-	proxy = g_object_get_data (G_OBJECT (connection), NM_MANAGER_CONNECTION_PROXY_TAG);
-	if (!DBUS_IS_G_PROXY (proxy)) {
-		nm_warning ("Couldn't get dbus proxy for connection.");
-		return NULL;
-	}
-
-	return dbus_g_proxy_get_path (proxy);
-}
-

Modified: trunk/src/nm-manager.h
==============================================================================
--- trunk/src/nm-manager.h	(original)
+++ trunk/src/nm-manager.h	Thu Feb 21 03:04:18 2008
@@ -19,7 +19,6 @@
 #define NM_MANAGER_WIRELESS_HARDWARE_ENABLED "wireless-hardware-enabled"
 
 #define NM_MANAGER_CONNECTION_PROXY_TAG "dbus-proxy"
-#define NM_MANAGER_CONNECTION_TYPE_TAG "service-type"
 #define NM_MANAGER_CONNECTION_SECRETS_PROXY_TAG "dbus-secrets-proxy"
 
 typedef struct {
@@ -90,17 +89,4 @@
                                                          NMConnectionScope scope,
                                                          const char *path);
 
-static inline NMConnectionScope
-nm_manager_get_connection_scope (NMConnection *connection)
-{
-	NMConnectionScope scope;
-
-	g_return_val_if_fail (NM_IS_CONNECTION (connection), NM_CONNECTION_SCOPE_UNKNOWN);
-
-	scope = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (connection), NM_MANAGER_CONNECTION_TYPE_TAG));
-	if (scope != NM_CONNECTION_SCOPE_USER && scope != NM_CONNECTION_SCOPE_SYSTEM)
-		scope = NM_CONNECTION_SCOPE_UNKNOWN;
-	return scope;
-}
-
 #endif /* NM_MANAGER_H */



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]