diff options
author | Patrik Flykt <patrik.flykt@linux.intel.com> | 2011-12-02 16:18:27 +0200 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2011-12-12 10:44:40 +0100 |
commit | 8c0cc20f3686a299a0abc8ddd8df8a702a26e379 (patch) | |
tree | 4a885ac82eed9de2d8ab9ae4194808992903c80a /src/agent.c | |
parent | c088c9c95197ae61fa0e2d563438cf4a499c307d (diff) | |
download | connman-8c0cc20f3686a299a0abc8ddd8df8a702a26e379.tar.gz connman-8c0cc20f3686a299a0abc8ddd8df8a702a26e379.tar.bz2 connman-8c0cc20f3686a299a0abc8ddd8df8a702a26e379.zip |
agent: If a service is hidden, request either 'Name' or 'SSID'
Implement functions to append 'Name' and 'SSID' fields to Agent API
RequestInput D-Bus method call. Add these fields if the service is
hidden.
Diffstat (limited to 'src/agent.c')
-rw-r--r-- | src/agent.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/agent.c b/src/agent.c index 0bbb2665..ce72d503 100644 --- a/src/agent.c +++ b/src/agent.c @@ -261,6 +261,32 @@ static void request_input_append_wps(DBusMessageIter *iter, void *user_data) DBUS_TYPE_STRING, &str); } +static void request_input_append_name(DBusMessageIter *iter, void *user_data) +{ + const char *str = "string"; + + connman_dbus_dict_append_basic(iter, "Type", + DBUS_TYPE_STRING, &str); + str = "mandatory"; + connman_dbus_dict_append_basic(iter, "Requirement", + DBUS_TYPE_STRING, &str); + connman_dbus_dict_append_array(iter, "Alternates", + DBUS_TYPE_STRING, + request_input_append_alternates, + "SSID"); +} + +static void request_input_append_ssid(DBusMessageIter *iter, void *user_data) +{ + const char *str = "ssid"; + + connman_dbus_dict_append_basic(iter, "Type", + DBUS_TYPE_STRING, &str); + str = "alternate"; + connman_dbus_dict_append_basic(iter, "Requirement", + DBUS_TYPE_STRING, &str); +} + static void request_input_append_password(DBusMessageIter *iter, void *user_data) { @@ -353,6 +379,13 @@ int __connman_agent_request_passphrase_input(struct connman_service *service, connman_dbus_dict_open(&iter, &dict); + if (__connman_service_is_hidden(service)) { + connman_dbus_dict_append_dict(&dict, "Name", + request_input_append_name, NULL); + connman_dbus_dict_append_dict(&dict, "SSID", + request_input_append_ssid, NULL); + } + if (__connman_service_get_security(service) == CONNMAN_SERVICE_SECURITY_8021X) { connman_dbus_dict_append_dict(&dict, "Identity", |