From bcb5995ddf1228a53e01c9947e5229994e1bf364 Mon Sep 17 00:00:00 2001 From: LemonBoy Date: Sun, 3 Feb 2019 12:50:37 +0100 Subject: [PATCH] Fix regression w/ keep-alive connections to AsyncHttpServer We should keep listening if the connection is marked as keep-alive. Fixes #10536 --- lib/pure/asynchttpserver.nim | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/pure/asynchttpserver.nim b/lib/pure/asynchttpserver.nim index be56ce2d8a..edccd6628e 100644 --- a/lib/pure/asynchttpserver.nim +++ b/lib/pure/asynchttpserver.nim @@ -264,6 +264,9 @@ proc processRequest( if "upgrade" in request.headers.getOrDefault("connection"): return false + # The request has been served, from this point on returning `true` means the + # connection will not be closed and will be kept in the connection pool. + # Persistent connections if (request.protocol == HttpVer11 and cmpIgnoreCase(request.headers.getOrDefault("connection"), "close") != 0) or @@ -273,7 +276,7 @@ proc processRequest( # header states otherwise. # In HTTP 1.0 we assume that the connection should not be persistent. # Unless the connection header states otherwise. - discard + return true else: request.client.close() return false