summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Benedict Wong <benedictwong@google.com> 2020-03-30 17:58:23 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2020-03-30 17:58:23 +0000
commita31929ff85b87c4f29b7dc224bd44af0e1454aba (patch)
tree2efb322801222cfb5ce2bc4b1f413dc47658594d
parent35f668b1e96ee4659f80f38df0fe58429e6d2d19 (diff)
parentbd2763d977a4cad6f797f5378fc6db96e842dcf2 (diff)
Merge "Add negotiated DNS servers to VPN config"
-rw-r--r--services/core/java/com/android/server/connectivity/Vpn.java8
1 files changed, 7 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/connectivity/Vpn.java b/services/core/java/com/android/server/connectivity/Vpn.java
index e80b39f8ce34..120e744a9740 100644
--- a/services/core/java/com/android/server/connectivity/Vpn.java
+++ b/services/core/java/com/android/server/connectivity/Vpn.java
@@ -2248,12 +2248,16 @@ public class Vpn {
final String interfaceName = mTunnelIface.getInterfaceName();
final int maxMtu = mProfile.getMaxMtu();
final List<LinkAddress> internalAddresses = childConfig.getInternalAddresses();
+ final List<String> dnsAddrStrings = new ArrayList<>();
final Collection<RouteInfo> newRoutes = VpnIkev2Utils.getRoutesFromTrafficSelectors(
childConfig.getOutboundTrafficSelectors());
for (final LinkAddress address : internalAddresses) {
mTunnelIface.addAddress(address.getAddress(), address.getPrefixLength());
}
+ for (InetAddress addr : childConfig.getInternalDnsServers()) {
+ dnsAddrStrings.add(addr.getHostAddress());
+ }
final NetworkAgent networkAgent;
final LinkProperties lp;
@@ -2269,7 +2273,9 @@ public class Vpn {
mConfig.routes.clear();
mConfig.routes.addAll(newRoutes);
- // TODO: Add DNS servers from negotiation
+ if (mConfig.dnsServers == null) mConfig.dnsServers = new ArrayList<>();
+ mConfig.dnsServers.clear();
+ mConfig.dnsServers.addAll(dnsAddrStrings);
networkAgent = mNetworkAgent;