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

📄 cgi_show.c

📁 vt6528芯片交换机API函数和文档运行程序
💻 C
📖 第 1 页 / 共 5 页
字号:
    }

    psz += STR_iStrcat(psz, "<P>IGMP Mode : <SELECT name=mode onChange=chmod()>");
    for (si=0; si<2; si++)
    {
        psz += STR_iStrcat(psz, "<OPTION value=");
        psz += STR_iU32ToStrDec(psz, si);
        psz += STR_iStrcat(psz, ((si == WEBg_pSIGMPPage->byMode) ? " selected" : "")); 
        psz += STR_iStrcat(psz, ">"); 
        psz += STR_iStrcat(psz, g_aszEnDisCfg[si]); 
    }


    psz += STR_iStrcat(psz, "</SELECT><P>IGMP Group List :");
    for (si=0; si<WEBg_pSIGMPPage->wValidEntryNum; si++)
    {
        STR_iStrcpy(WEBg_pSIGMPPage->SCurGrp.szIp, WEBg_pSIGMPPage->astrGrpIpList+si*(IP_STRING_LEN+1));
        psz += STR_iStrcat(psz, "<BR><INPUT type=checkbox name=grp value=");
        psz += STR_iU32ToStrDec(psz, si);
        psz += STR_iStrcat(psz, "><A HREF=ShowIGMPGrp?si=");
        psz += STR_iU32ToStrDec(psz, si);
        psz += STR_iStrcat(psz, ">");
        //show grp : IP--Vid
        psz += STR_iStrcat(psz, WEBg_pSIGMPPage->SCurGrp.szIp); 
        psz += STR_iStrcat(psz, "    #");
        psz += STR_iU32ToStrDec(psz, WEBg_pSIGMPPage->awValidGrpIdList[si]);
    }

    psz += STR_iStrcat(psz, s_szVlanJS); 
    psz += STR_iStrcat(psz, g_aszWebLoginID); 
    psz += STR_iStrcat(psz, "ShowIGMPGrp'\">"); 
    psz += STR_iStrcat(psz, s_szProGrpJS2); 

    return (psz - HTTPg_acOutBuf);
}


