aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2013-07-22 15:59:49 +0200
committerMartin Willi <martin@revosec.ch>2013-07-29 09:00:49 +0200
commit3a399574c214775fa271b3dc8a0619af1a007d64 (patch)
tree8676128b6da176b83bb2a8d59037423ca67ef419
parentc434b2a4a9f56b1f7c94ff01ccb0082e2aebd8c6 (diff)
downloadstrongswan-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.c3
-rw-r--r--src/libcharon/plugins/eap_radius/eap_radius_xauth.c3
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: