From 702be02527383504e2eb7606bd1f96e5e8d57a7d Mon Sep 17 00:00:00 2001 From: Tim Kourt Date: Tue, 18 Apr 2017 14:42:45 -0700 Subject: [PATCH] client: Proxy method call --- client/dbus-proxy.c | 22 ++++++++++++++++++++++ client/dbus-proxy.h | 4 ++++ 2 files changed, 26 insertions(+) diff --git a/client/dbus-proxy.c b/client/dbus-proxy.c index dd6e93f1..4dabca7e 100644 --- a/client/dbus-proxy.c +++ b/client/dbus-proxy.c @@ -346,6 +346,28 @@ static void proxy_interface_destroy(void *data) l_free(proxy); } +bool proxy_interface_method_call(const struct proxy_interface *proxy, + const char *name, const char *signature, + l_dbus_message_func_t callback, ...) +{ + struct l_dbus_message *call; + va_list args; + + if (!proxy || !name) + return false; + + call = l_dbus_message_new_method_call(dbus, IWD_SERVICE, proxy->path, + proxy->type->interface, name); + + va_start(args, callback); + l_dbus_message_set_arguments_valist(call, signature, args); + va_end(args); + + l_dbus_send_with_reply(dbus, call, callback, (void *) proxy, NULL); + + return true; +} + void *proxy_interface_get_data(const struct proxy_interface *proxy) { return proxy->data; diff --git a/client/dbus-proxy.h b/client/dbus-proxy.h index e869a012..7fa74303 100644 --- a/client/dbus-proxy.h +++ b/client/dbus-proxy.h @@ -64,6 +64,10 @@ struct l_queue *proxy_interface_find_all(const char *interface, proxy_property_match_func_t function, const void *value); +bool proxy_interface_method_call(const struct proxy_interface *proxy, + const char *name, const char *signature, + l_dbus_message_func_t callback, ...); + void *proxy_interface_get_data(const struct proxy_interface *proxy); const char *proxy_interface_get_interface(const struct proxy_interface *proxy); const char *proxy_interface_get_identity_str(