summaryrefslogtreecommitdiff
path: root/ics-openvpn-stripped
diff options
context:
space:
mode:
authorParménides GV <parmegv@sdf.org>2014-08-18 16:17:12 +0200
committerParménides GV <parmegv@sdf.org>2014-08-18 16:17:12 +0200
commite02648c84a337066fd16f6c34a7e3bfb10a4ac51 (patch)
treebeaafd964349fd78cb6e9286629d18483099a795 /ics-openvpn-stripped
parentdcf4b5f63e817a8ebff1ffd8cf1d4f4f4b7295fd (diff)
parentb6921dec378cc6982903cb732ff62a5d6d813ee1 (diff)
Merge branch 'feature/Fail-closed-prevent-leakage-when-VPN-is-down-#2023' into develop
Diffstat (limited to 'ics-openvpn-stripped')
-rw-r--r--ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/core/OpenVpnService.java16
1 files changed, 13 insertions, 3 deletions
diff --git a/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/core/OpenVpnService.java b/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/core/OpenVpnService.java
index c9fe3739..0cf93de3 100644
--- a/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/core/OpenVpnService.java
+++ b/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/core/OpenVpnService.java
@@ -40,6 +40,8 @@ import de.blinkt.openvpn.core.VpnStatus.StateListener;
import static de.blinkt.openvpn.core.NetworkSpace.ipAddress;
import static de.blinkt.openvpn.core.VpnStatus.ConnectionStatus.LEVEL_CONNECTED;
+import static de.blinkt.openvpn.core.VpnStatus.ConnectionStatus.LEVEL_CONNECTING_SERVER_REPLIED;
+import static de.blinkt.openvpn.core.VpnStatus.ConnectionStatus.LEVEL_NONETWORK;
import static de.blinkt.openvpn.core.VpnStatus.ConnectionStatus.LEVEL_CONNECTING_NO_SERVER_REPLY_YET;
import static de.blinkt.openvpn.core.VpnStatus.ConnectionStatus.LEVEL_WAITING_FOR_USER_INPUT;
@@ -699,15 +701,23 @@ public class OpenVpnService extends VpnService implements StateListener, Callbac
} else if (level == LEVEL_CONNECTED) {
mDisplayBytecount = true;
mConnecttime = System.currentTimeMillis();
- lowpriority = true;
+ lowpriority = true;
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.cancel(OPENVPN_STATUS);
- } else {
+ } else if(!mProfile.mPersistTun || mConnecttime == 0){
mDisplayBytecount = false;
String msg = getString(resid);
String ticker = msg;
showNotification(msg + " " + logmessage, ticker, lowpriority , 0, level);
- }
+ } else if(mProfile.mPersistTun && level == LEVEL_NONETWORK) {
+ NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
+ mNotificationManager.cancel(OPENVPN_STATUS);
+ } else if(mProfile.mPersistTun && mConnecttime > 0) {
+ mDisplayBytecount = false;
+ String msg = "Traffic is blocked until the VPN becomes active.";
+ String ticker = msg;
+ showNotification(msg, ticker, lowpriority , 0, level);
+ }
}
}