diff --git a/src/device.c b/src/device.c index cf0fd8d4..2ff547e3 100644 --- a/src/device.c +++ b/src/device.c @@ -1488,7 +1488,8 @@ static void device_lost_beacon(struct device *device) { l_debug("%d", device->index); - if (device->preparing_roam || device->state == DEVICE_STATE_ROAMING) + if (device->state != DEVICE_STATE_ROAMING && + device->state != DEVICE_STATE_CONNECTED) return; /* @@ -1500,6 +1501,9 @@ static void device_lost_beacon(struct device *device) */ device->roam_no_orig_ap = true; + if (device->preparing_roam || device->state == DEVICE_STATE_ROAMING) + return; + device_roam_trigger_cb(NULL, device); }