summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Hughes <richard@hughsie.com>2009-09-11 09:58:46 +0100
committerRichard Hughes <richard@hughsie.com>2009-09-11 09:58:46 +0100
commitce955ea09f659a8e703d010433207173a4132eda (patch)
treea6db0f67581e932a69be5d3f41ecbddcb0c1aeff
parentd42187ef5f9fcfca1863430254282b2d22a5753e (diff)
Fix a crash with the Linux backend
-rw-r--r--src/dkp-daemon.c4
-rw-r--r--src/linux/dkp-backend.c11
2 files changed, 6 insertions, 9 deletions
diff --git a/src/dkp-daemon.c b/src/dkp-daemon.c
index c44fcb8..ba1ceb7 100644
--- a/src/dkp-daemon.c
+++ b/src/dkp-daemon.c
@@ -917,7 +917,7 @@ dkp_daemon_class_init (DkpDaemonClass *klass)
"Is a laptop",
"If this computer is probably a laptop",
FALSE,
- G_PARAM_READABLE));
+ G_PARAM_READWRITE));
g_object_class_install_property (object_class,
PROP_CAN_SUSPEND,
@@ -957,7 +957,7 @@ dkp_daemon_class_init (DkpDaemonClass *klass)
"Laptop lid is closed",
"If the laptop lid is closed",
FALSE,
- G_PARAM_READABLE));
+ G_PARAM_READWRITE));
dbus_g_object_type_install_info (DKP_TYPE_DAEMON, &dbus_glib_dkp_daemon_object_info);
diff --git a/src/linux/dkp-backend.c b/src/linux/dkp-backend.c
index 7b4d5dd..5788acc 100644
--- a/src/linux/dkp-backend.c
+++ b/src/linux/dkp-backend.c
@@ -278,9 +278,13 @@ dkp_backend_coldplug (DkpBackend *backend, DkpDaemon *daemon)
backend->priv->daemon = g_object_ref (daemon);
backend->priv->device_list = dkp_daemon_get_device_list (daemon);
+ backend->priv->gudev_client = g_udev_client_new (subsystems);
+ g_signal_connect (backend->priv->gudev_client, "uevent",
+ G_CALLBACK (dkp_backend_uevent_signal_handler_cb), backend);
/* add all subsystems */
for (i=0; subsystems[i] != NULL; i++) {
+ egg_debug ("registering subsystem : %s", subsystems[i]);
devices = g_udev_client_query_by_subsystem (backend->priv->gudev_client, subsystems[i]);
for (l = devices; l != NULL; l = l->next) {
native = l->data;
@@ -290,13 +294,6 @@ dkp_backend_coldplug (DkpBackend *backend, DkpDaemon *daemon)
g_list_free (devices);
}
- /* connect to the DeviceKit backend */
- for (i=0; subsystems[i] != NULL; i++)
- egg_debug ("registering subsystem : %s", subsystems[i]);
- backend->priv->gudev_client = g_udev_client_new (subsystems);
- g_signal_connect (backend->priv->gudev_client, "uevent",
- G_CALLBACK (dkp_backend_uevent_signal_handler_cb), backend);
-
return TRUE;
}