Define TNC-VLAN-{Access,Isolate}, and look for them in
authoraland <aland>
Wed, 28 Nov 2007 12:32:10 +0000 (12:32 +0000)
committeraland <aland>
Wed, 28 Nov 2007 12:32:10 +0000 (12:32 +0000)
rlm_eap_tnc

share/dictionary.freeradius.internal
src/include/radius.h
src/modules/rlm_eap/types/rlm_eap_tnc/rlm_eap_tnc.c

index 7acc63c..c02018a 100644 (file)
@@ -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
index af85ac1..8c54852 100644 (file)
 #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
index f060bcb..f25c403 100644 (file)
@@ -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: