diff options
author | Martin Willi <martin@revosec.ch> | 2013-07-22 15:59:49 +0200 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2013-07-29 09:00:49 +0200 |
commit | 3a399574c214775fa271b3dc8a0619af1a007d64 (patch) | |
tree | 8676128b6da176b83bb2a8d59037423ca67ef419 | |
parent | c434b2a4a9f56b1f7c94ff01ccb0082e2aebd8c6 (diff) | |
download | strongswan-3a399574c214775fa271b3dc8a0619af1a007d64.tar.bz2 strongswan-3a399574c214775fa271b3dc8a0619af1a007d64.tar.xz |
eap-radius: do RADIUS/IKE attribute forwarding in XAuth backend
-rw-r--r-- | src/libcharon/plugins/eap_radius/eap_radius_forward.c | 3 | ||||
-rw-r--r-- | src/libcharon/plugins/eap_radius/eap_radius_xauth.c | 3 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/libcharon/plugins/eap_radius/eap_radius_forward.c b/src/libcharon/plugins/eap_radius/eap_radius_forward.c index e9124877c..3e80e8918 100644 --- a/src/libcharon/plugins/eap_radius/eap_radius_forward.c +++ b/src/libcharon/plugins/eap_radius/eap_radius_forward.c @@ -248,7 +248,8 @@ static void ike2queue(message_t *message, linked_list_t *queue, enumerator = message->create_payload_enumerator(message); while (enumerator->enumerate(enumerator, &payload)) { - if (payload->get_type(payload) == NOTIFY) + if (payload->get_type(payload) == NOTIFY || + payload->get_type(payload) == NOTIFY_V1) { notify = (notify_payload_t*)payload; if (notify->get_notify_type(notify) == RADIUS_ATTRIBUTE) diff --git a/src/libcharon/plugins/eap_radius/eap_radius_xauth.c b/src/libcharon/plugins/eap_radius/eap_radius_xauth.c index caca93fe8..bd960d2bc 100644 --- a/src/libcharon/plugins/eap_radius/eap_radius_xauth.c +++ b/src/libcharon/plugins/eap_radius/eap_radius_xauth.c @@ -16,6 +16,7 @@ #include "eap_radius_xauth.h" #include "eap_radius_plugin.h" #include "eap_radius.h" +#include "eap_radius_forward.h" #include <daemon.h> #include <radius_client.h> @@ -76,10 +77,12 @@ static status_t verify_radius(private_eap_radius_xauth_t *this, chunk_t pass) request->add(request, RAT_USER_PASSWORD, pass); eap_radius_build_attributes(request); + eap_radius_forward_from_ike(request); response = this->client->request(this->client, request); if (response) { + eap_radius_forward_to_ike(response); switch (response->get_code(response)) { case RMC_ACCESS_ACCEPT: |