on master help sign in
warp-tls: Handle recv failure on mkConn
abff247Utku Demir
warp-tls/Network/Wai/Handler/WarpTLS.hs+7−6
@@ -309,12 +309,13 @@ getter tlsset@TLSSettings{..} sock params = do
309 return (mkConn tlsset s params, sa)
309 return (mkConn tlsset s params, sa)
310
310
311mkConn :: TLS.TLSParams params => TLSSettings -> Socket -> params -> IO (Connection, Transport)
311mkConn :: TLS.TLSParams params => TLSSettings -> Socket -> params -> IO (Connection, Transport)
312−mkConn tlsset s params = do
312+mkConn tlsset s params =
313− firstBS <- safeRecv s 4096
313+ ( do firstBS <- safeRecv s 4096
314− (if not (S.null firstBS) && S.head firstBS == 0x16 then
314+ if not (S.null firstBS) && S.head firstBS == 0x16 then
315− httpOverTls tlsset s firstBS params
315+ httpOverTls tlsset s firstBS params
316− else
316+ else
317− plainHTTP tlsset s firstBS) `onException` sClose s
317+ plainHTTP tlsset s firstBS
318+ ) `onException` sClose s
318
319
319----------------------------------------------------------------
320----------------------------------------------------------------
320
321