stktest: Track pending inside the agent
authorDenis Kenzior <denkenz@gmail.com>
Mon, 1 Oct 2012 14:42:36 +0000 (09:42 -0500)
committerDenis Kenzior <denkenz@gmail.com>
Wed, 3 Oct 2012 14:10:43 +0000 (09:10 -0500)
tools/stktest.c

index 35314d9..1aa0306 100644 (file)
@@ -218,6 +218,7 @@ static DBusMessage *agent_display_text(DBusConnection *conn, DBusMessage *msg,
        dbus_bool_t urgent;
        struct test *test;
        display_text_cb_t func;
+       DBusMessage *reply;
 
        if (dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &text,
                                                DBUS_TYPE_BYTE, &icon_id,
@@ -243,7 +244,11 @@ static DBusMessage *agent_display_text(DBusConnection *conn, DBusMessage *msg,
                return stktest_error_failed(msg);
        }
 
-       return func(msg, text, icon_id, urgent);
+       reply = func(msg, text, icon_id, urgent);
+       if (reply == NULL)
+               pending = dbus_message_ref(msg);
+
+       return reply;
 }
 
 static void server_debug(const char *str, void *data)
@@ -997,8 +1002,6 @@ static DBusMessage *test_display_text_15(DBusMessage *msg,
        STKTEST_AGENT_ASSERT(icon_id == 0);
        STKTEST_AGENT_ASSERT(urgent == FALSE);
 
-       pending = dbus_message_ref(msg);
-
        return NULL;
 }
 
@@ -1054,8 +1057,6 @@ static DBusMessage *test_display_text_21(DBusMessage *msg,
        STKTEST_AGENT_ASSERT(icon_id == 0);
        STKTEST_AGENT_ASSERT(urgent == FALSE);
 
-       pending = dbus_message_ref(msg);
-
        return NULL;
 }