X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Flibsystemd-bus%2Ftest-bus-objects.c;h=0ab7a148d30d2f48e6d97756161410ae01c857d3;hp=c9fb846ffd0f7faba6998b1aad8057ca354213f6;hb=145b1f799ff6712f333cef92c44218254a1320c5;hpb=d311601f5bee7c0d3f4b0d96099d81625ab284dc diff --git a/src/libsystemd-bus/test-bus-objects.c b/src/libsystemd-bus/test-bus-objects.c index c9fb846ff..0ab7a148d 100644 --- a/src/libsystemd-bus/test-bus-objects.c +++ b/src/libsystemd-bus/test-bus-objects.c @@ -44,7 +44,7 @@ struct context { uint32_t automatic_integer_property; }; -static int something_handler(sd_bus *bus, sd_bus_message *m, void *userdata) { +static int something_handler(sd_bus *bus, sd_bus_message *m, void *userdata, sd_bus_error *error) { struct context *c = userdata; const char *s; char *n = NULL; @@ -61,13 +61,16 @@ static int something_handler(sd_bus *bus, sd_bus_message *m, void *userdata) { log_info("AlterSomething() called, got %s, returning %s", s, n); - r = sd_bus_reply_method_return(bus, m, "s", n); + /* This should fail, since the return type doesn't match */ + assert_se(sd_bus_reply_method_return(m, "u", 4711) == -ENOMSG); + + r = sd_bus_reply_method_return(m, "s", n); assert_se(r >= 0); return 1; } -static int exit_handler(sd_bus *bus, sd_bus_message *m, void *userdata) { +static int exit_handler(sd_bus *bus, sd_bus_message *m, void *userdata, sd_bus_error *error) { struct context *c = userdata; int r; @@ -75,17 +78,17 @@ static int exit_handler(sd_bus *bus, sd_bus_message *m, void *userdata) { log_info("Exit called"); - r = sd_bus_reply_method_return(bus, m, ""); + r = sd_bus_reply_method_return(m, ""); assert_se(r >= 0); return 1; } -static int get_handler(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, sd_bus_error *error, void *userdata) { +static int get_handler(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *error) { struct context *c = userdata; int r; - log_info("property get for %s called", property); + log_info("property get for %s called, returning \"%s\".", property, c->something); r = sd_bus_message_append(reply, "s", c->something); assert_se(r >= 0); @@ -93,7 +96,7 @@ static int get_handler(sd_bus *bus, const char *path, const char *interface, con return 1; } -static int set_handler(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *value, sd_bus_error *error, void *userdata) { +static int set_handler(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *value, void *userdata, sd_bus_error *error) { struct context *c = userdata; const char *s; char *n; @@ -113,7 +116,7 @@ static int set_handler(sd_bus *bus, const char *path, const char *interface, con return 1; } -static int value_handler(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, sd_bus_error *error, void *userdata) { +static int value_handler(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *error) { _cleanup_free_ char *s = NULL; const char *x; int r; @@ -129,34 +132,34 @@ static int value_handler(sd_bus *bus, const char *path, const char *interface, c return 1; } -static int notify_test(sd_bus *bus, sd_bus_message *m, void *userdata) { +static int notify_test(sd_bus *bus, sd_bus_message *m, void *userdata, sd_bus_error *error) { int r; assert_se(sd_bus_emit_properties_changed(bus, m->path, "org.freedesktop.systemd.ValueTest", "Value", NULL) >= 0); - r = sd_bus_reply_method_return(bus, m, NULL); + r = sd_bus_reply_method_return(m, NULL); assert_se(r >= 0); return 1; } -static int emit_interfaces_added(sd_bus *bus, sd_bus_message *m, void *userdata) { +static int emit_interfaces_added(sd_bus *bus, sd_bus_message *m, void *userdata, sd_bus_error *error) { int r; assert_se(sd_bus_emit_interfaces_added(bus, m->path, "org.freedesktop.systemd.test", NULL) >= 0); - r = sd_bus_reply_method_return(bus, m, NULL); + r = sd_bus_reply_method_return(m, NULL); assert_se(r >= 0); return 1; } -static int emit_interfaces_removed(sd_bus *bus, sd_bus_message *m, void *userdata) { +static int emit_interfaces_removed(sd_bus *bus, sd_bus_message *m, void *userdata, sd_bus_error *error) { int r; assert_se(sd_bus_emit_interfaces_removed(bus, m->path, "org.freedesktop.systemd.test", NULL) >= 0); - r = sd_bus_reply_method_return(bus, m, NULL); + r = sd_bus_reply_method_return(m, NULL); assert_se(r >= 0); return 1; @@ -182,7 +185,7 @@ static const sd_bus_vtable vtable2[] = { SD_BUS_VTABLE_END }; -static int enumerator_callback(sd_bus *b, const char *path, char ***nodes, void *userdata) { +static int enumerator_callback(sd_bus *b, const char *path, void *userdata, char ***nodes, sd_bus_error *error) { if (object_path_startswith("/value", path)) assert_se(*nodes = strv_new("/value/a", "/value/b", "/value/c", NULL)); @@ -435,7 +438,7 @@ static int client(struct context *c) { } int main(int argc, char *argv[]) { - struct context c; + struct context c = {}; pthread_t s; void *p; int r, q;