amvpn源码阅读笔记.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
cmdline_process_mode(argc, argv); 这个函数用来判断程序启动参数中是否有-d选项,如果有,就把变量config_daemon_mode的值设置为1,表示程序运行于后台模式。 log_init(argv[0]); 初始化日志记录程序打开一个到系统日志记录程序的连接atexit(log_exit); 注册log_exit函数,log_exit函数将在程序终止之前被调用 cmdline_process(argc, argv); 命令行参数解析 config_file_use( config_get_value( CONFIG_NAME_CONFIG_FILE ) ); 读取配置文件amvpn.conf,将配置文件中的键值对记录在数组config_options中,config_options的元素是一个数据结构: struct config_option_t { char *config_name; char option_char; char config_value[MAX_CONFIG_VALUE_SIZE]; char *default_value; char *help; }; 位于Config.c 32行 log_set_severity( config_get_log_severity_index( config_get_value(CONFIG_NAME_LOG_LEVEL) ) ); 此函数用于设置日志的级别 server_mode = config_is_server_mode(); 判断是否是服务器模式,返回config_server_mode的值 config_server_mode初始值是1,服务器模式保持不变,如果是客户端模式则在函数config_set_value中置0: if(strcmp(config_name, CONFIG_NAME_SERVER_IP) == 0) config_server_mode = 0; vpn_init(); 初始化SSL vpn_tun_open( vpn_relay, tun_if); 打开隧道设备,将隧道描述符储存在typedef struct vpn_relay_t数据结构中,relay-tun_fd = fd; vpn_ifconfig(tun_if, tun_ip, IFF_UP) 为隧道设备设置IP地址 if(strcmp(route_smb, yes) == 0) { if(netbios_relay_init(vpn_relay, config_get_value(CONFIG_NAME_LOCAL_NET), config_get_value(CONFIG_NAME_LOCAL_MASK), config_get_value(CONFIG_NAME_REMOTE_NET), config_get_value(CONFIG_NAME_REMOTE_MASK) ) 0) { log(LOG_ERROR, %s: Cannot initialize NBT relay. Aborting., __FUNCTION__); exit(1); } } 网络共享相关,不用管 keepalive_msg_init() 用于连接保活???反正是用于初始化一个IP数据包,这个IP数据包只要头部,没有内容。 block_signals() 加入信号到进程屏蔽 perm_secure_file_mtime() 证书检查 notify_init(); 通知邮件的初始化,不用管 vpn_socket_open(vpn_relay, server_mode, remote_ip, port, run_as_user, run_as_group,1) 打开vpn套接口 if(config_is_daemon_mode()) make_daemon(); 进入后台运行 main_task(); 主函数 tmp_relay.conn_fd = -1; while (tmp_relay.conn_fd 0) { if( perm_check_keyce

文档评论(0)

9885fp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档