Clean up Netd and libnetd_resolv for resolver related commands
1. remove all resolver related commands in netd
2. remove unused API in libnetd_resolv
Bug: 126141549
Test: built, flashed, booted
system/netd/tests/runtests.sh pass
Change-Id: I35ac8f241eebd6284a6a685ef86cd77a1fce4388
diff --git a/server/main.cpp b/server/main.cpp
index fc58547..a60622b 100644
--- a/server/main.cpp
+++ b/server/main.cpp
@@ -48,12 +48,16 @@
#include "Process.h"
#include "Stopwatch.h"
+#include "netd_resolv/resolv.h"
#include "netd_resolv/resolv_stub.h"
using android::IPCThreadState;
using android::status_t;
+using android::String16;
using android::net::CommandListener;
using android::net::FwmarkServer;
+using android::net::gCtls;
+using android::net::gLog;
using android::net::makeNFLogListener;
using android::net::NetdHwService;
using android::net::NetdNativeService;
@@ -65,9 +69,32 @@
std::mutex android::net::gBigNetdLock;
+namespace {
+
+void getNetworkContextCallback(uint32_t netId, uint32_t uid, android_net_context* netcontext) {
+ gCtls->netCtrl.getNetworkContext(netId, uid, netcontext);
+}
+
+bool checkCallingPermissionCallback(const char* permission) {
+ return checkCallingPermission(String16(permission));
+}
+
+void logCallback(const char* msg) {
+ gLog.info(std::string(msg));
+}
+
+bool initDnsResolver() {
+ ResolverNetdCallbacks callbacks = {
+ .get_network_context = &getNetworkContextCallback,
+ .log = &logCallback,
+ .check_calling_permission = &checkCallingPermissionCallback,
+ };
+ return RESOLV_STUB.resolv_init(callbacks);
+}
+
+} // namespace
+
int main() {
- using android::net::gCtls;
- using android::net::gLog;
Stopwatch s;
gLog.info("netd 1.0 starting");
@@ -130,7 +157,8 @@
// TODO: Check if we could remove it since resolver cache no loger
// checks this environment variable after aosp/838050.
setenv("ANDROID_DNS_MODE", "local", 1);
- if (!gCtls->resolverCtrl.initResolver()) {
+ // Note that only call initDnsResolver after gCtls initializing.
+ if (!initDnsResolver()) {
ALOGE("Unable to init resolver");
exit(1);
}