Bjørnar,
Won't it be smarter to trigger RequestDone with an error and the
exception message?
Someting like:
procedure TCustomSmtpClient.DoHighLevelAsync;
[..]
try
[..]
except
on E:Exception do begin
{$IFDEF TRACE}
TriggerDisplay('! ' + E.ClassName + ': "' + E.Message + '"');
{$ENDIF}
FHighLevelResult := 427; // Just invented this error number
hopefully not in use
FRequestResult := 427;
FErrorMessage := '427 ' + E.ClassName + ': "' + E.Message + '"';
end;
end; {Bjørnar}
{$IFDEF TRACE} TriggerDisplay('! HighLevelAsync done'); {$ENDIF}
FFctSet := [];
FNextRequest := nil;
FRequestDoneFlag := FALSE;
TriggerRequestDone(FHighLevelResult);
end;
Bjørnar Nielsen wrote:
> I think there is a wakness/bug in the smtpprot.pas:
>
> procedure TCustomSmtpClient.RcptTo;
>
> begin
>
> if FRcptName.Count <= 0 then
>
> raise SmtpException.Create('RcptName list is empty');
>
>
>
> FItemCount := -1;
>
> RcptToNex
>
>
>
> When this exception is raised, I cant catch it anywhere. No
> bgexception, no requestdone. I added try/except in this procedure
> (all the code in this procedure inside the try):
>
> procedure TCustomSmtpClient.DoHighLevelAsync;
>
> like this:
>
> except {Bjørnar}
>
> on E:Exception do {Bjørnar}
>
> HandleBackGroundException(E); {Bjørnar}
>
> end; {Bjørnar}
>
>
>
> then I was able to catch it and shut down and release the
> smtp-component. Any comments on this change?
>
>
>
> Regards Bjørnar
>
>
> No virus found in this outgoing message.
> Checked by AVG.
> Version: 7.5.519 / Virus Database: 269.22.5/1356 - Release Date:
> 02.04.2008 16:14
--
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be