📄 cgi.c
字号:
case 4:
CgiReturn(state,0);
break;
default:
state->substate = 0;
return 1;
}
}
return 0;
}
/*** BeginHeader SetE1info1Cgi */
nodebug xmem int SetE1info1Cgi(HttpState* state);
/*** EndHeader */
nodebug xmem int SetE1info1Cgi(HttpState* state)
{
int i;
if(state->length)
{
/* buffer to write out */
if(state->offset < state->length) {
state->offset += sock_fastwrite(&state->s,
state->buffer + (int)state->offset,
(int)state->length - (int)state->offset);
} else {
state->offset = 0;
state->length = 0;
}
}
else
{
switch(state->substate)
{
case 0:
CgiStep0(state);
break;
case 1:
CgiStep1(state);
break;
case 2:
/* init the data */
for(i=0;i<5;++i)
{
FormData[i].value[0] = '\0';
}
i=0;
//FormData[i++].name="SelApp";//i=0
FormData[i++].name="SelChan";
FormData[i++].name="g_Len";
//FormData[i++].name="SelClk";
FormData[i++].name="SelIp";
FormData[i++].name="Ip_Tos";
FormData[i++].name="Upband";
state->p = state->buffer;
state->substate++;
break;
case 3:
if(ParseForm(state,5))
{
/*if(!(strcmp(FormData[0].value,"Master")))
{
g_AddrInfo[UserIndx].TirdE1Para.AppMod=0;
}
else
{
g_AddrInfo[UserIndx].TirdE1Para.AppMod=1;
}*/
if(!(strcmp(FormData[0].value,"E1")))
{
g_AddrInfo[UserIndx].TirdE1Para.E1orT1=0;//E1Set( );
}
else
{
g_AddrInfo[UserIndx].TirdE1Para.E1orT1=1;//T1Set( );
}
g_AddrInfo[UserIndx].TirdE1Para.EnLev=atoi(FormData[1].value);
/*if(!(strcmp(FormData[3].value,"Adaptive")))
{
g_AddrInfo[UserIndx].TirdE1Para.ClkMod=1;
}
else
{
g_AddrInfo[UserIndx].TirdE1Para.ClkMod=0;
}*/
if(!(strcmp(FormData[2].value,"Yes")))
{
g_AddrInfo[UserIndx].TirdE1Para.EnIp=1;
}
else
{
g_AddrInfo[UserIndx].TirdE1Para.EnIp=0;
}
g_AddrInfo[UserIndx].TirdE1Para.Tos=StrtoTos(3);
g_AddrInfo[UserIndx].TirdE1Para.Upwidth=atoi(FormData[4].value);
//ConvertDisp();
g_CgiProcess=0x01;
CgiSuccess(state);
}
else
{
//CgiErr(state);
CgiReturn(state,8);
}
break;
case 4:
CgiReturn(state,2);
break;
default:
state->substate = 0;
return 1;
}
}
return 0;
}
/*** BeginHeader SetE1info2Cgi */
nodebug xmem int SetE1info2Cgi(HttpState* state);
/*** EndHeader */
nodebug xmem int SetE1info2Cgi(HttpState* state)
{
int i;
unsigned long IpAddr[4];
unsigned char PortSel[4];
if(state->length)
{
/* buffer to write out */
if(state->offset < state->length) {
state->offset += sock_fastwrite(&state->s,
state->buffer + (int)state->offset,
(int)state->length - (int)state->offset);
} else {
state->offset = 0;
state->length = 0;
}
}
else
{
switch(state->substate)
{
case 0:
CgiStep0(state);
break;
case 1:
CgiStep1(state);
break;
case 2:
/* init the data */
for(i=0;i<24;++i)
{
FormData[i].value[0] = '\0';
}
i=0;
FormData[i++].name="EnPort0";//i=0
FormData[i++].name="EnPort1";
FormData[i++].name="EnPort2";
FormData[i++].name="EnPort3";
FormData[i++].name="SelMap0";//i=4
FormData[i++].name="SelMap1";
FormData[i++].name="SelMap2";
FormData[i++].name="SelMap3";
FormData[i++].name="A_IP_0";//i=8
FormData[i++].name="A_IP_1";
FormData[i++].name="A_IP_2";
FormData[i++].name="A_IP_3";
FormData[i++].name="B_IP_0";//i=12
FormData[i++].name="B_IP_1";
FormData[i++].name="B_IP_2";
FormData[i++].name="B_IP_3";
FormData[i++].name="C_IP_0";//i=16
FormData[i++].name="C_IP_1";
FormData[i++].name="C_IP_2";
FormData[i++].name="C_IP_3";
FormData[i++].name="D_IP_0";//i=20
FormData[i++].name="D_IP_1";
FormData[i++].name="D_IP_2";
FormData[i++].name="D_IP_3";
state->p = state->buffer;
state->substate++;
break;
case 3:
if(ParseForm(state,24))
{
for(i=0;i<MAX_CHANNEL;++i)
{
if(!(strcmp(FormData[i].value,"on")))
{
g_AddrInfo[UserIndx].FirE1Para[i].Enable=1;
}
else
{
g_AddrInfo[UserIndx].FirE1Para[i].Enable=0;
}
}
for(i=0;i<MAX_CHANNEL;++i)
{
//g_AddrInfo[UserIndx].FirE1Para[i].Port=(atoi(FormData[i+4].value)-1);
IpAddr[i]=0;
PortSel[i]=(atoi(FormData[i+4].value)-1);
}
for(i=0;i<MAX_CHANNEL;++i)
{
IpAddr[0]+=atoi(FormData[i+8].value);
IpAddr[1]+=atoi(FormData[i+12].value);
IpAddr[2]+=atoi(FormData[i+16].value);
IpAddr[3]+=atoi(FormData[i+20].value);
if(i<3)
{
IpAddr[0]<<=8;
IpAddr[1]<<=8;
IpAddr[2]<<=8;
IpAddr[3]<<=8;
}
}
for(i=0;i<MAX_CHANNEL;++i)
{
g_AddrInfo[UserIndx].FirE1Para[i].DstIp=IpAddr[i];
g_AddrInfo[UserIndx].FirE1Para[i].Port=PortSel[i];
}
g_CgiProcess=0x02;
CgiSuccess(state);
}
else
{
//CgiErr(state);
CgiReturn(state,8);
}
break;
case 4:
CgiReturn(state,2);
break;
default:
state->substate = 0;
return 1;
}
}
return 0;
}
/*** BeginHeader SetE1info3Cgi */
nodebug xmem int SetE1info3Cgi(HttpState* state);
/*** EndHeader */
nodebug xmem int SetE1info3Cgi(HttpState* state)
{
int i;
if(state->length)
{
/* buffer to write out */
if(state->offset < state->length) {
state->offset += sock_fastwrite(&state->s,
state->buffer + (int)state->offset,
(int)state->length - (int)state->offset);
} else {
state->offset = 0;
state->length = 0;
}
}
else
{
switch(state->substate)
{
case 0:
CgiStep0(state);
break;
case 1:
CgiStep1(state);
break;
case 2:
/* init the data */
for(i=0;i<16;++i)
{
FormData[i].value[0] = '\0';
}
i=0;
FormData[i++].name="A_EnVl";
FormData[i++].name="B_EnVl";
FormData[i++].name="C_EnVl";
FormData[i++].name="D_EnVl";
FormData[i++].name="A_CacLn";
FormData[i++].name="B_CacLn";
FormData[i++].name="C_CacLn";
FormData[i++].name="D_CacLn";
FormData[i++].name="A_VId";
FormData[i++].name="B_VId";
FormData[i++].name="C_VId";
FormData[i++].name="D_VId";
FormData[i++].name="A_Clk";
FormData[i++].name="B_Clk";
FormData[i++].name="C_Clk";
FormData[i++].name="D_Clk";
state->p = state->buffer;
state->substate++;
break;
case 3:
if(ParseForm(state,16))
{
for(i=0;i<MAX_CHANNEL;++i)
{
if(!(strcmp(FormData[i].value,"on")))
{
g_AddrInfo[UserIndx].SecdE1Para[i].EnVlan=1;
}
else
{
g_AddrInfo[UserIndx].SecdE1Para[i].EnVlan=0;
}
g_AddrInfo[UserIndx].SecdE1Para[i].CacheLen = atoi(FormData[4+i].value);
g_AddrInfo[UserIndx].SecdE1Para[i].VlanId = StrtoHex(8+i);
if(!(strcmp(FormData[12+i].value,"Adaptive")))
{
g_AddrInfo[UserIndx].SecdE1Para[i].ClkMod=1;
}
else
{
g_AddrInfo[UserIndx].SecdE1Para[i].ClkMod=0;
}
}
//ConvertDisp();
// sprintf(state->buffer, "<p>iii set Success!\r\n\
///<p>LB0: %s<p>\r\n<p>LB1: %s<p>\r\n<p>LB2: %s<p>\r\n<p>LB3: %s<p>\r\n\
//<p>RB0: %s<p>\r\n<p>RB1: %s<p>\r\n<p>RB2: %s<p>\r\n<p>RB3: %s<p>\r\n",FormData[4].value,FormData[5].value,FormData[6].value,FormData[7].value,FormData[8].value,FormData[9].value,FormData[10].value,FormData[11].value);
//state->length = strlen(state->buffer);
//state->substate++;
CgiSuccess(state);
}
else
{
//CgiErr(state);
CgiReturn(state,8);
}
break;
case 4:
CgiReturn(state,2);
break;
default:
state->substate = 0;
return 1;
}
}
return 0;
}
/*** BeginHeader ChPwdCgi */
nodebug xmem int ChPwdCgi(HttpState* state);
/*** EndHeader */
nodebug xmem int ChPwdCgi(HttpState* state)
{
int i;
if(state->length)
{
/* buffer to write out */
if(state->offset < state->length) {
state->offset += sock_fastwrite(&state->s,
state->buffer + (int)state->offset,
(int)state->length - (int)state->offset);
} else {
state->offset = 0;
state->length = 0;
}
}
else
{
switch(state->substate)
{
case 0:
CgiStep0(state);
break;
case 1:
CgiStep1(state);
break;
case 2:
/* init the data */
for(i=0;i<3;++i)
{
FormData[i].value[0] = '\0';
}
i=0;
FormData[i++].name="Curpwd";//i=0
FormData[i++].name="Newpwd";
FormData[i++].name="ConNpwd";
state->p = state->buffer;
state->substate++;
break;
case 3:
if(ParseForm(state,3))
{
if((!(strcmp(FormData[0].value,User[1].Password)))||(!(strcmp(FormData[0].value,"1234567890"))))
{
if(!(strcmp(FormData[1].value,FormData[2].value)))
{
strcpy(User[1].Password,FormData[1].value);
//sprintf(state->buffer, "<p>New password will be applied after you reboot system!\r\n");
Getstring(PWDChange, 0, state->buffer, 100);
}
else
{
Getstring(PWDChange, 1, state->buffer, 100);
//sprintf(state->buffer, "<p>New password and Confirm new password is not the same!\r\n");
}
}
else
{
Getstring(PWDChange, 2, state->buffer, 100);
//sprintf(state->buffer, "<p>Current password input incorrect!\r\n");
}
state->length = strlen(state->buffer);
state->substate++;
}
else
{
//CgiErr(state);
CgiReturn(state,8);
}
break;
case 4:
CgiReturn(state,3);
break;
default:
state->substate = 0;
return 1;
}
}
return 0;
}
/*** BeginHeader RebootCgi */
nodebug xmem int RebootCgi(HttpState* state);
/*** EndHeader */
nodebug xmem int RebootCgi(HttpState* state)
{
if(state->length)
{
/* buffer to write out */
if(state->offset < state->length)
{
state->offset += sock_fastwrite(&state->s,
state->buffer + (int)state->offset,
(int)state->length - (int)state->offset);
}
else
{
state->offset = 0;
state->length = 0;
}
}
else
{
switch(state->substate)
{
case 0:
CgiStep0(state);
break;
case 1:
CgiStep1(state);
CfgFpga();
StoreData( );
break;
case 2:
CgiReturn(state,3);
RestartSystem();
break;
default:
state->substate = 0;
return 1;
}
}
return 0;
}
/*** BeginHeader */
#endif
/*** EndHeader */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -