packing an array of dictionaries

"koorapati, koundinya" <Koundinya.Koorapati-xgeKidS/TS9Wk0Htik3J/[email protected]>
Newsgroups gmane.comp.freedesktop.dbus
Message-ID <DM6PR19MB24736FBA8D82DBEFAAA7833B97B80@DM6PR19MB2473.namprd19.prod.outlook.com>
Hi dbus developers,
	How do we pack an array of dictionaries using the glib gdbus APIs. We want to pack the following data using the glib gdbus APIs, but are getting some or the other issue.


   array [
      dict entry(
         string "config"
         variant             array [
               dict entry(
                  string "origin"
                  variant                      string "compat:suse:/etc/sysconfig/network/ifcfg-eth2"
               )
               dict entry(
                  string "uuid"
                  variant                      array of bytes [
                        70 4f d6 77 5d 73 5d 80 83 90 3b 2b b0 57 2d ff
                     ]
               )
               dict entry(
                  string "owner-uid"
                  variant                      uint32 4294967295
               )
            ]
      )
   ]

       GVariantBuilder *b1 = NULL;
        g_variant_builder_add (b1, "{sv}", "origin", g_variant_new_string("compat:suse:/etc/sysconfig/network/ifcfg-eth2"));
        gchar array[] = {0x70, 0x4f, 0xd6, 0x77, 0x5d, 0x73, 0x5d, 0x80, 0x83, 0x90, 0x3b, 0x2b, 0xb0, 0x57, 0x2d, 0xff};
        g_variant_builder_add (b1, "{sv}", "uuid", g_variant_new_fixed_array(G_VARIANT_TYPE_BYTE, array, 16, sizeof(gchar)));
        g_variant_builder_add (b1, "{sv}", "owner-uid", g_variant_new_uint32(4294967295));
        GVariant *v2 = g_variant_builder_end(b1);
        g_variant_builder_unref(b1);

        GVariantBuilder *b2 = NULL;
        b2 = g_variant_builder_new (G_VARIANT_TYPE ("a{sv}"));
        g_variant_builder_add (b2, "{sv}", "config", g_variant_new_array(NULL, &v2, 3));
        GVariant *v3 = g_variant_builder_end(b2);
        g_variant_builder_unref(b2);

        g_dbus_proxy_call_sync (proxy, "setClientConfig", g_variant_new_tuple(&v3, 1), G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error);

What is going wrong with the above code? Any help will be appreciated.

Thank You,
Koundinya


_______________________________________________
dbus mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dbus
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.