2012-07-03 27 views
4

當我使用git特定的網絡環境下,它會發出SSL數據包,而不是TLS之一,並說:「gnutls_hanshake() failed(): A TLS packet with unexpected length was receive」這是唯一的區別我可以從Wireshark的日誌,它們之間發現:我可以強制git只使用TLS嗎?

的SUCCESS結果

enter image description here

失敗的結果

enter image description here

我使用的是Ubuntu 12.04,x86-64版本。這個問題也出現在MacBook和11.10的問題上。但是當我嘗試使用Win7和Git Gui時,它沒有任何錯誤。

如果我切換到其他網絡環境,如家中的pppoe或某些咖啡館的WiFi,則問題隨我的Ubuntu 12.04(相同設置,相同操作系統)消失。

請幫我知道我該怎麼做。至少如果我必須與MIS討論這個問題,我可以弄清楚爲什麼不應該發生這種情況。

謝謝!

PS.1。我嘗試了ask Ubuntu中列出的解決方案,但它不起作用。

PS.2。 Filezilla seemed had this problem。但我找不到他們如何解決問題(並適用於git)。

回答

0

Git使用libcurl進行HTTP連接。

我不知道庫(它可能有)的任何運行時配置的,但你也許可以修改的Git本身強制使用TLS-只連接。結帳http.c.用於此目的的libcurl函數應該是curl_easy_setopt,參數CURLOPT_SSLVERSION和CURL_SSLVERSION_TLSv1。

+0

這將是在提到的http.c(現在的FWIW)中的「static CURL * get_curl_handle(void)」函數, – fork0

相關問題