ev->select_reasons = reasons;
}
- if (candidate && si->signal > candidate->signal)
+ if (!candidate || si->signal > candidate->signal)
candidate = si;
}
case ROAM_TRIGGER_SCAN_DONE:
candidate = usteer_roam_sm_found_better_node(si, &ev, ROAM_TRIGGER_SCAN_DONE);
/* Kick back in case no better node is found */
- if (!candidate)
+ if (!candidate) {
usteer_roam_set_state(si, ROAM_TRIGGER_IDLE, &ev);
+ break;
+ }
usteer_ubus_bss_transition_request(si, 1, false, false, 100, candidate->node);
si->kick_time = current_time + config.roam_kick_delay;