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

📄 cgi_show.c

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

    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 + -