@@ -15,14 +15,12 @@ import Data.Conduit
1515import Data.Conduit.Internal (ResumableSource (..))
1616import qualified Data.Conduit.List as CL
1717import Data.Conduit.Network (bindPort)
18−import Data.Monoid (mempty)
1918import Network (sClose, Socket)
2019import qualified Network.HTTP.Types as H
2120import Network.Sendfile
2221import Network.Socket (accept, SockAddr)
2322import qualified Network.Socket.ByteString as Sock
2423import Network.Wai
25−import Network.Wai.Internal
2624import Network.Wai.Handler.Warp.Recv
2725import Network.Wai.Handler.Warp.Request
2826import Network.Wai.Handler.Warp.Response
@@ -276,24 +274,12 @@ serveConnection timeoutHandle settings cleaner app conn remoteHost' =
276274respondOnException :: Settings -> Cleaner -> Connection -> SockAddr -> IO () -> IO ()
277275respondOnException settings cleaner conn remoteHost' io = io `catch` \e@(SomeException _) -> do
278276 mask $ \restore ->
279− void $ sendResponse settings cleaner blankRequest conn restore internalError
277+ void $ sendResponse settings cleaner defaultRequest
278+ { remoteHost = remoteHost'
279+ } conn restore internalError
280280 throwIO e
281281 where
282282 internalError = responseLBS H.internalServerError500 [(H.hContentType, "text/plain")] "Something went wrong"
283− blankRequest = Request {
284− requestMethod = H.methodGet
285− , httpVersion = H.http10
286− , rawPathInfo = ""
287− , rawQueryString = ""
288− , requestHeaders = []
289− , isSecure = False
290− , remoteHost = remoteHost'
291− , pathInfo = []
292− , queryString = mempty
293− , requestBody = return mempty
294− , vault = mempty
295− , requestBodyLength = KnownLength 0
296− }
297283
298284connSource :: Connection -> T.Handle -> Source IO ByteString
299285connSource Connection { connRecv = recv } th = src