summaryrefslogtreecommitdiff
path: root/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java')
-rw-r--r--main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java30
1 files changed, 14 insertions, 16 deletions
diff --git a/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java b/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java
index 517aa4e8..742e1aa5 100644
--- a/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java
+++ b/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java
@@ -51,6 +51,7 @@ import java.nio.charset.Charset;
import java.util.Collection;
import java.util.Locale;
import java.util.Vector;
+import java.util.concurrent.ExecutionException;
import de.blinkt.openvpn.LaunchVPN;
import de.blinkt.openvpn.R;
@@ -585,13 +586,6 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac
ProfileManager.setConnectedVpnProfile(this, mProfile);
VpnStatus.setConnectedVPNProfile(mProfile.getUUIDString());
- try {
- mProfile.writeConfigFile(this);
- } catch (IOException e) {
- VpnStatus.logException("Error writing config file", e);
- endVpnService();
- return;
- }
String nativeLibraryDirectory = getApplicationInfo().nativeLibraryDir;
String tmpDir;
try {
@@ -646,17 +640,21 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac
mProcessThread.start();
}
- new Handler(getMainLooper()).post(new Runnable() {
- @Override
- public void run() {
- if (mDeviceStateReceiver != null)
- unregisterDeviceStateReceiver();
- registerDeviceStateReceiver(mManagement);
- }
- }
+ try {
+ mProfile.writeConfigFileOutput(this, ((OpenVPNThread)processThread).getOpenVPNStdin());
+ } catch (IOException | ExecutionException | InterruptedException e) {
+ VpnStatus.logException("Error generating config file", e);
+ endVpnService();
+ return;
+ }
+
+ boolean post = new Handler(getMainLooper()).post(() -> {
+ if (mDeviceStateReceiver != null)
+ unregisterDeviceStateReceiver();
- );
+ registerDeviceStateReceiver(mManagement);
+ });
}