diff options
author | Lennart Poettering <lennart@poettering.net> | 2014-11-04 16:57:38 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2014-11-04 18:09:19 +0100 |
commit | 9cbfc66c621c42aa6e58e9e0da0adfb01efa7537 (patch) | |
tree | 5bac0472b33e87c1fc2eb808f7d6d921d818d630 /src/libsystemd/sd-bus | |
parent | f1f00dbb7f3741b30d4a26b1a8b65ec46ff1fde3 (diff) |
sd-bus: also allow setting descriptions on bus slots
Diffstat (limited to 'src/libsystemd/sd-bus')
-rw-r--r-- | src/libsystemd/sd-bus/bus-internal.h | 1 | ||||
-rw-r--r-- | src/libsystemd/sd-bus/bus-slot.c | 16 |
2 files changed, 17 insertions, 0 deletions
diff --git a/src/libsystemd/sd-bus/bus-internal.h b/src/libsystemd/sd-bus/bus-internal.h index b1310a8640..07381485ec 100644 --- a/src/libsystemd/sd-bus/bus-internal.h +++ b/src/libsystemd/sd-bus/bus-internal.h @@ -142,6 +142,7 @@ struct sd_bus_slot { void *userdata; BusSlotType type:5; bool floating:1; + char *description; LIST_FIELDS(sd_bus_slot, slots); diff --git a/src/libsystemd/sd-bus/bus-slot.c b/src/libsystemd/sd-bus/bus-slot.c index 568a6ed60c..8060e9882c 100644 --- a/src/libsystemd/sd-bus/bus-slot.c +++ b/src/libsystemd/sd-bus/bus-slot.c @@ -208,6 +208,7 @@ _public_ sd_bus_slot* sd_bus_slot_unref(sd_bus_slot *slot) { } bus_slot_disconnect(slot); + free(slot->description); free(slot); return NULL; @@ -265,3 +266,18 @@ _public_ void* sd_bus_slot_get_current_userdata(sd_bus_slot *slot) { return slot->bus->current_userdata; } + +_public_ int sd_bus_slot_set_description(sd_bus_slot *slot, const char *description) { + assert_return(slot, -EINVAL); + + return free_and_strdup(&slot->description, description); +} + +_public_ int sd_bus_slot_get_description(sd_bus_slot *slot, char **description) { + assert_return(slot, -EINVAL); + assert_return(description, -EINVAL); + assert_return(slot->description, -ENXIO); + + *description = slot->description; + return 0; +} |