Browse Source

Ignore exceptions

Ondrej Pokorny 4 years ago
parent
commit
c4e2029179
2 changed files with 7 additions and 4 deletions
  1. 4 1
      packages/fcl-net/src/ssockets.pp
  2. 3 3
      packages/fcl-web/src/base/fphttpserver.pp

+ 4 - 1
packages/fcl-net/src/ssockets.pp

@@ -497,7 +497,10 @@ begin
   IOTimeout := TimeOut;
   FHandler.Recv(B,0);
   Result := FHandler.FLastError=0;
-  IOTimeout := lTM;
+  try
+    IOTimeout := lTM;
+  except
+  end;
 end;
 
 Function TSocketStream.Read (Var Buffer; Count : Longint) : longint;

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

@@ -656,11 +656,11 @@ begin
     try
       repeat
       FConnection.HandleRequest;
-      if Connection.EnableKeepAlive and Connection.KeepAlive
+        if not Terminated and Connection.EnableKeepAlive and Connection.KeepAlive
         and not Connection.Socket.CanRead(Connection.KeepAliveTimeout) then
           break;
         FConnection.HandleRequest;
-      until not (FConnection.EnableKeepAlive and FConnection.KeepAlive and (FConnection.Socket.LastError=0));
+      until not (Terminated and FConnection.EnableKeepAlive and FConnection.KeepAlive and (FConnection.Socket.LastError=0));
     finally
       FreeAndNil(FConnection);
       if Assigned(FThreadList) then
@@ -988,7 +988,7 @@ begin
     try
       for I:= ThreadList.Count-1 downto 0 do
         try
-        CloseSocket(TFPHTTPConnectionThread(ThreadList[I]).Connection.Socket.Handle);
+          CloseSocket(TFPHTTPConnectionThread(ThreadList[I]).Connection.Socket.Handle);
         except
           // ignore exceptions during CloseSocket
         end