Parcourir la source

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

Ondrej Pokorny il y a 2 ans
Parent
commit
a1a30876d5
1 fichiers modifiés avec 3 ajouts et 0 suppressions
  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);