@@ -157,14 +157,15 @@ checkPartRange fileSize = checkPart
157-- Typically, Transfer-Encoding: chunked is used.
157-- Typically, Transfer-Encoding: chunked is used.
158-- If Content-Length is specified, Transfer-Encoding: chunked is not used.
158-- If Content-Length is specified, Transfer-Encoding: chunked is not used.
160+sendResponse :: ByteString -- ^ default server value
160−sendResponse :: Connection
161+ -> Connection
161 -> InternalInfo
162 -> InternalInfo
162 -> Request -- ^ HTTP request.
163 -> Request -- ^ HTTP request.
163 -> IndexedHeader -- ^ Indexed header of HTTP request.
164 -> IndexedHeader -- ^ Indexed header of HTTP request.
164 -> IO ByteString -- ^ source from client, for raw response
165 -> IO ByteString -- ^ source from client, for raw response
165 -> Response -- ^ HTTP response including status code and response header.
166 -> Response -- ^ HTTP response including status code and response header.
166 -> IO Bool -- ^ Returing True if the connection is persistent.
167 -> IO Bool -- ^ Returing True if the connection is persistent.
167−sendResponse conn ii req reqidxhdr src response = do
168+sendResponse defServer conn ii req reqidxhdr src response = do
168 hs <- addServerAndDate hs0
169 hs <- addServerAndDate hs0
169 if hasBody s req then do
170 if hasBody s req then do
170 sendRsp conn ver s hs rsp
171 sendRsp conn ver s hs rsp
@@ -181,7 +182,7 @@ sendResponse conn ii req reqidxhdr src response = do
181 rspidxhdr = indexResponseHeader hs0
182 rspidxhdr = indexResponseHeader hs0
182 th = threadHandle ii
183 th = threadHandle ii
183 dc = dateCacher ii
184 dc = dateCacher ii
184− addServerAndDate = addDate dc rspidxhdr . addServer rspidxhdr
185+ addServerAndDate = addDate dc rspidxhdr . addServer defServer rspidxhdr
185 mRange = reqidxhdr ! idxRange
186 mRange = reqidxhdr ! idxRange
186 reqinfo@(isPersist,_) = infoFromRequest req reqidxhdr
187 reqinfo@(isPersist,_) = infoFromRequest req reqidxhdr
187 (isKeepAlive, needsChunked) = infoFromResponse rspidxhdr reqinfo
188 (isKeepAlive, needsChunked) = infoFromResponse rspidxhdr reqinfo
@@ -389,9 +390,9 @@ warpVersion = showVersion Paths_warp.version
389defaultServerValue :: HeaderValue
390defaultServerValue :: HeaderValue
390defaultServerValue = B.pack $ "Warp/" ++ warpVersion
391defaultServerValue = B.pack $ "Warp/" ++ warpVersion
392−addServer :: IndexedHeader -> H.ResponseHeaders -> H.ResponseHeaders
393+addServer :: HeaderValue -> IndexedHeader -> H.ResponseHeaders -> H.ResponseHeaders
393−addServer rspidxhdr hdrs = case rspidxhdr ! idxServer of
394+addServer defaultServerValue' rspidxhdr hdrs = case rspidxhdr ! idxServer of
394− Nothing -> (hServer, defaultServerValue) : hdrs
395+ Nothing -> (hServer, defaultServerValue') : hdrs
395 _ -> hdrs
396 _ -> hdrs
397----------------------------------------------------------------
398----------------------------------------------------------------