diff --git a/src/frontends/android/app/src/main/jni/libandroidbridge/android_jni.h b/src/frontends/android/app/src/main/jni/libandroidbridge/android_jni.h index aab12c412..918c14c5e 100644 --- a/src/frontends/android/app/src/main/jni/libandroidbridge/android_jni.h +++ b/src/frontends/android/app/src/main/jni/libandroidbridge/android_jni.h @@ -57,6 +57,7 @@ typedef enum { ANDROID_JELLY_BEAN = 16, ANDROID_JELLY_BEAN_MR1 = 17, ANDROID_JELLY_BEAN_MR2 = 18, + ANDROID_LOLLIPOP = 21, } android_sdk_version_t; /** diff --git a/src/frontends/android/app/src/main/jni/libandroidbridge/backend/android_service.c b/src/frontends/android/app/src/main/jni/libandroidbridge/backend/android_service.c index 599f61852..a1a51b7b5 100644 --- a/src/frontends/android/app/src/main/jni/libandroidbridge/backend/android_service.c +++ b/src/frontends/android/app/src/main/jni/libandroidbridge/backend/android_service.c @@ -18,6 +18,7 @@ #include #include +#include "android_jni.h" #include "android_service.h" #include "android_dns_proxy.h" #include "../charonservice.h" @@ -761,6 +762,11 @@ static job_requeue_t initiate(private_android_service_t *this) int port; bool certreq; + if (android_sdk_version >= ANDROID_LOLLIPOP) + { /* only try once and notify the GUI on Android 5+ where we have a blocking TUN device */ + peer.keyingtries = 1; + } + server = this->settings->get_str(this->settings, "connection.server", NULL); port = this->settings->get_int(this->settings, "connection.port", IKEV2_UDP_PORT);