diff options
Diffstat (limited to 'mobile-kt/app/src/DNSProxyConnection.java')
-rw-r--r-- | mobile-kt/app/src/DNSProxyConnection.java | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/mobile-kt/app/src/DNSProxyConnection.java b/mobile-kt/app/src/DNSProxyConnection.java new file mode 100644 index 0000000..420b5fc --- /dev/null +++ b/mobile-kt/app/src/DNSProxyConnection.java @@ -0,0 +1,43 @@ +package org.pihole.dnsproxy; + +import android.os.ParcelFileDescriptor; + +import android.util.Log; + +public class DNSProxyConnection { + + public static String THREAD_NAME = "org.pihole.dnsproxy.service.dnsproxy.thread"; + + private DNSProxyService service; + private Thread thread; + private ParcelFileDescriptor networkInterface; + + public DNSProxyConnection(DNSProxyService service) { + this.service = service; + } + + /** + * Setup and start the connection + */ + public void start() { + DNSProxyRunner runner = new DNSProxyRunner(this.service); + runner.setOnEstablishListener(tunInterface -> { + this.networkInterface = tunInterface; + }); + + this.thread = new Thread(runner, DNSProxyConnection.THREAD_NAME); + this.thread.start(); + } + + /** + * Stop and close the connection + */ + public void stop() { + try { + this.thread.interrupt(); + this.networkInterface.close(); + } catch (Exception exception) { + Log.e(DNSProxyService.LOG_TAG, "Closing VPN interface", exception); + } + } +} |