Browse Source

disable KeepAlive flag in CloseConnectionSocket to close hanging keep-alive connections

Ondrej Pokorny 2 years ago
parent
commit
a1a30876d5
1 changed files with 3 additions and 0 deletions
  1. 3 0
      packages/fcl-web/src/base/fphttpserver.pp

+ 3 - 0
packages/fcl-web/src/base/fphttpserver.pp

@@ -652,7 +652,10 @@ end;
 procedure TFPHTTPServerConnectionListHandler.CloseConnectionSocket(aConnection: TFPHTTPConnection; var aContinue: boolean);
 begin
   if Not aConnection.IsUpgraded then
+    begin
     sockets.CloseSocket(aConnection.Socket.Handle);
+    aConnection.FKeepAlive:=False; // to exit the keep-alive loop for hanging sockets
+    end;
 end;
 
 procedure TFPHTTPServerConnectionListHandler.Foreach(aIterator: TConnectionIterator);