Check for VPN

pull/174/head
M66B 5 years ago
parent 2460e6c08d
commit 033efe23d3

@ -277,6 +277,24 @@ public class ConnectionHelper {
return true; return true;
} }
static boolean vpnActive(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm == null)
return false;
try {
for (Network network : cm.getAllNetworks()) {
NetworkCapabilities caps = cm.getNetworkCapabilities(network);
if (caps != null && caps.hasTransport(NetworkCapabilities.TRANSPORT_VPN))
return true;
}
} catch (Throwable ex) {
Log.w(ex);
}
return false;
}
static boolean airplaneMode(Context context) { static boolean airplaneMode(Context context) {
return Settings.System.getInt(context.getContentResolver(), return Settings.System.getInt(context.getContentResolver(),
Settings.Global.AIRPLANE_MODE_ON, 0) != 0; Settings.Global.AIRPLANE_MODE_ON, 0) != 0;

@ -14,6 +14,8 @@ import androidx.preference.PreferenceManager;
import com.sun.mail.imap.IMAPFolder; import com.sun.mail.imap.IMAPFolder;
import com.sun.mail.imap.IMAPStore; import com.sun.mail.imap.IMAPStore;
import com.sun.mail.smtp.SMTPTransport; import com.sun.mail.smtp.SMTPTransport;
import com.sun.mail.util.MailConnectException;
import com.sun.mail.util.SocketConnectException;
import net.openid.appauth.AuthState; import net.openid.appauth.AuthState;
import net.openid.appauth.AuthorizationException; import net.openid.appauth.AuthorizationException;
@ -329,6 +331,18 @@ public class EmailService implements AutoCloseable {
return authState.jsonSerializeString(); return authState.jsonSerializeString();
} else } else
throw ex; throw ex;
} catch (MailConnectException ex) {
if (ConnectionHelper.vpnActive(context)) {
MailConnectException mex = new MailConnectException(new SocketConnectException(
"The might be caused by the VPN in use",
new Exception(),
ex.getHost(),
ex.getPort(),
ex.getConnectionTimeout()));
mex.setNextException(ex.getNextException());
throw mex;
} else
throw ex;
} }
} }

@ -969,6 +969,8 @@ public class Log {
NetworkCapabilities caps = cm.getNetworkCapabilities(network); NetworkCapabilities caps = cm.getNetworkCapabilities(network);
size += write(os, (network.equals(active) ? "active=" : "network=") + network + " capabilities=" + caps + "\r\n\r\n"); size += write(os, (network.equals(active) ? "active=" : "network=") + network + " capabilities=" + caps + "\r\n\r\n");
} }
size += write(os, "VPN active=" + ConnectionHelper.vpnActive(context) + "\r\n\r\n");
} }
db.attachment().setDownloaded(attachment.id, size); db.attachment().setDownloaded(attachment.id, size);

Loading…
Cancel
Save