Arno Garrels wrote:
>>From: Vander Clock Stephane
> 
> [..]
> 
>>I think you must replace
>>        S := Copy(S, 5, Length(S));
>>
>>by
>>        S := Copy(S, 6, Length(S));
> 
> 
> I don't know why,  length of both strings is 5 not 6.
> 
> Typically the lines in question of a EHLO response look like
> 250-AUTH=LOGIN CRAM-MD5 PLAIN
> 250-AUTH CRAM-MD5 LOGIN PLAIN

It depends on whether the Index argument (the second argument to Copy) 
is zero-based or not, and for that matter, Delete() also.

     Delete(S, 1, 4);
     if (CompareText(Copy(S, 1, 5), 'AUTH ') = 0) or
        (CompareText(Copy(S, 1, 5), 'AUTH=') = 0) then begin
         S := Copy(S, 5, Length(S));
     {...}

If the Index is not zero-based (starts with 1), then it should be 6, 
otherwise you'd get '=AUTH' or ' AUTH'.  If it is zero-based, then there 
is another problem, since the CompareText calls Copy() with an Index of 
1, which means that it starts to delete at the second character, not to 
mention the call to Delete() uses an Index of 1 also.

I cannot confirm right now (I do not have Delphi installed on this 
computer) which it is.  Arno, can you verify?

        dZ.
-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to