@阿福
壓縮這方面我還沒(méi)研究過(guò),不過(guò)這段代碼測(cè)試的對(duì)象是HTTP協(xié)議的返回內(nèi)容。當(dāng)HTTP響應(yīng)頭中的Content-Encoding值為gzip時(shí),可以用這個(gè)類正確解壓出html內(nèi)容。
A(我理解是客戶端)發(fā)送的數(shù)據(jù)被xproxy_connection收到后,會(huì)調(diào)用handle_login_clt_sock_read,它將客戶端發(fā)來(lái)的數(shù)據(jù)到服務(wù)器,這時(shí)如果A和代理間的連接掉了不影響數(shù)據(jù)發(fā)到服務(wù)器。當(dāng)之前從客戶端收到的數(shù)據(jù)從代理發(fā)到服務(wù)器完畢后,handle_ana_srv_sock_write被調(diào)用,代理又開(kāi)始從客戶端接收數(shù)據(jù),這才發(fā)現(xiàn)客戶端關(guān)閉連接了,異步調(diào)用的處理函數(shù)handle_login_clt_sock_read會(huì)得到一個(gè)錯(cuò)誤,然后就撤銷與服務(wù)器連接的socket的所有請(qǐng)求,而本身和客戶端連接的socket有沒(méi)有新的調(diào)用,因此整個(gè)連接會(huì)被釋放,應(yīng)該還算比較合理吧。
re: 靜態(tài)變量的初始化問(wèn)題 David Fang 2010-03-06 15:22
確實(shí),在多線程的時(shí)候腦袋是需要多根弦
@zuhd
呵呵,我也是看了書才弄出來(lái)的。
嘿嘿,這個(gè)是安全項(xiàng)目的內(nèi)幕,為了保護(hù)背后的網(wǎng)絡(luò)。