📄 cgi_set.c
字号:
// return message
if (byTmp != OP_OK)
{
sprintf((PSTR)&WEBg_SCgiInfo, "%s%s", g_aszErrMsg[byTmp], g_aszPortNameTable[wFailGrpId]);
return WEB_wGenResultMsgPkt((PSTR)&WEBg_SCgiInfo);
}
else
return WEB_wGenResultMsgPkt(g_aszErrMsg[byTmp]);
}
UINT16 CGI_wSetMiscCfg (void)
{
if (WEBg_SCgiInfo.byParaNum != 6)
return WEB_wGenResultMsgPkt(s_szParaNumErr);
WEBg_pSMiscPage->f2BSFMode = STRdwStr2Dec(WEBg_SCgiInfo.apszParaVal[0]);
WEBg_pSMiscPage->f1CollisionForever = STRdwStr2Dec(WEBg_SCgiInfo.apszParaVal[1]);
WEBg_pSMiscPage->f2AutoAging = STRdwStr2Dec(WEBg_SCgiInfo.apszParaVal[2]);
WEBg_pSMiscPage->f1MacHashMode = STRdwStr2Dec(WEBg_SCgiInfo.apszParaVal[3]);
WEBg_pSMiscPage->f2AutoLogout = STRdwStr2Dec(WEBg_SCgiInfo.apszParaVal[4]);
WEBg_pSMiscPage->f2WebAutoLogout = STRdwStr2Dec(WEBg_SCgiInfo.apszParaVal[5]);
PIMISC_vSavePage(WEBg_pSMiscPage);
// return successive message
return WEB_wGenResultMsgPkt(g_aszErrMsg[OP_OK]);
}
UINT16 CGI_wSetAdmCfg (void)
{
BYTE byOldVal = WEBg_bLoginEbl;
if (WEBg_SCgiInfo.byParaNum != 4)
return WEB_wGenResultMsgPkt(s_szParaNumErr);
PIADM_vInitPage(WEBg_pSAdmPage);
WEBg_pSAdmPage->byLoginEbl = STRdwStr2Dec(WEBg_SCgiInfo.apszParaVal[0]);
if (WEBg_bLoginEbl && WEBg_pSAdmPage->byLoginEbl) // Do only last time and this time are both enabled.
{
// if any parameter is empty string, return error message
if (WEBg_SCgiInfo.apszParaVal[1][0] == 0 ||
WEBg_SCgiInfo.apszParaVal[2][0] == 0 ||
WEBg_SCgiInfo.apszParaVal[3][0] == 0)
{
return WEB_wGenResultMsgPkt("CGI ERROR: Empty input");
}
STRvStrcpy(WEBg_pSAdmPage->strNewUsername, WEBg_SCgiInfo.apszParaVal[1]);
STRvStrcpy(WEBg_pSAdmPage->strNewPasswd, WEBg_SCgiInfo.apszParaVal[2]);
STRvStrcpy(WEBg_pSAdmPage->strAgainPasswd, WEBg_SCgiInfo.apszParaVal[3]);
return WEB_wGenResultMsgPkt(g_aszErrMsg[PIbyADM_SavePage(WEBg_pSAdmPage)]);
}
else
PIbyADM_SavePage(WEBg_pSAdmPage);
if (byOldVal==0 && WEBg_pSAdmPage->byLoginEbl==1)
return WEB_wPopupMsgBoxThenRedirect("Please click OK to re-login", "/");
else if (byOldVal==1 && WEBg_pSAdmPage->byLoginEbl==0)
{
*WEBg_szLoginID = 0;
return WEB_wPopupMsgBoxThenRedirect("Please click OK to logout current connection", "/");
}
else
WEB_wGenResultMsgPkt("Nothing changed");
}
UINT16 CGI_wSetIpCfg (void)
{
if (WEBg_SCgiInfo.byParaNum != 3)
return WEB_wGenResultMsgPkt(s_szParaNumErr);
// ip config
STRvStrcpy(WEBg_pSIpConfPage->szIp, WEBg_SCgiInfo.apszParaVal[0]);
STRvStrcpy(WEBg_pSIpConfPage->szSubnet, WEBg_SCgiInfo.apszParaVal[1]);
STRvStrcpy(WEBg_pSIpConfPage->szGateway, WEBg_SCgiInfo.apszParaVal[2]);
return WEB_wGenResultMsgPkt(g_aszErrMsg[PIIPCONF_bySavePage(WEBg_pSIpConfPage)]);
}
UINT16 CGI_wSetSnfCfg (void)
{
BYTE si, byTmp;
if (WEBg_SCgiInfo.byParaNum < 3)
return WEB_wGenResultMsgPkt(s_szParaNumErr);
STRvMemset(WEBg_pSSniffPage, 0, sizeof(SSniffPageCfg));
WEBg_pSSniffPage->f2Mode = STRdwStr2Dec(WEBg_SCgiInfo.apszParaVal[0]);
WEBg_pSSniffPage->f6DestPort = STRdwStr2Dec(WEBg_SCgiInfo.apszParaVal[1]);
for (si = 2; si < WEBg_SCgiInfo.byParaNum; si++)
{
byTmp = STRdwStr2Dec(WEBg_SCgiInfo.apszParaVal[si]);
WEBg_pSSniffPage->abySrcPortMsk[byTmp/8] |= (0x01<<(byTmp%8)); // Beware of endian
}
byTmp = PISNF_bySavePage(WEBg_pSSniffPage);
// return successive message
return WEB_wGenResultMsgPkt(g_aszErrMsg[byTmp]);
}
UINT16 CGI_wSetQosCfg (void)
{
BYTE si;
if (WEBg_SCgiInfo.byParaNum != g_byLogIdNum+9)
return WEB_wGenResultMsgPkt(s_szParaNumErr);
WEBg_pSQosPage->byQosMode = STRdwStr2Dec(WEBg_SCgiInfo.apszParaVal[0]);
for (si = 0; si < g_byLogIdNum; si++)
#ifndef __ASIC_VT6524
WEBg_pSQosPage->abyStaticPrior[si] = STRdwStr2Dec(WEBg_SCgiInfo.apszParaVal[si+1]);
#else
WEBg_pSQosPage->aSPortCfg[si].f2StaticPrior = STRdwStr2Dec(WEBg_SCgiInfo.apszParaVal[si+1]);
#endif
WEBg_pSQosPage->by8021pMap = 0;
for (si=0; si<8; si++)
WEBg_pSQosPage->by8021pMap |= (((BYTE)STRdwStr2Dec(WEBg_SCgiInfo.apszParaVal[si+g_byLogIdNum+1])) << (7-si));
PIQOS_vSavePage(WEBg_pSQosPage);
// return successive message
return WEB_wGenResultMsgPkt(g_aszErrMsg[OP_OK]);
}
// to set vlan mode and delete vlan groups
UINT16 CGI_wSetVlanCfg (void)
{
BYTE byTmp, byRes;
UINT16 wFailVid;
if (WEBg_SCgiInfo.byParaNum == 0)
return WEB_wGenResultMsgPkt(s_szParaNumErr);
PIVLAN_vInitPage(WEBg_pSVlanPage);
// change vlan mode
byTmp = STRdwStr2Dec(WEBg_SCgiInfo.apszParaVal[0]);
if (WEBg_pSVlanPage->byVlanMode != byTmp)
{
WEBg_pSVlanPage->byVlanMode = byTmp;
PIVLAN_vSetVlanMode(WEBg_pSVlanPage);
// reload vlan.htm
return WEB_wGenRedirectPkt("ShowVlanCfg");
}
// delete selected vlan groups
if (WEBg_SCgiInfo.byParaNum == 1)
return WEB_wGenResultMsgPkt("Nothing to delete");
for (byTmp=1; byTmp<WEBg_SCgiInfo.byParaNum; byTmp++)
{
WEBg_pSCurGrp->wVid = STRdwStr2Dec(WEBg_SCgiInfo.apszParaVal[byTmp]);
byRes = PIVLAN_byDelGrp(WEBg_pSVlanPage, &wFailVid);
if (byRes != OP_OK)
{
if (wFailVid != UINT16_MAX)
{
sprintf((PSTR)&WEBg_SCgiInfo, "%s%s", g_aszErrMsg[byRes], g_aszPortNameTable[wFailVid]);
return WEB_wGenResultMsgPkt((PSTR)&WEBg_SCgiInfo);
}
else
return WEB_wGenResultMsgPkt(g_aszErrMsg[byRes]);
}
}
// return successive message
return WEB_wGenResultMsgPkt(g_aszErrMsg[OP_OK]);
}
UINT16 CGI_wSetVlanGrp (void)
{
BYTE si, byTmp;
UINT16 wFailVid=0;
if (WEBg_SCgiInfo.byParaNum != g_byLogIdNum+2)
return WEB_wGenResultMsgPkt(s_szParaNumErr);
PIVLAN_vInitPage(WEBg_pSVlanPage);
// get vid
STRvMemset(WEBg_pSCurGrp, 0, sizeof(SVlanGrp));
WEBg_pSCurGrp->wVid = STRdwStr2Dec(WEBg_SCgiInfo.apszParaVal[1]);
// get member
for (si=0; si<g_byLogIdNum; si++)
{
byTmp = STRdwStr2Dec(WEBg_SCgiInfo.apszParaVal[si+2]) & 0x03;
WEBg_pSCurGrp->abyMbrMsk[si/4] |= (byTmp << (si%4)*2); // Beware of endian
}
// save config
if (WEBg_SCgiInfo.apszParaVal[0][0] == 'A')
byTmp = PIVLAN_byInsGrp(WEBg_pSVlanPage, &wFailVid);
else
byTmp = PIVLAN_byEditGrp(WEBg_pSVlanPage, &wFailVid);
// return message
if (byTmp == VLAN_OP_UNTAG_BELONG_OTHER_GRP)
{
sprintf((PSTR)&WEBg_SCgiInfo, "%s%d", g_aszErrMsg[byTmp], wFailVid);
return WEB_wGenResultMsgPkt((PSTR)&WEBg_SCgiInfo);
}
else if (byTmp == VLAN_OP_FOUND_ISO_PORT)
{
sprintf((PSTR)&WEBg_SCgiInfo, "%s%s", g_aszErrMsg[byTmp], g_aszPortNameTable[wFailVid]);
return WEB_wGenResultMsgPkt((PSTR)&WEBg_SCgiInfo);
}
else
return WEB_wGenResultMsgPkt(g_aszErrMsg[byTmp]);
}
UINT16 CGI_wSetV1qifCfg (void)
{
BYTE si, byTmp;
if (WEBg_SCgiInfo.byParaNum != g_byLogIdNum*2)
return WEB_wGenResultMsgPkt(s_szParaNumErr);
STRvMemset(WEBg_pSVlanIngrFlt, 0, sizeof(SVlanIngrFilterPageCfg));
// prepare cfgbuf
for (si=0; si<g_byLogIdNum; si++)
{
byTmp = (STRdwStr2Dec(WEBg_SCgiInfo.apszParaVal[si*2]) | (STRdwStr2Dec(WEBg_SCgiInfo.apszParaVal[si*2+1])<<1)) & 0x03;
WEBg_pSVlanIngrFlt->abyCfg[si/4] |= (byTmp << (si%4)*2);
}
PIVLNFLT_vSavePage(WEBg_pSVlanIngrFlt);
// return successive message
return WEB_wGenResultMsgPkt(g_aszErrMsg[OP_OK]);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -