2007-09-14 Dan Williams <dcbw@redhat.com>

* 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
This commit is contained in:
Dan Williams 2007-09-14 19:36:00 +00:00
parent a0f0344809
commit 13f21985d4
3 changed files with 66 additions and 7 deletions

View file

@ -1,3 +1,15 @@
2007-09-14 Dan Williams <dcbw@redhat.com>
* 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
2007-09-14 Dan Williams <dcbw@redhat.com> 2007-09-14 Dan Williams <dcbw@redhat.com>
* utils/Makefile.am * utils/Makefile.am

View file

@ -61,6 +61,8 @@ enum {
LAST_PROP LAST_PROP
}; };
#define CONNECTION_PROXY_TAG "dbus-proxy"
static void static void
nm_manager_init (NMManager *manager) nm_manager_init (NMManager *manager)
{ {
@ -199,9 +201,9 @@ nm_manager_class_init (NMManagerClass *manager_class)
G_SIGNAL_RUN_FIRST, G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (NMManagerClass, connection_added), G_STRUCT_OFFSET (NMManagerClass, connection_added),
NULL, NULL, NULL, NULL,
g_cclosure_marshal_VOID__POINTER, g_cclosure_marshal_VOID__OBJECT,
G_TYPE_NONE, 1, G_TYPE_NONE, 1,
G_TYPE_POINTER); G_TYPE_OBJECT);
signals[CONNECTION_REMOVED] = signals[CONNECTION_REMOVED] =
g_signal_new ("connection-removed", g_signal_new ("connection-removed",
@ -209,9 +211,9 @@ nm_manager_class_init (NMManagerClass *manager_class)
G_SIGNAL_RUN_FIRST, G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (NMManagerClass, connection_removed), G_STRUCT_OFFSET (NMManagerClass, connection_removed),
NULL, NULL, NULL, NULL,
g_cclosure_marshal_VOID__POINTER, g_cclosure_marshal_VOID__OBJECT,
G_TYPE_NONE, 1, G_TYPE_NONE, 1,
G_TYPE_POINTER); G_TYPE_OBJECT);
dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (manager_class), dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (manager_class),
&dbus_glib_nm_manager_object_info); &dbus_glib_nm_manager_object_info);
@ -282,7 +284,7 @@ connection_get_settings_cb (DBusGProxy *proxy,
if (connection == NULL) if (connection == NULL)
goto out; goto out;
g_object_set_data (G_OBJECT (connection), "dbus-proxy", proxy); g_object_set_data (G_OBJECT (connection), CONNECTION_PROXY_TAG, proxy);
g_object_weak_ref (G_OBJECT (connection), destroy_connection_proxy, proxy); g_object_weak_ref (G_OBJECT (connection), destroy_connection_proxy, proxy);
priv = NM_MANAGER_GET_PRIVATE (manager); priv = NM_MANAGER_GET_PRIVATE (manager);
@ -294,6 +296,9 @@ connection_get_settings_cb (DBusGProxy *proxy,
g_hash_table_insert (priv->system_connections, g_hash_table_insert (priv->system_connections,
g_strdup (path), g_strdup (path),
connection); connection);
} else {
nm_warning ("Connection wasn't a user connection or a system connection.");
g_assert_not_reached ();
} }
g_signal_emit (manager, signals[CONNECTION_ADDED], 0, connection); g_signal_emit (manager, signals[CONNECTION_ADDED], 0, connection);
@ -949,6 +954,42 @@ nm_manager_get_connection_by_object_path (NMManager *manager,
return connection; return connection;
} }
const char *
nm_manager_get_connection_service_name (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), 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_bus_name (proxy);
}
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), 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);
}
void void
nm_manager_update_connections (NMManager *manager, nm_manager_update_connections (NMManager *manager,
NMConnectionType type, NMConnectionType type,
@ -1022,7 +1063,7 @@ nm_manager_get_connection_secrets (NMManager *manager,
g_return_if_fail (NM_IS_MANAGER (manager)); g_return_if_fail (NM_IS_MANAGER (manager));
g_return_if_fail (NM_IS_CONNECTION (connection)); g_return_if_fail (NM_IS_CONNECTION (connection));
proxy = g_object_get_data (G_OBJECT (connection), "dbus-proxy"); proxy = g_object_get_data (G_OBJECT (connection), CONNECTION_PROXY_TAG);
if (!DBUS_IS_G_PROXY (proxy)) { if (!DBUS_IS_G_PROXY (proxy)) {
nm_warning ("Couldn't get dbus proxy for connection."); nm_warning ("Couldn't get dbus proxy for connection.");
goto error; goto error;

View file

@ -69,6 +69,12 @@ NMConnection * nm_manager_get_connection_by_object_path (NMManager *manager,
NMConnectionType type, NMConnectionType type,
const char *path); const char *path);
const char * nm_manager_get_connection_service_name (NMManager *manager,
NMConnection *connection);
const char * nm_manager_get_connection_dbus_path (NMManager *manager,
NMConnection *connection);
void nm_manager_get_connection_secrets (NMManager *manager, void nm_manager_get_connection_secrets (NMManager *manager,
NMConnection *connection, NMConnection *connection,
const char * setting_name); const char * setting_name);