on master help sign in
Possible fix for #114
commit0c3b855e48ae724883edb54fb0b2d21bd6022599 authorMichael Snoyman <michael@snoyman.com> dateWed 1 Jan 2014, 21:44 (13 years ago) parent64656e8
1 file changed+10−2
warp-tls/Network/Wai/Handler/WarpTLS.hs+10−2
warp-tls/Network/Wai/Handler/WarpTLS.hs+10−2
@@ -31,7 +31,7 @@ import qualified Data.ByteString.Lazy as L
3131import Data.Conduit.Binary (sourceFileRange)
3232import qualified Data.Conduit as C
3333import qualified Data.Conduit.List as CL
34−import Control.Exception (bracket, finally)
34+import Control.Exception (bracket, finally, handle)
3535import qualified Network.TLS.Extra as TLSExtra
3636import qualified Data.Certificate.X509 as X509
3737import qualified Data.ByteString as B
@@ -161,7 +161,15 @@ runTLSSocket TLSSettings {..} set sock app = do
161161 , connClose =
162162 TLS.bye ctx `finally`
163163 TLS.contextClose ctx
164− , connRecv = TLS.recvData ctx
164+ , connRecv =
165+ let onEOF TLS.Error_EOF = return B.empty
166+ onEOF e = throwIO e
167+ go = handle onEOF $ do
168+ x <- TLS.recvData ctx
169+ if B.null x
170+ then go
171+ else return x
172+ in go
165173 , connSendFileOverride = NotOverride
166174 , connBuffer = blazeBuf
167175 }