Add netd binds for clearing DNS interface maps
Add resolver clearifacemapping to clear both the uidrange => interface DNS map
and the pid => interface DNS map
Change-Id: I144f4d092780b532633d8a956f68a6888d46797a
diff --git a/CommandListener.cpp b/CommandListener.cpp
index 4f9ba65..3a2eb73 100644
--- a/CommandListener.cpp
+++ b/CommandListener.cpp
@@ -852,6 +852,13 @@
"Wrong number of arguments to resolver clearifaceforuid", false);
return 0;
}
+ } else if (!strcmp(argv[1], "clearifacemapping")) {
+ if (argc == 2) {
+ rc = sResolverCtrl->clearDnsInterfaceMappings();
+ } else {
+ cli->sendMsg(ResponseCode::CommandSyntaxError,
+ "Wrong number of arugments to resolver clearifacemapping", false);
+ }
} else {
cli->sendMsg(ResponseCode::CommandSyntaxError,"Resolver unknown command", false);
return 0;
diff --git a/ResolverController.cpp b/ResolverController.cpp
index 90c0e2b..e61fae7 100644
--- a/ResolverController.cpp
+++ b/ResolverController.cpp
@@ -112,3 +112,14 @@
return _resolv_clear_iface_for_uid_range(uid_start, uid_end);
}
+
+int ResolverController::clearDnsInterfaceMappings()
+{
+ if (DBG) {
+ ALOGD("clearInterfaceMappings\n");
+ }
+ _resolv_clear_iface_uid_range_mapping();
+ _resolv_clear_iface_pid_mapping();
+
+ return 0;
+}
diff --git a/ResolverController.h b/ResolverController.h
index 51b449f..e705c8f 100644
--- a/ResolverController.h
+++ b/ResolverController.h
@@ -35,6 +35,7 @@
int clearDnsInterfaceForPid(int pid);
int setDnsInterfaceForUidRange(const char* iface, int uid_start, int uid_end);
int clearDnsInterfaceForUidRange(int uid_start, int uid_end);
+ int clearDnsInterfaceMappings();
};
#endif /* _RESOLVER_CONTROLLER_H_ */