On 11/27/2013 04:59 PM, Lukasz Skalski wrote:
> My 2 cents inline.
> 
> On 11/15/2013 07:32 PM, Daniel Mack wrote:
>> kdbus will tell us the minimum buffer size it needs in case the default
>> 8kb buffer doesn't suffice.
>> ---
>>   src/libsystemd-bus/bus-control.c | 100 
>> ++++++++++++++++++++++++++-------------
>>   1 file changed, 68 insertions(+), 32 deletions(-)
>>
>> diff --git a/src/libsystemd-bus/bus-control.c 
>> b/src/libsystemd-bus/bus-control.c
>> index 5c9e746..562513b 100644
>> --- a/src/libsystemd-bus/bus-control.c
>> +++ b/src/libsystemd-bus/bus-control.c
>> @@ -180,43 +180,79 @@ _public_ int sd_bus_list_names(sd_bus *bus, char ***l) 
>> {
>>           if (bus_pid_changed(bus))
>>                   return -ECHILD;
>>
>> -        r = sd_bus_call_method(
>> -                        bus,
>> -                        "org.freedesktop.DBus",
>> -                        "/",
>> -                        "org.freedesktop.DBus",
>> -                        "ListNames",
>> -                        NULL,
>> -                        &reply1,
>> -                        NULL);
>> -        if (r < 0)
>> -                return r;
>> +        if (bus->is_kernel) {
>> +                _cleanup_free_ struct kdbus_cmd_names *names = NULL;
>> +                struct kdbus_cmd_name *name;
>> +                size_t size;
>> +
>> +                /* assume 8k size first. If that doesn't suffice, kdbus 
>> will tell us
>> +                 * how big the buffer needs to be.  */
>> +                size = 8192;
>> +
>> +retry:
>> +                names = realloc(names, size);
>> +                if (!names)
>> +                        return log_oom();
>> +
>> +                names->size = size;
> 
> + names->flags=KDBUS_NAME_LIST_UNIQUE_NAMES;
> 
> "ListNames" should returns a list of all (both well-known and unique 
> names) currently-owned names on the bus.

Jup, I added the KDBUS_NAME_LIST_UNIQUE_NAMES kdbus feature *after* I
sent out the first version of this patch. It's already fixed in my local
tree :)


Thanks,
Daniel

_______________________________________________
systemd-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to