fix: checking router id in handleEvent function

This commit is contained in:
Alex 2022-10-28 14:44:04 +02:00
parent a10266ceee
commit a4d27ea806

View File

@ -646,7 +646,11 @@ int waybar::modules::Network::handleEvents(struct nl_msg *msg, void *data) {
if (has_gateway && !has_destination && temp_idx != -1) { if (has_gateway && !has_destination && temp_idx != -1) {
// Check if this is the first default route we see, or if this new // Check if this is the first default route we see, or if this new
// route have a higher priority. // route have a higher priority.
if (!is_del_event && ((net->ifid_ == -1) || (priority < net->route_priority))) { /** Module doesn`t update state, because RTA_GATEWAY call before enable new router and set higher priority.
Disable router -> RTA_GATEWAY -> up new router -> set higher priority
added checking route id
**/
if (!is_del_event && ((net->ifid_ == -1) || (priority < net->route_priority) || (net->ifid_ != temp_idx))) {
// Clear if's state for the case were there is a higher priority // Clear if's state for the case were there is a higher priority
// route on a different interface. // route on a different interface.
net->clearIface(); net->clearIface();