diff options
author | Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com> | 2012-06-25 13:16:36 +0300 |
---|---|---|
committer | Patrik Flykt <patrik.flykt@linux.intel.com> | 2012-06-26 12:50:18 +0300 |
commit | 4b96f83edbbdee63a6ef03e8d3e0d87f536acb31 (patch) | |
tree | b051de0826d1294e05638a9cffc876ffc52c0185 /src/agent.c | |
parent | a802b6f66cd572d532cc4d1f3e589beee58ed0e7 (diff) | |
download | connman-4b96f83edbbdee63a6ef03e8d3e0d87f536acb31.tar.gz connman-4b96f83edbbdee63a6ef03e8d3e0d87f536acb31.tar.bz2 connman-4b96f83edbbdee63a6ef03e8d3e0d87f536acb31.zip |
agent: Fix how to provide PreviousPassphrase through D-Bus
Diffstat (limited to 'src/agent.c')
-rw-r--r-- | src/agent.c | 35 |
1 files changed, 29 insertions, 6 deletions
diff --git a/src/agent.c b/src/agent.c index e1d7332c..7aaf304f 100644 --- a/src/agent.c +++ b/src/agent.c @@ -337,11 +337,34 @@ static void request_input_append_password(DBusMessageIter *iter, static void request_input_append_previouspassphrase(DBusMessageIter *iter, void *user_data) { - const char *passphrase = user_data; - const char *str = "informational"; + struct connman_service *service = user_data; + enum connman_service_security security; + const char *passphrase, *str = NULL; + + passphrase = __connman_service_get_passphrase(service); + + security = __connman_service_get_security(service); + switch (security) { + case CONNMAN_SERVICE_SECURITY_WEP: + str = "wep"; + break; + case CONNMAN_SERVICE_SECURITY_PSK: + str = "psk"; + break; + /* + * This should never happen: no passphrase is set if security is not + * one of the above.*/ + default: + break; + } connman_dbus_dict_append_basic(iter, "Type", DBUS_TYPE_STRING, &str); + + str = "informational"; + connman_dbus_dict_append_basic(iter, "Requirement", + DBUS_TYPE_STRING, &str); + connman_dbus_dict_append_basic(iter, "Value", DBUS_TYPE_STRING, &passphrase); } @@ -413,7 +436,7 @@ int __connman_agent_request_passphrase_input(struct connman_service *service, authentication_cb_t callback, void *user_data) { DBusMessage *message; - const char *path, *passphrase; + const char *path; DBusMessageIter iter; DBusMessageIter dict; DBusPendingCall *call; @@ -453,11 +476,11 @@ int __connman_agent_request_passphrase_input(struct connman_service *service, CONNMAN_SERVICE_SECURITY_NONE) { connman_dbus_dict_append_dict(&dict, "Passphrase", request_input_append_passphrase, service); - passphrase = __connman_service_get_passphrase(service); - if (passphrase != NULL) + + if (__connman_service_get_passphrase(service) != NULL) connman_dbus_dict_append_dict(&dict, "PreviousPassphrase", request_input_append_previouspassphrase, - (void *) passphrase); + service); } if (__connman_service_wps_enabled(service) == TRUE) { |