From 7d437241bd0ab5666c5548845dc441022053f17a Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Fri, 17 Feb 2017 13:43:58 -0600 Subject: [PATCH] wsc: Implement GeneratePin() method --- src/wsc.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/wsc.c b/src/wsc.c index deb0b6ee..7d78060c 100644 --- a/src/wsc.c +++ b/src/wsc.c @@ -708,6 +708,28 @@ static struct l_dbus_message *wsc_push_button(struct l_dbus *dbus, return NULL; } +static struct l_dbus_message *wsc_generate_pin(struct l_dbus *dbus, + struct l_dbus_message *message, + void *user_data) +{ + struct wsc *wsc = user_data; + struct l_dbus_message *reply; + char pin[9]; + + l_debug(""); + + if (wsc->pending) + return dbus_error_busy(message); + + if (!wsc_pin_generate(pin)) + return dbus_error_failed(message); + + reply = l_dbus_message_new_method_return(message); + l_dbus_message_set_arguments(reply, "s", pin); + + return reply; +} + static struct l_dbus_message *wsc_cancel(struct l_dbus *dbus, struct l_dbus_message *message, void *user_data) @@ -754,6 +776,8 @@ static void setup_wsc_interface(struct l_dbus_interface *interface) { l_dbus_interface_method(interface, "PushButton", 0, wsc_push_button, "", ""); + l_dbus_interface_method(interface, "GeneratePin", 0, + wsc_generate_pin, "s", "", "pin"); l_dbus_interface_method(interface, "Cancel", 0, wsc_cancel, "", ""); }