diff options
author | Martin Willi <martin@strongswan.org> | 2007-04-19 08:02:19 +0000 |
---|---|---|
committer | Martin Willi <martin@strongswan.org> | 2007-04-19 08:02:19 +0000 |
commit | 1fd5383e61d82d3dbb5b9d3087290f0741b147e6 (patch) | |
tree | aeef2b3ca5a8bc1cbbce731d877c2464a3887d40 /src/charon/sa/tasks/child_rekey.c | |
parent | 41ab00da6bf977cba823d29fc087e8fa508d94f8 (diff) | |
download | strongswan-1fd5383e61d82d3dbb5b9d3087290f0741b147e6.tar.bz2 strongswan-1fd5383e61d82d3dbb5b9d3087290f0741b147e6.tar.xz |
added PDF support for CHILD_SAs
support for INVALID_KE_PAYLOAD negotiation for rekeying
Diffstat (limited to 'src/charon/sa/tasks/child_rekey.c')
-rw-r--r-- | src/charon/sa/tasks/child_rekey.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/charon/sa/tasks/child_rekey.c b/src/charon/sa/tasks/child_rekey.c index 1621357cc..4f3c69034 100644 --- a/src/charon/sa/tasks/child_rekey.c +++ b/src/charon/sa/tasks/child_rekey.c @@ -183,7 +183,12 @@ static status_t process_i(private_child_rekey_t *this, message_t *message) u_int32_t spi; child_sa_t *to_delete; - this->child_create->task.process(&this->child_create->task, message); + if (this->child_create->task.process(&this->child_create->task, message) == NEED_MORE) + { + /* bad DH group while rekeying, try again */ + this->child_create->task.migrate(&this->child_create->task, this->ike_sa); + return NEED_MORE; + } if (message->get_payload(message, SECURITY_ASSOCIATION) == NULL) { /* establishing new child failed, reuse old. but not when we |