aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2012-10-16 13:41:02 +0200
committerTobias Brunner <tobias@strongswan.org>2012-10-18 12:25:59 +0200
commit2b6088c7187f30479ef20d305e1972abe3d5a40a (patch)
tree8be1a785ec2b7e8a57f82d87626e25c25d634255 /src
parent901f6ac403b5b3a7b5a25ae745c1f5cf06f95a23 (diff)
downloadstrongswan-2b6088c7187f30479ef20d305e1972abe3d5a40a.tar.bz2
strongswan-2b6088c7187f30479ef20d305e1972abe3d5a40a.tar.xz
android: Ignore if peer is unreachable when reestablishing an SA
Diffstat (limited to 'src')
-rw-r--r--src/frontends/android/jni/libandroidbridge/backend/android_service.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/frontends/android/jni/libandroidbridge/backend/android_service.c b/src/frontends/android/jni/libandroidbridge/backend/android_service.c
index d451a3d94..b00567f60 100644
--- a/src/frontends/android/jni/libandroidbridge/backend/android_service.c
+++ b/src/frontends/android/jni/libandroidbridge/backend/android_service.c
@@ -414,8 +414,13 @@ METHOD(listener_t, alert, bool,
CHARONSERVICE_PEER_AUTH_ERROR);
break;
case ALERT_PEER_INIT_UNREACHABLE:
- charonservice->update_status(charonservice,
- CHARONSERVICE_UNREACHABLE_ERROR);
+ this->lock->read_lock(this->lock);
+ if (this->tunfd < 0)
+ { /* only handle this if we are not reestablishing the SA */
+ charonservice->update_status(charonservice,
+ CHARONSERVICE_UNREACHABLE_ERROR);
+ }
+ this->lock->unlock(this->lock);
break;
default:
break;