📄 cgi_show.c
字号:
psz += STR_iStrcat(psz, "<TR><TD>MAC Address<TD>");
psz += STR_iStrcat(psz, WEBg_pSIpConfPage->szMac);
psz += STR_iStrcat(psz, "<TR><TD>IP Address<TD><INPUT type=text maxlength=");
psz += STR_iU32ToStrDec(psz, IP_STRING_LEN);
psz += STR_iStrcat(psz, " name=A value=");
psz += STR_iStrcat(psz, WEBg_pSIpConfPage->szIp);
psz += STR_iStrcat(psz, ">");
psz += STR_iStrcat(psz, "<TR><TD>Subnet Mask<TD><INPUT type=text maxlength=");
psz += STR_iU32ToStrDec(psz, IP_STRING_LEN);
psz += STR_iStrcat(psz, " name=B value=");
psz += STR_iStrcat(psz, WEBg_pSIpConfPage->szSubnet);
psz += STR_iStrcat(psz, ">");
psz += STR_iStrcat(psz, "<TR><TD>Default Gateway<TD><INPUT type=text maxlength=");
psz += STR_iU32ToStrDec(psz, IP_STRING_LEN);
psz += STR_iStrcat(psz, " name=C value=");
psz += STR_iStrcat(psz, WEBg_pSIpConfPage->szGateway);
psz += STR_iStrcat(psz, ">");
psz += s_byAddFormTableEnd(psz);
return (psz - HTTPg_acOutBuf);
}
UINT16 CGI_wShowFwUpdt(void)
{
char* psz = HTTPg_acOutBuf;
psz += s_byGenHtmlHeader(HTTPg_acOutBuf, g_strFwUpdate);
psz += s_byAddFormTable(psz, "SetFwUpdt", 1);
PIFWUPDT_vInitPage(WEBg_pSFwUpdtPage);
psz += STR_iStrcat(psz, "<TR><TD>Server IP Address<TD><INPUT type=text maxlength=");
psz += STR_iU32ToStrDec(psz, IP_STRING_LEN);
psz += STR_iStrcat(psz, " name=A value=");
psz += STR_iStrcat(psz, WEBg_pSFwUpdtPage->aszTftpServeIp);
psz += STR_iStrcat(psz, ">");
psz += STR_iStrcat(psz, "<TR><TD>Remote File Name<TD><INPUT type=text maxlength=");
psz += STR_iU32ToStrDec(psz, IP_STRING_LEN);
psz += STR_iStrcat(psz, " name=B value=");
psz += STR_iStrcat(psz, WEBg_pSFwUpdtPage->aszTftpFilename);
psz += STR_iStrcat(psz, ">");
psz += s_byAddFormTableEnd(psz);
return (psz - HTTPg_acOutBuf);
}
UINT16 CGI_wShowSysInfo(void)
{
char* psz = HTTPg_acOutBuf;
psz += s_byGenHtmlHeader(HTTPg_acOutBuf, g_strSysInfo);
SWSYS_vGetChipVer(WEBg_pbyChipVer);
psz += STR_iStrcat(psz, "<P>Firmware Version : " VERSION_FIRMWARE "<P>Chip Version : A");
psz += STR_iU32ToStrDec(psz, *WEBg_pbyChipVer);
return (psz - HTTPg_acOutBuf);
}
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='";
char s_szVlanJS2[] = "\
ShowVlanGrp'\">\
</FORM>\
<SCRIPT language=javascript>\n\
old=document.f.mode.selectedIndex\n\
function chmod(){\n\
if (confirm(\"Change mode will clear original VLAN setting, and system will reboot! Continue?\"))\n\
document.f.submit()\n\
else\n\
document.f.mode.selectedIndex=old\n\
}</SCRIPT>";
UINT16 CGI_wShowVlanCfg(void)
{
char* psz = HTTPg_acOutBuf;
UINT16 si;
psz += s_byGenHtmlHeader(HTTPg_acOutBuf, g_strVlanCfg);
psz += s_byAddFormTable(psz, "SetVlanCfg", 0);
PIVLAN_vInitPage(WEBg_pSVlanPage);
if (WEBg_pSVlanPage->byVlanMode == VLAN_MODE_DISABLE)
{
#ifdef __PRTCL_VLAN_REMOVE
psz += WEB_wAddSelectTag(psz, 'V', 0, g_aszVlanModeCfg, 3, VLAN_MODE_DISABLE, TRUE, 0);
#else
psz += WEB_wAddSelectTag(psz, 'V', 0, g_aszVlanModeCfg, 4, VLAN_MODE_DISABLE, TRUE, 0);
#endif
psz += s_byAddFormTableEnd(psz);
psz += STR_iStrcat(psz, "<P>Change VLAN mode, system will reboot.");
return (psz - HTTPg_acOutBuf);
}
psz += STR_iStrcat(psz, "<P>VLAN Mode : <SELECT name=mode onChange=chmod()>");
#ifdef __PRTCL_VLAN_REMOVE
for (si=0; si<3; si++)
#else
for (si=0; si<4; si++)
#endif
{
psz += STR_iStrcat(psz, "<OPTION value=");
psz += STR_iU32ToStrDec(psz, si);
psz += STR_iStrcat(psz, ((si == WEBg_pSVlanPage->byVlanMode) ? " selected" : ""));
psz += STR_iStrcat(psz, ">");
psz += STR_iStrcat(psz, g_aszVlanModeCfg[si]);
}
psz += STR_iStrcat(psz, "</SELECT><P>VLAN Group List :");
for (si=0; si<WEBg_pSVlanPage->wValidEntryNum; si++)
{
psz += STR_iStrcat(psz, "<BR><INPUT type=checkbox name=grp value=");
psz += STR_iU32ToStrDec(psz, WEBg_pSVlanPage->awValidGrpIdList[si]);
psz += STR_iStrcat(psz, "><A HREF=ShowVlanGrp?v=");
psz += STR_iU32ToStrDec(psz, WEBg_pSVlanPage->awValidGrpIdList[si]);
psz += STR_iStrcat(psz, ">");
psz += STR_iU32ToStrDec(psz, WEBg_pSVlanPage->awValidGrpIdList[si]);
}
if ((WEBg_pSVlanPage->byVlanMode == VLAN_MODE_8021Q) || (WEBg_pSVlanPage->byVlanMode == VLAN_MODE_PROTOBASE) ) {
psz += STR_iStrcat(psz, "<P><A HREF=ShowV1qifCfg>");
psz += STR_iStrcat(psz, g_strAdvVlanCfg);
}
psz += STR_iStrcat(psz, s_szVlanJS);
psz += STR_iStrcat(psz, g_aszWebLoginID);
psz += STR_iStrcat(psz, s_szVlanJS2);
//psz += s_byAddFormTableEnd(psz);
return (psz - HTTPg_acOutBuf);
}
UINT16 CGI_wShowVlanGrp (void)
{
char* psz = HTTPg_acOutBuf;
UINT8 si, byTmp;
PIVLAN_vGetVlanMode(&(WEBg_pSVlanPage->byVlanMode));
if (WEBg_pSVlanPage->byVlanMode == VLAN_MODE_DISABLE)
return WEB_wGenResultMsgPkt("Please change VLAN mode first!");
// if (WEBg_SCgiInfo.u16ParaNum==1), then Edit else Add a vlan 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 ");
if (WEBg_pSVlanPage->byVlanMode == VLAN_MODE_PORTBASE)
psz += STR_iStrcat(psz, "PortBased");
else if (WEBg_pSVlanPage->byVlanMode == VLAN_MODE_8021Q)
psz += STR_iStrcat(psz, "802.1Q");
else
psz += STR_iStrcat(psz, "ProtocolBased");
psz += STR_iStrcat(psz, " VLAN Group</H2>");
psz += STR_iStrcat(psz, "<FORM id=frm method=GET action=SetVlanGrp><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 vlan group
if (WEBg_SCgiInfo.u16ParaNum==1)
{
WEBg_pSCurGrp->u16Vid = STR_u32StrDecToU32(WEBg_SCgiInfo.apszParaVal[0]);
byTmp = PIVLAN_byGetGrp(WEBg_pSVlanPage);
if (byTmp != OP_OK)
return WEB_wGenResultMsgPkt(g_aszErrMsg[byTmp]);
}
else
{
STR_pvMemset(WEBg_pSCurGrp, 0, sizeof(SVlanGrp));
}
// print VID
psz += STR_iStrcat(psz, "<P>");
psz += STR_iStrcat(psz, ((WEBg_pSVlanPage->byVlanMode == VLAN_MODE_PORTBASE)?"Group":"VLAN"));
psz += STR_iStrcat(psz, " ID : <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_pSCurGrp->u16Vid);
psz += STR_iStrcat(psz, ">");
if (WEBg_SCgiInfo.u16ParaNum==1) { // edit->hidden->show vid
psz += STR_iU32ToStrDec(psz, WEBg_pSCurGrp->u16Vid);
}
else { // add->text->show (1~MaxVid)
if (WEBg_pSVlanPage->byVlanMode == VLAN_MODE_PORTBASE)
psz += STR_iStrcat(psz, "(1~");
else
psz += STR_iStrcat(psz, "(2~");
psz += STR_iU32ToStrDec(psz, WEBg_pSVlanPage->wMaxVid);
psz += STR_iStrcat(psz, ")");
}
// print all members
psz += STR_iStrcat(psz, "<table border=1>");
for (si=0; si<g_byLogIdNum; si++)
{
byTmp = (WEBg_pSCurGrp->abyMbrMsk[si/4] >> (si%4)*2) & 0x03; // Beware of endian
// Put port name
if ((WEBg_pSVlanPage->byVlanMode == VLAN_MODE_PROTOBASE) && (WEBg_pSCurGrp->u16Vid == 1) ) {
psz += STR_iStrcat(psz, (si % 3) ? "" : "<tr>");
psz += STR_iStrcat(psz, "<td ");
psz += STR_iStrcat(psz, s_szTrColor);
psz += STR_iStrcat(psz, ">");
psz += STR_iStrcat(psz, g_aszPortNameTable[g_abyLogIdList[si]]);
psz += STR_iStrcat(psz, "<td>");
psz += STR_iStrcat(psz, g_aszVlanMbrCfg[byTmp]);
}
else {
psz += STR_iStrcat(psz, (si % 3) ? "" : "<tr>");
psz += STR_iStrcat(psz, "<td>");
psz += STR_iStrcat(psz, g_aszPortNameTable[g_abyLogIdList[si]]);
if (WEBg_pSVlanPage->byVlanMode == VLAN_MODE_8021Q)
psz += WEB_wAddSelectTag(psz, 'M', si, g_aszVlanMbrCfg, 3, byTmp, TRUE, 0);
else if (WEBg_pSVlanPage->byVlanMode == VLAN_MODE_PROTOBASE)
psz += WEB_wAddSelectTag(psz, 'M', si, g_aszVlanMbrCfg, 2, byTmp, TRUE, 0);
else
psz += WEB_wAddSelectTag(psz, 'M', si, g_aszMbrNotCfg, 2, byTmp, TRUE, 0);
}
}
psz += STR_iStrcat(psz, "</table>");
if ((WEBg_pSVlanPage->byVlanMode == VLAN_MODE_PROTOBASE) && (WEBg_pSCurGrp->u16Vid == 1) )
psz += STR_iStrcat(psz, "</TABLE></FORM>");
else
psz += s_byAddFormTableEnd(psz);
return (psz - HTTPg_acOutBuf);
}
UINT16 CGI_wShowV1qifCfg(void)
{
char* psz = HTTPg_acOutBuf;
UINT8 si, byTmp;
psz += s_byGenHtmlHeader(HTTPg_acOutBuf, g_strAdvVlanCfg);
psz += s_byAddFormTable(psz, "SetV1qifCfg", 1);
psz += STR_iStrcat(psz, "<TR><TH>Port<TH>NonMember<TH>Untagged</TR>");
PIVLAN_vGetVlanMode(&byTmp);
if ((byTmp != VLAN_MODE_8021Q) && (byTmp != VLAN_MODE_PROTOBASE) )
return 0;
PIVLNFLT_vInitPage(WEBg_pSVlanIngrFlt);
for (si=0; si<g_byLogIdNum; si++)
{
// Put begining of a table entry
psz += STR_iStrcat(psz, "<TR");
psz += STR_iStrcat(psz, ((si & 0x01) ? "" : s_szTrColor));
psz += STR_iStrcat(psz, "><TD>");
psz += STR_iStrcat(psz, 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_acOutBuf);
}
UINT16 CGI_wShowSTPCfg(void)
{
char* psz = HTTPg_acOutBuf;
UINT8 si, u8Tmp;
PISTP_vInitPage(WEBg_pSSTPPage);
psz += s_byGenHtmlHeader(HTTPg_acOutBuf, g_strProvSTP);
psz += s_byAddFormTable(psz, "SetSTPCfg", 0);
psz += STR_iStrcat(psz, "<P>Spanning Tree protocol :");
psz += WEB_wAddSelectTag(psz, 'A', 0, g_aszEnDisCfg, 2, WEBg_pSSTPPage->byMode, FALSE, s_szHideFunc);
psz += STR_iStrcat(psz, s_szHideDiv);
psz += STR_iStrcat(psz, "<P>Port State :<table border=1>");
for (si=0; si<g_byLogIdNum; si++)
{
SWSRAM_vExtractBitsByByte( WEBg_pSSTPPage->abySTPPortState, (UINT8)(si*3), (UINT8)((si+1)*3-1), &u8Tmp);
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_aszSTPPortStateSel, 5, u8Tmp, TRUE, 0);
}
psz += STR_iStrcat(psz, "</table>");
psz += STR_iStrcat(psz, s_szHideJS);
psz += s_byAddFormTableEnd(psz);
return (psz - HTTPg_acOutBuf);
}
char s_szProGrpJS2[] = "\
</FORM>\
<SCRIPT language=javascript>\n\
old=document.f.mode.selectedIndex\n\
function chmod(){\n\
if (confirm(\"Change mode will clear original setting! Continue?\"))\n\
document.f.submit()\n\
else\n\
document.f.mode.selectedIndex=old\n\
}</SCRIPT>";
UINT16 CGI_wShowIGMPCfg(void)
{
char* psz = HTTPg_acOutBuf;
UINT16 si;
psz += s_byGenHtmlHeader(HTTPg_acOutBuf, g_strProvIGMP);
psz += s_byAddFormTable(psz, "SetIGMPCfg", 0);
PIIGMP_vInitPage(WEBg_pSIGMPPage);
if (!WEBg_pSIGMPPage->byMode) //disable
{
psz += WEB_wAddSelectTag(psz, 'V', 0, g_aszEnDisCfg, 2, 0, TRUE, 0);
psz += s_byAddFormTableEnd(psz);
return (psz - HTTPg_acOutBuf);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -