mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-15 16:09:27 +02:00
fcl-net: clean up and keep stacktrace
This commit is contained in:
parent
486f3a0c7f
commit
8f4b56d10e
@ -161,7 +161,6 @@ type
|
|||||||
FOnIdle : TNotifyEvent;
|
FOnIdle : TNotifyEvent;
|
||||||
FNonBlocking : Boolean;
|
FNonBlocking : Boolean;
|
||||||
FSocket : longint;
|
FSocket : longint;
|
||||||
FListened : Boolean;
|
|
||||||
FAccepting : Boolean;
|
FAccepting : Boolean;
|
||||||
FMaxConnections : Longint;
|
FMaxConnections : Longint;
|
||||||
FQueueSize : Longint;
|
FQueueSize : Longint;
|
||||||
@ -341,7 +340,6 @@ uses
|
|||||||
resolve;
|
resolve;
|
||||||
|
|
||||||
Const
|
Const
|
||||||
SocketWouldBlock = -2;
|
|
||||||
SocketBlockingMode = 0;
|
SocketBlockingMode = 0;
|
||||||
SocketNonBlockingMode = 1;
|
SocketNonBlockingMode = 1;
|
||||||
|
|
||||||
@ -868,8 +866,11 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSocketServer.Abort;
|
procedure TSocketServer.Abort;
|
||||||
|
{$if defined(unix) or defined(mswindows) or defined(hasamiga)}
|
||||||
|
{$else}
|
||||||
var
|
var
|
||||||
ASocket: longint;
|
ASocket: longint;
|
||||||
|
{$endif}
|
||||||
begin
|
begin
|
||||||
{$if defined(unix)}
|
{$if defined(unix)}
|
||||||
fpShutdown(FSocket,SHUT_RDWR);
|
fpShutdown(FSocket,SHUT_RDWR);
|
||||||
@ -1003,11 +1004,10 @@ begin
|
|||||||
Listen;
|
Listen;
|
||||||
Repeat
|
Repeat
|
||||||
Repeat
|
Repeat
|
||||||
|
Stream:=Nil;
|
||||||
Try
|
Try
|
||||||
If (AcceptIdleTimeOut=0) or RunIdleLoop then
|
If (AcceptIdleTimeOut=0) or RunIdleLoop then
|
||||||
Stream:=GetConnection
|
Stream:=GetConnection;
|
||||||
else
|
|
||||||
Stream:=Nil;
|
|
||||||
if Assigned(Stream) then
|
if Assigned(Stream) then
|
||||||
if (MaxSimultaneousConnections>0) and (ConnectionCount>=MaxSimultaneousConnections) then
|
if (MaxSimultaneousConnections>0) and (ConnectionCount>=MaxSimultaneousConnections) then
|
||||||
begin
|
begin
|
||||||
@ -1257,7 +1257,7 @@ end;
|
|||||||
function TInetServer.SockToStream(ASocket: Longint): TSocketStream;
|
function TInetServer.SockToStream(ASocket: Longint): TSocketStream;
|
||||||
Var
|
Var
|
||||||
H : TSocketHandler;
|
H : TSocketHandler;
|
||||||
A : Boolean;
|
ok : Boolean;
|
||||||
aClass : TInetSocketClass;
|
aClass : TInetSocketClass;
|
||||||
|
|
||||||
procedure ShutDownH;
|
procedure ShutDownH;
|
||||||
@ -1266,7 +1266,6 @@ Var
|
|||||||
FreeAndNil(Result);
|
FreeAndNil(Result);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
begin
|
begin
|
||||||
H:=GetClientSocketHandler(aSocket);
|
H:=GetClientSocketHandler(aSocket);
|
||||||
aClass:=DefaultInetSocketClass;
|
aClass:=DefaultInetSocketClass;
|
||||||
@ -1276,14 +1275,13 @@ begin
|
|||||||
(Result as TInetSocket).FHost:='';
|
(Result as TInetSocket).FHost:='';
|
||||||
(Result as TInetSocket).FPort:=FPort;
|
(Result as TInetSocket).FPort:=FPort;
|
||||||
|
|
||||||
|
ok:=false;
|
||||||
try
|
try
|
||||||
A:=H.Accept;
|
ok:=H.Accept;
|
||||||
except
|
finally
|
||||||
ShutDownH;
|
if not ok then
|
||||||
raise;
|
ShutDownH;
|
||||||
end;
|
end;
|
||||||
if Not A then
|
|
||||||
ShutDownH;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TInetServer.Accept: Longint;
|
function TInetServer.Accept: Longint;
|
||||||
|
Loading…
Reference in New Issue
Block a user