From: Tobias Brunner Date: Thu, 23 Apr 2015 10:29:03 +0000 (+0200) Subject: ike-init: Handle REDIRECTED_FROM similar to REDIRECT_SUPPORTED as server X-Git-Tag: 5.4.0dr8~12^2~22 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3d074bce0036b03e700bb35f128b1682ad082036;p=thirdparty%2Fstrongswan.git ike-init: Handle REDIRECTED_FROM similar to REDIRECT_SUPPORTED as server --- diff --git a/src/libcharon/sa/ikev2/tasks/ike_init.c b/src/libcharon/sa/ikev2/tasks/ike_init.c index 09dc903f2e..b5a58dfd77 100644 --- a/src/libcharon/sa/ikev2/tasks/ike_init.c +++ b/src/libcharon/sa/ikev2/tasks/ike_init.c @@ -419,6 +419,23 @@ static void process_payloads(private_ike_init_t *this, message_t *message) handle_supported_hash_algorithms(this, notify); } break; + case REDIRECTED_FROM: + { + identification_t *gateway; + chunk_t data; + + data = notify->get_notification_data(notify); + gateway = redirect_data_parse(data, NULL); + if (!gateway) + { + DBG1(DBG_IKE, "received invalid REDIRECTED_FROM " + "notify, ignored"); + break; + } + DBG1(DBG_IKE, "client got redirected from %Y", gateway); + gateway->destroy(gateway); + /* fall-through */ + } case REDIRECT_SUPPORTED: this->ike_sa->enable_extension(this->ike_sa, EXT_IKE_REDIRECTION);