File tree Expand file tree Collapse file tree 1 file changed +15
-4
lines changed Expand file tree Collapse file tree 1 file changed +15
-4
lines changed Original file line number Diff line number Diff line change 1414
1515public class Slimane {
1616 internal var middlewares : [ AsyncMiddleware ] = [ ]
17-
17+
1818 internal var router : Router
1919
2020 public var setNodelay = false
@@ -30,7 +30,7 @@ public class Slimane {
3030 result { Response ( ) }
3131 }
3232 }
33-
33+
3434 internal func dispatch( request: Request , stream: Skelton . HTTPStream ) {
3535 var request = request
3636 let responder : AsyncResponder
@@ -43,7 +43,11 @@ public class Slimane {
4343 }
4444 return
4545 }
46- route. handler. respond ( to: request, result: result)
46+ route. handler. respond ( to: request) { chainedResponse in
47+ result {
48+ request. response. merged ( try chainedResponse ( ) )
49+ }
50+ }
4751 }
4852 } else {
4953 responder = BasicAsyncResponder { [ unowned self] _, result in
@@ -60,10 +64,17 @@ public class Slimane {
6064 }
6165 }
6266 }
63-
67+
6468 private func processStream( response: Response , _ request: Request , _ stream: Skelton . HTTPStream ) {
6569 var response = response
6670
71+ response. headers [ " Date " ] = Header ( Time ( ) . rfc1123)
72+ response. headers [ " Server " ] = Header ( " Slimane " )
73+
74+ if response. headers [ " Connection " ] . isEmpty {
75+ response. headers [ " Connection " ] = Header ( request. isKeepAlive ? " Keep-Alive " : " Close " )
76+ }
77+
6778 if response. contentLength == 0 && !response. isChunkEncoded {
6879 response. contentLength = response. bodyLength
6980 }
You can’t perform that action at this time.
0 commit comments