📄 authconfig.c
字号:
#include "authConfig.h"
#include "ZanPortProperty.h"
#include "dot1xAuth.h"
#include <syslogMsg.h>
int SucceessRate = 0;
u_long TotalRequest = 0;
u_long TotalSuccess = 0;
u_long gTotalUserNum = 0;
u_long gMaxUserNum = 2000;
/******Config Templete******/
MainTemplete_t MainTem[MAX_MAIN_TEMPLETE_NUM];
AuthMainTemplete_t AuthTem[MAX_AUTH_TEMPLETE_NUM];
RadiusTemplete_t RadiusTem[MAX_RADIUS_TEMPLETE_NUM];
AuthWebTemplete_t WebTem[MAX_WEB_TEMPLETE_NUM];
AuthDot1xTemplete_t Dot1xTem[MAX_DOT1X_TEMPLETE_NUM];
UserManageTemplete_t UsrManTem[MAX_USER_MAN_TEMPLETE_NUM];
MessageAdvert_t MsgAdvertTem[MAX_MESSAGE_TEMPLETE_NUM];
BlackPolicy_t BlkPolcy[MAX_BLK_POLCY_NUM];
Temp2Vlan_t *Port2Temp2Vlan[64];
u_char PortDefaultTem[64] = {0};
u_char GlobalDefaultTem = 0;
zanPortPropertyRoot_t g_zanPortProperty;
/******Config Templete End******/
Mesage_Table_t MsgTbl[MAX_ROW_IN_MSG_TBL];
Advert_Table_t AdvertTbl[MAX_ROW_IN_ADVERT_TBL];
Black_Table_t BlkTbl[MAX_ROW_IN_BLK_TBL];
u_short BlkNum = 0;
Abnormal_Table_t AbnormTbl[256];
FrozenUser_Table_t FrozTbl[MAX_ROW_IN_FROZE_TBL];
Shutdown_Table_t ShutTbl[MAX_ROW_IN_SHUT_TBL];
u_long FrozeAllUser = FALSE;
u_long LimitVersion = 0; /*wanghn 20030709 add for version check*/
u_long LimitBuild = 0; /*wanghn 20030709 add for version check*/
LocalUserEntry_t LocalList[MAX_LOCAL_USER_NUM];
extern int flag;
void authConfigInit()
{
int i;
STATUS rc;
/* initialize config templete */
/*---Main Templete---*/
for (i = 0; i < MAX_MAIN_TEMPLETE_NUM; i++)
{
bzero((char *)&MainTem[i], sizeof(MainTemplete_t));
MainTem[i].RowStatus = ROW_STATUS_DESTORY;
}
/*---Auth Mode Templete---*/
for (i = 0; i < MAX_AUTH_TEMPLETE_NUM; i++)
{
bzero((char *)&AuthTem[i], sizeof(AuthMainTemplete_t));
AuthTem[i].RowStatus = ROW_STATUS_DESTORY;
}
/*---Radius Templete---*/
for (i = 0; i < MAX_RADIUS_TEMPLETE_NUM; i++)
{
bzero((char *)&RadiusTem[i], sizeof(RadiusTemplete_t));
RadiusTem[i].AcctPort = 1813;
RadiusTem[i].AuthPort = 1812;
RadiusTem[i].MaxDeadTimes = 10;
RadiusTem[i].ReTransPriod = 30;
RadiusTem[i].ReTransTimes = 3;
RadiusTem[i].RowStatus = ROW_STATUS_DESTORY;
}
/*---Web Templete---*/
for (i = 0; i < MAX_WEB_TEMPLETE_NUM; i++)
{
bzero((char *)&WebTem[i], sizeof(AuthWebTemplete_t));
WebTem[i].RowStatus = ROW_STATUS_DESTORY;
}
/*---Dot1x Templete---*/
for (i = 0; i < MAX_DOT1X_TEMPLETE_NUM; i++)
{
bzero((char *)&Dot1xTem[i], sizeof(AuthDot1xTemplete_t));
Dot1xTem[i].AuthStyle = DOT1X_AUTH_PROTOCOL_PAP;
Dot1xTem[i].ReTransPriod = 30;
Dot1xTem[i].ReTransTimes = 3;
Dot1xTem[i].ReAuthEn = TRUE;
Dot1xTem[i].ReAuthPriod = 30;
Dot1xTem[i].ReAuthReTransPriod = 30;
Dot1xTem[i].ReAuthReTransTimes = 3;
Dot1xTem[i].ReAuthStyle = HALF_RE_AUTH;
Dot1xTem[i].HoldPriod = 10;
Dot1xTem[i].RowStatus = ROW_STATUS_DESTORY;
}
/*---User Manage Templete---*/
for (i = 0; i < MAX_USER_MAN_TEMPLETE_NUM; i++)
{
bzero((char *)&UsrManTem[i], sizeof(UserManageTemplete_t));
UsrManTem[i].RowStatus = ROW_STATUS_DESTORY;
UsrManTem[i].AddDomainEn = FALSE;
UsrManTem[i].AntiProxy = FALSE;
UsrManTem[i].RecBlackList = FALSE;
UsrManTem[i].CheckClientVersion = FALSE;
UsrManTem[i].CheckFactroy = FALSE;
UsrManTem[i].ProtectTimer = FALSE;
UsrManTem[i].ProtectPriod = 24 * 60 *60; /* hours */
UsrManTem[i].SendMessage = FALSE;
UsrManTem[i].SendLeftUp = FALSE;
UsrManTem[i].SendLeftDown = FALSE;
}
/*---Message Policy Templete---*/
for (i = 0; i < MAX_MESSAGE_TEMPLETE_NUM; i++)
{
bzero((char *)&MsgAdvertTem[i], sizeof(MessageAdvert_t));
MsgAdvertTem[i].RowStatus = ROW_STATUS_DESTORY;
}
/*---Black Policy Templete---*/
for (i = 0; i < MAX_BLK_POLCY_NUM; i++)
{
bzero((char *)&BlkPolcy[i], sizeof(BlackPolicy_t));
BlkPolcy[i].Status = ROW_STATUS_DESTORY;
}
for (i = 0; i < 64; i++)
{
Port2Temp2Vlan[i] = NULL;
}
/*---Abnormal Table---*/
for (i = 0; i < 256; i++)
{
bzero((char *)&AbnormTbl[i], sizeof(Abnormal_Table_t));
}
/*---Black Table---*/
for (i = 0; i < MAX_ROW_IN_BLK_TBL; i++)
{
bzero((char *)&BlkTbl[i], sizeof(Black_Table_t));
BlkTbl[i].RowStatus = ROW_STATUS_DESTORY;
}
/*---Instant Message Table---*/
for (i = 0; i < MAX_ROW_IN_MSG_TBL; i++)
{
bzero((char *)&MsgTbl[i], sizeof(Mesage_Table_t));
MsgTbl[i].RowStatus = ROW_STATUS_DESTORY;
}
/*---Instant Advert Table---*/
for (i = 0; i < MAX_ROW_IN_ADVERT_TBL; i++)
{
bzero((char *)&AdvertTbl[i], sizeof(Advert_Table_t));
AdvertTbl[i].RowStatus = ROW_STATUS_DESTORY;
}
/*---Frozen Table---*/
for (i = 0; i < MAX_ROW_IN_FROZE_TBL; i++)
{
bzero((char *)&FrozTbl[i], sizeof(FrozenUser_Table_t));
FrozTbl[i].RowStatus = ROW_STATUS_DESTORY;
}
/*---Shutdown Table---*/
for (i = 0; i < MAX_ROW_IN_SHUT_TBL; i++)
{
bzero((char *)&ShutTbl[i], sizeof(Shutdown_Table_t));
ShutTbl[i].RowStatus = ROW_STATUS_DESTORY;
}
/*---Local user List---*/
for (i = 0; i < MAX_LOCAL_USER_NUM; i++)
{
bzero((char *)&LocalList[i], sizeof(LocalUserEntry_t));
LocalList[i].RowStatus = ROW_STATUS_DESTORY;
}
g_zanPortProperty.pPortProperty = NULL;
/* MIB initialize */
rc = authConfigureMibInit(NULL, NULL);
if (rc == ERROR)
{
Dot1x_logMsgSend(DOT1X_MODULE, SYSLOG_SEVERITY_EMERG, "Initaliztion", "authConfigureMib Initialize failure!!");
return ;
}
rc = zanPortPropertyMibInit(NULL, NULL);
if (rc == ERROR)
{
Dot1x_logMsgSend(DOT1X_MODULE, SYSLOG_SEVERITY_EMERG, "Initaliztion", "zanPortPropertyMibInit Initialize failure!!");
return ;
}
rc = ieee8023xInit(NULL,NULL);
if (rc == ERROR)
{
Dot1x_logMsgSend(DOT1X_MODULE, SYSLOG_SEVERITY_EMERG, "Initaliztion", "ieee8023xInit Initialize failure!!");
return ;
}
}
STATUS ClearBlkTbl(void)
{
int i = 0;
for (i = 0; i < 100; i ++)
bzero((char *)(&BlkTbl[i]), sizeof(Black_Table_t));
for (i = 0; i < 256; i++)
bzero((char *)(&AbnormTbl[i]), sizeof(Abnormal_Table_t));
BlkNum = 0;
return OK;
}
void showLocalList(void)
{
int i;
printf("\n\nNUM UserName Password RowStatus\n");
printf("--- ------------ ---------------- --------------\n");
for (i=0; i<32; i++)
{
printf("%-5d%-16s%-16s", i+1, LocalList[i].userName, LocalList[i].password);
switch (LocalList[i].RowStatus)
{
case 1:
printf("Active\n");
break;
case 2:
break;
case 3:
printf("NotReady\n");
break;
case 4:
break;
case 5:
break;
case 6:
printf("Destroy\n");
break;
}
}
}
/*--------------debug routine----------------*/
void setDefaultConfig(void)
{
GlobalDefaultTem = 1;
MainTem[1].AuthLocation = RadiusAuthenticate;
MainTem[1].PrimaryRadiusTempleteIndex = 1;
MainTem[1].SecondaryRadiusTempleteIndex = 1;
MainTem[1].AuthMainTempleteIndex = 1;
MainTem[1].UserManageTempleteIndex = 1;
MainTem[1].RowStatus = ROW_STATUS_ACTIVE;
AuthTem[1].FirstAuthStyle = Auth_Style_Default;
AuthTem[1].SecondAuthStyle = Auth_Style_Dot1x;
AuthTem[1].AuthDot1xTempleteIndex = 1;
AuthTem[1].AuthWEBTempleteIndex = 1;
AuthTem[1].RowStatus = ROW_STATUS_ACTIVE;
strcpy(WebTem[1].WebSecret, "000000");
WebTem[1].RowStatus = ROW_STATUS_ACTIVE;
Dot1xTem[1].AuthStyle = DOT1X_AUTH_PROTOCOL_PAP;
Dot1xTem[1].ReTransPriod = 30;
Dot1xTem[1].ReTransTimes = 3;
Dot1xTem[1].ReAuthPriod = 30;
Dot1xTem[1].ReAuthEn = TRUE;
Dot1xTem[1].ReAuthStyle = HALF_RE_AUTH;
Dot1xTem[1].RowStatus = ROW_STATUS_ACTIVE;
UsrManTem[1].AddDomainEn = FALSE;
strcpy(UsrManTem[1].AddDomain, "tel");
UsrManTem[1].AntiProxy = FALSE;
UsrManTem[1].RecBlackList = FALSE;
UsrManTem[1].BlackListPolicyIndex = 1;
UsrManTem[1].CheckClientVersion = FALSE;
UsrManTem[1].CheckFactroy = FALSE;
UsrManTem[1].ProtectTimer = FALSE;
UsrManTem[1].ProtectPriod = 24; /* hours */
UsrManTem[1].SendMessage = FALSE;
UsrManTem[1].MessagePolicyIndex = 1;
UsrManTem[1].SendLeftUp = FALSE;
UsrManTem[1].SendLeftDown = FALSE;
UsrManTem[1].RowStatus = ROW_STATUS_ACTIVE;
RadiusTem[1].AcctPort = 1813;
RadiusTem[1].AuthPort = 1812;
RadiusTem[1].MaxDeadTimes = 10;
RadiusTem[1].ReTransPriod = 30;
RadiusTem[1].ReTransTimes = 3;
RadiusTem[1].RowStatus = ROW_STATUS_ACTIVE;
RadiusTem[1].ServerIP = 0xc0a8297a;
strcpy(RadiusTem[1].Secret, "000000");
RadiusTem[2].AcctPort = 1813;
RadiusTem[2].AuthPort = 1812;
RadiusTem[2].MaxDeadTimes = 10;
RadiusTem[2].ReTransPriod = 30;
RadiusTem[2].ReTransTimes = 3;
RadiusTem[2].RowStatus = ROW_STATUS_ACTIVE;
RadiusTem[2].ServerIP = 0xc0a80902;
strcpy(RadiusTem[2].Secret, "000000");
MsgAdvertTem[1].MsgType = MSG_TYPE_MESSAG;
strcpy(MsgAdvertTem[1].MsgContant, "test for config");
MsgAdvertTem[1].RowStatus = ROW_STATUS_ACTIVE;
BlkPolcy[1].Event = FAIL_BY_REJECT;
BlkPolcy[1].Times = 2;
BlkPolcy[1].Status = ROW_STATUS_ACTIVE;
return ;
}
void authLcbap(void)
{
Dot1xTem[1].AuthStyle = DOT1X_AUTH_PROTOCOL_LCBAP;
}
void noReauth(void)
{
Dot1xTem[1].ReAuthEn = FALSE;
}
void fullReauth(void)
{
Dot1xTem[1].ReAuthStyle = FULL_RE_AUTH;
}
void testMib(void)
{
u_short vlan, port;
u_long index[8];
u_long idxCnt = 0;
u_long valueLen;
idbGetNext("authConfigureMib:dot1xUserVlan", index, &idxCnt, (void *)&vlan, &valueLen);
idbGet("authConfigureMib:dot1xUserPort", index, idxCnt, (void *)&port, &valueLen);
printf("vlan : %d, port : %d", vlan, port);
}
void checkFactory(void)
{
UsrManTem[1].CheckFactroy = TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -