From 9b619e95b26346e4a1b0ea636d784ce46928fd78 Mon Sep 17 00:00:00 2001 From: Martin Stein Date: Fri, 15 Jun 2018 12:56:16 +0200 Subject: [PATCH] nic_router: fix log when updating ARP waiters Give the correct reason why an ARP waiter was dismissed. Issue #2840 --- repos/os/src/server/nic_router/interface.cc | 22 +++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/repos/os/src/server/nic_router/interface.cc b/repos/os/src/server/nic_router/interface.cc index f9561eb74..366c68b89 100644 --- a/repos/os/src/server/nic_router/interface.cc +++ b/repos/os/src/server/nic_router/interface.cc @@ -1598,27 +1598,33 @@ void Interface::_update_dhcp_allocations(Domain &old_domain, void Interface::_update_own_arp_waiters(Domain &domain) { + bool const verbose = _config().verbose(); _own_arp_waiters.for_each([&] (Arp_waiter_list_element &le) { Arp_waiter &arp_waiter = *le.object(); try { Domain &dst = _config().domains().find_by_name(arp_waiter.dst().name()); if (dst.ip_config() != arp_waiter.dst().ip_config()) { - throw Dismiss_arp_waiter(); } - + if (verbose) { + log("[", domain, "] dismiss ARP waiter: ", arp_waiter, + " (IP config changed)"); + } + throw Dismiss_arp_waiter(); + } /* keep ARP waiter */ arp_waiter.handle_config(dst); - if (_config().verbose()) { + if (verbose) { log("[", domain, "] update ARP waiter: ", arp_waiter); } return; } - catch (Domain_tree::No_match) { } - catch (Dismiss_arp_waiter) { } - /* dismiss ARP waiter */ - if (_config().verbose()) { - log("[", domain, "] dismiss ARP waiter: ", arp_waiter, " (no domain)"); + catch (Domain_tree::No_match) { + if (verbose) { + log("[", domain, "] dismiss ARP waiter: ", arp_waiter, + " (domain disappeared)"); + } } + catch (Dismiss_arp_waiter) { } cancel_arp_waiting(*_own_arp_waiters.first()->object()); }); }