Arno Garrels wrote: > Arno Garrels wrote: >> Frans van Daalen wrote: >>>>> Update : Seems there are still scenario's where the problem >>>>> returns also sometimes the proxy settings are lost creating a 407 >>>>> when a relocation happens. Seems to happen when executing a >>>>> GetAsync and a relocate is triggered (with follow relocation set) >>>> >>>> Thanks for the report. That's probably because SetReady is skipped >>>> with it's code related to proxy and www-authentication :( >>>> The HTTP component is a TRUE beast. >>> >>> Yes, it is! Is there not something like a full-blown http test tool >>> which we can run against it and then start rewriting some parts to >>> get it back in it's cage ? I found several on the web but have no >>> idea if it has ever been used for THttpcli >>> >>> Can you locate that setready skipping somewhere? >> >> My suggested fix did skip SetReady when FLocationFlag was set, it has >> to be removed. I have a new idea: >> in procedure THttpCli.StateChange(NewState : THttpState); >> try call TriggerRequestDone only when FLocationFlag is not set. >> However that might also lead to other side-effects I'm currently not >> aware of, it worked with and without proxy connection in a brief >> test. > > That works for me as long as the proxy connection keeps alive after a > 301/302. Otherwise it helps to clear the AuthStates in procedure > THttpCli.LocationSessionClosed. > > {$IFDEF UseNTLMAuthentication} > FAuthNTLMState := ntlmNone; > FProxyAuthNTLMState := ntlmNone; > {$ENDIF} > {$IFDEF UseDigestAuthentication} > FAuthDigestState := digestNone; > FProxyAuthDigestState := digestNone; > {$ENDIF} > FAuthBasicState := BasicNone; > FProxyAuthBasicState := BasicNone; >
That's not all, I found and fixed some more problems so far. I just checked in Rev. #670 into SVN, please test the fix and report back as soon as possible, thanks for your help. Log: Proxy authentication with relocations (hopefully) fixed. SSL not tested yet. If it still doesn't work it's probably a buggy proxy server i.e. 3Proxy. Parse NTLM user codes into domain and user name parts and pass them to NtlmGetMessage3 in method GetNTLMMessage3. -- Arno Garrels -- 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