@@ -193,9 +193,9 @@ sendResponse defServer conn ii req reqidxhdr src response = do
193193 mRange = reqidxhdr ! idxRange
194194 reqinfo@(isPersist,_) = infoFromRequest req reqidxhdr
195195 (isKeepAlive, needsChunked) = infoFromResponse rspidxhdr reqinfo
196− isGet = requestMethod req == H.methodGet
196+ isHead = requestMethod req == H.methodHead
197197 rsp = case response of
198− ResponseFile _ _ path mPart -> RspFile path mPart mRange isGet (T.tickle th)
198+ ResponseFile _ _ path mPart -> RspFile path mPart mRange isHead (T.tickle th)
199199 ResponseBuilder _ _ b -> RspBuilder b needsChunked
200200 ResponseStream _ _ fb -> RspStream fb needsChunked th
201201 ResponseRaw raw _ -> RspRaw raw src (T.tickle th)
@@ -220,7 +220,7 @@ sendRsp :: Connection
220220 -> H.ResponseHeaders
221221 -> Rsp
222222 -> IO ()
223−sendRsp conn ver s0 hs0 (RspFile path mPart mRange isGet hook) = do
223+sendRsp conn ver s0 hs0 (RspFile path mPart mRange isHead hook) = do
224224 ex <- fileRange s0 hs path mPart mRange
225225 case ex of
226226 Left _ex ->
@@ -230,11 +230,11 @@ sendRsp conn ver s0 hs0 (RspFile path mPart mRange isGet hook) = do
230230 sendRsp conn ver s2 hs2 (RspBuilder body True)
231231 Right (s, hs1, beg, len)
232232 | len >= 0 ->
233− if isGet then do
233+ if isHead then
234+ sendRsp conn ver s hs1 (RspBuilder mempty False)
235+ else do
234236 lheader <- composeHeader ver s hs1
235237 connSendFile conn path beg len hook [lheader]
236− else
237− sendRsp conn ver s hs1 (RspBuilder mempty False)
238238 | otherwise -> do
239239 sendRsp conn ver H.status416
240240 (filter (\(k, _) -> k /= "content-length") hs1)