2015-10-02 40 views
1

我有一個用Python的扭曲框架編寫的HTTP代理服務器,用於刪除大多數HTTP代理的一些限制,特別是有錯誤的循環DNS記錄,其中一個或多個條目脫機,不可更改或沒有開放端口爲提供的協議。用扭曲的方式覆蓋TCP連接器

爲此,我想實現一個緩存,爲我的扭曲堆棧提供一個IP,這樣可以減少超時錯誤(並因此需要重試)以及由這些記錄產生的其他問題。

現在我想替換默認實現中使用的默認twisted.internet.tcp.Connector。我發現,它在twisted.internet.protocol.ClientFactory.clientConnectionFailed()中作爲參數給出,但沒有找到,它在哪裏設置,所以我可以替換它。

我該如何去替換默認的Connector類和我自己的子類,並且有沒有關於這個我錯過的任何文檔?

編輯:看來,Glyph's answer點在正確的方向。現在的問題是,如何實施/注入通過我的調整解決的新端點。

回答

0

您應該永遠不需要更換Connector。這聽起來像你想使用endpoint,並寫一個比DNS更具體的HostnameEndpoint。但是如果你的問題揭示了更多關於特別是你想用錯誤的循環DNS記錄的更多細節,那將會更有幫助。

+0

我已經添加了一些我想要做的細節。不知道這是否可行,但... – Izzy

+0

「注入」新端點的方法僅僅是實例化它,然後將其傳遞給需要端點的代碼;沒有花哨的步法要求。 – Glyph