📄 cgi_show.c
字号:
UINT16 CGI_wShowPortCfg(void)
{
char* psz = HTTPg_acOutBuf;
UINT8 byPortId, byGigaPortId, si;
psz += s_byGenHtmlHeader(HTTPg_acOutBuf, g_strPortCfg);
psz += s_byAddFormTable(psz, "SetPortCfg", 1);
psz += STR_iStrcat(psz, "<TR><TH>Port<TH>Enable<TH>Auto<TH>Spd/Dpx<TH>Flow<BR>Control</TR>");
// Get port status
PIPORT_vInitPage(WEBg_pSPortPage);
for (byPortId = 0; byPortId < g_byModTrkLogIdNum; byPortId++) {
// if mega or giga port
byGigaPortId = (PIPORTMP_dwLogIdToPhyMsk(g_abyModTrkLogIdList[byPortId]) & 0x3000000) >> 24;
// for giga port
if (byGigaPortId) {
byGigaPortId--; // one-based to zero-based
// 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_aszModulePortName[WEBg_pSPortPage->abyGigaPortName[byGigaPortId]]);
// Put port enable status
psz += WEB_wAddSelectTag(psz, 'A', byPortId, g_aszEnDisCfg,
2, WEBg_pSPortPage->aSGigaPortCfg[byGigaPortId].f2Enable,
TRUE, 0);
// Put auto
psz += WEB_wAddSelectTag(psz, 'B', byPortId, g_aszOnOffCfg,
(WEBg_pSPortPage->aSStrTblMap[byGigaPortId][1].byListNum == 0) ? 1 : 2,
WEBg_pSPortPage->aSGigaPortCfg[byGigaPortId].f2Auto,
TRUE, 0);
// Put speed & duplex status
// deal with port ability string mapping array
for (si=0; si<WEBg_pSPortPage->aSStrTblMap[byGigaPortId][2].byListNum; si++)
s_apszStrTbl[si] = g_aszSpdDpxCfg[ WEBg_pSPortPage->aSStrTblMap[byGigaPortId][2].abyListIndex[si] ];
psz += WEB_wAddSelectTag(psz, 'C', byPortId,
s_apszStrTbl, si,
WEBg_pSPortPage->aSGigaPortCfg[byGigaPortId].f4SpdDpx, TRUE, 0);
psz += WEB_wAddSelectTag(psz, 'D', byPortId, g_aszOnOffCfg, 2, WEBg_pSPortPage->aSGigaPortCfg[byGigaPortId].f2FC, TRUE, 0);
}
// for mega port
else {
// 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[g_abyModTrkLogIdList[byPortId]]);
psz += STR_iStrcat(psz, "<TD><SELECT name=A");
psz += STR_iU32ToStrDec(psz, byPortId);
psz += STR_iStrcat(psz, "></SELECT><TD><SELECT name=B");
psz += STR_iU32ToStrDec(psz, byPortId);
psz += STR_iStrcat(psz, "></SELECT><TD><SELECT name=C");
psz += STR_iU32ToStrDec(psz, byPortId);
psz += STR_iStrcat(psz, "></SELECT><TD><SELECT name=D");
psz += STR_iU32ToStrDec(psz, byPortId);
psz += STR_iStrcat(psz, "></SELECT>");
}
} // end for
psz += s_byAddFormTableEnd(psz);
psz += STR_iStrcat(psz, "<SCRIPT language=javascript>\np=");
psz += STR_iU32ToStrDec(psz, g_byModTrkMegaLogIdNum);
psz += STR_iStrcat(psz, "\nv=new Array(");
for (byPortId = 0; byPortId < g_byModTrkMegaLogIdNum; byPortId++) {
psz += STR_iU32ToStrDec(psz, (UINT8)WEBg_pSPortPage->aSMegaPortCfg[byPortId].f1Enable);
psz += STR_iStrcat(psz, ",");
psz += STR_iU32ToStrDec(psz, (UINT8)WEBg_pSPortPage->aSMegaPortCfg[byPortId].f1Auto);
psz += STR_iStrcat(psz, ",");
psz += STR_iU32ToStrDec(psz, (UINT8)WEBg_pSPortPage->aSMegaPortCfg[byPortId].f3SpdDpx);
psz += STR_iStrcat(psz, ",");
psz += STR_iU32ToStrDec(psz, (UINT8)WEBg_pSPortPage->aSMegaPortCfg[byPortId].f1FC);
psz += STR_iStrcat(psz, ",");
}
*--psz = '\0';
psz += STR_iStrcat(psz, ")\n");
psz += STR_iStrcat(psz, s_szPortCfgJS);
return (psz - HTTPg_acOutBuf);
}
UINT16 CGI_wShowRateCfg(void)
{
char* psz = HTTPg_acOutBuf;
UINT8 byPortId;
psz += s_byGenHtmlHeader(HTTPg_acOutBuf, g_strRateCfg);
psz += s_byAddFormTable(psz, "SetRateCfg", 1);
psz += STR_iStrcat(psz, "<TR><TH>Port<TH>InRate<TH>OutRate</TR>");
PIRATE_vInitPage(WEBg_pSRatePage);
for (byPortId=0; byPortId<g_byLogIdNum; 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[g_abyLogIdList[byPortId]]);
psz += STR_iStrcat(psz, "<TD><INPUT type=text maxlength=4 name=A");
psz += STR_iU32ToStrDec(psz, byPortId);
psz += STR_iStrcat(psz, " value=");
psz += STR_iU32ToStrDec(psz, WEBg_pSRatePage->au16Rate[byPortId*2]);
psz += STR_iStrcat(psz, ">");
psz += STR_iStrcat(psz, "<TD><INPUT type=text maxlength=4 name=B");
psz += STR_iU32ToStrDec(psz, byPortId);
psz += STR_iStrcat(psz, " value=");
psz += STR_iU32ToStrDec(psz, WEBg_pSRatePage->au16Rate[byPortId*2+1]);
psz += STR_iStrcat(psz, ">");
}
psz += s_byAddFormTableEnd(psz);
psz += STR_iStrcat(psz, "<P>* Rate Unit: 1Mbps, 0: disabled");
return (psz - HTTPg_acOutBuf);
}
char s_szTrkJS[] = "\
<SCRIPT language=javascript>\n\
for (i=0;i<document.f.elements.length-1;i++)\n\
document.f.elements[i].value=i%14</SCRIPT>";
UINT16 CGI_wShowTrkCfg(void)
{
char* psz = HTTPg_acOutBuf;
UINT8 byPortId, byGrpId, byTrkCfg;
psz += s_byGenHtmlHeader(HTTPg_acOutBuf, g_strTrunkCfg);
psz += s_byAddFormTable(psz, "SetTrkCfg", 1);
psz += STR_iStrcat(psz, "<TR><TH>Port / Group<TH>Normal<TH>Group<BR>1<TH>Group<BR>2<TH>Group<BR>3<TH>Group<BR>4<TH>Group<BR>5<TH>Group<BR>6<TH>Group<BR>7<TH>Group<BR>8<TH>Group<BR>9<TH>Group<BR>10<TH>Group<BR>11<TH>Group<BR>12<TH>Group<BR>13</TR>");
PITRK_vInitPage(WEBg_pSTrkPage);
for (byPortId=0; byPortId<SWITCH_TRUNKABLE_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]);
// get group id of byPortId
SWSRAM_vExtractBitsByByte(WEBg_pSTrkPage->abyCfgBuf, byPortId*TRUNK_GRP_ID_BIT_NUM, (byPortId+1)*TRUNK_GRP_ID_BIT_NUM-1, &byTrkCfg);
if (((*(PUINT16)WEBg_pSTrkPage) & (0x01<<(byTrkCfg-1))) == 0) // beware of endian
byTrkCfg = 0;
// add radio tags
for (byGrpId=0; byGrpId<=SWITCH_TRUNK_GRP_NUM; byGrpId++) {
psz += STR_iStrcat(psz, "<TD><INPUT type=radio name=R");
psz += STR_iU32ToStrDec(psz, byPortId);
psz += STR_iStrcat(psz, ((byGrpId == byTrkCfg) ? " checked" : ""));
psz += STR_iStrcat(psz, ">");
}
}
psz += s_byAddFormTableEnd(psz);
psz += STR_iStrcat(psz, s_szTrkJS);
return (psz - HTTPg_acOutBuf);
}
// Beware: the name of selecte tag should be "A0".
char s_szHideJS[] = "\
</DIV>\
<SCRIPT>\
hide()\n\
function hide()\n\
{\n\
obj=document.getElementById(\"sub\")\n\
if (f.A0.selectedIndex)\n\
obj.style.display=\"BLOCK\"\n\
else\n\
obj.style.display=\"NONE\"\n\
}\n\
</SCRIPT>";
char s_szHideFunc[] = " onChange=hide()";
char s_szHideDiv[] = "<DIV id=sub>";
UINT16 CGI_wShowSnfCfg(void)
{
char* psz = HTTPg_acOutBuf;
UINT8 si;
PISNF_vInitPage(WEBg_pSSniffPage);
psz += s_byGenHtmlHeader(HTTPg_acOutBuf, g_strSniffCfg);
psz += s_byAddFormTable(psz, "SetSnfCfg", 0);
psz += STR_iStrcat(psz, "<P>Port Monitoring Mode :");
psz += WEB_wAddSelectTag(psz, 'A', 0, g_aszSniffModeCfg, 4, WEBg_pSSniffPage->f2Mode, FALSE, s_szHideFunc);
psz += STR_iStrcat(psz, s_szHideDiv);
psz += STR_iStrcat(psz, "<P>Monitoring Port :");
for (si=0; si<WEBg_pSSniffPage->SStrTblMap.byListNum; si++)
s_apszStrTbl[si] = g_aszPortNameTable[WEBg_pSSniffPage->abyDestPortList[si]];
psz += WEB_wAddSelectTag(psz, 'B', 0, s_apszStrTbl, WEBg_pSSniffPage->SStrTblMap.byListNum, WEBg_pSSniffPage->f6DestPort, FALSE, 0);
psz += STR_iStrcat(psz, "<P>Monitored Port :<table><tr><td>");
for (si=0; si<g_byLogIdNum; si++)
{
psz += WEB_wAddCheckboxTag(psz, si, si, (WEBg_pSSniffPage->abySrcPortMsk[si/8] & (0x01<<(si%8)))); // Beware of endian
// Put port name
psz += STR_iStrcat(psz, g_aszPortNameTable[g_abyLogIdList[si]]);
psz += STR_iStrcat(psz, ((si + 1) % 3) ? "" : "<tr>");
psz += STR_iStrcat(psz, "<td>");
}
psz += STR_iStrcat(psz, "</table>");
psz += STR_iStrcat(psz, s_szHideJS);
psz += s_byAddFormTableEnd(psz);
return (psz - HTTPg_acOutBuf);
}
UINT16 CGI_wShowQosCfg(void)
{
char* psz = HTTPg_acOutBuf;
UINT8 si;
psz += s_byGenHtmlHeader(HTTPg_acOutBuf, g_strQosCfg);
psz += s_byAddFormTable(psz, "SetQosCfg", 0);
PIQOS_vInitPage(WEBg_pSQosPage);
// qos mode
psz += STR_iStrcat(psz, "<P>QoS Mode :");
psz += WEB_wAddSelectTag(psz, 'A', 0, g_aszQosMode, 5, WEBg_pSQosPage->byQosMode, FALSE, s_szHideFunc);
psz += STR_iStrcat(psz, s_szHideDiv);
// port priority
psz += STR_iStrcat(psz, "<P><HR><P>Static Port Ingress Priority :<table>");
for (si=0; si<g_byLogIdNum; si++)
{
// 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, 'B', si, g_aszStaticPortPriorCfg, 9, WEBg_pSQosPage->abyStaticPrior[si], TRUE, 0);
}
psz += STR_iStrcat(psz, "</table>");
// 802.1p
psz += STR_iStrcat(psz, "<P><HR><P>802.1p Priority [7-0]:<BR>");
for (si=0; si<8; si++)
psz += WEB_wAddSelectTag(psz, 'C', si, g_aszLoHiCfg, 4, (UINT16)(WEBg_pSQosPage->w8021pMap<<(si*BIT_NUM_QUEUE_ID))>> (7*2), FALSE, 0);
psz += STR_iStrcat(psz, s_szHideJS);
psz += s_byAddFormTableEnd(psz);
return (psz - HTTPg_acOutBuf);
}
UINT16 CGI_wShowMiscCfg(void)
{
char* psz = HTTPg_acOutBuf;
psz += s_byGenHtmlHeader(HTTPg_acOutBuf, g_strAdvCfg);
psz += s_byAddFormTable(psz, "SetMiscCfg", 1);
PIMISC_vInitPage(WEBg_pSMiscPage);
psz += STR_iStrcat(psz, "<TR><TD>Broadcast Storm Filter");
psz += WEB_wAddSelectTag(psz, 'A', 0, g_aszBSFMode, 5, WEBg_pSMiscPage->f3BSFMode, TRUE, 0);
psz += STR_iStrcat(psz, "<TR><TD>Collision Retry Forever");
psz += WEB_wAddSelectTag(psz, 'A', 1, g_aszEnDisCfg, 2, WEBg_pSMiscPage->f1CollisionForever, TRUE, 0);
psz += STR_iStrcat(psz, "<TR><TD>MAC Table Auto-Aging");
psz += WEB_wAddSelectTag(psz, 'A', 2, g_aszAutoAging, 4, WEBg_pSMiscPage->f2AutoAging, TRUE, 0);
psz += STR_iStrcat(psz, "<TR><TD>MAC Table Hashing");
psz += WEB_wAddSelectTag(psz, 'A', 3, g_aszMacHashMode, 2, WEBg_pSMiscPage->f1MacHashMode, TRUE, 0);
psz += STR_iStrcat(psz, "<TR><TD>Console Auto Logout Time");
psz += WEB_wAddSelectTag(psz, 'A', 4, g_aszAutoLogoutTime, 4, WEBg_pSMiscPage->f2AutoLogout, TRUE, 0);
psz += STR_iStrcat(psz, "<TR><TD>Web Auto Logout Time");
psz += WEB_wAddSelectTag(psz, 'A', 5, g_aszAutoLogoutTime+1, 3, WEBg_pSMiscPage->f2WebAutoLogout, TRUE, 0);
psz += s_byAddFormTableEnd(psz);
return (psz - HTTPg_acOutBuf);
}
UINT16 CGI_wShowAdmCfg(void)
{
char* psz = HTTPg_acOutBuf;
psz += s_byGenHtmlHeader(HTTPg_acOutBuf, g_strPasswdSet);
psz += s_byAddFormTable(psz, "SetAdmCfg", 0);
psz += STR_iStrcat(psz, "<TR><TD>Password Protection:");
psz += WEB_wAddSelectTag(psz, 'A', 0, g_aszEnDisCfg, 2, WEBg_bLoginEn, FALSE, s_szHideFunc);
psz += STR_iStrcat(psz, "<TR><TD>");
psz += STR_iStrcat(psz, s_szHideDiv);
psz += STR_iStrcat(psz, "<TABLE>");
psz += STR_iStrcat(psz, "<TR><TD>User Name<TD><INPUT type=text maxlength=");
psz += STR_iU32ToStrDec(psz, USERNAME_STR_LEN);
psz += STR_iStrcat(psz, " name=A>");
psz += STR_iStrcat(psz, "<TR><TD>New Password<TD><INPUT type=password maxlength=");
psz += STR_iU32ToStrDec(psz, USERNAME_STR_LEN);
psz += STR_iStrcat(psz, " name=B>");
psz += STR_iStrcat(psz, "<TR><TD>Password Again<TD><INPUT type=password maxlength=");
psz += STR_iU32ToStrDec(psz, USERNAME_STR_LEN);
psz += STR_iStrcat(psz, " name=C>");
psz += STR_iStrcat(psz, "</TABLE>");
psz += STR_iStrcat(psz, s_szHideJS);
psz += s_byAddFormTableEnd(psz);
return (psz - HTTPg_acOutBuf);
}
UINT16 CGI_wShowIpCfg(void)
{
char* psz = HTTPg_acOutBuf;
psz += s_byGenHtmlHeader(HTTPg_acOutBuf, g_strIpConf);
psz += s_byAddFormTable(psz, "SetIpCfg", 1);
PIIPCONF_vInitPage(WEBg_pSIpConfPage);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -