tvvocold / mentohust

Automatically exported from code.google.com/p/mentohust
1 stars 0 forks source link

断网掉线后不停重试无休止的问题 #120

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
设置重播时间间隔也没用,仍然不停的重新拨号,主要是验��
�服务器发出了从新验证的请求导致的重播间隔失效,如果记�
��日志的话,路由器内存会被塞满。

流程是这样的:
1.主机被踢下线
2.拨号
3.拨号失败
4.失败后延迟等待
5.延迟等待还没结束,认证服务器发过来一个验证请求,mentoh
ust立马改变状态,回应此数据包,开始验证。之前的等待失��
�了
6.验证失败
7.失败后延迟等待
8.延迟等待还没结束,认证服务器发过来一个验证请求....
.....

Original issue reported on code.google.com by q741...@gmail.com on 27 Aug 2011 at 5:50

GoogleCodeExporter commented 9 years ago
解决办法我认为应该是在验证失败后的延迟时间段内停止抓��
�或者忽略所有数据包

Original comment by q741...@gmail.com on 27 Aug 2011 at 5:51

GoogleCodeExporter commented 9 years ago
                else if (buf[0x0F]==0x00 && buf[0x12]==0x04) {  /* 认证失败或被踢下线 */
                        if (state==ID_WAITECHO || state==ID_ECHO) {
                                printf(_(">> 认证掉线,开始重连!\n"));
                                switchState(ID_START);
                        }
                        else if (buf[0x1b]!=0 || startMode%3==2) {
                                printf(_(">> 认证失败!\n"));
                                if (startMode%3 != 2)
                                        showRuijieMsg(buf, h->caplen);
                                if (maxFail && ++failCount>=maxFail) {
                                        printf(_(">> 连续认证失败%u次,退出认证。\n"), maxFail);
                                        exit(EXIT_SUCCESS);
                                }
                                restart();
                        }
                        else
                                switchState(ID_START);
                }
目前的设计是失败包里面存在提示消息(buf[0x1b]!=0)才++failCo
unt,可以试试把这个条件删除

Original comment by www.eh...@gmail.com on 28 Aug 2011 at 9:52