@@ -45,12 +45,12 @@ import qualified Dhall.Import
45
45
import qualified Dhall.JSON
46
46
import qualified Dhall.Parser
47
47
import qualified Dhall.TypeCheck
48
- import qualified Network.HTTP.Client.OpenSSL as HTTP
48
+ import Network.Connection (TLSSettings (.. ))
49
+ import Network.HTTP.Client.TLS (mkManagerSettings )
49
50
import Network.HTTP.Conduit
50
51
import Network.HTTP.Simple hiding (Header )
51
52
import qualified Network.HTTP.Simple as HTTP
52
53
import qualified Network.HTTP.Types as NT
53
- import OpenSSL.Session (VerificationMode (.. ))
54
54
import System.Directory
55
55
import System.Environment
56
56
import Testing.CurlRunnings.Internal
@@ -95,6 +95,17 @@ resultToEither :: Result a -> Either String a
95
95
resultToEither (Error s) = Left s
96
96
resultToEither (Success a) = Right a
97
97
98
+ noVerifyTlsManagerSettings :: ManagerSettings
99
+ noVerifyTlsManagerSettings = mkManagerSettings noVerifyTlsSettings Nothing
100
+
101
+ noVerifyTlsSettings :: TLSSettings
102
+ noVerifyTlsSettings =
103
+ TLSSettingsSimple
104
+ { settingDisableCertificateValidation = True
105
+ , settingDisableSession = True
106
+ , settingUseServerName = False
107
+ }
108
+
98
109
-- | Fetch existing query parameters from the request and append those specfied in the queryParameters field.
99
110
appendQueryParameters :: [KeyValuePair ] -> Request -> Request
100
111
appendQueryParameters newParams r = setQueryString (existing ++ newQuery) r where
@@ -133,21 +144,13 @@ runCase state@(CurlRunningsState _ _ _ tlsCheckType) curlCase = do
133
144
return $ CaseFail curlCase Nothing Nothing [QueryFailure curlCase l] 0
134
145
Right interpolatedData -> do
135
146
initReq <- parseRequest $ T. unpack interpolatedUrl
136
-
137
- manager <- newManager $ HTTP. opensslManagerSettings $ case tlsCheckType of
138
- DoTLSCheck -> HTTP. defaultMakeContext HTTP. defaultOpenSSLSettings
139
- -- Don't do any loading from custom locations but
140
- -- instead use OpenSSL's default settings.
141
- -- See https://github.com/snoyberg/http-client/issues/462
142
- { HTTP. osslSettingsLoadCerts = \ _ -> pure () }
143
- SkipTLSCheck -> HTTP. defaultMakeContext HTTP. defaultOpenSSLSettings
144
- { HTTP. osslSettingsVerifyMode = VerifyNone }
147
+ manager <- newManager noVerifyTlsManagerSettings
145
148
146
149
let ! request =
147
150
setPayload interpolatedData .
148
151
setRequestHeaders (toHTTPHeaders interpolatedHeaders) .
149
152
appendQueryParameters interpolatedQueryParams .
150
- setRequestManager manager $
153
+ ( if tlsCheckType == DoTLSCheck then id else ( setRequestManager manager)) $
151
154
initReq { method = B8S. pack . show $ requestMethod curlCase
152
155
, redirectCount = fromMaybe 10 (allowedRedirects curlCase) }
153
156
logger state DEBUG (pShow request)
0 commit comments