摘要: struct llist_element { struct llist_element * next; void * data;}; typedef struct llist_element llist_elm; llist_elm是一个链表型结点。 typedef struct { llist_elm * head; llist_elm * tail;} llist; llist结构体中... 阅读全文
posted @ 2012-09-27 17:22 helloweworld 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 认证即隧道的建立用TCP套接字,之后根据配置文件选择合适协议传输。 clinet隧道建立套接字和传输套接字替换 1、在clinet函数中 s = socket(AF_INET,SOCK_STREAM,0); setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)); bind(s,(struct sockaddr *)&my_addr,s... 阅读全文
posted @ 2012-09-27 15:34 helloweworld 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 只分析udp, 单独运行clinet,处于connect状态,并没有运行到tunnel这个步骤,单独运行client时没出现虚拟网卡; 单独运行server,处于listen状态,也没运行到tunnel这个步骤,所以单独运行server也不会出现虚拟新网卡。 当server端开启,处于监听状态,这时client请求连接,认证成功后client和server才会进入tunnel执行打开虚拟网卡, ... 阅读全文
posted @ 2012-09-27 12:11 helloweworld 阅读(847) 评论(0) 推荐(0) 编辑
摘要: 一、syslog(),openlog(),closelog()一套用于写系统日志的函数。这三个函数openlog, syslog, closelog是一套系统日志写入接口,另外那个vsyslog和syslog功能一样,只是参数格式不同。通常,syslog守护进程读取三种格式的记录消息。此守护进程在启动时读一个配置文件。一般来说,其文件名为/etc/syslog.conf,该文件决定了不同种类的消息应送向何处。例如,紧急消息可被送向系统管理员(若已登录),并在控制台上显示,而警告消息则可记录到一个文件中。该机制提供了syslog函数,其调用格式如下#include <syslog.h> 阅读全文
posted @ 2012-09-27 10:31 helloweworld 阅读(2427) 评论(0) 推荐(0) 编辑
摘要: openlog("vtund", LOG_PID | LOG_NDELAY | LOG_PERROR, LOG_DAEMON); 打开系统记录 在lib.c中定义, void vtun_syslog (int priority, char *format, ...) { static volatile sig_atomic_t in_syslog= 0; char buf[255]; va... 阅读全文
posted @ 2012-09-27 09:04 helloweworld 阅读(304) 评论(0) 推荐(0) 编辑