summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam A. Kennington III <wak@google.com>2019-01-30 16:04:11 -0800
committerWilliam A. Kennington III <wak@google.com>2019-02-14 12:10:12 -0800
commitd2d05940681fe3ca960638c924e886474c77ed69 (patch)
treefb87811f62792a387b3cceccbe86623da9f5fc39
parent1689380b8bfe1b8264463e78130bb7f94673e590 (diff)
downloadphosphor-networkd-d2d05940681fe3ca960638c924e886474c77ed69.tar.gz
phosphor-networkd-d2d05940681fe3ca960638c924e886474c77ed69.zip
rtnetlink_server: Refactor out the refresh check
No functional change but this will make it cleaner when adding more types of message to refresh on. Change-Id: I29ad0d6037fad85efb48394af0517580a3f2216f Signed-off-by: William A. Kennington III <wak@google.com>
-rw-r--r--rtnetlink_server.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/rtnetlink_server.cpp b/rtnetlink_server.cpp
index 69fb4ec..d0a11b9 100644
--- a/rtnetlink_server.cpp
+++ b/rtnetlink_server.cpp
@@ -26,6 +26,20 @@ extern std::unique_ptr<Timer> refreshObjectTimer;
namespace rtnetlink
{
+static bool shouldRefresh(const struct nlmsghdr& hdr)
+{
+ switch (hdr.nlmsg_type)
+ {
+ case RTM_NEWADDR:
+ case RTM_DELADDR:
+ {
+ return true;
+ }
+ }
+
+ return false;
+}
+
/* Call Back for the sd event loop */
static int eventHandler(sd_event_source* es, int fd, uint32_t revents,
void* userdata)
@@ -41,8 +55,7 @@ static int eventHandler(sd_event_source* es, int fd, uint32_t revents,
(netLinkHeader->nlmsg_type != NLMSG_DONE);
netLinkHeader = NLMSG_NEXT(netLinkHeader, len))
{
- if (netLinkHeader->nlmsg_type == RTM_NEWADDR ||
- netLinkHeader->nlmsg_type == RTM_DELADDR)
+ if (shouldRefresh(*netLinkHeader))
{
// starting the timer here to make sure that we don't want
// create the child objects multiple times.
OpenPOWER on IntegriCloud