From 5a8d9b568f5e37723db5d848ac429cc0eadd95d3 Mon Sep 17 00:00:00 2001 From: aland Date: Wed, 28 Nov 2007 12:32:10 +0000 Subject: [PATCH] Define TNC-VLAN-{Access,Isolate}, and look for them in rlm_eap_tnc --- share/dictionary.freeradius.internal | 5 ++++- src/include/radius.h | 2 ++ src/modules/rlm_eap/types/rlm_eap_tnc/rlm_eap_tnc.c | 7 +++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/share/dictionary.freeradius.internal b/share/dictionary.freeradius.internal index 7acc63c..c02018a 100644 --- a/share/dictionary.freeradius.internal +++ b/share/dictionary.freeradius.internal @@ -63,9 +63,11 @@ ATTRIBUTE Client-Shortname 1024 string ATTRIBUTE Load-Balance-Key 1025 string # -# Range: 1025-1028 +# Range: 1024-1026 # unused # +ATTRIBUTE TNC-VLAN-Access 1027 string +ATTRIBUTE TNC-VLAN-Isolate 1028 string ATTRIBUTE User-Category 1029 string ATTRIBUTE Group-Name 1030 string ATTRIBUTE Huntgroup-Name 1031 string @@ -133,6 +135,7 @@ ATTRIBUTE Packet-Dst-IPv6-Address 1098 ipv6addr ATTRIBUTE Virtual-Server 1099 string ATTRIBUTE Cleartext-Password 1100 string ATTRIBUTE Password-With-Header 1101 string +ATTRIBUTE Inner-Tunnel-User-Name 1102 string # # Range: 1200-1279 diff --git a/src/include/radius.h b/src/include/radius.h index af85ac1..8c54852 100644 --- a/src/include/radius.h +++ b/src/include/radius.h @@ -146,6 +146,8 @@ #define PW_CLIENT_SHORTNAME 1024 #define PW_LOAD_BALANCE_KEY 1025 +#define PW_TNC_VLAN_ACCESS 1027 +#define PW_TNC_VLAN_ISOLATE 1028 #define PW_USER_CATEGORY 1029 #define PW_GROUP_NAME 1030 #define PW_HUNTGROUP_NAME 1031 diff --git a/src/modules/rlm_eap/types/rlm_eap_tnc/rlm_eap_tnc.c b/src/modules/rlm_eap/types/rlm_eap_tnc/rlm_eap_tnc.c index f060bcb..f25c403 100644 --- a/src/modules/rlm_eap/types/rlm_eap_tnc/rlm_eap_tnc.c +++ b/src/modules/rlm_eap/types/rlm_eap_tnc/rlm_eap_tnc.c @@ -114,13 +114,20 @@ static int tnc_initiate(void *type_data, EAP_HANDLER *handler) static void setVlanAttribute(rlm_eap_tnc_t *inst, EAP_HANDLER *handler, VlanAccessMode mode){ + VALUE_PAIR *vp; char *vlanNumber = NULL; switch(mode){ case VLAN_ISOLATE: vlanNumber = inst->vlan_isolate; + vp = pairfind(handler->request->config_items, + PW_TNC_VLAN_ISOLATE); + if (vp) vlanNumber = vp->vp_strvalue; break; case VLAN_ACCESS: vlanNumber = inst->vlan_access; + vp = pairfind(handler->request->config_items, + PW_TNC_VLAN_ACCESS); + if (vp) vlanNumber = vp->vp_strvalue; break; default: -- 2.1.4