aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2012-07-10 07:03:08 +0200
committerAleksander Morgado <aleksander@lanedo.com>2012-08-06 20:06:44 +0200
commit7b7f5b9dcb0b3cde4adc8e615ee6ee3fb01b9a80 (patch)
tree864010fe04d91888fa6c9d7393c038ea1fe1ebc2
parent0aff871b04b76ca45aa9afbf7f1c88cb65c0e80d (diff)
device: keep sysfs path around for logging
-rw-r--r--src/mm-device.c19
-rw-r--r--src/mm-device.h1
2 files changed, 20 insertions, 0 deletions
diff --git a/src/mm-device.c b/src/mm-device.c
index dfeaf6d4..dc7bde29 100644
--- a/src/mm-device.c
+++ b/src/mm-device.c
@@ -41,6 +41,7 @@ static GParamSpec *properties[PROP_LAST];
struct _MMDevicePrivate {
/* Parent UDev device */
GUdevDevice *udev_device;
+ gchar *udev_device_path;
/* Best plugin to manage this device */
MMPlugin *plugin;
@@ -250,6 +251,12 @@ mm_device_create_modem (MMDevice *self,
/*****************************************************************************/
+const gchar *
+mm_device_get_path (MMDevice *self)
+{
+ return self->priv->udev_device_path;
+}
+
GUdevDevice *
mm_device_peek_udev_device (MMDevice *self)
{
@@ -332,6 +339,7 @@ set_property (GObject *object,
case PROP_UDEV_DEVICE:
/* construct only */
self->priv->udev_device = g_value_dup_object (value);
+ self->priv->udev_device_path = g_strdup (g_udev_device_get_sysfs_path (self->priv->udev_device));
break;
case PROP_PLUGIN:
g_clear_object (&(self->priv->plugin));
@@ -385,6 +393,16 @@ dispose (GObject *object)
}
static void
+finalize (GObject *object)
+{
+ MMDevice *self = MM_DEVICE (object);
+
+ g_free (self->priv->udev_device_path);
+
+ G_OBJECT_CLASS (mm_device_parent_class)->finalize (object);
+}
+
+static void
mm_device_class_init (MMDeviceClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
@@ -394,6 +412,7 @@ mm_device_class_init (MMDeviceClass *klass)
/* Virtual methods */
object_class->get_property = get_property;
object_class->set_property = set_property;
+ object_class->finalize = finalize;
object_class->dispose = dispose;
properties[PROP_UDEV_DEVICE] =
diff --git a/src/mm-device.h b/src/mm-device.h
index 7eee70e3..c0c24686 100644
--- a/src/mm-device.h
+++ b/src/mm-device.h
@@ -63,6 +63,7 @@ gboolean mm_device_create_modem (MMDevice *self,
GError **error);
void mm_device_remove_modem (MMDevice *self);
+const gchar *mm_device_get_path (MMDevice *self);
GUdevDevice *mm_device_peek_udev_device (MMDevice *self);
GUdevDevice *mm_device_get_udev_device (MMDevice *self);
void mm_device_set_plugin (MMDevice *self,