@阿福
压缩这方面我还没研究过,不过这段代码测试的对象是HTTP协议的返回内容。当HTTP响应头中的Content-Encoding值为gzip时,可以用这个类正确解压出html内容。
A(我理解是客户端)发送的数据被xproxy_connection收到后,会调用handle_login_clt_sock_read,它将客户端发来的数据到服务器,这时如果A和代理间的连接掉了不影响数据发到服务器。当之前从客户端收到的数据从代理发到服务器完毕后,handle_ana_srv_sock_write被调用,代理又开始从客户端接收数据,这才发现客户端关闭连接了,异步调用的处理函数handle_login_clt_sock_read会得到一个错误,然后就撤销与服务器连接的socket的所有请求,而本身和客户端连接的socket有没有新的调用,因此整个连接会被释放,应该还算比较合理吧。
re: 静态变量的初始化问题 David Fang 2010-03-06 15:22
确实,在多线程的时候脑袋是需要多根弦
@zuhd
呵呵,我也是看了书才弄出来的。
嘿嘿,这个是安全项目的内幕,为了保护背后的网络。

posts - 9, comments - 13, trackbacks - 0, articles - 0

Copyright © David Fang