diff --git a/src/dfuzzer-test-server.c b/src/dfuzzer-test-server.c
index c722110..4060df5 100644
--- a/src/dfuzzer-test-server.c
+++ b/src/dfuzzer-test-server.c
@@ -61,6 +61,14 @@ static const gchar introspection_xml[] =
" "
" "
" "
+" "
+" "
+" "
+" "
+" "
+" "
+" "
+" "
" "
"";
@@ -71,10 +79,11 @@ static void handle_method_call(
const gchar *method_name, GVariant *parameters,
GDBusMethodInvocation *invocation, gpointer user_data)
{
+ _cleanup_(g_freep) gchar *response = NULL;
+
g_printf("->[handle_method_call]\n");
if (g_strcmp0(method_name, "df_hello") == 0) {
- _cleanup_(g_freep) gchar *response = NULL;
gchar *msg;
int n;
@@ -99,6 +108,22 @@ static void handle_method_call(
pause();
else if (g_strcmp0(method_name, "df_noreply") == 0)
return;
+ else if (g_strcmp0(method_name, "df_complex_sig_1") == 0) {
+ gchar *str = NULL;
+ unsigned u;
+ int i;
+
+ g_variant_get(parameters, "(iu&s@a{ss}@a(uiyo))", &i, &u, &str, NULL, NULL);
+ if (strlen(str) <= 0) {
+ g_printf("Got unexpected data for method %s\n", method_name);
+ abort();
+ }
+
+ g_printf("%s: string size: %zu\n", method_name, strlen(str));
+
+ response = g_strdup_printf("%s", str);
+ g_dbus_method_invocation_return_value(invocation, g_variant_new("(s)", response));
+ }
}
// Virtual table for handling properties and method calls for a D-Bus interface.