Browse Source

* Terminate when socket cannot be created/bound/accepted.

git-svn-id: trunk@17056 -
michael 14 years ago
parent
commit
58905ec7d9
1 changed files with 5 additions and 0 deletions
  1. 5 0
      packages/fcl-web/src/base/custfcgi.pp

+ 5 - 0
packages/fcl-web/src/base/custfcgi.pp

@@ -547,12 +547,14 @@ begin
         begin
         begin
         CloseSocket(socket);
         CloseSocket(socket);
         Socket:=0;
         Socket:=0;
+        Terminate;
         raise Exception.CreateFmt(SBindFailed,[port,socketerror]);
         raise Exception.CreateFmt(SBindFailed,[port,socketerror]);
         end;
         end;
       if fplisten(Socket,1)=-1 then
       if fplisten(Socket,1)=-1 then
         begin
         begin
         CloseSocket(socket);
         CloseSocket(socket);
         Socket:=0;
         Socket:=0;
+        Terminate;
         raise Exception.CreateFmt(SListenFailed,[port,socketerror]);
         raise Exception.CreateFmt(SListenFailed,[port,socketerror]);
         end;
         end;
       end
       end
@@ -564,7 +566,10 @@ begin
     begin
     begin
     FHandle:=fpaccept(Socket,psockaddr(@IAddress),@AddressLength);
     FHandle:=fpaccept(Socket,psockaddr(@IAddress),@AddressLength);
     if FHandle=THandle(-1) then
     if FHandle=THandle(-1) then
+      begin
+      Terminate;
       raise Exception.CreateFmt(SNoInputHandle,[socketerror]);
       raise Exception.CreateFmt(SNoInputHandle,[socketerror]);
+      end;
     end;
     end;
 
 
   repeat
   repeat