From: Martin Willi Date: Mon, 3 Nov 2014 08:39:16 +0000 (+0100) Subject: controller: Keep following initiate() if the first DH guess was wrong X-Git-Tag: 5.2.2dr1~32 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c39b0c883dc625c09db3925e84999820e2349748;p=thirdparty%2Fstrongswan.git controller: Keep following initiate() if the first DH guess was wrong --- diff --git a/src/libcharon/control/controller.c b/src/libcharon/control/controller.c index 25667e532f..60d186e276 100644 --- a/src/libcharon/control/controller.c +++ b/src/libcharon/control/controller.c @@ -303,6 +303,18 @@ METHOD(listener_t, child_state_change, bool, /* proper delete */ this->status = SUCCESS; break; + case CHILD_RETRYING: + /* retrying with a different DH group; survive another + * initiation round */ + this->status = NEED_MORE; + return TRUE; + case CHILD_CREATED: + if (this->status == NEED_MORE) + { + this->status = FAILED; + return TRUE; + } + break; default: break; }