From a4d27ea8067a1767dfe1cdc526f5170d515fe226 Mon Sep 17 00:00:00 2001 From: Alex Date: Fri, 28 Oct 2022 14:44:04 +0200 Subject: [PATCH] fix: checking router id in handleEvent function --- src/modules/network.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/modules/network.cpp b/src/modules/network.cpp index 953d407..5f7534d 100644 --- a/src/modules/network.cpp +++ b/src/modules/network.cpp @@ -646,7 +646,11 @@ int waybar::modules::Network::handleEvents(struct nl_msg *msg, void *data) { if (has_gateway && !has_destination && temp_idx != -1) { // Check if this is the first default route we see, or if this new // 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 // route on a different interface. net->clearIface();