X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-daemon%2Fdbus-util.c;h=ca08d7b1dffb1461c57aed62fc187b51e39704ac;hb=23dff801b747a4fb851478bd80d27e7363b2083e;hp=00d8a9d4e0efc4b8d348fda9a5d7e6f31086d1b0;hpb=aedd4e87362371d83dd64d0bfb03ea3e5526607f;p=catta diff --git a/avahi-daemon/dbus-util.c b/avahi-daemon/dbus-util.c index 00d8a9d..ca08d7b 100644 --- a/avahi-daemon/dbus-util.c +++ b/avahi-daemon/dbus-util.c @@ -327,9 +327,9 @@ int avahi_dbus_read_strlst(DBusMessage *m, int idx, AvahiStringList **l) { dbus_message_iter_recurse(&iter, &sub); for (;;) { - DBusMessageIter sub2; int at, n; - uint8_t *k; + const uint8_t *k; + DBusMessageIter sub2; if ((at = dbus_message_iter_get_arg_type(&sub)) == DBUS_TYPE_INVALID) break; @@ -340,7 +340,14 @@ int avahi_dbus_read_strlst(DBusMessage *m, int idx, AvahiStringList **l) { goto fail; dbus_message_iter_recurse(&sub, &sub2); + + k = (const uint8_t*) ""; + n = 0; dbus_message_iter_get_fixed_array(&sub2, &k, &n); + + if (!k) + k = (const uint8_t*) ""; + strlst = avahi_string_list_add_arbitrary(strlst, k, n); dbus_message_iter_next(&sub); @@ -372,3 +379,17 @@ int avahi_dbus_is_our_own_service(Client *c, AvahiIfIndex interface, AvahiProtoc return 0; } +int avahi_dbus_append_rdata(DBusMessage *message, const void *rdata, size_t size) { + DBusMessageIter iter, sub; + + assert(message); + + dbus_message_iter_init_append(message, &iter); + + if (!(dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, DBUS_TYPE_BYTE_AS_STRING, &sub)) || + !(dbus_message_iter_append_fixed_array(&sub, DBUS_TYPE_BYTE, &rdata, size)) || + !(dbus_message_iter_close_container(&iter, &sub))) + return -1; + + return 0; +}