]> code.delx.au - pulseaudio/commitdiff
reset dbus error struct before retrying parsing messages
authorLennart Poettering <lennart@poettering.net>
Wed, 23 Jul 2008 23:31:33 +0000 (01:31 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 23 Jul 2008 23:31:33 +0000 (01:31 +0200)
src/modules/module-console-kit.c

index 5a3975fb7d3db53f75e21bf3c07495fd09fe1c67..829b43b12ab152009615f7d6583b59f63f858561 100644 (file)
@@ -94,6 +94,8 @@ static void add_session(struct userdata *u, const char *id) {
 
     /* CK 0.3 this changed from int32 to uint32 */
     if (!dbus_message_get_args(reply, &error, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID)) {
+        dbus_error_free(&error);
+
         if (!dbus_message_get_args(reply, &error, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID)) {
             pa_log("Failed to parse GetUnixUser() result: %s: %s", error.name, error.message);
             goto fail;
@@ -167,6 +169,8 @@ static DBusHandlerResult filter_cb(DBusConnection *bus, DBusMessage *message, vo
 
         /* CK API changed to match spec in 0.3 */
         if (!dbus_message_get_args(message, &error, DBUS_TYPE_OBJECT_PATH, &path, DBUS_TYPE_INVALID)) {
+            dbus_error_free(&error);
+
             if (!dbus_message_get_args(message, &error, DBUS_TYPE_STRING, &path, DBUS_TYPE_INVALID)) {
                 pa_log_error("Failed to parse SessionAdded message: %s: %s", error.name, error.message);
                 goto finish;
@@ -179,6 +183,8 @@ static DBusHandlerResult filter_cb(DBusConnection *bus, DBusMessage *message, vo
 
         /* CK API changed to match spec in 0.3 */
         if (!dbus_message_get_args(message, &error, DBUS_TYPE_OBJECT_PATH, &path, DBUS_TYPE_INVALID)) {
+            dbus_error_free(&error);
+
             if (!dbus_message_get_args(message, &error, DBUS_TYPE_STRING, &path, DBUS_TYPE_INVALID)) {
                 pa_log_error("Failed to parse SessionRemoved message: %s: %s", error.name, error.message);
                 goto finish;