Add WakeupController and NFLogListener
These classes work together to parse and dispatch NFLOG messages in
response to inbound packets annotated by the WiFi driver.
Test: as follows
- built
- flashed
- booted
- netd_unit_test passes
Change-Id: Id26d62858bf4bc4186ae66850f08077adf6fc2ac
diff --git a/server/Controllers.cpp b/server/Controllers.cpp
index 84f719b..ad77ee1 100644
--- a/server/Controllers.cpp
+++ b/server/Controllers.cpp
@@ -73,6 +73,7 @@
};
static const char* MANGLE_INPUT[] = {
+ WakeupController::LOCAL_MANGLE_INPUT,
RouteController::LOCAL_MANGLE_INPUT,
NULL,
};
@@ -121,7 +122,18 @@
} // namespace
-Controllers::Controllers() : clatdCtrl(&netCtrl) {
+Controllers::Controllers()
+ : clatdCtrl(&netCtrl),
+ wakeupCtrl(
+ [this](const std::string& prefix, uid_t uid, gid_t gid, uint64_t timestampNs) {
+ const auto listener = eventReporter.getNetdEventListener();
+ if (listener == nullptr) {
+ ALOGE("getNetdEventListener() returned nullptr. dropping wakeup event");
+ return;
+ }
+ listener->onWakeupEvent(String16(prefix.c_str()), uid, gid, timestampNs);
+ },
+ &iptablesRestoreCtrl) {
InterfaceController::initializeAll();
}