adaway的jni设计摸索

来源:互联网 发布:上海茜昶网络培训的 编辑:程序博客网 时间:2024/06/04 21:16

adaway的jni单从文件夹名来说,分为blankwebserver,dnsmasq,libpcap,tcpdump四个部分。

应该和协议相关的很紧密。这几天一点一点看看这些都是什么吧。

一.mongoose是blankwebserver的核心,貌似此模块是在后台启动一个空server,通过callback来回馈其想要的信息。具体还待进一步验证。

blank_webserver.c描述了adway最想这个模块做的事情。

其流程为:

首先检查是否已经存在一个后台进程,如果有,则进行下一步;没有则获取新的fork,建立新进程,即后台进程;

然后通过mongoose特有的mg_start方法启动对127.0.0.1:80,127.0.0.1:443端口的监听;其返回结构体mg_context *ctx

未收到退出标志位时一直监听。

直至标志位改变,mg_stop(ctx)来结束blank webserver的使命。

 二.开始看到dnsmasq,libpcap,tcpdump觉得很深奥,不知道什么时候才能弄清楚。现在才知道,其是,就是单纯地源码编译出相应的库,然后androd的java程序中调用。从Application.mk可以看出其用途。

libpcap是unix/linux平台下的网络数据包捕获函数包,大多数网络监控软件都以它为基础。这里引入它主要是为了tcpdump的编译。

 

 

 

 

原创粉丝点击