Re: HTTP SSL Data back from post, but onBeginWork not fired

Giganews Newsgroups
Subject: Re: HTTP SSL Data back from post, but onBeginWork not fired
Posted by:  Molando (a…@cd.de)
Date: Tue, 13 Sep 2005

Ok, sorted. two weeks of madness on and off.
I just removed the lines:

//    if Assigned(FHTTP.IOHandler) then
//    begin
//      Response.KeepAlive := not (FHTTP.Connected and (FHTTP.IOHandler is
TIdSSLIOHandlerSocketBase) and Response.KeepAlive);
//    end;

from:
TIdHTTPProtocol.ProcessResponse(AIgnoreReplies: array of SmallInt):
TIdHTTPWhatsNext;

in IdHTTP

Probably a nicer way of fixing the problem, but it worked for me. Will do a
proper fix later.

"Molando" <a…@cd.de> wrote in message news:D9A7319E0BDAE240a…@cd.de...
> Hello. Sorry for the long description, but this has had me stumped for a
few
> weeks.
>
> I am using windows 2k. Latest version of Indy.
>
> IdHTTP + IdSSLIOHandlerSocketOpenSSL
>
> I am connecting to a https site, sending some XML with a post operation,
> then receiving some gziped data back.
>
> The post operation I am using is one that takes the URL, the strings, and
> returns a stream.
>
> The machines talk to each other fine, the SSL connection is being formed
> perfectly. The XML data is always being sent over, and its contents have
> been verified many times. There are no firewalls, or parts on the either
> machine that will cause any problems.
>
> With a packet sniffer, I see that I always get the correct response back.
> But onWorkBegin is not always being called.
>
> If I use dialup, it will work around 90% of the time. Normally in runs, so
I
> dial up one time, and all will be perfect, the next time 3 or 4 will work
in
> a row, or maybe onWorkBegin will not be called at all for 10 attempts, but
> work on the 11th. The program is being reset each time.
>
> When I use our internal network to connect out, then it is the reverse,
all
> the data is recorded fine (there and back) in the packet sniffer, but
> onBeginWork does not get called 95% of the time.
>
> From tracing it appears that the program first starts to branch around
>
> IdSSLOpenSSL :
>
> TIdSSLIOHandlerSocketOpenSSL.ReadFromSource
>
> When the program works:
>
>    repeat
>
>      if Readable(ATimeout) then begin // is false
>
> When the program Fails, this part returns true
>
> I also noticed in idHTTP
>
> function TIdHTTPResponse.GetKeepAlive: Boolean;
>
> is being called just before the onwork event is called. It is never called
> when it fails.
>
> The timeout is set to infinite.
>
> When the system fails, there is not a long delay. Quicker than when it
> works.
>
> Hopefully I am just missing a setting. If not could somebody point me in
the
> right direction.
>
> Thanks in advance,
>
>      Jonathan.

Replies

None

In response to

HTTP SSL Data back from post, but onBeginWork not fired posted by Molando on Tue, 13 Sep 2005