summaryrefslogtreecommitdiff
path: root/src/devices/adsl/nm-atm-manager.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/adsl/nm-atm-manager.c')
-rw-r--r--src/devices/adsl/nm-atm-manager.c31
1 files changed, 11 insertions, 20 deletions
diff --git a/src/devices/adsl/nm-atm-manager.c b/src/devices/adsl/nm-atm-manager.c
index e8db3596d7..37be69c6e4 100644
--- a/src/devices/adsl/nm-atm-manager.c
+++ b/src/devices/adsl/nm-atm-manager.c
@@ -32,7 +32,6 @@
typedef struct {
GUdevClient *client;
GSList *devices;
- guint start_id;
} NMAtmManagerPrivate;
#define NM_ATM_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_ATM_MANAGER, NMAtmManagerPrivate))
@@ -46,20 +45,12 @@ G_DEFINE_TYPE_EXTENDED (NMAtmManager, nm_atm_manager, G_TYPE_OBJECT, 0,
/**************************************************************************/
-#define PLUGIN_TYPE NM_DEVICE_TYPE_ADSL
-
G_MODULE_EXPORT NMDeviceFactory *
nm_device_factory_create (GError **error)
{
return (NMDeviceFactory *) g_object_new (NM_TYPE_ATM_MANAGER, NULL);
}
-G_MODULE_EXPORT NMDeviceType
-nm_device_factory_get_device_type (void)
-{
- return PLUGIN_TYPE;
-}
-
/************************************************************************/
static gboolean
@@ -163,9 +154,10 @@ adsl_remove (NMAtmManager *self, GUdevDevice *udev_device)
}
}
-static gboolean
-query_devices (NMAtmManager *self)
+static void
+start (NMDeviceFactory *factory)
{
+ NMAtmManager *self = NM_ATM_MANAGER (factory);
NMAtmManagerPrivate *priv = NM_ATM_MANAGER_GET_PRIVATE (self);
GUdevEnumerator *enumerator;
GList *devices, *iter;
@@ -180,8 +172,6 @@ query_devices (NMAtmManager *self)
}
g_list_free (devices);
g_object_unref (enumerator);
-
- return G_SOURCE_REMOVE;
}
static void
@@ -212,6 +202,12 @@ handle_uevent (GUdevClient *client,
adsl_remove (self, device);
}
+static NMDeviceType
+get_device_type (NMDeviceFactory *factory)
+{
+ return NM_DEVICE_TYPE_ADSL;
+}
+
/*********************************************************************/
static void
@@ -222,13 +218,13 @@ nm_atm_manager_init (NMAtmManager *self)
priv->client = g_udev_client_new (subsys);
g_signal_connect (priv->client, "uevent", G_CALLBACK (handle_uevent), self);
-
- priv->start_id = g_idle_add ((GSourceFunc) query_devices, self);
}
static void
device_factory_interface_init (NMDeviceFactory *factory_iface)
{
+ factory_iface->get_device_type = get_device_type;
+ factory_iface->start = start;
}
static void
@@ -242,11 +238,6 @@ dispose (GObject *object)
g_signal_handlers_disconnect_by_func (priv->client, handle_uevent, self);
g_clear_object (&priv->client);
- if (priv->start_id) {
- g_source_remove (priv->start_id);
- priv->start_id = 0;
- }
-
for (iter = priv->devices; iter; iter = iter->next)
g_object_weak_unref (G_OBJECT (iter->data), device_destroyed, self);
g_clear_pointer (&priv->devices, g_slist_free);