=htc small cleanup
This commit is contained in:
parent
1eee973fc2
commit
57aeb4aa54
1 changed files with 14 additions and 14 deletions
|
|
@ -73,57 +73,57 @@ private[http] class HttpResponseRendererFactory(serverHeader: Option[headers.Ser
|
|||
entity.isChunked && (!entity.isKnownEmpty || ctx.requestMethod == HttpMethods.HEAD) && (ctx.requestProtocol == `HTTP/1.1`)
|
||||
|
||||
@tailrec def renderHeaders(remaining: List[HttpHeader], alwaysClose: Boolean = false,
|
||||
connHeader: Connection = null, serverHeaderSeen: Boolean = false,
|
||||
connHeader: Connection = null, serverSeen: Boolean = false,
|
||||
transferEncodingSeen: Boolean = false, dateSeen: Boolean = false): Unit =
|
||||
remaining match {
|
||||
case head :: tail ⇒ head match {
|
||||
case x: `Content-Length` ⇒
|
||||
suppressionWarning(log, x, "explicit `Content-Length` header is not allowed. Use the appropriate HttpEntity subtype.")
|
||||
renderHeaders(tail, alwaysClose, connHeader, serverHeaderSeen, transferEncodingSeen, dateSeen)
|
||||
renderHeaders(tail, alwaysClose, connHeader, serverSeen, transferEncodingSeen, dateSeen)
|
||||
|
||||
case x: `Content-Type` ⇒
|
||||
suppressionWarning(log, x, "explicit `Content-Type` header is not allowed. Set `HttpResponse.entity.contentType` instead.")
|
||||
renderHeaders(tail, alwaysClose, connHeader, serverHeaderSeen, transferEncodingSeen, dateSeen)
|
||||
renderHeaders(tail, alwaysClose, connHeader, serverSeen, transferEncodingSeen, dateSeen)
|
||||
|
||||
case x: Date ⇒
|
||||
render(x)
|
||||
renderHeaders(tail, alwaysClose, connHeader, serverHeaderSeen, transferEncodingSeen, dateSeen = true)
|
||||
renderHeaders(tail, alwaysClose, connHeader, serverSeen, transferEncodingSeen, dateSeen = true)
|
||||
|
||||
case x: `Transfer-Encoding` ⇒
|
||||
x.withChunkedPeeled match {
|
||||
case None ⇒
|
||||
suppressionWarning(log, head)
|
||||
renderHeaders(tail, alwaysClose, connHeader, serverHeaderSeen, transferEncodingSeen, dateSeen)
|
||||
renderHeaders(tail, alwaysClose, connHeader, serverSeen, transferEncodingSeen, dateSeen)
|
||||
case Some(te) ⇒
|
||||
// if the user applied some custom transfer-encoding we need to keep the header
|
||||
render(if (mustRenderTransferEncodingChunkedHeader) te.withChunked else te)
|
||||
renderHeaders(tail, alwaysClose, connHeader, serverHeaderSeen, transferEncodingSeen = true, dateSeen)
|
||||
renderHeaders(tail, alwaysClose, connHeader, serverSeen, transferEncodingSeen = true, dateSeen)
|
||||
}
|
||||
|
||||
case x: `Connection` ⇒
|
||||
case x: Connection ⇒
|
||||
val connectionHeader = if (connHeader eq null) x else Connection(x.tokens ++ connHeader.tokens)
|
||||
renderHeaders(tail, alwaysClose, connectionHeader, serverHeaderSeen, transferEncodingSeen, dateSeen)
|
||||
renderHeaders(tail, alwaysClose, connectionHeader, serverSeen, transferEncodingSeen, dateSeen)
|
||||
|
||||
case x: `Server` ⇒
|
||||
case x: Server ⇒
|
||||
render(x)
|
||||
renderHeaders(tail, alwaysClose, connHeader, serverHeaderSeen = true, transferEncodingSeen, dateSeen)
|
||||
renderHeaders(tail, alwaysClose, connHeader, serverSeen = true, transferEncodingSeen, dateSeen)
|
||||
|
||||
case x: CustomHeader ⇒
|
||||
if (!x.suppressRendering) render(x)
|
||||
renderHeaders(tail, alwaysClose, connHeader, serverHeaderSeen, transferEncodingSeen, dateSeen)
|
||||
renderHeaders(tail, alwaysClose, connHeader, serverSeen, transferEncodingSeen, dateSeen)
|
||||
|
||||
case x: RawHeader if (x is "content-type") || (x is "content-length") || (x is "transfer-encoding") ||
|
||||
(x is "date") || (x is "server") || (x is "connection") ⇒
|
||||
suppressionWarning(log, x, "illegal RawHeader")
|
||||
renderHeaders(tail, alwaysClose, connHeader, serverHeaderSeen, transferEncodingSeen, dateSeen)
|
||||
renderHeaders(tail, alwaysClose, connHeader, serverSeen, transferEncodingSeen, dateSeen)
|
||||
|
||||
case x ⇒
|
||||
render(x)
|
||||
renderHeaders(tail, alwaysClose, connHeader, serverHeaderSeen, transferEncodingSeen, dateSeen)
|
||||
renderHeaders(tail, alwaysClose, connHeader, serverSeen, transferEncodingSeen, dateSeen)
|
||||
}
|
||||
|
||||
case Nil ⇒
|
||||
if (!serverHeaderSeen) renderDefaultServerHeader(r)
|
||||
if (!serverSeen) renderDefaultServerHeader(r)
|
||||
if (!dateSeen) r ~~ dateHeader
|
||||
close = alwaysClose ||
|
||||
ctx.closeAfterResponseCompletion || // request wants to close
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue