core: pass connection provider to devices

This commit is contained in:
Dan Williams 2012-05-02 10:28:16 -05:00
parent 4fe48b1273
commit 4980a6882b
4 changed files with 34 additions and 0 deletions

View file

@ -67,4 +67,6 @@ gboolean nm_device_dhcp4_renew (NMDevice *device, gboolean release);
gboolean nm_device_match_ip_config (NMDevice *device, NMConnection *connection);
NMConnectionProvider *nm_device_get_connection_provider (NMDevice *device);
#endif /* NM_DEVICE_PRIVATE_H */

View file

@ -61,6 +61,7 @@
#include "nm-properties-changed-signal.h"
#include "nm-enum-types.h"
#include "nm-settings-connection.h"
#include "nm-connection-provider.h"
static void impl_device_disconnect (NMDevice *device, DBusGMethodInvocation *context);
@ -226,6 +227,8 @@ typedef struct {
/* master interface for bridge, bond, vlan, etc */
NMDevice * master;
NMConnectionProvider *con_provider;
} NMDevicePrivate;
static void nm_device_take_down (NMDevice *dev, gboolean wait, NMDeviceStateReason reason);
@ -585,6 +588,30 @@ nm_device_get_type_desc (NMDevice *self)
return NM_DEVICE_GET_PRIVATE (self)->type_desc;
}
void
nm_device_set_connection_provider (NMDevice *device,
NMConnectionProvider *provider)
{
NMDevicePrivate *priv;
g_return_if_fail (device != NULL);
g_return_if_fail (provider != NULL);
g_return_if_fail (NM_IS_CONNECTION_PROVIDER (provider));
priv = NM_DEVICE_GET_PRIVATE (device);
g_return_if_fail (priv->con_provider == NULL);
priv->con_provider = provider;
}
NMConnectionProvider *
nm_device_get_connection_provider (NMDevice *device)
{
g_return_val_if_fail (device != NULL, NULL);
return NM_DEVICE_GET_PRIVATE (device)->con_provider;
}
/**
* nm_device_enslave_slave:
* @dev: the master device

View file

@ -34,6 +34,7 @@
#include "nm-dhcp6-config.h"
#include "nm-connection.h"
#include "nm-rfkill.h"
#include "settings/nm-connection-provider.h"
/* Properties */
#define NM_DEVICE_UDI "udi"
@ -263,6 +264,8 @@ gboolean nm_device_activate (NMDevice *device, NMActRequest *req, GError **error
gboolean nm_device_disconnect (NMDevice *device, GError **error);
void nm_device_set_connection_provider (NMDevice *device, NMConnectionProvider *provider);
G_END_DECLS
#endif /* NM_DEVICE_H */

View file

@ -1678,6 +1678,8 @@ add_device (NMManager *self, NMDevice *device)
return;
}
nm_device_set_connection_provider (device, NM_CONNECTION_PROVIDER (priv->settings));
priv->devices = g_slist_append (priv->devices, device);
g_signal_connect (device, "state-changed",