📄 cgi_show.c
字号:
psz += sprintf(psz, "<TR%s><TD>%s", ((byPortId & 0x01) ? "" : s_szTrColor),
g_aszPortNameTable[g_abyLogIdList[byPortId]]);
psz += sprintf(psz, "<TD><INPUT type=text maxlength=2 name=A%bd value=%bd>", byPortId, WEBg_pSRatePage->abyRate[byPortId*2]);
psz += sprintf(psz, "<TD><INPUT type=text maxlength=2 name=B%bd value=%bd>", byPortId, WEBg_pSRatePage->abyRate[byPortId*2+1]);
}
psz += s_byAddFormTableEnd(psz);
psz += sprintf(psz, "<P>* Rate Unit: 1Mbps, 0: disabled");
return psz-HTTPg_abyOutBuf;
}
#endif
DIRECT_MEMTYPE_CODE char s_szTrkJS[] = "\
<SCRIPT language=javascript>\n\
for(i=0;i<document.f.elements.length-1;i++)\n\
document.f.elements[i].value=i%%8</SCRIPT>";
UINT16 CGI_wShowTrkCfg(void)
{
UINT8 byPortId, byGrpId, byTrkCfg;
psz = HTTPg_abyOutBuf + s_byGenHtmlHeader(HTTPg_abyOutBuf, g_strTrunkCfg);
psz += s_byAddFormTable(psz, "SetTrkCfg", 1);
psz += sprintf(psz, "<TR><TH>Port / Group<TH>Normal<TH>Group1<TH>Group2<TH>Group3<TH>Group4<TH>Group5<TH>Group6<TH>Group7</TR>");
PITRK_vInitPage(WEBg_pSTrkPage);
for (byPortId=0; byPortId<SWITCH_TRUNKABLE_PORT_NUM; byPortId++)
{
// Put begining of a table entry and port name
psz += sprintf(psz, "<TR%s><TD>%s", ((byPortId & 0x01) ? "" : s_szTrColor),
g_aszPortNameTable[byPortId]);
// get group id of byPortId
BITvExtractBits(WEBg_pSTrkPage->abyCfgBuf, byPortId*TRUNK_GRP_ID_BIT_NUM, (byPortId+1)*TRUNK_GRP_ID_BIT_NUM-1, &byTrkCfg);
if (((*(PBYTE)WEBg_pSTrkPage) & (0x01<<(byTrkCfg-1))) == 0) // beware of endian
byTrkCfg = 0;
// add radio tags
for (byGrpId=0; byGrpId<=SWITCH_TRUNK_GRP_NUM; byGrpId++)
psz += sprintf(psz, "<TD><INPUT type=radio name=R%bd%s>", byPortId, ((byGrpId == byTrkCfg) ? " checked" : ""));
}
psz += s_byAddFormTableEnd(psz);
psz += sprintf(psz, s_szTrkJS);
return psz-HTTPg_abyOutBuf;
}
// Beware: the name of selecte tag should be "A0".
DIRECT_MEMTYPE_CODE 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>";
DIRECT_MEMTYPE_CODE char s_szHideFunc[] = " onChange=hide()";
DIRECT_MEMTYPE_CODE char s_szHideDiv[] = "<DIV id=sub>";
UINT16 CGI_wShowSnfCfg(void)
{
BYTE si;
PISNF_vInitPage(WEBg_pSSniffPage);
psz = HTTPg_abyOutBuf + s_byGenHtmlHeader(HTTPg_abyOutBuf, g_strSniffCfg);
psz += s_byAddFormTable(psz, "SetSnfCfg", 0);
psz += sprintf(psz, "<P>Port Monitoring Mode :");
psz += WEB_wAddSelectTag(psz, 'A', 0, g_aszSniffModeCfg, 4, WEBg_pSSniffPage->f2Mode, FALSE, s_szHideFunc);
psz += sprintf(psz, s_szHideDiv);
psz += sprintf(psz, "<P>Monitoring Port :");
#ifndef __ASIC_VT6524
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);
#else
for (si=0; si<g_bySingleMegaLogIdNum; si++)
s_apszStrTbl[si] = g_aszPortNameTable[g_abyLogIdList[si]];
psz += WEB_wAddSelectTag(psz, 'B', 0, s_apszStrTbl, g_bySingleMegaLogIdNum, WEBg_pSSniffPage->f6DestPort, FALSE, 0);
#endif
psz += sprintf(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 += sprintf(psz, "%s%s<td>", g_aszPortNameTable[g_abyLogIdList[si]], ((si+1)%3)?"":"<tr>");
}
psz += sprintf(psz, "</table>%s", s_szHideJS);
psz += s_byAddFormTableEnd(psz);
return psz-HTTPg_abyOutBuf;
}
UINT16 CGI_wShowQosCfg(void)
{
BYTE si;
psz = HTTPg_abyOutBuf + s_byGenHtmlHeader(HTTPg_abyOutBuf, g_strQosCfg);
psz += s_byAddFormTable(psz, "SetQosCfg", 0);
PIQOS_vInitPage(WEBg_pSQosPage);
// qos mode
psz += sprintf(psz, "<P>QoS Mode :");
psz += WEB_wAddSelectTag(psz, 'A', 0, g_aszQosMode, 5, WEBg_pSQosPage->byQosMode, FALSE, s_szHideFunc);
psz += sprintf(psz, s_szHideDiv);
// port priority
psz += sprintf(psz, "<P><HR><P>Static Port Ingress Priority :<table>");
for (si=0; si<g_byLogIdNum; si++)
{
// Put port name
psz += sprintf(psz, "%s<td>%s", (si%3)?"":"<tr>", g_aszPortNameTable[g_abyLogIdList[si]]);
#ifndef __ASIC_VT6524
psz += WEB_wAddSelectTag(psz, 'B', si, g_aszStaticPortPriorCfg, 3, WEBg_pSQosPage->abyStaticPrior[si], TRUE, 0);
#else
psz += WEB_wAddSelectTag(psz, 'B', si, g_aszStaticPortPriorCfg, 3, WEBg_pSQosPage->aSPortCfg[si].f2StaticPrior, TRUE, 0);
#endif
}
psz += sprintf(psz, "</table>");
// 802.1p
psz += sprintf(psz, "<P><HR><P>802.1p Priority [7-0]:<BR>");
for (si=0; si<8; si++)
psz += WEB_wAddSelectTag(psz, 'C', si, g_aszLoHiCfg, 2, (BYTE)(WEBg_pSQosPage->by8021pMap<<si)>>7, FALSE, 0);
psz += sprintf(psz, s_szHideJS);
psz += s_byAddFormTableEnd(psz);
return psz-HTTPg_abyOutBuf;
}
UINT16 CGI_wShowMiscCfg(void)
{
psz = HTTPg_abyOutBuf + s_byGenHtmlHeader(HTTPg_abyOutBuf, g_strAdvCfg);
psz += s_byAddFormTable(psz, "SetMiscCfg", 1);
PIMISC_vInitPage(WEBg_pSMiscPage);
psz += sprintf(psz, "<TR><TD>Broadcast Storm Filter");
psz += WEB_wAddSelectTag(psz, 'A', 0, g_aszBSFMode, 4, WEBg_pSMiscPage->f2BSFMode, TRUE, 0);
psz += sprintf(psz, "<TR><TD>Collision Retry Forever");
psz += WEB_wAddSelectTag(psz, 'A', 1, g_aszEnDisCfg, 2, WEBg_pSMiscPage->f1CollisionForever, TRUE, 0);
psz += sprintf(psz, "<TR><TD>MAC Table Auto-Aging");
psz += WEB_wAddSelectTag(psz, 'A', 2, g_aszAutoAging, 4, WEBg_pSMiscPage->f2AutoAging, TRUE, 0);
psz += sprintf(psz, "<TR><TD>MAC Table Hashing");
psz += WEB_wAddSelectTag(psz, 'A', 3, g_aszMacHashMode, 2, WEBg_pSMiscPage->f1MacHashMode, TRUE, 0);
psz += sprintf(psz, "<TR><TD>Console Auto Logout Time");
psz += WEB_wAddSelectTag(psz, 'A', 4, g_aszAutoLogoutTime, 4, WEBg_pSMiscPage->f2AutoLogout, TRUE, 0);
psz += sprintf(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_abyOutBuf;
}
UINT16 CGI_wShowAdmCfg(void)
{
psz = HTTPg_abyOutBuf + s_byGenHtmlHeader(HTTPg_abyOutBuf, g_strPasswdSet);
psz += s_byAddFormTable(psz, "SetAdmCfg", 0);
psz += sprintf(psz, "<TR><TD>Password Protection:");
psz += WEB_wAddSelectTag(psz, 'A', 0, g_aszEnDisCfg, 2, WEBg_bLoginEbl, FALSE, s_szHideFunc);
psz += sprintf(psz, "<TR><TD>%s<TABLE>", s_szHideDiv);
psz += sprintf(psz, "<TR><TD>User Name<TD><INPUT type=text maxlength=%bd name=A>", USERNAME_STR_LEN);
psz += sprintf(psz, "<TR><TD>New Password<TD><INPUT type=password maxlength=%bd name=B>", USERNAME_STR_LEN);
psz += sprintf(psz, "<TR><TD>Password Again<TD><INPUT type=password maxlength=%bd name=C>", USERNAME_STR_LEN);
psz += sprintf(psz, "</TABLE>%s", s_szHideJS);
psz += s_byAddFormTableEnd(psz);
return psz-HTTPg_abyOutBuf;
}
UINT16 CGI_wShowIpCfg(void)
{
psz = HTTPg_abyOutBuf + s_byGenHtmlHeader(HTTPg_abyOutBuf, g_strIpConf);
psz += s_byAddFormTable(psz, "SetIpCfg", 1);
PIIPCONF_vInitPage(WEBg_pSIpConfPage);
psz += sprintf(psz, "<TR><TD>MAC Address<TD>%s", WEBg_pSIpConfPage->szMac);
psz += sprintf(psz, "<TR><TD>IP Address<TD><INPUT type=text maxlength=%bd name=A value=%s>", IP_STRING_LEN, WEBg_pSIpConfPage->szIp);
psz += sprintf(psz, "<TR><TD>Subnet Mask<TD><INPUT type=text maxlength=%bd name=B value=%s>", IP_STRING_LEN, WEBg_pSIpConfPage->szSubnet);
psz += sprintf(psz, "<TR><TD>Default Gateway<TD><INPUT type=text maxlength=%bd name=C value=%s>", IP_STRING_LEN, WEBg_pSIpConfPage->szGateway);
psz += s_byAddFormTableEnd(psz);
return psz-HTTPg_abyOutBuf;
}
UINT16 CGI_wShowSysInfo(void)
{
psz = HTTPg_abyOutBuf + s_byGenHtmlHeader(HTTPg_abyOutBuf, g_strSysInfo);
//SWSYS_vGetChipVer(WEBg_pbyChipVer);
psz += sprintf(psz, "<P>Firmware Version : " VERSION_FIRMWARE "<P>Chip Version : A%bd" "<P>HTML Page Version : " VERSION_FIRMWARE_WEB, 2);
return psz-HTTPg_abyOutBuf;
}
DIRECT_MEMTYPE_CODE char s_szVlanJS[] = "\
</TABLE><P>\
<INPUT type=submit value=Delete onclick=\"return confirm('Delete all checked groups?')\">\
<INPUT type=button value=AddNew onclick=\"location.href='%sShowVlanGrp'\">\
</FORM>\
<SCRIPT language=javascript>\n\
old=document.f.mode.selectedIndex\n\
function chmod(){\n\
if (confirm(\"Change mode will clear original VLAN setting! Continue?\"))\n\
document.f.submit()\n\
else\n\
document.f.mode.selectedIndex=old\n\
}</SCRIPT>";
UINT16 CGI_wShowVlanCfg(void)
{
BYTE si;
psz = HTTPg_abyOutBuf + s_byGenHtmlHeader(HTTPg_abyOutBuf, g_strVlanCfg);
psz += s_byAddFormTable(psz, "SetVlanCfg", 0);
PIVLAN_vInitPage(WEBg_pSVlanPage);
if (WEBg_pSVlanPage->byVlanMode == VLAN_MODE_DISABLE)
{
psz += WEB_wAddSelectTag(psz, 'V', 0, g_aszVlanModeCfg, 3, VLAN_MODE_DISABLE, TRUE, 0);
psz += s_byAddFormTableEnd(psz);
return (psz-HTTPg_abyOutBuf);
}
psz += sprintf(psz, "<P>VLAN Mode : <SELECT name=mode onChange=chmod()>");
for (si=0; si<3; si++)
{
psz += sprintf(psz, "<OPTION value=%bd%s>%s", si, ((si == WEBg_pSVlanPage->byVlanMode) ? " selected" : ""), g_aszVlanModeCfg[si]);
}
psz += sprintf(psz, "</SELECT><P>VLAN Group List :");
for (si=0; si<WEBg_pSVlanPage->byValidEntryNum; si++)
{
psz += sprintf(psz, "<BR><INPUT type=checkbox name=grp value=%d><A HREF=ShowVlanGrp?v=%d>%d",
WEBg_pSVlanPage->awValidGrpIdList[si], WEBg_pSVlanPage->awValidGrpIdList[si], WEBg_pSVlanPage->awValidGrpIdList[si]);
}
if (WEBg_pSVlanPage->byVlanMode == VLAN_MODE_8021Q)
psz += sprintf(psz, "<P><A HREF=ShowV1qifCfg>%s", g_strAdvVlanCfg);
psz += sprintf(psz, s_szVlanJS, WEBg_szLoginID);
//psz += s_byAddFormTableEnd(psz);
return (psz-HTTPg_abyOutBuf);
}
UINT16 CGI_wShowVlanGrp (void)
{
BYTE si, byTmp;
psz = HTTPg_abyOutBuf;
PIVLAN_vGetVlanMode(&(WEBg_pSVlanPage->byVlanMode));
if (WEBg_pSVlanPage->byVlanMode == VLAN_MODE_DISABLE)
return WEB_wGenResultMsgPkt("Please change VLAN mode first!");
// if (WEBg_SCgiInfo.byParaNum==1), then Edit else Add a vlan group
psz += sprintf(psz, "%s<BODY><CENTER><H2>%s a %s VLAN Group</H2>",
g_szHtmlOkHeader,
((WEBg_SCgiInfo.byParaNum==1)?"Edit":"Add"),
((WEBg_pSVlanPage->byVlanMode == VLAN_MODE_8021Q)?"802.1Q":"PortBased") );
psz += sprintf(psz, "<FORM method=GET action=SetVlanGrp><INPUT type=hidden name=f value=%s><TABLE><TR><TD>",
((WEBg_SCgiInfo.byParaNum==1)?"E":"A") );
// get a vlan group
if (WEBg_SCgiInfo.byParaNum==1)
{
WEBg_pSCurGrp->wVid = STRdwStr2Dec(WEBg_SCgiInfo.apszParaVal[0]);
byTmp = PIVLAN_byGetGrp(WEBg_pSVlanPage);
if (byTmp != OP_OK)
return WEB_wGenResultMsgPkt(g_aszErrMsg[byTmp]);
}
else
{
STRvMemset(WEBg_pSCurGrp, 0, sizeof(SVlanGrp));
}
// print VID
psz += sprintf(psz, "<P>%s ID : <INPUT type=%s maxlength=3 name=v value=%d>",
((WEBg_pSVlanPage->byVlanMode == VLAN_MODE_8021Q)?"VLAN":"Group"),
((WEBg_SCgiInfo.byParaNum==1)?"hidden":"text"),
WEBg_pSCurGrp->wVid );
if (WEBg_SCgiInfo.byParaNum==1) // edit->hidden->show vid
psz += sprintf(psz, "%d", WEBg_pSCurGrp->wVid);
else // add->text->show (1~MaxVid)
psz += sprintf(psz, "(1~%d)", WEBg_pSVlanPage->wMaxVid);
// print all members
psz += sprintf(psz, "<table>");
for (si=0; si<g_byLogIdNum; si++)
{
// Put port name
psz += sprintf(psz, "%s<td>%s:", (si%3)?"":"<tr>", g_aszPortNameTable[g_abyLogIdList[si]]);
byTmp = (WEBg_pSCurGrp->abyMbrMsk[si/4] >> (si%4)*2) & 0x03; // Beware of endian
if (WEBg_pSVlanPage->byVlanMode == VLAN_MODE_8021Q)
psz += WEB_wAddSelectTag(psz, 'M', si, g_aszVlanMbrCfg, 3, byTmp, TRUE, 0);
else
psz += WEB_wAddSelectTag(psz, 'M', si, g_aszMbrNotCfg, 2, byTmp, TRUE, 0);
}
psz += sprintf(psz, "</table>");
psz += s_byAddFormTableEnd(psz);
// psz += sprintf(psz, "</TABLE><P><INPUT type=submit value=Apply></FORM></CENTER></BODY>");
return psz-HTTPg_abyOutBuf;
}
UINT16 CGI_wShowV1qifCfg(void)
{
BYTE si, byTmp;
psz = HTTPg_abyOutBuf + s_byGenHtmlHeader(HTTPg_abyOutBuf, g_strAdvVlanCfg);
psz += s_byAddFormTable(psz, "SetV1qifCfg", 1);
psz += sprintf(psz, "<TR><TH>Port<TH>NonMember<TH>Untagged</TR>");
PIVLAN_vGetVlanMode(&byTmp);
if (byTmp != VLAN_MODE_8021Q)
return 0;
PIVLNFLT_vInitPage(WEBg_pSVlanIngrFlt);
for (si=0; si<g_byLogIdNum; si++)
{
// Put begining of a table entry
psz += sprintf(psz, "<TR%s><TD>%s", ((si & 0x01) ? "" : s_szTrColor), g_aszPortNameTable[g_abyLogIdList[si]]);
byTmp = (WEBg_pSVlanIngrFlt->abyCfg[si/4] >> (si%4)*2) & 0x03;
psz += WEB_wAddSelectTag(psz, 'A', si, g_aszTagDropFwd, 2, byTmp&0x01, TRUE, 0);
psz += WEB_wAddSelectTag(psz, 'B', si, g_aszTagDropFwd, 2, byTmp>>1, TRUE, 0);
}
psz += s_byAddFormTableEnd(psz);
return (psz-HTTPg_abyOutBuf);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -