From 6cde9875e123206d949225eac14e28c79ed12de9 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Thu, 23 Apr 2015 12:23:46 +0200 Subject: [PATCH] ike-init: Send REDIRECTED_FROM instead of REDIRECT_SUPPORTED if appropriate --- src/libcharon/sa/ikev2/tasks/ike_init.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/libcharon/sa/ikev2/tasks/ike_init.c b/src/libcharon/sa/ikev2/tasks/ike_init.c index 42be11896d..09dc903f2e 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; } -- 2.47.3