I think I got NTLM to work with BCB!

It seems there are bugs in HttpProt.pas for BCB compilers.

1. First, this should be defined (not sure at what BCB version though)
    {$DEFINE UseNTLMAuthentication}

2. That got NTLM to work, but then I had a weird corruption problem,
appearantly caused by using some functions designed for older versions of
Delphi which were probably being used by BCB due to the conditionals.
Anyway, my "quick" workaround was simply to add this:
    {$DEFINE DELPHI3_UP}
    {$DEFINE DELPHI4_UP}
    {$DEFINE DELPHI5_UP}

I'm sure that's not the correct way, but it seems to have fixed my problem
by causing the correct code to be compiled.

I suspect that code such as this was being compiled by BCB 6 when it
shouldn't have for BCB 6:

{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*}
{$IFNDEF DELPHI5_UP}
function StrToIntDef(const S: String; const Default: Integer): Integer;
begin
    try
        Result := StrToInt(S);
    except
        Result := Default;
    end;
end;
{$ENDIF}


And this:


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*}
procedure THttpCli.CleanupRcvdStream;
begin
    { What we are received must be removed }
    if Assigned(FRcvdStream) and (FRcvdCount > 0) then
{$IFNDEF DELPHI3_UP}
    begin
        if FRcvdStream is THandleStream then begin
            FRcvdStream.Seek(FRcvdStream.Size - FRcvdCount, 0);
            FRcvdStream.Write(FRcvdCount, 0);  { Truncate !!! }
        end
        else if FRcvdStream is TMemoryStream then
            TMemoryStream(FRcvdStream).SetSize(FRcvdStream.Size -
FRcvdCount);
        { Silently fail for other stream types :-( }
        { Should I raise an exception ?            }
    end;
{$ELSE}
        FRcvdStream.Size := FRcvdStream.Size - FRcvdCount;
{$ENDIF}
end;

--
Albert Wiersch
AI Internet Solutions
[EMAIL PROTECTED]
http://www.htmlvalidator.com/


-- 
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