From: Tobias Brunner Date: Fri, 29 Jun 2018 09:41:41 +0000 (+0200) Subject: android: Don't use infinite keying tries on Android 5+ X-Git-Tag: 5.7.0dr5~20^2~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ef0f0cc839929bc8a833ad702d85c39fd3e93f5d;p=thirdparty%2Fstrongswan.git android: Don't use infinite keying tries on Android 5+ This way we get some feedback about the issue in the GUI (otherwise it would just switch to connecting state) and also some delays between retries. --- 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 aab12c4128..918c14c5ef 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 599f61852a..a1a51b7b52 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);