前言
今天又客户反映无线参数SSID编程了HT_AP0, 同事通过后台给他修改后反映给我,我想不对啊,难道是无线驱动crash了?那应该不能玩才对啊。。。
追查线索
我们的路由器会定期汇报数据SSID,谁知道,服务器并没有保存到数据库中。这点我非常非常的生气,之前的规格,说得清清楚楚,为什么做事不到位!好了,既然发现了这个问题就修改下本地的服务器,这一改不要紧,把一台路由器的SSID改不见了。
刨根问底
路由器的SSID不见了,这个可是大问题,我们找到了那台路由器,发现其SSID编程了HT_AP0,为什么是这个?难道是驱动里问题,去驱动源码搜索这个变量,没有发现,然后我搜索HT_AP。
在ap.c中
VOID APStartUp( IN PRTMP_ADAPTER pAd) { ..... if ((pMbss->SsidLen <= 0) || (pMbss->SsidLen > MAX_LEN_OF_SSID)) { NdisMoveMemory(pMbss->Ssid, "HT_AP", 5); pMbss->Ssid[5] = '0'+apidx; pMbss->SsidLen = 6; } ..... }
原来是SSID的值为空,驱动会自动赋值这个变量,就铸就了这个问题。
嗯,抓包看到了问题所在,是服务器的乱码中带有我需要的字样,但是并没有值,而我的代码也没有判断值是否为空就直接通过uci修改了SSID,导致了驱动自动设置默认的SSID.
这是问题的真正原因。
总结
出现问题后,保留现场,我之前犯了一个错误就是wireless灯不亮,我恢复出厂设置后就好了。没有找到问题的真正原因。还有要相信系统,不要以为是什么大不了的问题,要动手去查找问题的真正原因, 把问题夯实了,不然你还是会出现问题的。
本站的文章和资源来自互联网或者站长的原创,按照 CC BY -NC -SA 3.0 CN协议发布和共享,转载或引用本站文章应遵循相同协议。如果有侵犯版权的资 源请尽快联系站长,我们会在24h内删除有争议的资源。欢迎大家多多交流,期待共同学习进步。