diff options
author | Patrik Flykt <patrik.flykt@linux.intel.com> | 2013-06-12 16:54:32 +0300 |
---|---|---|
committer | Patrik Flykt <patrik.flykt@linux.intel.com> | 2013-06-13 10:40:17 +0300 |
commit | fbe905ab58ecc31fe64c410c5f580cadc30e7f04 (patch) | |
tree | c5f7d1ee0db988ab3e026fe0862a8257ac9ccf7e | |
parent | cbc629f70e44f4d38bf8c7554be89005319fd4de (diff) | |
download | connman-fbe905ab58ecc31fe64c410c5f580cadc30e7f04.tar.gz connman-fbe905ab58ecc31fe64c410c5f580cadc30e7f04.tar.bz2 connman-fbe905ab58ecc31fe64c410c5f580cadc30e7f04.zip |
client: Fix passphrase handling
An empty passphrase means that WPS is to be tried next. If WPS is not
supported by the service, passphrase can not be left empty.
-rw-r--r-- | client/agent.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/client/agent.c b/client/agent.c index 780104bd..12b0a984 100644 --- a/client/agent.c +++ b/client/agent.c @@ -418,11 +418,19 @@ static void request_input_ssid_return(char *input, static void request_input_passphrase_return(char *input, void *user_data) { struct agent_data *request = user_data; + int len = 0; /* TBD passphrase length checking */ - if (input != NULL && strlen(input) > 0) { - request->input[PASSPHRASE].requested = false; + if (input != NULL) + len = strlen(input); + + if (len == 0 && request->input[WPS].requested == false) + return; + + request->input[PASSPHRASE].requested = false; + + if (len > 0) { request_input_append(request, request->input[PASSPHRASE].attribute, input); |