From 564e6a688562fcc7cc510b8ba3f70c29a280a14b Mon Sep 17 00:00:00 2001 From: Martin Stein Date: Tue, 28 Nov 2017 13:20:14 +0100 Subject: [PATCH] nic_router: read seconds attributes generic Issue #2590 --- .../os/src/server/nic_router/configuration.cc | 27 +++++++++++++------ .../os/src/server/nic_router/configuration.h | 2 -- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/repos/os/src/server/nic_router/configuration.cc b/repos/os/src/server/nic_router/configuration.cc index d3ecf9e2a1..7f171b77d6 100644 --- a/repos/os/src/server/nic_router/configuration.cc +++ b/repos/os/src/server/nic_router/configuration.cc @@ -23,23 +23,34 @@ using namespace Net; using namespace Genode; -Microseconds Configuration::_init_rtt(Xml_node const node) +/*************** + ** Utilities ** + ***************/ + +Microseconds read_sec_attr(Xml_node const node, + char const *name, + unsigned long const default_sec) { - unsigned rtt_sec = node.attribute_value("rtt_sec", 0UL); - if (!rtt_sec) { - warning("fall back to default rtt_sec=\"", - (unsigned)DEFAULT_RTT_SEC, "\""); - rtt_sec = DEFAULT_RTT_SEC; + unsigned long sec = node.attribute_value(name, 0UL); + if (!sec) { + warning("fall back to default value \"", default_sec, + "\" for attribute \"", name, "\""); + sec = default_sec; } - return Microseconds(rtt_sec * 1000 * 1000); + return Microseconds(sec * 1000 * 1000); } +/******************* + ** Configuration ** + *******************/ + Configuration::Configuration(Xml_node const node, Allocator &alloc) : _alloc(alloc), _verbose(node.attribute_value("verbose", false)), - _rtt(_init_rtt(node)), _node(node) + _rtt(read_sec_attr(node, "rtt_sec", DEFAULT_RTT_SEC)), + _node(node) { /* read domains */ node.for_each_sub_node("domain", [&] (Xml_node const node) { diff --git a/repos/os/src/server/nic_router/configuration.h b/repos/os/src/server/nic_router/configuration.h index b25d3af2db..82f6e41378 100644 --- a/repos/os/src/server/nic_router/configuration.h +++ b/repos/os/src/server/nic_router/configuration.h @@ -35,8 +35,6 @@ class Net::Configuration Domain_tree _domains; Genode::Xml_node const _node; - Genode::Microseconds _init_rtt(Genode::Xml_node const node); - public: enum { DEFAULT_RTT_SEC = 6 };