📄 cgi_show.c
字号:
psz += STR_iU32ToStrDec(psz, MAC_STRING_LEN);
psz += STR_iStrcat(psz, " name=p value =");
psz += STR_iStrcat(psz, WEBg_pSGMRPPage->SCurGrp.azMacAddr);
psz += STR_iStrcat(psz, "> ");
if (WEBg_SCgiInfo.u16ParaNum==1) // edit->hidden->show mac
psz += STR_iStrcat(psz, WEBg_pSGMRPPage->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_pSGMRPPage->SCurGrp.u16Fid);
psz += STR_iStrcat(psz, "> ");
if (WEBg_SCgiInfo.u16ParaNum==1) // edit->hidden->show fid
psz += STR_iU32ToStrDec(psz, WEBg_pSGMRPPage->SCurGrp.u16Fid);
psz += STR_iStrcat(psz, "<br> HiPriDmac :");
psz += WEB_wAddSelectTag(psz, 'W', 0, g_aszEnDisCfg, 2, *((PUINT8)&WEBg_pSGMRPPage->SCurGrp.bHiPriDmac), FALSE, 0);
psz += STR_iStrcat(psz, "<br> HiPriSmac :");
psz += WEB_wAddSelectTag(psz, 'W', 1, g_aszEnDisCfg, 2, *((PUINT8)&WEBg_pSGMRPPage->SCurGrp.bHiPriSmac), FALSE, 0);
// print all members
psz += STR_iStrcat(psz, "<P>Entry Member :<table border=1>");
for (si=0; si<g_byLogIdNum; si++)
{
u8Tmp = (WEBg_pSGMRPPage->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_wShow8021XCfg(void)
{
char* psz = HTTPg_acOutBuf;
UINT8 si, u8Tmp;
PI8021X_vInitPage(WEBg_pS8021XPage);
psz += s_byGenHtmlHeader(HTTPg_acOutBuf, g_strProv8021X);
psz += s_byAddFormTable(psz, "Set8021XCfg", 0);
psz += STR_iStrcat(psz, "<P>802.1X protocol :");
psz += WEB_wAddSelectTag(psz, 'A', 0, g_aszEnDisCfg, 2, WEBg_pS8021XPage->byMode, FALSE, s_szHideFunc);
psz += STR_iStrcat(psz, s_szHideDiv);
psz += STR_iStrcat(psz, "<P>Port Security :<table border=1>");
for (si=0; si<g_byLogIdNum; si++)
{
u8Tmp = (WEBg_pS8021XPage->abySecPortMsk[si/8] >> (si%8)) & 0x01; // Beware of endian
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_aszEnDisCfg, 2, u8Tmp, TRUE, 0);
}
psz += STR_iStrcat(psz, "</table>");
psz += STR_iStrcat(psz, s_szHideJS);
psz += s_byAddFormTableEnd(psz);
return (psz - HTTPg_acOutBuf);
}
UINT16 CGI_wShowPrvMiscCfg(void)
{
char* psz = HTTPg_acOutBuf;
psz += s_byGenHtmlHeader(HTTPg_acOutBuf, g_strProvMisc);
psz += s_byAddFormTable(psz, "SetPrvMiscCfg", 1);
PIPROVMISC_vInitPage(WEBg_pSPrvMiscPage);
psz += STR_iStrcat(psz, "<TR><TD>LACP Packet Received ");
psz += WEB_wAddSelectTag(psz, 'A', 0, g_aszEnDisCfg, 2, WEBg_pSPrvMiscPage->byLacpMode, TRUE, 0);
psz += STR_iStrcat(psz, "<TR><TD>GVRP Packet Received ");
psz += WEB_wAddSelectTag(psz, 'A', 1, g_aszEnDisCfg, 2, WEBg_pSPrvMiscPage->byGVRPMode, TRUE, 0);
psz += s_byAddFormTableEnd(psz);
return (psz - HTTPg_acOutBuf);
}
/*Added by Tim Feng*/
#define pSCurGrp (&pSPageBuf->SCurGrp)
char *s_vListACLGroup(SACLPageCfg *pSPageBuf, PSTR aszOutBuf)
{
PSTR psz = aszOutBuf;
CHAR acTmpBuf[20];
if (PIACL_byGetCurPageGrp(pSPageBuf) == OP_OK) {
//Group Id
psz += STR_iStrcat(psz, "(gid#");
psz += STR_iU32ToStrDec(psz, pSCurGrp->u8GrpId);
psz += STR_iStrcat(psz, ")_");
//Action
STR_iStrcpy(acTmpBuf, g_aszACLEntryAction[pSCurGrp->bFilter]);
acTmpBuf[0] = STR_cToLower(acTmpBuf[0]);
psz+=STR_iStrcat(psz, acTmpBuf);
//Vid
psz += STR_iStrcat(psz, "_(vid#");
if (pSCurGrp->bVidEn)
psz += STR_iU32ToStrDec(psz, pSCurGrp->u16Vid);
else
psz += STR_iStrcat(psz, "any");
psz += STR_iStrcat(psz, ")");
//Ipv4
if (pSCurGrp->bIsIpv4) {
struct SACLIpv4GrpPageCfg* pSACLIpv4GrpPgBuf = (struct SACLIpv4GrpPageCfg*)&pSCurGrp->UACLPageCfgBuf;
//Src Ip Address and Net Mask
psz += STR_iStrcat(psz, "_(sip#");
if (pSACLIpv4GrpPgBuf->bSIpEn) {
psz += STR_iStrcat(psz, pSACLIpv4GrpPgBuf->szSIp);
psz += STR_iStrcat(psz, ")");
psz += STR_iStrcat(psz, "_(mask#");
psz += STR_iStrcat(psz, pSACLIpv4GrpPgBuf->szSIpMsk);
}
else {
psz += STR_iStrcat(psz, "any");
}
psz+=STR_iStrcat(psz, ")");
//Dst Ip Address and Net Mask
psz += STR_iStrcat(psz, "_(dip#");
if (pSACLIpv4GrpPgBuf->bDIpEn) {
psz += STR_iStrcat(psz, pSACLIpv4GrpPgBuf->szDIp);
psz += STR_iStrcat(psz, ")");
psz += STR_iStrcat(psz, "_(mask#");
psz += STR_iStrcat(psz, pSACLIpv4GrpPgBuf->szDIpMsk);
}
else {
psz += STR_iStrcat(psz, "any");
}
psz += STR_iStrcat(psz, ")");
//L4 Protocol
psz += STR_iStrcat(psz, "_(l4#");
switch (g_abyL4ProtoVal[pSACLIpv4GrpPgBuf->byL4ProtoIndex]) {
case L4_PROTOCOL_TCP:
psz += STR_iStrcat(psz, "tcp#");
if (pSACLIpv4GrpPgBuf->byTcpPortIndex != 0)
psz += STR_iU32ToStrDec(psz, g_awTcpDstPortVal[pSACLIpv4GrpPgBuf->byTcpPortIndex]);
else if (pSACLIpv4GrpPgBuf->u32TcpPort != 0)
psz += STR_iU32ToStrDec(psz, pSACLIpv4GrpPgBuf->u32TcpPort);
else
psz += STR_iStrcat(psz, "any");
break;
case L4_PROTOCOL_UDP:
psz += STR_iStrcat(psz, "udp#");
if (pSACLIpv4GrpPgBuf->byUdpPortIndex != 0)
psz += STR_iU32ToStrDec(psz, g_awUdpDstPortVal[pSACLIpv4GrpPgBuf->byUdpPortIndex]);
else if (pSACLIpv4GrpPgBuf->u32UdpPort != 0)
psz += STR_iU32ToStrDec(psz, pSACLIpv4GrpPgBuf->u32UdpPort);
else
psz += STR_iStrcat(psz, "any");
break;
default:
if (pSACLIpv4GrpPgBuf->byL4ProtoIndex != 0)
psz += STR_iU32ToStrDec(psz, g_abyL4ProtoVal[pSACLIpv4GrpPgBuf->byL4ProtoIndex]);
else if (pSACLIpv4GrpPgBuf->u16L4Proto != 0)
psz += STR_iU32ToStrDec(psz, pSACLIpv4GrpPgBuf->u16L4Proto);
else
psz += STR_iStrcat(psz, "any");
break;
}
psz += STR_iStrcat(psz, ")");
//Fragment
psz += STR_iStrcat(psz, "_(frg#");
STR_iStrcpy(acTmpBuf, g_aszACLEntryFrag[pSACLIpv4GrpPgBuf->bFragCheck]);
acTmpBuf[0] = STR_cToLower(acTmpBuf[0]);
psz += STR_iStrcat(psz, acTmpBuf);
psz += STR_iStrcat(psz, ")");
}
//Non_ipv4 group
else {
struct SACLNonIpv4GrpPageCfg* pSACLNonIpv4GrpPgBuf=(struct SACLNonIpv4GrpPageCfg*)&pSCurGrp->UACLPageCfgBuf;
psz += STR_iStrcat(psz, "_(ethtype#");
if (pSACLNonIpv4GrpPgBuf->byEthProtoIndex != 0)
psz += STR_iU32ToStrHexPad(psz, g_awEthProtoVal[pSACLNonIpv4GrpPgBuf->byEthProtoIndex],4);
else if (pSACLNonIpv4GrpPgBuf->wEthType != 0)
psz += STR_iU32ToStrHexPad(psz, pSACLNonIpv4GrpPgBuf->wEthType, 4);
else
psz += STR_iStrcat(psz, "any");
psz += STR_iStrcat(psz, ")");
}
}
return psz;
}
char s_szACLJS[] = "\
<SCRIPT language=javascript>\n\
function OnBeforeDel(){\n\
if (confirm(\"Delete the selected group?\"))\n\
return true\n\
else\n\
return false\n\
}</SCRIPT>";
UINT16 CGI_wShowACLCfg(void)
{
char* psz = HTTPg_acOutBuf;
UINT8 si;
UINT8 byVlanMode;
psz += s_byGenHtmlHeader(HTTPg_acOutBuf, g_strACLCfg);
psz += s_byAddFormTable(psz, "SetACLCfg", 1);
//Patch to detect whether vlan is enable
PIVLAN_vGetVlanMode(&byVlanMode);
if (byVlanMode == VLAN_MODE_DISABLE) {
psz += STR_iStrcat(psz, "</TABLE></FORM>");
psz += STR_iStrcat(psz, "<P><P><P>");
psz += STR_iStrcat(psz, g_aszErrMsg[ACL_OP_VLAN_MODE_DISABLED]);
return (psz - HTTPg_acOutBuf);
}
//End of patch to detect vlan mode
PIACL_vInitPage(WEBg_pSACLPage,TRUE,FALSE);//Get all the groups from eeprom
psz += STR_iStrcat(psz, "<TR><TD width=115></TD><TD width=40%></TD><TD width=12%></TD><TD ></TD></TR>");
//Group Id
psz += STR_iStrcat(psz, "<TR>");
psz += STR_iStrcat(psz, "<TD width=115");
psz += STR_iStrcat(psz, s_szTrColor);
psz += STR_iStrcat(psz, ">Group Id</TD><TD colspan=3><INPUT type=text name=TexGrpId size=5 maxlength=3 >");
psz += STR_iStrcat(psz, "(1~");
psz += STR_iU32ToStrDec(psz, WEBg_pSACLPage->u8MaxValidGrpId);
psz += STR_iStrcat(psz, ")</TD>");
psz += STR_iStrcat(psz, "</TR>");
//Action of ACL
psz += STR_iStrcat(psz, "<TR>");
psz += STR_iStrcat(psz, "<TD ");
psz += STR_iStrcat(psz, s_szTrColor);
psz += STR_iStrcat(psz, ">Action </TD><TD colspan=3>");
psz += WEB_wAddSelectTag(psz, 'A', 0, g_aszACLEntryAction, 2, 0, FALSE, NULL);
psz += STR_iStrcat(psz, "</TD>");
psz += STR_iStrcat(psz, "</TR>");
//VID
psz += STR_iStrcat(psz, "<TR>");
psz += STR_iStrcat(psz, "<TD checked");
psz += STR_iStrcat(psz, s_szTrColor);
psz += STR_iStrcat(psz, ">VLAN </TD><TD colspan=3><INPUT type=radio name=RVidAny checked value=0>Any");
psz += STR_iStrcat(psz, "<INPUT type=radio name=RVidAny value=1>VID<INPUT type=text maxlength=4 size=5 name=TexVid value=1>(1~4094)</TD>");
psz += STR_iStrcat(psz, "</TR>");
//Packet type
psz += STR_iStrcat(psz, "<TR>");
psz += STR_iStrcat(psz, "<TD ");
psz += STR_iStrcat(psz, s_szTrColor);
psz += STR_iStrcat(psz, ">Packet Type </TD><TD bgcolor=cadetblue><INPUT type=radio name=RIpv4 checked value=1>IPv4 </TD>");
psz += STR_iStrcat(psz, "<TD colspan=2 bgcolor=cadetblue><INPUT type=radio name=RIpv4 value=0>Non-IPv4 </TD>");
psz += STR_iStrcat(psz, "</TR>");
psz += STR_iStrcat(psz, "<TR>"); //New Row for Src Ip and Ether Type
//Src IP Address
psz += STR_iStrcat(psz, "<TD ");
psz += STR_iStrcat(psz, s_szTrColor);
psz += STR_iStrcat(psz, ">Src IP Address </TD><TD><TABLE border=1 >");
psz += STR_iStrcat(psz, "<TR><TD ><INPUT type=radio name=RSIpAny checked value=0>Any </TD>");
psz += STR_iStrcat(psz, "<TD align=right> <INPUT type=radio name=RSIpAny value=1>IP <INPUT type=text maxlength=15 name=TexSIp value=0.0.0.0></Td></TR>");
psz += STR_iStrcat(psz, "<TR ALIGN=right><TD></TD><TD>Mask<INPUT type=text maxlength=15 name=TexSIpMsk value=255.255.255.255></TD></TR>");
psz += STR_iStrcat(psz, "</table></TD>");
//Ether type
psz += STR_iStrcat(psz, "<TD ");
psz += STR_iStrcat(psz, s_szTrColor);
psz += STR_iStrcat(psz, ">Ether Type<br></TD><TD ><TABLE width=230>");
psz += WEB_wAddSelectTag(psz, 'B', 0, g_aszEthType, 3, 0, FALSE, NULL);
psz += STR_iStrcat(psz, "Type#(0x)<INPUT type=text maxlength=4 size=4 name=EtherType></TABLE></TD>");
psz += STR_iStrcat(psz, "</TR>");
//Dst IP Address
psz += STR_iStrcat(psz, "<TR><TD ");
psz += STR_iStrcat(psz, s_szTrColor);
psz += STR_iStrcat(psz, ">Dst IP Address </TD><TD><TABLE border=1>");
psz += STR_iStrcat(psz, "<TR><TD ><INPUT type=radio name=RDIpAny checked value=0>Any </TD>");
psz += STR_iStrcat(psz, "<TD align=right> <INPUT type=radio name=RDIpAny value=1>IP <INPUT type=text maxlength=15 name=TexDIp value=0.0.0.0></Td></TR>");
psz += STR_iStrcat(psz, "<TR ALIGN=right><TD></TD><TD>Mask<INPUT type=text maxlength=15 name=TexDIpMsk value=255.255.255.255></TD></TR>");
psz += STR_iStrcat(psz, "</table></TD></TR>");
//IP Fragment
psz += STR_iStrcat(psz, "<TR><td ");
psz += STR_iStrcat(psz, s_szTrColor);
psz += STR_iStrcat(psz, ">IP Fragment</td><TD>");
psz += WEB_wAddSelectTag(psz, 'C', 0, g_aszACLEntryFrag, 2, 0, FALSE, NULL);
psz += STR_iStrcat(psz, "</TD></TR>");
//L4 Protocol Configuration
psz += STR_iStrcat(psz, "<TR>");
psz += STR_iStrcat(psz, "<TD ");
psz += STR_iStrcat(psz, s_szTrColor);
psz += STR_iStrcat(psz, ">L4 Protocol</TD><TD><TABLE border=1>");
//L4 Protocol
psz += STR_iStrcat(psz, "<TR><Td align=left><INPUT type=radio name=RL4Proto value=RL4ProtoO checked>");
psz += WEB_wAddSelectTag(psz, 'D', 0, g_aszL4Proto, 3, 0, FALSE, NULL);
psz += STR_iStrcat(psz, "Protocol#:<INPUT type=text maxlength=3 size=8 name=TexL4Proto ></Td></TR>");
//TCP
psz += STR_iStrcat(psz, "<TR><TD align=lef
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -