已有恢复出厂默认设置选项,再增加重启路由选项,挺容易的
1.在saveconf.htm里发现恢复出厂设置的页面代码
<form action=/formSaveConfig.htm method=POST name="saveConfigReset">
<tr>
<td width="32%"><font size=2><b><script>dw(saveconf_reset_to_default)</script></b></td>
<td width="30%"><font size=2><input type="submit" name="reset" οnclick="return resetClick()"></td>
<script>document.saveConfigReset.reset.value=saveconf_reset;</script>
</tr>
</form>
是采用POST提交数据到web 服务器,而action=/formSaveConfig.htm这个是关键,因为在上面代码没有找到提交的具体数据,也找不到formSaveConfig.htm页面, 所以搜索ormSaveConfig,即找到fmmgmt.c文件
2.在fmmget.c文件里有如下几行代码,注释如下
strRequest=get_cstream_var(postData,len,"reset",""); //应该是判断POST传递过来的数据,submit的name值
if (strRequest[0]) {//reset have value
extern int run_clicmd(char *command_buf);//extern是全局变量,run_clicmd函数在其他文件里,猜测和RunSystemCmd函数作用类似,串口命令
run_clicmd("flash reset");//恢复出厂设置,即是flash 复位
sprintf(tmpBuf, "%s","更改设置成功!<br><br>路由器正在重启.<br>在这段时间内,请不要断开电源或重启路由器.<br>");
reboot_wait_redirect(tmpBuf);//重启路由器
return;
}
3.上面就是恢复出厂设置的过程,那么增加重启路由器照葫芦画瓢吧
在在saveconf.htm里增加:
<form action=/formSaveConfig.htm method=POST name="saveConfigReboot">
<tr>
<td width="32%"><font size=2><b><script>dw(saveconf_reset_to_reboot)</script></b></td>
<td width="30%"><font size=2><input type="submit" name="reboot" οnclick="return rebootClick()"></td>
<script>document.saveConfigReboot.reboot.value=saveconf_reset;</script>
</tr>
</form>
当然里面的saveconf_reset_to_reboot rebootClick()也依次增加即可
在fmmget.c里增加:
strRequest=get_cstream_var(postData,len,"reboot","");
if (strRequest[0]) {//reset have value
sprintf(tmpBuf, "%s","更改设置成功!<br><br>路由器正在重启.<br>在这段时间内,请不要断开电源或重启路由器.<br>");
reboot_wait_redirect(tmpBuf);
return;
}
编译烧录验证,功能OK。