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_ */