diff options
author | Martin Willi <martin@revosec.ch> | 2011-12-09 15:10:38 +0100 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2012-03-20 17:31:16 +0100 |
commit | 67a753b95c703d0d32a87362db8e3a4b8c5f4986 (patch) | |
tree | 6daeeafdc83b95c71a005da93f361b0b596377ef /src | |
parent | f223a28ae71d5c9c883450bacabf51b62dcbabaa (diff) | |
download | strongswan-67a753b95c703d0d32a87362db8e3a4b8c5f4986.tar.bz2 strongswan-67a753b95c703d0d32a87362db8e3a4b8c5f4986.tar.xz |
Use a common function to set IKE_SA to established
Diffstat (limited to 'src')
-rwxr-xr-x | src/libcharon/sa/tasks/main_mode.c | 51 |
1 files changed, 22 insertions, 29 deletions
diff --git a/src/libcharon/sa/tasks/main_mode.c b/src/libcharon/sa/tasks/main_mode.c index adf9142e5..d31458b07 100755 --- a/src/libcharon/sa/tasks/main_mode.c +++ b/src/libcharon/sa/tasks/main_mode.c @@ -757,6 +757,23 @@ static bool derive_keys(private_main_mode_t *this, chunk_t nonce_i, return TRUE; } +/** + * Set IKE_SA to established state + */ +static void establish(private_main_mode_t *this) +{ + DBG0(DBG_IKE, "IKE_SA %s[%d] established between %H[%Y]...%H[%Y]", + this->ike_sa->get_name(this->ike_sa), + this->ike_sa->get_unique_id(this->ike_sa), + this->ike_sa->get_my_host(this->ike_sa), + this->ike_sa->get_my_id(this->ike_sa), + this->ike_sa->get_other_host(this->ike_sa), + this->ike_sa->get_other_id(this->ike_sa)); + + this->ike_sa->set_state(this->ike_sa, IKE_ESTABLISHED); + charon->bus->ike_updown(charon->bus, this->ike_sa, TRUE); +} + METHOD(task_t, build_r, status_t, private_main_mode_t *this, message_t *message) { @@ -819,21 +836,9 @@ METHOD(task_t, build_r, status_t, /* TODO-IKEv1: not yet supported */ return FAILED; default: - break; + establish(this); + return SUCCESS; } - - DBG0(DBG_IKE, "IKE_SA %s[%d] established between %H[%Y]...%H[%Y]", - this->ike_sa->get_name(this->ike_sa), - this->ike_sa->get_unique_id(this->ike_sa), - this->ike_sa->get_my_host(this->ike_sa), - this->ike_sa->get_my_id(this->ike_sa), - this->ike_sa->get_other_host(this->ike_sa), - this->ike_sa->get_other_id(this->ike_sa)); - - this->ike_sa->set_state(this->ike_sa, IKE_ESTABLISHED); - charon->bus->ike_updown(charon->bus, this->ike_sa, TRUE); - - return SUCCESS; } default: return FAILED; @@ -928,28 +933,16 @@ METHOD(task_t, process_i, status_t, { case AUTH_XAUTH_INIT_PSK: case AUTH_XAUTH_INIT_RSA: - /* TODO-IKEv1: wait for XAUTH request */ + /* wait for XAUTH request */ return SUCCESS; case AUTH_XAUTH_RESP_PSK: case AUTH_XAUTH_RESP_RSA: /* TODO-IKEv1: not yet */ return FAILED; default: - break; + establish(this); + return SUCCESS; } - - DBG0(DBG_IKE, "IKE_SA %s[%d] established between %H[%Y]...%H[%Y]", - this->ike_sa->get_name(this->ike_sa), - this->ike_sa->get_unique_id(this->ike_sa), - this->ike_sa->get_my_host(this->ike_sa), - this->ike_sa->get_my_id(this->ike_sa), - this->ike_sa->get_other_host(this->ike_sa), - this->ike_sa->get_other_id(this->ike_sa)); - - this->ike_sa->set_state(this->ike_sa, IKE_ESTABLISHED); - charon->bus->ike_updown(charon->bus, this->ike_sa, TRUE); - - return SUCCESS; } default: return FAILED; |