UINT16 CGI_wShowIGMPGrp (void)
{
    char*   psz = HTTPg_acOutBuf;
    UINT8    si, u8Tmp;

    PIIGMP_vInitPage(WEBg_pSIGMPPage);
    if (!WEBg_pSIGMPPage->byMode)    //disable
        return WEB_wGenResultMsgPkt("Please change IGMP mode first!");

    // if (WEBg_SCgiInfo.u16ParaNum==1), then Edit else Add a igmp 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 IGMP Group</H2>"); 
    psz += STR_iStrcat(psz, "<FORM id=frm method=GET action=SetIGMPGrp><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 igmp group
    if (WEBg_SCgiInfo.u16ParaNum==1) {
        u8Tmp = STR_u32StrDecToU32(WEBg_SCgiInfo.apszParaVal[0]);
        STR_pszStrcpy(WEBg_pSIGMPPage->SCurGrp.szIp, WEBg_pSIGMPPage->astrGrpIpList+u8Tmp*(IP_STRING_LEN+1));
        WEBg_pSIGMPPage->SCurGrp.u16Vid = WEBg_pSIGMPPage->awValidGrpIdList[u8Tmp];        
        u8Tmp = PIIGMP_byGetGrp(WEBg_pSIGMPPage);
        if (u8Tmp != OP_OK)
            return WEB_wGenResultMsgPkt(g_aszErrMsg[u8Tmp]);
    }
    else
        STR_pvMemset(&WEBg_pSIGMPPage->SCurGrp, 0, sizeof(SIpmEntryPage));

    // print VID
    psz += STR_iStrcat(psz, "<P> IP Address :<INPUT type=");
    psz += STR_iStrcat(psz, ((WEBg_SCgiInfo.u16ParaNum==1)?"hidden":"text"));
    psz += STR_iStrcat(psz, " maxlength=");
    psz += STR_iU32ToStrDec(psz, IP_STRING_LEN);
    psz += STR_iStrcat(psz, " name=p value =");
    psz += STR_iStrcat(psz, WEBg_pSIGMPPage->SCurGrp.szIp);
    psz += STR_iStrcat(psz, "> ");
    if (WEBg_SCgiInfo.u16ParaNum==1)   // edit->hidden->show ip
        psz += STR_iStrcat(psz, WEBg_pSIGMPPage->SCurGrp.szIp);

    psz += STR_iStrcat(psz, "<br> VID : <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_pSIGMPPage->SCurGrp.u16Vid);
    psz += STR_iStrcat(psz, "> ");
    if (WEBg_SCgiInfo.u16ParaNum==1)   // edit->hidden->show vid
        psz += STR_iU32ToStrDec(psz, WEBg_pSIGMPPage->SCurGrp.u16Vid);

    psz += STR_iStrcat(psz, "<br> Static :");
    psz += WEB_wAddSelectTag(psz, 'W', 0, g_aszEnDisCfg, 2, *((PUINT8)&WEBg_pSIGMPPage->SCurGrp.bStatic), FALSE, 0);
    psz += STR_iStrcat(psz, "<br> CPU :");
    psz += WEB_wAddSelectTag(psz, 'W', 1, g_aszEnDisCfg, 2, *((PUINT8)&WEBg_pSIGMPPage->SCurGrp.bCpu), FALSE, 0);
    psz += STR_iStrcat(psz, "<br> Dp :");
    psz += WEB_wAddSelectTag(psz, 'W', 2, g_aszEnDisCfg, 2, *((PUINT8)&WEBg_pSIGMPPage->SCurGrp.bDp), FALSE, 0);

    // print all members
    psz += STR_iStrcat(psz, "<P>Group Member :<table border=1>");
    for (si=0; si<g_byLogIdNum; si++)
    {
        u8Tmp = (WEBg_pSIGMPPage->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_wShowMibCnt(void)
{
    char*   psz = HTTPg_acOutBuf;
    UINT8   byPortId;

    // Get mib counters
    PIMIB_vInitPage(WEBg_pSMibCnt, 0);

    psz += s_byGenHtmlHeader(HTTPg_acOutBuf, g_strPortCntrs);
    psz += s_byAddFormTable(psz, "SetMibCntCfg", 0);

    psz += STR_iStrcat(psz, "<TABLE border=1><TR ALIGN=center><TH>Port<TH>RxGoodPkt<TH>RxBadPkt<TH>TxGoodPkt<TH>TxBadPkt<TH>DropPkt<TH>TxAbrt<TH>Collision</TR>");

    for (byPortId = 0; byPortId < SWITCH_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]);

        psz += STR_iStrcat(psz, "<TD>");
        psz += STR_iU32ToStrHex(psz, WEBg_pSMibCnt->aSPortStatistic[byPortId].dwRxGoodPkt);
        psz += STR_iStrcat(psz, "<TD>");
        psz += STR_iU32ToStrHex(psz, WEBg_pSMibCnt->aSPortStatistic[byPortId].dwRxBadPkt);
        psz += STR_iStrcat(psz, "<TD>");
        psz += STR_iU32ToStrHex(psz, WEBg_pSMibCnt->aSPortStatistic[byPortId].dwTxGoodPkt);
        psz += STR_iStrcat(psz, "<TD>");
        psz += STR_iU32ToStrHex(psz, WEBg_pSMibCnt->aSPortStatistic[byPortId].dwTxBadPkt);
        psz += STR_iStrcat(psz, "<TD>");
        psz += STR_iU32ToStrHex(psz, WEBg_pSMibCnt->aSPortStatistic[byPortId].dwDropPkt);
        psz += STR_iStrcat(psz, "<TD>");
        psz += STR_iU32ToStrHex(psz, WEBg_pSMibCnt->aSPortStatistic[byPortId].dwTxAbort);
        psz += STR_iStrcat(psz, "<TD>");
        psz += STR_iU32ToStrHex(psz, WEBg_pSMibCnt->aSPortStatistic[byPortId].dwCollision);
    }

    psz += STR_iStrcat(psz, "</TABLE>");
    psz += STR_iStrcat(psz, "</TABLE><P><INPUT type=submit value=ClearAllCntr></FORM>");

    return (psz - HTTPg_acOutBuf);

}


char s_szSMacJS2[] = "\
ShowSMacGrp'\">\
</FORM>";


UINT16 CGI_wShowSMacCfg(void)
{
    char*   psz = HTTPg_acOutBuf;
    UINT16  si;

    psz += s_byGenHtmlHeader(HTTPg_acOutBuf, g_strProvSMac);
    psz += s_byAddFormTable(psz, "SetSMacCfg", 0);

    PISMAC_vInitPage(WEBg_pSSMacPage);

    psz += STR_iStrcat(psz, "<P>SMAC Entry List :");
    for (si=0; si<WEBg_pSSMacPage->wValidEntryNum; si++)
    {
        STR_iStrcpy(WEBg_pSSMacPage->SCurGrp.azMacAddr, WEBg_pSSMacPage->astrGrpMacList+si*(MAC_STRING_LEN+1));
        psz += STR_iStrcat(psz, "<BR><INPUT type=checkbox name=grp value=");
        psz += STR_iU32ToStrDec(psz, si);
        psz += STR_iStrcat(psz, "><A HREF=ShowSMacGrp?si=");
        psz += STR_iU32ToStrDec(psz, si);
        psz += STR_iStrcat(psz, ">");
        //show grp : MAC--Fid
        psz += STR_iStrcat(psz, WEBg_pSSMacPage->SCurGrp.azMacAddr); 
        psz += STR_iStrcat(psz, "    #");
        psz += STR_iU32ToStrDec(psz, WEBg_pSSMacPage->awValidGrpFidList[si]);
    }

    psz += STR_iStrcat(psz, s_szVlanJS); 
    psz += STR_iStrcat(psz, g_aszWebLoginID); 
    psz += STR_iStrcat(psz, s_szSMacJS2); 

    return (psz - HTTPg_acOutBuf);
}


UINT16 CGI_wShowSMacGrp (void)
{
    char*   psz = HTTPg_acOutBuf;
    UINT8    si, u8Tmp;

    PISMAC_vInitPage(WEBg_pSSMacPage);

    // if (WEBg_SCgiInfo.u16ParaNum==1), then Edit else Add a smac 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 Static MAC Entry</H2>"); 
    psz += STR_iStrcat(psz, "<FORM id=frm method=GET action=SetSMacGrp><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 smac group
    if (WEBg_SCgiInfo.u16ParaNum==1) {
        u8Tmp = STR_u32StrDecToU32(WEBg_SCgiInfo.apszParaVal[0]);
        STR_pszStrcpy(WEBg_pSSMacPage->SCurGrp.azMacAddr, WEBg_pSSMacPage->astrGrpMacList+u8Tmp*(MAC_STRING_LEN+1));
        WEBg_pSSMacPage->SCurGrp.u16Fid = WEBg_pSSMacPage->awValidGrpFidList[u8Tmp];        
        u8Tmp = PISMACGP_byGetGrp(WEBg_pSSMacPage);
        if (u8Tmp != OP_OK)
            return WEB_wGenResultMsgPkt(g_aszErrMsg[u8Tmp]);
    }
    else {
        STR_pvMemset(&WEBg_pSSMacPage->SCurGrp, 0, sizeof(SSMacEntryPage));
        STR_pszStrcpy(WEBg_pSSMacPage->SCurGrp.azMacAddr, "0:0:0:0:0:0");    
    }
    
    //load for source portid selection    
    PISMACGP_vInitAddOrEditGrpPage(WEBg_pSSMacPage);

    // print FID
    psz += STR_iStrcat(psz, "<P> MAC Address :<INPUT type=");
    psz += STR_iStrcat(psz, ((WEBg_SCgiInfo.u16ParaNum==1)?"hidden":"text"));
    psz += STR_iStrcat(psz, " maxlength=");
    psz += STR_iU32ToStrDec(psz, MAC_STRING_LEN);
    psz += STR_iStrcat(psz, " name=p value =");
    psz += STR_iStrcat(psz, WEBg_pSSMacPage->SCurGrp.azMacAddr);
    psz += STR_iStrcat(psz, "> ");
    if (WEBg_SCgiInfo.u16ParaNum==1)   // edit->hidden->show mac
        psz += STR_iStrcat(psz, WEBg_pSSMacPage->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_pSSMacPage->SCurGrp.u16Fid);
    psz += STR_iStrcat(psz, "> ");
    if (WEBg_SCgiInfo.u16ParaNum==1)   // edit->hidden->show fid
        psz += STR_iU32ToStrDec(psz, WEBg_pSSMacPage->SCurGrp.u16Fid);

    psz += STR_iStrcat(psz, "<br> Source PortId :");
    for (si=0; si<WEBg_pSSMacPage->SCurGrp.SStrTblMap.byListNum; si++)
        s_apszStrTbl[si] = g_aszPortNameTable[WEBg_pSSMacPage->SCurGrp.abyDestPortList[si]];
    psz += WEB_wAddSelectTag(psz, 'W', 0, s_apszStrTbl, WEBg_pSSMacPage->SCurGrp.SStrTblMap.byListNum, WEBg_pSSMacPage->SCurGrp.bySrcId, FALSE, 0);

    psz += STR_iStrcat(psz, "<br> HiPriDmac :");
    psz += WEB_wAddSelectTag(psz, 'W', 1, g_aszEnDisCfg, 2, *((PUINT8)&WEBg_pSSMacPage->SCurGrp.bHiPriDmac), FALSE, 0);
    psz += STR_iStrcat(psz, "<br> HiPriSmac :");
    psz += WEB_wAddSelectTag(psz, 'W', 2, g_aszEnDisCfg, 2, *((PUINT8)&WEBg_pSSMacPage->SCurGrp.bHiPriSmac), FALSE, 0);

    psz += STR_iStrcat(psz, "</table>");
    psz += s_byAddFormTableEnd(psz);

    return (psz - HTTPg_acOutBuf);
}


UINT16 CGI_wShowGMRPCfg(void)
{
    char*   psz = HTTPg_acOutBuf;
    UINT16  si;

    psz += s_byGenHtmlHeader(HTTPg_acOutBuf, g_strProvGMRP);
    psz += s_byAddFormTable(psz, "SetGMRPCfg", 0);

    PIGMRP_vInitPage(WEBg_pSGMRPPage);

    if (!WEBg_pSGMRPPage->byMode)  //disable
    {
        psz += WEB_wAddSelectTag(psz, 'V', 0, g_aszEnDisCfg, 2, 0, TRUE, 0);
        psz += s_byAddFormTableEnd(psz);
        return (psz - HTTPg_acOutBuf);
    }

    psz += STR_iStrcat(psz, "<P>GMRP Mode : <SELECT name=mode onChange=chmod()>");
    for (si=0; si<2; si++)
    {
        psz += STR_iStrcat(psz, "<OPTION value=");
        psz += STR_iU32ToStrDec(psz, si);
        psz += STR_iStrcat(psz, ((si == WEBg_pSGMRPPage->byMode) ? " selected" : "")); 
        psz += STR_iStrcat(psz, ">"); 
        psz += STR_iStrcat(psz, g_aszEnDisCfg[si]); 
    }


    psz += STR_iStrcat(psz, "</SELECT><P>GMRP Entry List :");
    for (si=0; si<WEBg_pSGMRPPage->wValidEntryNum; si++)
    {
        STR_iStrcpy(WEBg_pSGMRPPage->SCurGrp.azMacAddr, WEBg_pSGMRPPage->astrGrpMacList+si*(MAC_STRING_LEN+1));
        psz += STR_iStrcat(psz, "<BR><INPUT type=checkbox name=grp value=");
        psz += STR_iU32ToStrDec(psz, si);
        psz += STR_iStrcat(psz, "><A HREF=ShowGMRPGrp?si=");
        psz += STR_iU32ToStrDec(psz, si);
        psz += STR_iStrcat(psz, ">");
        //show grp : MAC--Vid
        psz += STR_iStrcat(psz, WEBg_pSGMRPPage->SCurGrp.azMacAddr); 
        psz += STR_iStrcat(psz, "    #");
        psz += STR_iU32ToStrDec(psz, WEBg_pSGMRPPage->awValidGrpFidList[si]);
    }

    psz += STR_iStrcat(psz, s_szVlanJS); 
    psz += STR_iStrcat(psz, g_aszWebLoginID); 
    psz += STR_iStrcat(psz, "ShowGMRPGrp'\">"); 
    psz += STR_iStrcat(psz, s_szProGrpJS2); 

    return (psz - HTTPg_acOutBuf);
}


UINT16 CGI_wShowGMRPGrp (void)
{
    char*   psz = HTTPg_acOutBuf;
    UINT8    si, u8Tmp;

    PIGMRP_vInitPage(WEBg_pSGMRPPage);
    if (!WEBg_pSGMRPPage->byMode)    //disable
        return WEB_wGenResultMsgPkt("Please change GMRP mode first!");

    // if (WEBg_SCgiInfo.u16ParaNum==1), then Edit else Add a gmrp 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 Multicast Entry</H2>"); 
    psz += STR_iStrcat(psz, "<FORM id=frm method=GET action=SetGMRPGrp><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 gmrp group
    if (WEBg_SCgiInfo.u16ParaNum==1) {
        u8Tmp = STR_u32StrDecToU32(WEBg_SCgiInfo.apszParaVal[0]);
        STR_pszStrcpy(WEBg_pSGMRPPage->SCurGrp.azMacAddr, WEBg_pSGMRPPage->astrGrpMacList+u8Tmp*(MAC_STRING_LEN+1));
        WEBg_pSGMRPPage->SCurGrp.u16Fid = WEBg_pSGMRPPage->awValidGrpFidList[u8Tmp];        
        u8Tmp = PIGMRP_byGetGrp(WEBg_pSGMRPPage);
        if (u8Tmp != OP_OK)
            return WEB_wGenResultMsgPkt(g_aszErrMsg[u8Tmp]);
    }
    else {
        STR_pvMemset(&WEBg_pSGMRPPage->SCurGrp, 0, sizeof(SGmrpEntryPage));
        STR_pszStrcpy(WEBg_pSGMRPPage->SCurGrp.azMacAddr, "0:0:0:0:0:0");    
    }
    
    // print FID
    psz += STR_iStrcat(psz, "<P> MAC Address :<INPUT type=");
    psz += STR_iStrcat(psz, ((WEBg_SCgiInfo.u16ParaNum==1)?"hidden":"text"));
    psz += STR_iStrcat(psz, " maxlength=");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -