Pass dns domain info to resolver.
bug:6799630
Change-Id: I2e1eb75562a7fba005f830ef1350386b9924a8a3
diff --git a/CommandListener.cpp b/CommandListener.cpp
index 7b82682..fbbff89 100644
--- a/CommandListener.cpp
+++ b/CommandListener.cpp
@@ -887,9 +887,10 @@
"Wrong number of arguments to resolver setdefaultif", false);
return 0;
}
- } else if (!strcmp(argv[1], "setifdns")) { // "resolver setifdns <iface> <dns1> <dns2> ..."
- if (argc >= 4) {
- rc = sResolverCtrl->setInterfaceDnsServers(argv[2], &argv[3], argc - 3);
+ } else if (!strcmp(argv[1], "setifdns")) {
+ // "resolver setifdns <iface> <domains> <dns1> <dns2> ..."
+ if (argc >= 5) {
+ rc = sResolverCtrl->setInterfaceDnsServers(argv[2], argv[3], &argv[4], argc - 4);
} else {
cli->sendMsg(ResponseCode::CommandSyntaxError,
"Wrong number of arguments to resolver setifdns", false);
diff --git a/ResolverController.cpp b/ResolverController.cpp
index 23554e8..08a54a7 100644
--- a/ResolverController.cpp
+++ b/ResolverController.cpp
@@ -37,12 +37,12 @@
return 0;
}
-int ResolverController::setInterfaceDnsServers(const char* iface, char** servers, int numservers) {
+int ResolverController::setInterfaceDnsServers(const char* iface, const char* domains,
+ char** servers, int numservers) {
if (DBG) {
ALOGD("setInterfaceDnsServers iface = %s\n", iface);
}
-
- _resolv_set_nameservers_for_iface(iface, servers, numservers);
+ _resolv_set_nameservers_for_iface(iface, servers, numservers, domains);
return 0;
}
diff --git a/ResolverController.h b/ResolverController.h
index c6260da..9cb88ab 100644
--- a/ResolverController.h
+++ b/ResolverController.h
@@ -26,7 +26,8 @@
virtual ~ResolverController() {};
int setDefaultInterface(const char* iface);
- int setInterfaceDnsServers(const char* iface, char** servers, int numservers);
+ int setInterfaceDnsServers(const char* iface, const char * domains, char** servers,
+ int numservers);
int setInterfaceAddress(const char* iface, struct in_addr* addr);
int flushDefaultDnsCache();
int flushInterfaceDnsCache(const char* iface);