2013-02-13 15 views
6

मैंने जिरा के साथ इंटरफेस करने के लिए एक सीआरयूडी आवेदन लिखा था। मैंने अपने हैकेल enviornment को अपग्रेड करना समाप्त कर दिया, क्योंकि कैबल-देव सबकुछ हल नहीं करता है। नतीजतन, मुझे कुछ तोड़ मिली है, इस त्रुटि के साथ जब भी मैं किसी भी कोड का उपयोग करने की कोशिश करता हूं जो जेरा के साथ इंटरफेस करता है।ब्रेकिंग चेंज कहां है?

Spike: HandshakeFailed (Error_Misc "user error (unexpected type received. expecting 
handshake and got: Alert [(AlertLevel_Warning,UnrecognizedName)])") 

थोड़ा गुगल करने के बाद, मुझे लगता है कि इसे या तो टीएलएस या http-conduit के साथ करना है जो टीएलएस का उपयोग करता है।

मैं वर्तमान में tls-1.1.2 और http-conduit-1.8.7.1 उपयोग कर रहा हूँ कि पहले मैं tls-0.9.11 और http-conduit >= 1.5 && < 1.7 (यकीन है कि जो वास्तव में, पुराने स्थापित चला गया है नहीं उपयोग कर रहा था।

यह है कि मैं कहाँ का मानना ​​है कि ब्रेक हो रहा है

manSettings :: ManagerSettings 
manSettings = def { managerCheckCerts = \ _ _ _-> return CertificateUsageAccept } 

यह

manSettings :: ManagerSettings 
manSettings = def { managerCheckCerts = \ _ _ -> return CertificateUsageAccept } 
जैसा दिखता है

यहाँ कोड का उपयोग करता है यह

initialRequest :: forall (m :: * -> *). URI -> IO (Request m,Manager) 
initialRequest uri = do 
    initReq <- parseUrl uri -- let the server tell you what the request header 
          -- should look like 
    manager <- newManager manSettings -- a Manager manages http connections 
            -- we mod the settings to handle 
            -- the SSL cert. See manSettings below. 
    return (modReq initReq,manager) 
     where modReq initReq = applyBasicAuth username password initReq 

मुझे पता है कि अगर मैं कुछ बाहर छोड़ दिया हूँ चलो है। मुझे इस बिंदु पर यकीन नहीं है कि अब और अब के बीच क्या टूट गया।

उत्तर

4

यह त्रुटि स्रोत के बारे में एक अच्छा अनुमान है, लेकिन बहुत ही असंभव है: प्रबंधक चेककर्ट्स वैधता के लिए प्रमाण पत्र का निरीक्षण करने के लिए बस प्रमाणपत्र पैकेज का उपयोग करता है। ऐसा लगता है कि आप जो त्रुटि संदेश देख रहे हैं वह स्वयं टीएलएस से आ रहा है और डेटा परिवहन में विफलता को इंगित करता है। संभवतः टीएलएस के साथ एक बग रिपोर्ट दर्ज करना एक अच्छा विचार है, अधिमानतः पहले एक एकल HTTPS कॉल को समस्या को कम करके (या इससे भी बेहतर, अकेले टीएलएस का उपयोग करके और उसी विफलता का प्रदर्शन)।

+0

मैं आगे बढ़ूंगा और देख सकता हूं कि मैं इसे कम कर सकता हूं या नहीं। –

संबंधित मुद्दे