summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorManeesh Jain <maneesh.jain@samsung.com>2016-12-22 18:30:28 +0530
committerManeesh Jain <maneesh.jain@samsung.com>2017-01-08 23:35:39 -0800
commit77076d221356867d576bba8084614f1b15700597 (patch)
tree4365d814ba30ea2915e9f0a8471dab61358c0b22 /src
parente2224351c2934d63d8e944b69e572a99db209919 (diff)
downloadconnman-77076d221356867d576bba8084614f1b15700597.tar.gz
connman-77076d221356867d576bba8084614f1b15700597.tar.bz2
connman-77076d221356867d576bba8084614f1b15700597.zip
[connman]: Fixed: ConnMan keep trying connection infintely
Description : In following use case, ConnMan was stuck in auto-connection with a specific AP. In that time, user could not be able to select any other AP for connection. 1. Connect with an AP 2. Add the Device Mac address in AP's Mac filter list 3. Device disconnect from AP 4. Device keep trying to connection with AP Partially added following upstream patch. "http://git.kernel.org/cgit/network/connman/connman.git/commit/?id=3bda07204b11158dd18322db6e64dc92bdd07124" Change-Id: I1731bfd21324c83a87f4ff2a5fccf264fd7883f5 Signed-off-by: Maneesh Jain <maneesh.jain@samsung.com>
Diffstat (limited to 'src')
-rwxr-xr-xsrc/network.c16
-rwxr-xr-xsrc/service.c2
2 files changed, 18 insertions, 0 deletions
diff --git a/src/network.c b/src/network.c
index 715c8ea9..86876192 100755
--- a/src/network.c
+++ b/src/network.c
@@ -1403,6 +1403,17 @@ static void set_connect_error(struct connman_network *network)
CONNMAN_SERVICE_ERROR_CONNECT_FAILED);
}
+static void set_blocked_error(struct connman_network *network)
+{
+ struct connman_service *service;
+
+ service = connman_service_lookup_from_network(network);
+
+ __connman_service_indicate_error(service,
+ CONNMAN_SERVICE_ERROR_BLOCKED);
+}
+
+
#if defined TIZEN_EXT
static void set_dhcp_error(struct connman_network *network)
{
@@ -1477,6 +1488,11 @@ void connman_network_set_error(struct connman_network *network,
set_dhcp_error(network);
break;
#endif
+
+ case CONNMAN_NETWORK_ERROR_BLOCKED:
+ set_blocked_error(network);
+ break;
+
}
__connman_network_disconnect(network);
diff --git a/src/service.c b/src/service.c
index 34a37a7b..fa2f7097 100755
--- a/src/service.c
+++ b/src/service.c
@@ -412,6 +412,8 @@ static const char *error2string(enum connman_service_error error)
return "auth-failed";
case CONNMAN_SERVICE_ERROR_INVALID_KEY:
return "invalid-key";
+ case CONNMAN_SERVICE_ERROR_BLOCKED:
+ return "blocked";
}
return NULL;