connman_network_set_associating(task->network, TRUE);
break;
+ case WPA_INACTIVE:
+ if (task->disconnecting == TRUE) {
+ connman_network_set_connected(task->network, FALSE);
+ connman_network_unref(task->network);
+ task->disconnecting = FALSE;
+
+ if (task->pending_network != NULL) {
+ task->network = task->pending_network;
+ task->pending_network = NULL;
+ task_connect(task);
+ }
+ }
+ break;
+
default:
connman_network_set_associating(task->network, FALSE);
break;
while (g_hash_table_iter_next(&iter, &key, &value) == TRUE) {
struct connman_network *network = value;
- if (connman_network_get_connected(network) == TRUE)
+ if (connman_network_get_connected(network) == TRUE ||
+ connman_network_get_associating(network) == TRUE)
__connman_network_disconnect(network);
}