⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cgi_show.c

📁 vt6528芯片交换机API函数和文档运行程序
💻 C
📖 第 1 页 / 共 5 页
字号:
    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 + -