fcl-web: TWSThreadedConnectionHandler.TWSConnectionThread.Execute: fixed handling exception

This commit is contained in:
mattias 2023-07-07 18:53:37 +02:00
parent 3a80807433
commit 1df255cddf

View File

@ -108,10 +108,14 @@ Type
FConnection: TWSServerConnection; FConnection: TWSServerConnection;
FOnDone : TNotifyEvent; FOnDone : TNotifyEvent;
FDoHandshake : Boolean; FDoHandshake : Boolean;
FHandler: TWSThreadedConnectionHandler;
Public Public
Constructor CreateConnection(AConnection : TWSServerConnection; aOnConnectionDone : TNotifyEvent; DoHandShake : Boolean); virtual; Constructor CreateConnection(aHandler: TWSThreadedConnectionHandler;
aConnection : TWSServerConnection; const aOnConnectionDone : TNotifyEvent;
DoHandShake : Boolean); virtual;
Procedure Execute; override; Procedure Execute; override;
Property Connection : TWSServerConnection Read FConnection; Property Connection : TWSServerConnection Read FConnection;
Property Handler: TWSThreadedConnectionHandler read FHandler;
end; end;
Public Public
procedure CheckIncomingMessages; override; procedure CheckIncomingMessages; override;
@ -353,7 +357,8 @@ begin
SendDataTo(aData,@DoAllowAll); SendDataTo(aData,@DoAllowAll);
end; end;
Procedure TCustomWSServer.DoAllowAll(aConnection :TWSServerConnection; var aAllow : Boolean); procedure TCustomWSServer.DoAllowAll(aConnection: TWSServerConnection;
var aAllow: Boolean);
begin begin
aAllow:=Assigned(AConnection); aAllow:=Assigned(AConnection);
@ -475,7 +480,8 @@ begin
end; end;
end; end;
procedure TCustomWSServer.SendMessageTo(const AMessage: string; aSelector: TWSSendToFilter); procedure TCustomWSServer.SendMessageTo(const AMessage: string;
aSelector: TWSSendToFilter);
Function DoAllow(Conn : TWSServerConnection) : Boolean; Function DoAllow(Conn : TWSServerConnection) : Boolean;
begin begin
@ -674,8 +680,11 @@ end;
{ TWSThreadedConnectionHandler.TWSConnectionThread } { TWSThreadedConnectionHandler.TWSConnectionThread }
constructor TWSThreadedConnectionHandler.TWSConnectionThread.CreateConnection(AConnection: TWSServerConnection; aOnConnectionDone : TNotifyEvent; DoHandShake : Boolean); constructor TWSThreadedConnectionHandler.TWSConnectionThread.CreateConnection(
aHandler: TWSThreadedConnectionHandler; aConnection: TWSServerConnection;
const aOnConnectionDone: TNotifyEvent; DoHandShake: Boolean);
begin begin
FHandler:=aHandler;
FOnDone:=aOnConnectionDone; FOnDone:=aOnConnectionDone;
FConnection:=AConnection; FConnection:=AConnection;
FDoHandshake:=DoHandshake; FDoHandshake:=DoHandshake;
@ -703,9 +712,9 @@ begin
Terminate; Terminate;
end; end;
except except
Raise; on E: Exception do begin
// on E : Exception do Handler.Server.HandleError(Connection,E);
// Server.HandleUnexpectedError(E); end;
end; end;
If Assigned(FOnDone) then If Assigned(FOnDone) then
FOnDone(Connection); FOnDone(Connection);
@ -725,7 +734,7 @@ end;
procedure TWSThreadedConnectionHandler.HandleConnection(aConnection: TWSServerConnection; DoHandshake: Boolean); procedure TWSThreadedConnectionHandler.HandleConnection(aConnection: TWSServerConnection; DoHandshake: Boolean);
begin begin
TWSConnectionThread.CreateConnection(aConnection,@ConnectionDone,DoHandShake); TWSConnectionThread.CreateConnection(Self,aConnection,@ConnectionDone,DoHandShake);
end; end;
{ TWSPooledConnectionHandler.THandleRequestTask } { TWSPooledConnectionHandler.THandleRequestTask }