wifidog 整体分析

想要实现让别人连上自己热点,就弹出定制化的页面,可以用wifidog来实现

这段时间把wifidog分析一篇,也终于集成到盒子上面去了,写了个比较粗糙的分析文档

框架

wifidog框架图

WIFIDOG整个框架分5部分:

1.       Libhttpd 开源库,用来当做小型的webServer以及与authserver进行http通信

2.       PING 心跳检测模块

3.       Wdctl 调试模块

4.       Timeout_checkt 超时检测与流量统计模块

5.       Webserver 用来与链接进来的AP通信

Wifidog在启动时会启动上面4个线程进行守护

网关协议(ping)

Wifidog将ping协议作为心跳机制向认证服务器发送当前状态信息,过程如下:

Ping线程的创建:

 

/* Start heartbeat thread */

       result =pthread_create(&tid_ping, NULL, (void *)thread_ping, NULL);

       if (result != 0) {

           debug(LOG_ERR, "FATAL: Failed tocreate a new thread (ping) - exiting");

              termination_handler(0);

       }

       pthread_detach(tid_ping);

 

上面的过程创建子线程后,将该子线程的状态设置为detached,则该线程运行结束后会自动释放所有资源。并且是非阻塞的。

Thread_ping实现:

void

thread_ping(void *arg)

{

       pthread_cond_t             cond = PTHREAD_COND_INITIALIZER;

       pthread_mutex_t           cond_mutex =PTHREAD_MUTEX_INITIALIZER;

       struct      timespec  timeout;

      

       while (1) {

              /* Make sure wecheck the servers at the very begining */

              debug(LOG_DEBUG,"Running ping()");

              ping();

             

              /* Sleep for config.checkinterval seconds... */

              timeout.tv_sec= time(NULL) + config_get_config()->checkinterval;

              timeout.tv_nsec= 0;

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
1、因手头有一个7620N芯片的大功率无线路由器(万兴达WR5508商用路由),由于要使用无线广告营销功能,但在网上搜寻了很久,都没找到合适的固件。 2、可能有人会说支持7620方案的广告营销固件多的是,但这款路由器是大功率的,500mW,刷了海蜘蛛、RippleOS以及其他有wifidog功能的固件,无线超过3-5米就没有信号了。只有刷了openwrt和PandoraBox固件,无线信号超级强大,达到26db。 3、因此,只能使用openwrt和PandoraBox固件,查询了多种方法,都是需要对固件进行编译的,由于小弟不懂编程,只有通过网友们的安装配置经验进行参考,在刷好的固件基础上安装wifidog和Luci界面的配置,如果哪位高手能将Luci-wifidog源码打包成ipk安装包,小弟万分感谢!此方法仅供想玩wifidog的朋友参考,编程高手勿拍砖就行了! 方法: 1、安装wifidog(前提是路由器必须接入互联网) [root@PandoraBox:/root]#opkg update [root@PandoraBox:/root]#opkg install wifidog [root@PandoraBox:/root]#/etc/init.d/wifidog enable [root@PandoraBox:/root]#/etc/init.d/wifidog start 备注:安装wifidog可能需要依赖包 libc iptables-mod-extra iptables-mod-ipopt iptables-mod-nat-extra libpthread 2、安装配置luci-wifidog(luci-wifidog源码是在网上找的,别人已经设置好了的,如果不喜欢,自行到官网下) (1)使用winscp把源码controller文件夹下的内容复制到/usr/lib/lua/luci里目录的controller下,model放到model下 (2)源码root文件夹下的内容复制到root/etc下各自相应的目录下 (3)源码ipkg文件夹下的内容复制到/usr/lib/opkg目录下 (4)源码makefile文件复制到/etc下并给xxx权限 (5)最后重启路由器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值