David Zeuthen
bb6530eb34
GDBus: Fix serialization of empty arrays
...
It turns out that we didn't observe padding (neither when reading nor
writing) for empty arrays which (apparently) is needed according to
the D-Bus spec and reference implementation. A simple test case to
provoke this behavior is as follows (notice the lack of 4 bytes worth
of padding at position 0x0064):
Error calling dbus_message_demarshal() on this blob: org.freedesktop.DBus.Error.InvalidArgs: Message is corrupted (Alignment padding not null)
0000: 6c 01 00 01 2e 00 00 00 41 00 00 00 37 00 00 00 l.......A...7...
0010: 08 01 67 00 08 73 61 7b 73 76 7d 61 73 00 00 00 ..g..sa{sv}as...
0020: 01 01 6f 00 08 00 00 00 2f 66 6f 6f 2f 62 61 72 ..o...../foo/bar
0030: 00 00 00 00 00 00 00 00 03 01 73 00 06 00 00 00 ..........s.....
0040: 4d 65 6d 62 65 72 00 00 11 00 00 00 30 31 32 33 Member......0123
0050: 34 35 36 37 38 39 30 31 32 33 34 35 36 00 00 00 4567890123456...
0060: 00 00 00 00 0e 00 00 00 09 00 00 00 53 6f 6d 65 ............Some
0070: 74 68 69 6e 67 00 thing.
The blob was generated from the following GVariant value:
('01234567890123456', @a{sv} {}, ['Something'])
If the blob was encoded using DBusMessageIter, the payload would have been:
0000: 6c 01 00 01 32 00 00 00 41 00 00 00 36 00 00 00 l...2...A...6...
0010: 01 01 6f 00 08 00 00 00 2f 66 6f 6f 2f 62 61 72 ..o...../foo/bar
0020: 00 00 00 00 00 00 00 00 03 01 73 00 06 00 00 00 ..........s.....
0030: 4d 65 6d 62 65 72 00 00 08 01 67 00 08 73 61 7b Member....g..sa{
0040: 73 76 7d 61 73 00 00 00 11 00 00 00 30 31 32 33 sv}as.......0123
0050: 34 35 36 37 38 39 30 31 32 33 34 35 36 00 00 00 4567890123456...
0060: 00 00 00 00 00 00 00 00 0e 00 00 00 09 00 00 00 ................
0070: 53 6f 6d 65 74 68 69 6e 67 00 Something.
** ERROR:gdbus-serialization.c:547:check_serialization: code should not be reached
Aborted
and this is now in the libdbus-1-using serialization test case.
Signed-off-by: David Zeuthen <davidz@redhat.com>
2010-05-14 12:56:09 -04:00
Matthias Clasen
1d22b64843
Cleanups
...
Sort #includes a bit better, and don't include platform-specific
headers in gio.h.
2010-05-14 08:38:07 -04:00
Matthias Clasen
8f89b63930
Clean up platform-specific includes
...
The problem was pointed out in bug 618029. To solve it, we moved
the GUnixFDList typedef to giotypes.h.
2010-05-13 20:29:04 -04:00
Christian Persch
4ad4c306c3
Plug some mem leaks
...
g_variant_get (v, "s", &str) returns a string copy; use "&s" instead.
Signed-off-by: David Zeuthen <davidz@redhat.com>
2010-05-13 16:43:41 -04:00
David Zeuthen
33952347ff
GDBus: Make message serialization routines take capabilities param
...
This is needed to e.g. allow encoding maybe types (once we add
G_DBUS_CAPABILITY_FLAGS_MAYBE_TYPES) if, and only if, that capability
has been negotiated with the peer (via authentication).
2010-05-13 14:03:58 -04:00
Matthias Clasen
0cf467c2ca
Update copyright years to include 2010
2010-05-09 13:14:55 -04:00
David Zeuthen
46ce134d51
GDBus: Add new symbols to gio.symbols
2010-05-06 17:31:51 -04:00
David Zeuthen
fb1b4599a0
GDBus: Fix up i18n
2010-05-06 16:34:23 -04:00
David Zeuthen
0fd6498cd8
Add "Since: 2.26" to all new GDBus API
2010-05-06 16:02:08 -04:00
David Zeuthen
c490c14f4e
Set up gtk-doc for GDBus
...
Also move send_credentials() and receive_credentials() to
GUnixConnection. This code might change, discussion is still ongoing
in
https://bugzilla.gnome.org/show_bug.cgi?id=617483 .
2010-05-06 15:31:45 -04:00
David Zeuthen
d0a14469d0
Initial GDBus code-drop from GDBus-standalone repo
...
Things compile and the test-suite passes. Still need to hook up
gio.symbols and docs. There are still a bunch of TODOs left in the
sources that needs to be addressed.
Signed-off-by: David Zeuthen <davidz@redhat.com>
2010-05-06 14:21:32 -04:00