diff --git a/src/netdev.h b/src/netdev.h index 671d0d40..db0440d0 100644 --- a/src/netdev.h +++ b/src/netdev.h @@ -36,6 +36,7 @@ enum netdev_result { NETDEV_RESULT_HANDSHAKE_FAILED, NETDEV_RESULT_KEY_SETTING_FAILED, NETDEV_RESULT_ABORTED, + NETDEV_RESULT_DISCONNECTED, }; enum netdev_event { @@ -86,6 +87,7 @@ typedef void (*netdev_command_cb_t)(struct netdev *netdev, int result, * NETDEV_RESULT_HANDSHAKE_FAILED - MMPDU_REASON_CODE * NETDEV_RESULT_KEY_SETTING_FAILED - unused * NETDEV_RESULT_ABORTED - unused. + * NETDEV_RESULT_DISCONNECTED - MMPDU_REASON_CODE */ typedef void (*netdev_connect_cb_t)(struct netdev *netdev, enum netdev_result result, diff --git a/src/p2p.c b/src/p2p.c index 205d4fcb..e8c7c5de 100644 --- a/src/p2p.c +++ b/src/p2p.c @@ -1366,6 +1366,7 @@ static void p2p_netdev_connect_cb(struct netdev *netdev, case NETDEV_RESULT_ASSOCIATION_FAILED: case NETDEV_RESULT_HANDSHAKE_FAILED: case NETDEV_RESULT_KEY_SETTING_FAILED: + case NETDEV_RESULT_DISCONNECTED: /* * In the AUTHENTICATION_FAILED and ASSOCIATION_FAILED * cases there's nothing to disconnect. In the diff --git a/src/station.c b/src/station.c index 3ead4326..01f6b78e 100644 --- a/src/station.c +++ b/src/station.c @@ -3319,6 +3319,7 @@ static void station_connect_cb(struct netdev *netdev, enum netdev_result result, blacklist_remove_bss(station->connected_bss->addr); station_connect_ok(station); return; + case NETDEV_RESULT_DISCONNECTED: case NETDEV_RESULT_HANDSHAKE_FAILED: /* reason code in this case */ if (station_retry_with_reason(station, l_get_u16(event_data)))