net: support multiple concurrent netlink requests
In preparation for generic netlink support
Change-Id: I3f648518800176015cf7435b4e61e6e73c83e796
Refs: #4020
diff --git a/src/net/detail/network-monitor-impl-netlink.cpp b/src/net/detail/network-monitor-impl-netlink.cpp
index 71a1ace..80385c1 100644
--- a/src/net/detail/network-monitor-impl-netlink.cpp
+++ b/src/net/detail/network-monitor-impl-netlink.cpp
@@ -49,10 +49,11 @@
m_rtnlSocket.joinGroup(group);
}
- m_rtnlSocket.startAsyncReceive([this] (const auto& msg) { this->parseRtnlMessage(msg); });
+ m_rtnlSocket.registerNotificationCallback([this] (const auto& msg) { this->parseRtnlMessage(msg); });
NDN_LOG_TRACE("enumerating links");
- m_rtnlSocket.sendDumpRequest(RTM_GETLINK);
+ m_rtnlSocket.sendDumpRequest(RTM_GETLINK,
+ [this] (const auto& msg) { this->parseRtnlMessage(msg); });
m_isEnumeratingLinks = true;
}
@@ -114,7 +115,8 @@
// links enumeration complete, now request all the addresses
m_isEnumeratingLinks = false;
NDN_LOG_TRACE("enumerating addresses");
- m_rtnlSocket.sendDumpRequest(RTM_GETADDR);
+ m_rtnlSocket.sendDumpRequest(RTM_GETADDR,
+ [this] (const auto& msg) { this->parseRtnlMessage(msg); });
m_isEnumeratingAddresses = true;
}
else if (m_isEnumeratingAddresses) {