break; case 'd': builder.addDnsServer(fields[1]); break; case 's':
void newDNSServer(VpnService.Builder builder, String format, byte[] ipv6Template, InetAddress addr) throws UnknownHostException { // Optimally we'd allow either one, but the forwarder checks if upstream size is empty, so // we really need to acquire both an ipv6 and an ipv4 subnet. if (addr instanceof Inet6Address && ipv6Template == null) { Log.i(TAG, "newDNSServer: Ignoring DNS server " + addr); } else if (addr instanceof Inet4Address && format == null) { Log.i(TAG, "newDNSServer: Ignoring DNS server " + addr); } else if (addr instanceof Inet4Address) { upstreamDnsServers.add(addr); String alias = String.format(format, upstreamDnsServers.size() + 1); Log.i(TAG, "configure: Adding DNS Server " + addr + " as " + alias); builder.addDnsServer(alias); builder.addRoute(alias, 32); vpnWatchDog.setTarget(InetAddress.getByName(alias)); } else if (addr instanceof Inet6Address) { upstreamDnsServers.add(addr); ipv6Template[ipv6Template.length - 1] = (byte) (upstreamDnsServers.size() + 1); InetAddress i6addr = Inet6Address.getByAddress(ipv6Template); Log.i(TAG, "configure: Adding DNS Server " + addr + " as " + i6addr); builder.addDnsServer(i6addr); vpnWatchDog.setTarget(i6addr); } }
Logger.info("Daedalus VPN service is listening on " + primaryServer + " as " + primaryDNSServer.getHostAddress()); Logger.info("Daedalus VPN service is listening on " + secondaryServer + " as " + secondaryDNSServer.getHostAddress()); builder.addDnsServer(primaryDNSServer).addDnsServer(secondaryDNSServer);
builder.addDnsServer(dns); } catch (IllegalArgumentException iae) { VpnStatus.logError(R.string.dns_add_error, dns, iae.getLocalizedMessage());
if (ip6 || dns instanceof Inet4Address) { Log.i(TAG, "dns=" + dns); builder.addDnsServer(dns);
builder.addDnsServer(addr.getHostAddress());
builder.addDnsServer(address);
builder.addDnsServer(dns.Address); if (ProxyConfigLoader.IS_DEBUG) System.out.printf("addDnsServer: %s\n", dns.Address);
break; case 'd': builder.addDnsServer(fields[1]); break; case 's':
builder.addDnsServer(dns.Address);
public void run() { try { dnsModel = paramIntent.getParcelableExtra(DNS_MODEL); String modelJSON = gson.toJson(dnsModel); preferences.edit().putString("dnsModel", modelJSON).apply(); setFileDescriptor(builder.setSession(DNSService.this.getText(R.string.app_name).toString()). addAddress("192.168.0.1", 24).addDnsServer(dnsModel.getFirstDns()).addDnsServer(dnsModel.getSecondDns()).establish()); setTunnel(DatagramChannel.open()); tunnel.connect(new InetSocketAddress("127.0.0.1", 8087)); protect(tunnel.socket()); while (shouldRun) Thread.sleep(100L); } catch (Exception exception) { Timber.e(exception); } finally { if (fileDescriptor != null) { try { fileDescriptor.close(); setFileDescriptor(null); } catch (IOException e) { Timber.d(e); } } } } }
if (dnsServers.length == 0) { builder.addDnsServer("8.8.8.8"); } else { for (InetAddress dnsServer : dnsServers) { builder.addDnsServer(dnsServer);
when(builder.addDnsServer(anyString())).thenAnswer(new Answer<VpnService.Builder>() { @Override public VpnService.Builder answer(InvocationOnMock invocation) throws Throwable { when(builder.addDnsServer(any(InetAddress.class))).thenAnswer(new Answer<VpnService.Builder>() { @Override public VpnService.Builder answer(InvocationOnMock invocation) throws Throwable {