wpa_cli: Allow first DISCONNECTED event to be reported

wpa_cli filters out extra DISCONNECTED events from action scripts. This
ended up filtering out the first real DISCONNECT event in case wpa_cli
was started when wpa_supplicant was in connected state. Change wpa_cli
to allow the first disconnection event to be reported to the action
script in such case.

Signed-hostap: Jouni Malinen <j@w1.fi>
This commit is contained in:
Jouni Malinen 2013-08-31 17:27:20 +03:00
parent cdf8bfa434
commit 02a3e5c0d1

View file

@ -70,7 +70,7 @@ static struct wpa_ctrl *ctrl_conn;
static struct wpa_ctrl *mon_conn; static struct wpa_ctrl *mon_conn;
static int wpa_cli_quit = 0; static int wpa_cli_quit = 0;
static int wpa_cli_attached = 0; static int wpa_cli_attached = 0;
static int wpa_cli_connected = 0; static int wpa_cli_connected = -1;
static int wpa_cli_last_id = 0; static int wpa_cli_last_id = 0;
#ifndef CONFIG_CTRL_IFACE_DIR #ifndef CONFIG_CTRL_IFACE_DIR
#define CONFIG_CTRL_IFACE_DIR "/var/run/wpa_supplicant" #define CONFIG_CTRL_IFACE_DIR "/var/run/wpa_supplicant"
@ -3053,7 +3053,7 @@ static void wpa_cli_action_process(const char *msg)
os_setenv("WPA_CTRL_DIR", ctrl_iface_dir, 1); os_setenv("WPA_CTRL_DIR", ctrl_iface_dir, 1);
if (!wpa_cli_connected || new_id != wpa_cli_last_id) { if (wpa_cli_connected <= 0 || new_id != wpa_cli_last_id) {
wpa_cli_connected = 1; wpa_cli_connected = 1;
wpa_cli_last_id = new_id; wpa_cli_last_id = new_id;
wpa_cli_exec(action_file, ctrl_ifname, "CONNECTED"); wpa_cli_exec(action_file, ctrl_ifname, "CONNECTED");