Tor源码文件分析 -- Circuits全局变量

本文探讨了Tor系统中管理链路circuit的三个关键文件——circuitlist.c、circuitbuild.c和circuituse.c中的全局变量。内容涉及链路组织、使用和建立过程中的变量作用,特别指出它们如何影响链路状态管理和超时控制。同时,提到了错误计数和链路错误处理机制。
摘要由CSDN通过智能技术生成

  Tor系统源码中用于控制链路circuit的文件主要有三个,分别是:circuitlist.c,circuituse.c,circuitbuild.c。这三个文件分别主要针对的处理功能与他们的名字相类似,即分别处理链路的组织,使用和建立。在本篇中,我们只介绍主要用于链路部分的全局变量,即存在于这三个文件之中的全局变量的使用。此处不再罗列链路函数,因为链路部分的函数着实不少,尤其是链路建立部分。或许在本文之后会花专门的篇幅描述链路建立以及对链路建立的函数加以说明,不过这不是本篇的主要内容。


0. 全局变量 circuitlist.c

  circuitlist.c文件主要用于处理链路列表的组织,整理,计数等相关的操作。文件中前两个全局变量如下:

/** A global list of all circuits at this hop. */
circuit_t *global_circuitlist=NULL;

/** A list of all the circuits in CIRCUIT_STATE_OR_WAIT. */
static smartlist_t *circuits_pending_or_conns=NULL;
  第一个全局变量用于维护系统的链路列表。系统链路列表是每个Tor主机上维护的全局链路列表,也就是说所有的链路都挂接在这个链路列表之中。第二个全局变量用于维护系统等待链路的列表。系统等待链路的列表就是系统中正在等待OR连接完成的链路形成的列表。

  这两个列表的操作很简单,就是链表的插入和删除。其代码也可以很容易的用sourceinsight进行查找和分析,此处略去。在仔细研究代码之前我们就可以推测,全局链路列表必定是在链路被建立之时被使用到,一旦链路结构体被创

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值