Need to kill the monitor process before running detach command on
the monitor connection to avoid race where the monitor process may
end up getting the detach command result.
if (ctrl_conn == NULL)
return;
+#ifdef CONFIG_WPA_CLI_FORK
+ if (mon_pid) {
+ int status;
+ kill(mon_pid, SIGPIPE);
+ wait(&status);
+ mon_pid = 0;
+ }
+#endif /* CONFIG_WPA_CLI_FORK */
+
if (wpa_cli_attached) {
wpa_ctrl_detach(interactive ? mon_conn : ctrl_conn);
wpa_cli_attached = 0;
wpa_ctrl_close(mon_conn);
mon_conn = NULL;
}
-#ifdef CONFIG_WPA_CLI_FORK
- if (mon_pid) {
- int status;
- kill(mon_pid, SIGPIPE);
- wait(&status);
- mon_pid = 0;
- }
-#endif /* CONFIG_WPA_CLI_FORK */
}