OpenWrt sscanf问题之于MT7620N与AR9341

在MT7620N平台做好了wifidog的相关调试工作,除了eth驱动。wireless性能问题,其余的都能够基本正常。

依据实际须要要对已完毕的工作在AR9341平台上实现。

事实上也简单。基本功能类似,主要就是针对交换机的配置。


在測试限速功能的时候,发现了大问题。

由于之前在MT7620N的时候发现上传限速不起作用,后来发现是接口的问题,要限制获取wan ip的接口。

这里是全然不正常。

tc disc show 显示了些信息可是。不懂,须要继续学习啊。

tc -s class show dev br-lan 运行这个是有信息的
tc -s filter show dev br-lan 可是到了这个就没有了。

问了高人。说是filter才是限制某个IP的速度的!

后来就在设置这些的地方加调试信息。果然发现程序在sscanf这里返回了。

unsigned short flowid;

sscanf(ip, "%*d.%*d.%*d.%u", flowid);

 这里的flowid是0. 明显不符合正常IP. 

使用SDK写了个測试程序,发现问题这里假设定义为int flowid就OK. 

最后我总结这个问题为编译器版本号问题,或者是(系统架构问题?)。


原文地址:https://www.cnblogs.com/lcchuguo/p/5245659.html