summaryrefslogtreecommitdiff
path: root/gsupplicant
diff options
context:
space:
mode:
Diffstat (limited to 'gsupplicant')
-rw-r--r--gsupplicant/gsupplicant.h1
-rw-r--r--gsupplicant/supplicant.c8
2 files changed, 8 insertions, 1 deletions
diff --git a/gsupplicant/gsupplicant.h b/gsupplicant/gsupplicant.h
index 4e0118d9..790cfedc 100644
--- a/gsupplicant/gsupplicant.h
+++ b/gsupplicant/gsupplicant.h
@@ -95,6 +95,7 @@ typedef enum {
typedef enum {
G_SUPPLICANT_STATE_UNKNOWN,
+ G_SUPPLICANT_STATE_DISABLED,
G_SUPPLICANT_STATE_DISCONNECTED,
G_SUPPLICANT_STATE_INACTIVE,
G_SUPPLICANT_STATE_SCANNING,
diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c
index be429586..477106b1 100644
--- a/gsupplicant/supplicant.c
+++ b/gsupplicant/supplicant.c
@@ -287,6 +287,8 @@ static GSupplicantState string2state(const char *state)
if (g_str_equal(state, "unknown") == TRUE)
return G_SUPPLICANT_STATE_UNKNOWN;
+ else if (g_str_equal(state, "interface_disabled") == TRUE)
+ return G_SUPPLICANT_STATE_DISABLED;
else if (g_str_equal(state, "disconnected") == TRUE)
return G_SUPPLICANT_STATE_DISCONNECTED;
else if (g_str_equal(state, "inactive") == TRUE)
@@ -1681,7 +1683,6 @@ static void interface_property(const char *key, DBusMessageIter *iter,
debug_strvalmap("Mode capability", mode_capa_map,
interface->mode_capa);
- interface->ready = TRUE;
callback_interface_added(interface);
return;
}
@@ -1698,6 +1699,10 @@ static void interface_property(const char *key, DBusMessageIter *iter,
interface->state = string2state(str);
callback_interface_state(interface);
}
+ if (interface->state == G_SUPPLICANT_STATE_DISABLED)
+ interface->ready = FALSE;
+ else
+ interface->ready = TRUE;
SUPPLICANT_DBG("state %s (%d)", str, interface->state);
} else if (g_strcmp0(key, "Scanning") == 0) {
@@ -2857,6 +2862,7 @@ int g_supplicant_interface_scan(GSupplicantInterface *interface,
case G_SUPPLICANT_STATE_GROUP_HANDSHAKE:
return -EBUSY;
case G_SUPPLICANT_STATE_UNKNOWN:
+ case G_SUPPLICANT_STATE_DISABLED:
case G_SUPPLICANT_STATE_DISCONNECTED:
case G_SUPPLICANT_STATE_INACTIVE:
case G_SUPPLICANT_STATE_SCANNING: