@@ -15,14 +15,12 @@ import Data.Conduit
15import Data.Conduit.Internal (ResumableSource (..))
15import Data.Conduit.Internal (ResumableSource (..))
16import qualified Data.Conduit.List as CL
16import qualified Data.Conduit.List as CL
17import Data.Conduit.Network (bindPort)
17import Data.Conduit.Network (bindPort)
18−import Data.Monoid (mempty)
19import Network (sClose, Socket)
18import Network (sClose, Socket)
20import qualified Network.HTTP.Types as H
19import qualified Network.HTTP.Types as H
21import Network.Sendfile
20import Network.Sendfile
22import Network.Socket (accept, SockAddr)
21import Network.Socket (accept, SockAddr)
23import qualified Network.Socket.ByteString as Sock
22import qualified Network.Socket.ByteString as Sock
24import Network.Wai
23import Network.Wai
25−import Network.Wai.Internal
26import Network.Wai.Handler.Warp.Recv
24import Network.Wai.Handler.Warp.Recv
27import Network.Wai.Handler.Warp.Request
25import Network.Wai.Handler.Warp.Request
28import Network.Wai.Handler.Warp.Response
26import Network.Wai.Handler.Warp.Response
@@ -276,24 +274,12 @@ serveConnection timeoutHandle settings cleaner app conn remoteHost' =
276respondOnException :: Settings -> Cleaner -> Connection -> SockAddr -> IO () -> IO ()
274respondOnException :: Settings -> Cleaner -> Connection -> SockAddr -> IO () -> IO ()
277respondOnException settings cleaner conn remoteHost' io = io `catch` \e@(SomeException _) -> do
275respondOnException settings cleaner conn remoteHost' io = io `catch` \e@(SomeException _) -> do
278 mask $ \restore ->
276 mask $ \restore ->
279− void $ sendResponse settings cleaner blankRequest conn restore internalError
277+ void $ sendResponse settings cleaner defaultRequest
278+ { remoteHost = remoteHost'
279+ } conn restore internalError
280 throwIO e
280 throwIO e
282 internalError = responseLBS H.internalServerError500 [(H.hContentType, "text/plain")] "Something went wrong"
282 internalError = responseLBS H.internalServerError500 [(H.hContentType, "text/plain")] "Something went wrong"
283− blankRequest = Request {
284− requestMethod = H.methodGet
285− , httpVersion = H.http10
287− , rawQueryString = ""
288− , requestHeaders = []
290− , remoteHost = remoteHost'
292− , queryString = mempty
293− , requestBody = return mempty
295− , requestBodyLength = KnownLength 0
298connSource :: Connection -> T.Handle -> Source IO ByteString
284connSource :: Connection -> T.Handle -> Source IO ByteString
299connSource Connection { connRecv = recv } th = src
285connSource Connection { connRecv = recv } th = src