summaryrefslogtreecommitdiff
path: root/server/main.cpp
diff options
context:
space:
mode:
authorJoel Scherpelz <jscherpelz@google.com>2017-05-22 13:11:54 +0900
committerJoel Scherpelz <jscherpelz@google.com>2017-05-25 11:30:32 +0900
commit08b84cd0d223ae3059ce7d4d55b389fdea187580 (patch)
treea7b90f858a205a555951fe50b8cab72a41439b02 /server/main.cpp
parent98d8c08b8c55748735c2ff8ccbf7ad01a8f6e882 (diff)
downloadnetd-08b84cd0d223ae3059ce7d4d55b389fdea187580.tar.gz
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
Diffstat (limited to 'server/main.cpp')
-rw-r--r--server/main.cpp22
1 files changed, 18 insertions, 4 deletions
diff --git a/server/main.cpp b/server/main.cpp
index 9215f219..50570fd3 100644
--- a/server/main.cpp
+++ b/server/main.cpp
@@ -35,15 +35,16 @@
#include <binder/IServiceManager.h>
#include <binder/ProcessState.h>
-#include "Controllers.h"
#include "CommandListener.h"
+#include "Controllers.h"
+#include "DnsProxyListener.h"
+#include "FwmarkServer.h"
+#include "MDnsSdListener.h"
+#include "NFLogListener.h"
#include "NetdConstants.h"
#include "NetdNativeService.h"
#include "NetlinkManager.h"
#include "Stopwatch.h"
-#include "DnsProxyListener.h"
-#include "MDnsSdListener.h"
-#include "FwmarkServer.h"
using android::status_t;
using android::sp;
@@ -55,6 +56,8 @@ using android::net::DnsProxyListener;
using android::net::FwmarkServer;
using android::net::NetdNativeService;
using android::net::NetlinkManager;
+using android::net::NFLogListener;
+using android::net::makeNFLogListener;
static void remove_pid_file();
static bool write_pid_file();
@@ -80,8 +83,19 @@ int main() {
exit(1);
};
+ std::unique_ptr<NFLogListener> logListener;
+ {
+ auto result = makeNFLogListener();
+ if (!isOk(result)) {
+ ALOGE("Unable to create NFLogListener: %s", result.status().msg().c_str());
+ exit(1);
+ }
+ logListener = std::move(result.value());
+ }
+
gCtls = new android::net::Controllers();
gCtls->init();
+ gCtls->wakeupCtrl.init(logListener.get());
CommandListener cl;
nm->setBroadcaster((SocketListener *) &cl);