diff options
author | Martin Willi <martin@revosec.ch> | 2014-11-03 09:39:16 +0100 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2014-11-21 12:51:19 +0100 |
commit | c39b0c883dc625c09db3925e84999820e2349748 (patch) | |
tree | a187dfffb5451aef7aa1a106d735672c4182378f | |
parent | 013857ad7956fa5f38614bea8b08e05cd23a47d7 (diff) | |
download | strongswan-c39b0c883dc625c09db3925e84999820e2349748.tar.bz2 strongswan-c39b0c883dc625c09db3925e84999820e2349748.tar.xz |
controller: Keep following initiate() if the first DH guess was wrong
-rw-r--r-- | src/libcharon/control/controller.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/libcharon/control/controller.c b/src/libcharon/control/controller.c index 25667e532..60d186e27 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; } |