From: Tobias Brunner Date: Thu, 23 Apr 2015 10:23:46 +0000 (+0200) Subject: ike-init: Send REDIRECTED_FROM instead of REDIRECT_SUPPORTED if appropriate X-Git-Tag: 5.4.0dr8~12^2~23 X-Git-Url: https://git.strongswan.org/?p=strongswan.git;a=commitdiff_plain;h=6cde9875e123206d949225eac14e28c79ed12de9 ike-init: Send REDIRECTED_FROM instead of REDIRECT_SUPPORTED if appropriate --- diff --git a/src/libcharon/sa/ikev2/tasks/ike_init.c b/src/libcharon/sa/ikev2/tasks/ike_init.c index 42be118..09dc903 100644 --- a/src/libcharon/sa/ikev2/tasks/ike_init.c +++ b/src/libcharon/sa/ikev2/tasks/ike_init.c @@ -332,7 +332,25 @@ static bool build_payloads(private_ike_init_t *this, message_t *message) /* notify other peer if we support redirection */ if (!this->old_sa && this->initiator && this->follow_redirects) { - message->add_notify(message, FALSE, REDIRECT_SUPPORTED, chunk_empty); + identification_t *gateway; + host_t *from; + chunk_t data; + + from = this->ike_sa->get_redirected_from(this->ike_sa); + if (from) + { + gateway = identification_create_from_sockaddr( + from->get_sockaddr(from)); + data = redirect_data_create(gateway, chunk_empty); + message->add_notify(message, FALSE, REDIRECTED_FROM, data); + chunk_free(&data); + gateway->destroy(gateway); + } + else + { + message->add_notify(message, FALSE, REDIRECT_SUPPORTED, + chunk_empty); + } } return TRUE; }