📄 cgi_show.c
字号:
}
psz += STR_iStrcat(psz, "<P>IGMP Mode : <SELECT name=mode onChange=chmod()>");
for (si=0; si<2; si++)
{
psz += STR_iStrcat(psz, "<OPTION value=");
psz += STR_iU32ToStrDec(psz, si);
psz += STR_iStrcat(psz, ((si == WEBg_pSIGMPPage->byMode) ? " selected" : ""));
psz += STR_iStrcat(psz, ">");
psz += STR_iStrcat(psz, g_aszEnDisCfg[si]);
}
psz += STR_iStrcat(psz, "</SELECT><P>IGMP Group List :");
for (si=0; si<WEBg_pSIGMPPage->wValidEntryNum; si++)
{
STR_iStrcpy(WEBg_pSIGMPPage->SCurGrp.szIp, WEBg_pSIGMPPage->astrGrpIpList+si*(IP_STRING_LEN+1));
psz += STR_iStrcat(psz, "<BR><INPUT type=checkbox name=grp value=");
psz += STR_iU32ToStrDec(psz, si);
psz += STR_iStrcat(psz, "><A HREF=ShowIGMPGrp?si=");
psz += STR_iU32ToStrDec(psz, si);
psz += STR_iStrcat(psz, ">");
//show grp : IP--Vid
psz += STR_iStrcat(psz, WEBg_pSIGMPPage->SCurGrp.szIp);
psz += STR_iStrcat(psz, " #");
psz += STR_iU32ToStrDec(psz, WEBg_pSIGMPPage->awValidGrpIdList[si]);
}
psz += STR_iStrcat(psz, s_szVlanJS);
psz += STR_iStrcat(psz, g_aszWebLoginID);
psz += STR_iStrcat(psz, "ShowIGMPGrp'\">");
psz += STR_iStrcat(psz, s_szProGrpJS2);
return (psz - HTTPg_acOutBuf);
}
UINT16 CGI_wShowIGMPGrp (void)
{
char* psz = HTTPg_acOutBuf;
UINT8 si, u8Tmp;
PIIGMP_vInitPage(WEBg_pSIGMPPage);
if (!WEBg_pSIGMPPage->byMode) //disable
return WEB_wGenResultMsgPkt("Please change IGMP mode first!");
// if (WEBg_SCgiInfo.u16ParaNum==1), then Edit else Add a igmp group
psz += STR_iStrcpy(psz, g_szHtmlOkHeader);
psz += STR_iStrcat(psz, "<BODY><CENTER><H2>");
psz += STR_iStrcat(psz, ((WEBg_SCgiInfo.u16ParaNum==1)?"Edit":"Add"));
psz += STR_iStrcat(psz, " a IGMP Group</H2>");
psz += STR_iStrcat(psz, "<FORM id=frm method=GET action=SetIGMPGrp><INPUT type=hidden name=f value=");
psz += STR_iStrcat(psz, ((WEBg_SCgiInfo.u16ParaNum==1)?"E":"A"));
psz += STR_iStrcat(psz, "><TABLE><TR><TD>");
// get a igmp group
if (WEBg_SCgiInfo.u16ParaNum==1) {
u8Tmp = STR_u32StrDecToU32(WEBg_SCgiInfo.apszParaVal[0]);
STR_pszStrcpy(WEBg_pSIGMPPage->SCurGrp.szIp, WEBg_pSIGMPPage->astrGrpIpList+u8Tmp*(IP_STRING_LEN+1));
WEBg_pSIGMPPage->SCurGrp.u16Vid = WEBg_pSIGMPPage->awValidGrpIdList[u8Tmp];
u8Tmp = PIIGMP_byGetGrp(WEBg_pSIGMPPage);
if (u8Tmp != OP_OK)
return WEB_wGenResultMsgPkt(g_aszErrMsg[u8Tmp]);
}
else
STR_pvMemset(&WEBg_pSIGMPPage->SCurGrp, 0, sizeof(SIpmEntryPage));
// print VID
psz += STR_iStrcat(psz, "<P> IP Address :<INPUT type=");
psz += STR_iStrcat(psz, ((WEBg_SCgiInfo.u16ParaNum==1)?"hidden":"text"));
psz += STR_iStrcat(psz, " maxlength=");
psz += STR_iU32ToStrDec(psz, IP_STRING_LEN);
psz += STR_iStrcat(psz, " name=p value =");
psz += STR_iStrcat(psz, WEBg_pSIGMPPage->SCurGrp.szIp);
psz += STR_iStrcat(psz, "> ");
if (WEBg_SCgiInfo.u16ParaNum==1) // edit->hidden->show ip
psz += STR_iStrcat(psz, WEBg_pSIGMPPage->SCurGrp.szIp);
psz += STR_iStrcat(psz, "<br> VID : <INPUT type=");
psz += STR_iStrcat(psz, ((WEBg_SCgiInfo.u16ParaNum==1)?"hidden":"text"));
psz += STR_iStrcat(psz, " maxlength=4 name=v value=");
psz += STR_iU32ToStrDec(psz, WEBg_pSIGMPPage->SCurGrp.u16Vid);
psz += STR_iStrcat(psz, "> ");
if (WEBg_SCgiInfo.u16ParaNum==1) // edit->hidden->show vid
psz += STR_iU32ToStrDec(psz, WEBg_pSIGMPPage->SCurGrp.u16Vid);
psz += STR_iStrcat(psz, "<br> Static :");
psz += WEB_wAddSelectTag(psz, 'W', 0, g_aszEnDisCfg, 2, *((PUINT8)&WEBg_pSIGMPPage->SCurGrp.bStatic), FALSE, 0);
psz += STR_iStrcat(psz, "<br> CPU :");
psz += WEB_wAddSelectTag(psz, 'W', 1, g_aszEnDisCfg, 2, *((PUINT8)&WEBg_pSIGMPPage->SCurGrp.bCpu), FALSE, 0);
psz += STR_iStrcat(psz, "<br> Dp :");
psz += WEB_wAddSelectTag(psz, 'W', 2, g_aszEnDisCfg, 2, *((PUINT8)&WEBg_pSIGMPPage->SCurGrp.bDp), FALSE, 0);
// print all members
psz += STR_iStrcat(psz, "<P>Group Member :<table border=1>");
for (si=0; si<g_byLogIdNum; si++)
{
u8Tmp = (WEBg_pSIGMPPage->SCurGrp.abyMbrMsk[si/8] >> (si%8)) & 0x01; // Beware of endian
// Put port name
psz += STR_iStrcat(psz, (si % 3) ? "" : "<tr>");
psz += STR_iStrcat(psz, "<td>");
psz += STR_iStrcat(psz, g_aszPortNameTable[g_abyLogIdList[si]]);
psz += WEB_wAddSelectTag(psz, 'M', si, g_aszMbrNotCfg, 2, u8Tmp, TRUE, 0);
}
psz += STR_iStrcat(psz, "</table>");
psz += s_byAddFormTableEnd(psz);
return (psz - HTTPg_acOutBuf);
}
UINT16 CGI_wShowMibCnt(void)
{
char* psz = HTTPg_acOutBuf;
UINT8 byPortId;
// Get mib counters
PIMIB_vInitPage(WEBg_pSMibCnt, 0);
psz += s_byGenHtmlHeader(HTTPg_acOutBuf, g_strPortCntrs);
psz += s_byAddFormTable(psz, "SetMibCntCfg", 0);
psz += STR_iStrcat(psz, "<TABLE border=1><TR ALIGN=center><TH>Port<TH>RxGoodPkt<TH>RxBadPkt<TH>TxGoodPkt<TH>TxBadPkt<TH>DropPkt<TH>TxAbrt<TH>Collision</TR>");
for (byPortId = 0; byPortId < SWITCH_PORT_NUM; byPortId++) {
// Put begining of a table entry and port name
psz += STR_iStrcat(psz, "<TR");
psz += STR_iStrcat(psz, ((byPortId & 0x01) ? "" : s_szTrColor));
psz += STR_iStrcat(psz, "><TD>");
psz += STR_iStrcat(psz, g_aszPortNameTable[byPortId]);
psz += STR_iStrcat(psz, "<TD>");
psz += STR_iU32ToStrHex(psz, WEBg_pSMibCnt->aSPortStatistic[byPortId].dwRxGoodPkt);
psz += STR_iStrcat(psz, "<TD>");
psz += STR_iU32ToStrHex(psz, WEBg_pSMibCnt->aSPortStatistic[byPortId].dwRxBadPkt);
psz += STR_iStrcat(psz, "<TD>");
psz += STR_iU32ToStrHex(psz, WEBg_pSMibCnt->aSPortStatistic[byPortId].dwTxGoodPkt);
psz += STR_iStrcat(psz, "<TD>");
psz += STR_iU32ToStrHex(psz, WEBg_pSMibCnt->aSPortStatistic[byPortId].dwTxBadPkt);
psz += STR_iStrcat(psz, "<TD>");
psz += STR_iU32ToStrHex(psz, WEBg_pSMibCnt->aSPortStatistic[byPortId].dwDropPkt);
psz += STR_iStrcat(psz, "<TD>");
psz += STR_iU32ToStrHex(psz, WEBg_pSMibCnt->aSPortStatistic[byPortId].dwTxAbort);
psz += STR_iStrcat(psz, "<TD>");
psz += STR_iU32ToStrHex(psz, WEBg_pSMibCnt->aSPortStatistic[byPortId].dwCollision);
}
psz += STR_iStrcat(psz, "</TABLE>");
psz += STR_iStrcat(psz, "</TABLE><P><INPUT type=submit value=ClearAllCntr></FORM>");
return (psz - HTTPg_acOutBuf);
}
char s_szSMacJS2[] = "\
ShowSMacGrp'\">\
</FORM>";
UINT16 CGI_wShowSMacCfg(void)
{
char* psz = HTTPg_acOutBuf;
UINT16 si;
psz += s_byGenHtmlHeader(HTTPg_acOutBuf, g_strProvSMac);
psz += s_byAddFormTable(psz, "SetSMacCfg", 0);
PISMAC_vInitPage(WEBg_pSSMacPage);
psz += STR_iStrcat(psz, "<P>SMAC Entry List :");
for (si=0; si<WEBg_pSSMacPage->wValidEntryNum; si++)
{
STR_iStrcpy(WEBg_pSSMacPage->SCurGrp.azMacAddr, WEBg_pSSMacPage->astrGrpMacList+si*(MAC_STRING_LEN+1));
psz += STR_iStrcat(psz, "<BR><INPUT type=checkbox name=grp value=");
psz += STR_iU32ToStrDec(psz, si);
psz += STR_iStrcat(psz, "><A HREF=ShowSMacGrp?si=");
psz += STR_iU32ToStrDec(psz, si);
psz += STR_iStrcat(psz, ">");
//show grp : MAC--Fid
psz += STR_iStrcat(psz, WEBg_pSSMacPage->SCurGrp.azMacAddr);
psz += STR_iStrcat(psz, " #");
psz += STR_iU32ToStrDec(psz, WEBg_pSSMacPage->awValidGrpFidList[si]);
}
psz += STR_iStrcat(psz, s_szVlanJS);
psz += STR_iStrcat(psz, g_aszWebLoginID);
psz += STR_iStrcat(psz, s_szSMacJS2);
return (psz - HTTPg_acOutBuf);
}
UINT16 CGI_wShowSMacGrp (void)
{
char* psz = HTTPg_acOutBuf;
UINT8 si, u8Tmp;
PISMAC_vInitPage(WEBg_pSSMacPage);
// if (WEBg_SCgiInfo.u16ParaNum==1), then Edit else Add a smac group
psz += STR_iStrcpy(psz, g_szHtmlOkHeader);
psz += STR_iStrcat(psz, "<BODY><CENTER><H2>");
psz += STR_iStrcat(psz, ((WEBg_SCgiInfo.u16ParaNum==1)?"Edit":"Add"));
psz += STR_iStrcat(psz, " a Static MAC Entry</H2>");
psz += STR_iStrcat(psz, "<FORM id=frm method=GET action=SetSMacGrp><INPUT type=hidden name=f value=");
psz += STR_iStrcat(psz, ((WEBg_SCgiInfo.u16ParaNum==1)?"E":"A"));
psz += STR_iStrcat(psz, "><TABLE><TR><TD>");
// get a smac group
if (WEBg_SCgiInfo.u16ParaNum==1) {
u8Tmp = STR_u32StrDecToU32(WEBg_SCgiInfo.apszParaVal[0]);
STR_pszStrcpy(WEBg_pSSMacPage->SCurGrp.azMacAddr, WEBg_pSSMacPage->astrGrpMacList+u8Tmp*(MAC_STRING_LEN+1));
WEBg_pSSMacPage->SCurGrp.u16Fid = WEBg_pSSMacPage->awValidGrpFidList[u8Tmp];
u8Tmp = PISMACGP_byGetGrp(WEBg_pSSMacPage);
if (u8Tmp != OP_OK)
return WEB_wGenResultMsgPkt(g_aszErrMsg[u8Tmp]);
}
else {
STR_pvMemset(&WEBg_pSSMacPage->SCurGrp, 0, sizeof(SSMacEntryPage));
STR_pszStrcpy(WEBg_pSSMacPage->SCurGrp.azMacAddr, "0:0:0:0:0:0");
}
//load for source portid selection
PISMACGP_vInitAddOrEditGrpPage(WEBg_pSSMacPage);
// print FID
psz += STR_iStrcat(psz, "<P> MAC Address :<INPUT type=");
psz += STR_iStrcat(psz, ((WEBg_SCgiInfo.u16ParaNum==1)?"hidden":"text"));
psz += STR_iStrcat(psz, " maxlength=");
psz += STR_iU32ToStrDec(psz, MAC_STRING_LEN);
psz += STR_iStrcat(psz, " name=p value =");
psz += STR_iStrcat(psz, WEBg_pSSMacPage->SCurGrp.azMacAddr);
psz += STR_iStrcat(psz, "> ");
if (WEBg_SCgiInfo.u16ParaNum==1) // edit->hidden->show mac
psz += STR_iStrcat(psz, WEBg_pSSMacPage->SCurGrp.azMacAddr);
psz += STR_iStrcat(psz, "<br> FID : <INPUT type=");
psz += STR_iStrcat(psz, ((WEBg_SCgiInfo.u16ParaNum==1)?"hidden":"text"));
psz += STR_iStrcat(psz, " maxlength=4 name=v value=");
psz += STR_iU32ToStrDec(psz, WEBg_pSSMacPage->SCurGrp.u16Fid);
psz += STR_iStrcat(psz, "> ");
if (WEBg_SCgiInfo.u16ParaNum==1) // edit->hidden->show fid
psz += STR_iU32ToStrDec(psz, WEBg_pSSMacPage->SCurGrp.u16Fid);
psz += STR_iStrcat(psz, "<br> Source PortId :");
for (si=0; si<WEBg_pSSMacPage->SCurGrp.SStrTblMap.byListNum; si++)
s_apszStrTbl[si] = g_aszPortNameTable[WEBg_pSSMacPage->SCurGrp.abyDestPortList[si]];
psz += WEB_wAddSelectTag(psz, 'W', 0, s_apszStrTbl, WEBg_pSSMacPage->SCurGrp.SStrTblMap.byListNum, WEBg_pSSMacPage->SCurGrp.bySrcId, FALSE, 0);
psz += STR_iStrcat(psz, "<br> HiPriDmac :");
psz += WEB_wAddSelectTag(psz, 'W', 1, g_aszEnDisCfg, 2, *((PUINT8)&WEBg_pSSMacPage->SCurGrp.bHiPriDmac), FALSE, 0);
psz += STR_iStrcat(psz, "<br> HiPriSmac :");
psz += WEB_wAddSelectTag(psz, 'W', 2, g_aszEnDisCfg, 2, *((PUINT8)&WEBg_pSSMacPage->SCurGrp.bHiPriSmac), FALSE, 0);
psz += STR_iStrcat(psz, "</table>");
psz += s_byAddFormTableEnd(psz);
return (psz - HTTPg_acOutBuf);
}
UINT16 CGI_wShowGMRPCfg(void)
{
char* psz = HTTPg_acOutBuf;
UINT16 si;
psz += s_byGenHtmlHeader(HTTPg_acOutBuf, g_strProvGMRP);
psz += s_byAddFormTable(psz, "SetGMRPCfg", 0);
PIGMRP_vInitPage(WEBg_pSGMRPPage);
if (!WEBg_pSGMRPPage->byMode) //disable
{
psz += WEB_wAddSelectTag(psz, 'V', 0, g_aszEnDisCfg, 2, 0, TRUE, 0);
psz += s_byAddFormTableEnd(psz);
return (psz - HTTPg_acOutBuf);
}
psz += STR_iStrcat(psz, "<P>GMRP Mode : <SELECT name=mode onChange=chmod()>");
for (si=0; si<2; si++)
{
psz += STR_iStrcat(psz, "<OPTION value=");
psz += STR_iU32ToStrDec(psz, si);
psz += STR_iStrcat(psz, ((si == WEBg_pSGMRPPage->byMode) ? " selected" : ""));
psz += STR_iStrcat(psz, ">");
psz += STR_iStrcat(psz, g_aszEnDisCfg[si]);
}
psz += STR_iStrcat(psz, "</SELECT><P>GMRP Entry List :");
for (si=0; si<WEBg_pSGMRPPage->wValidEntryNum; si++)
{
STR_iStrcpy(WEBg_pSGMRPPage->SCurGrp.azMacAddr, WEBg_pSGMRPPage->astrGrpMacList+si*(MAC_STRING_LEN+1));
psz += STR_iStrcat(psz, "<BR><INPUT type=checkbox name=grp value=");
psz += STR_iU32ToStrDec(psz, si);
psz += STR_iStrcat(psz, "><A HREF=ShowGMRPGrp?si=");
psz += STR_iU32ToStrDec(psz, si);
psz += STR_iStrcat(psz, ">");
//show grp : MAC--Vid
psz += STR_iStrcat(psz, WEBg_pSGMRPPage->SCurGrp.azMacAddr);
psz += STR_iStrcat(psz, " #");
psz += STR_iU32ToStrDec(psz, WEBg_pSGMRPPage->awValidGrpFidList[si]);
}
psz += STR_iStrcat(psz, s_szVlanJS);
psz += STR_iStrcat(psz, g_aszWebLoginID);
psz += STR_iStrcat(psz, "ShowGMRPGrp'\">");
psz += STR_iStrcat(psz, s_szProGrpJS2);
return (psz - HTTPg_acOutBuf);
}
UINT16 CGI_wShowGMRPGrp (void)
{
char* psz = HTTPg_acOutBuf;
UINT8 si, u8Tmp;
PIGMRP_vInitPage(WEBg_pSGMRPPage);
if (!WEBg_pSGMRPPage->byMode) //disable
return WEB_wGenResultMsgPkt("Please change GMRP mode first!");
// if (WEBg_SCgiInfo.u16ParaNum==1), then Edit else Add a gmrp group
psz += STR_iStrcpy(psz, g_szHtmlOkHeader);
psz += STR_iStrcat(psz, "<BODY><CENTER><H2>");
psz += STR_iStrcat(psz, ((WEBg_SCgiInfo.u16ParaNum==1)?"Edit":"Add"));
psz += STR_iStrcat(psz, " a Multicast Entry</H2>");
psz += STR_iStrcat(psz, "<FORM id=frm method=GET action=SetGMRPGrp><INPUT type=hidden name=f value=");
psz += STR_iStrcat(psz, ((WEBg_SCgiInfo.u16ParaNum==1)?"E":"A"));
psz += STR_iStrcat(psz, "><TABLE><TR><TD>");
// get a gmrp group
if (WEBg_SCgiInfo.u16ParaNum==1) {
u8Tmp = STR_u32StrDecToU32(WEBg_SCgiInfo.apszParaVal[0]);
STR_pszStrcpy(WEBg_pSGMRPPage->SCurGrp.azMacAddr, WEBg_pSGMRPPage->astrGrpMacList+u8Tmp*(MAC_STRING_LEN+1));
WEBg_pSGMRPPage->SCurGrp.u16Fid = WEBg_pSGMRPPage->awValidGrpFidList[u8Tmp];
u8Tmp = PIGMRP_byGetGrp(WEBg_pSGMRPPage);
if (u8Tmp != OP_OK)
return WEB_wGenResultMsgPkt(g_aszErrMsg[u8Tmp]);
}
else {
STR_pvMemset(&WEBg_pSGMRPPage->SCurGrp, 0, sizeof(SGmrpEntryPage));
STR_pszStrcpy(WEBg_pSGMRPPage->SCurGrp.azMacAddr, "0:0:0:0:0:0");
}
// print FID
psz += STR_iStrcat(psz, "<P> MAC Address :<INPUT type=");
psz += STR_iStrcat(psz, ((WEBg_SCgiInfo.u16ParaNum==1)?"hidden":"text"));
psz += STR_iStrcat(psz, " maxlength=");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -