- 论坛徽章:
- 0
|
conf.h
conf.c
根据文件名称能知道这两个文件是用于配置操作的
conf.h中有一个大大的结构体conf_t就是用于存储axel的全局配置的。
看一下conf.c中的主要函数
- int conf_init( conf_t *conf )
复制代码 从本地机器的环境变量中加载配置信息
- int conf_loadfile( conf_t *conf, char *file )
复制代码 从环境变量指定的配置文件中加载配置信息,如连接数,代理,端口等信息。
- int parse_interfaces( conf_t *conf, char *s )
复制代码 从环境变量中指定的文件中读取一行后,如果是网卡信息,则解析网卡列表,并且去系统中获取网卡的地址列表。
====================
conn.h
conn.c
顾名思义,这两个文件主要实现用于网络连接的相关操作
conn_t 定义了一个连接的所有信息。
- int conn_set( conn_t *conn, char *set_url )
复制代码 用一个url来构造conn_t数据结构,操作包括:
根据http://xxx或者ftp://xx来识别是ftp还是http协议。
拷贝URL地址
接续要下载文件的basename和dir,ftp或者http的主机地址,用户名,密码和服务端口等。
- char *conn_url( conn_t *conn );
复制代码 根据conn的协议类型,构造一个标准的http或者Ftp的URL地址
- void conn_disconnect( conn_t *conn );
复制代码 断开连接
- int conn_init( conn_t *conn );
复制代码 打开到http服务器的连接或者打开到FTP服务器的连接并且切换到ftp的下载目录
- int conn_setup( conn_t *conn );
复制代码 发出文件请求,并读取返回控制信息,而不读取实际数据
- int conn_exec( conn_t *conn )
复制代码 执行ftp或者http请求,并且读取返回的控制信息,而不读取文件数据
如果是ftp的话,发送RETR命令并且读取返回码,如果是http的话发送http request消息,只读取返回的http头数据.
- int conn_info( conn_t *conn )
复制代码 通过连接获取要下载文件的大小和其它信息,FTP的话,要测试断点续传功能。http的话,要获取头信息. |
|