summaryrefslogtreecommitdiff
path: root/src/network.c
diff options
context:
space:
mode:
authorJulien Massot <jmassot@aldebaran-robotics.com>2012-04-13 15:16:32 +0000
committerPatrik Flykt <patrik.flykt@linux.intel.com>2012-04-17 13:37:13 +0300
commit65f9b2f1e9b38da7e12ed44181653865c6769f77 (patch)
tree25c36a8a7b532bc326fd91a87f2d14dfcff5a3e4 /src/network.c
parent45d5585e98c339d683e05c68117fb37f2d459d7d (diff)
downloadconnman-65f9b2f1e9b38da7e12ed44181653865c6769f77.tar.gz
connman-65f9b2f1e9b38da7e12ed44181653865c6769f77.tar.bz2
connman-65f9b2f1e9b38da7e12ed44181653865c6769f77.zip
network: Avoid connection to a network with invalid key
Diffstat (limited to 'src/network.c')
-rw-r--r--src/network.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/network.c b/src/network.c
index 4664ea54..5078fd1f 100644
--- a/src/network.c
+++ b/src/network.c
@@ -1400,6 +1400,7 @@ connman_bool_t connman_network_get_associating(struct connman_network *network)
int connman_network_connect_hidden(struct connman_network *network,
char *identity, char* passphrase)
{
+ int err = 0;
struct connman_service *service;
DBG("");
@@ -1412,9 +1413,14 @@ int connman_network_connect_hidden(struct connman_network *network,
__connman_service_set_agent_identity(service, identity);
if (passphrase != NULL)
- __connman_service_add_passphrase(service, passphrase);
+ err = __connman_service_add_passphrase(service, passphrase);
- return __connman_service_connect(service);
+ if (err == -ENOKEY) {
+ __connman_service_indicate_error(service,
+ CONNMAN_SERVICE_ERROR_INVALID_KEY);
+ return err;
+ } else
+ return __connman_service_connect(service);
}
/**