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

Reply via email to