From: Tobias Brunner Date: Tue, 30 Aug 2016 12:30:19 +0000 (+0200) Subject: ha: Delete passive IKE_SA on other node after half-open timeout X-Git-Tag: 5.5.2dr5~50 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0e3c8cc4a27bd0010a671c6f2f985bdc91f8381b;p=thirdparty%2Fstrongswan.git ha: Delete passive IKE_SA on other node after half-open timeout Fixes #1192. --- diff --git a/src/libcharon/plugins/ha/ha_ike.c b/src/libcharon/plugins/ha/ha_ike.c index 992ccb06cf..0e83b1642b 100644 --- a/src/libcharon/plugins/ha/ha_ike.c +++ b/src/libcharon/plugins/ha/ha_ike.c @@ -237,6 +237,20 @@ METHOD(listener_t, ike_rekey, bool, return TRUE; } +METHOD(listener_t, alert, bool, + private_ha_ike_t *this, ike_sa_t *ike_sa, alert_t alert, va_list args) +{ + switch (alert) + { + case ALERT_HALF_OPEN_TIMEOUT: + ike_updown(this, ike_sa, FALSE); + break; + default: + break; + } + return TRUE; +} + METHOD(listener_t, ike_state_change, bool, private_ha_ike_t *this, ike_sa_t *ike_sa, ike_sa_state_t new) { @@ -393,6 +407,7 @@ ha_ike_t *ha_ike_create(ha_socket_t *socket, ha_tunnel_t *tunnel, INIT(this, .public = { .listener = { + .alert = _alert, .ike_keys = _ike_keys, .ike_updown = _ike_updown, .ike_rekey = _ike_rekey,