3
0
mirror of https://git.kernel.org/pub/scm/network/wireless/iwd.git synced 2024-12-24 06:52:37 +01:00

client: WSC 'start-pin' command

This commit is contained in:
Tim Kourt 2017-05-01 10:23:51 -07:00 committed by Denis Kenzior
parent e4261d164d
commit 53980c98d8

View File

@ -41,6 +41,28 @@ static void check_errors_method_callback(struct l_dbus_message *message,
dbus_message_has_error(message); dbus_message_has_error(message);
} }
static void generate_pin_callback(struct l_dbus_message *message,
void *user_data)
{
const struct proxy_interface *proxy = user_data;
const char *pin;
if (dbus_message_has_error(message))
return;
if (!l_dbus_message_get_arguments(message, "s", &pin)) {
l_error("Failed to parse 'generate pin' callback message");
return;
}
if (!pin)
return;
proxy_interface_method_call(proxy, "StartPin", "s",
check_errors_method_callback, pin);
}
static enum cmd_status cmd_push_button(const char *device_name, char *args) static enum cmd_status cmd_push_button(const char *device_name, char *args)
{ {
const struct proxy_interface *proxy = device_wsc_get(device_name); const struct proxy_interface *proxy = device_wsc_get(device_name);
@ -75,7 +97,18 @@ static enum cmd_status cmd_start_user_pin(const char *device_name, char *args)
static enum cmd_status cmd_start_pin(const char *device_name, char *args) static enum cmd_status cmd_start_pin(const char *device_name, char *args)
{ {
return CMD_STATUS_UNSUPPORTED; const struct proxy_interface *proxy = device_wsc_get(device_name);
if (!proxy) {
display("Invalid device name '%s'\n", device_name);
return CMD_STATUS_INVALID_VALUE;
}
proxy_interface_method_call(proxy, "GeneratePin", "",
generate_pin_callback);
return CMD_STATUS_OK;
} }
static enum cmd_status cmd_cancel(const char *device_name, char *args) static enum cmd_status cmd_cancel(const char *device_name, char *args)