diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 5e5f5ffc..a10303ab 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -31,5 +31,6 @@
+
\ No newline at end of file
diff --git a/app/src/main/java/com/emanuelef/remote_capture/MainActivity.java b/app/src/main/java/com/emanuelef/remote_capture/MainActivity.java
index fa566c25..8ac870a4 100644
--- a/app/src/main/java/com/emanuelef/remote_capture/MainActivity.java
+++ b/app/src/main/java/com/emanuelef/remote_capture/MainActivity.java
@@ -237,9 +237,12 @@ public class MainActivity extends AppCompatActivity implements LoaderManager.Loa
if (requestCode == REQUEST_CODE_VPN && resultCode == RESULT_OK) {
Intent intent = new Intent(MainActivity.this, CaptureService.class);
Bundle bundle = new Bundle();
+ String dns_server = Utils.getDnsServer(getApplicationContext());
+
+ Log.i("Main", "Using DNS server " + dns_server);
// the configuration for the VPN
- bundle.putString("dns_server", "8.8.8.8"); // TODO: read system DNS
+ bundle.putString("dns_server", dns_server);
bundle.putString(Prefs.PREF_COLLECTOR_IP_KEY, getCollectorIPPref());
bundle.putInt(Prefs.PREF_COLLECTOR_PORT_KEY, Integer.parseInt(getCollectorPortPref()));
bundle.putInt(Prefs.PREF_UID_FILTER, mFilterUid);
diff --git a/app/src/main/java/com/emanuelef/remote_capture/Utils.java b/app/src/main/java/com/emanuelef/remote_capture/Utils.java
index 7eaaa6d7..c10e6da5 100644
--- a/app/src/main/java/com/emanuelef/remote_capture/Utils.java
+++ b/app/src/main/java/com/emanuelef/remote_capture/Utils.java
@@ -1,12 +1,17 @@
package com.emanuelef.remote_capture;
+import android.app.Service;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
+import android.net.ConnectivityManager;
+import android.net.Network;
+import android.os.Build;
import android.util.Log;
+import java.net.InetAddress;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
@@ -51,6 +56,25 @@ public class Utils {
return apps;
}
+ public static String getDnsServer(Context context) {
+ ConnectivityManager conn = (ConnectivityManager) context.getSystemService(Service.CONNECTIVITY_SERVICE);
+
+ if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ Network net = conn.getActiveNetwork();
+
+ if(net != null) {
+ List dns_server = conn.getLinkProperties(net).getDnsServers();
+
+ for(InetAddress server : dns_server) {
+ return server.getHostAddress();
+ }
+ }
+ }
+
+ // Fallback
+ return "8.8.8.8";
+ }
+
public static long now() {
Calendar calendar = Calendar.getInstance();
return(calendar.getTimeInMillis() / 1000);