i have placed a additional sv1log() call at the beginning HTTP_putMIMEmsg()
and started delegated with -vv
This experiment shows that the function HTTP_putMIMEmsg() is not even
called if i reproduce the error. I think one special thing in this scenario
is, that the first requests in keep-alive are all 304-results without any
body and the last request is a post without content-length. Because of this
the failed request is always the last request of the keep-alive connection
"HCKA: closed -- M:Method is ``POST'' cpid"
I think the flush-thing is right direction, but what can i do to support
WWF Wort + Ton GmbH
Tel. 0000 0000 00X
Fax. 0000 0000 00X
gate.org An: email@example.com
(Yutaka Sato) Kopie: firstname.lastname@example.org
Thema: Re: [DeleGate-En] broken post-response with http/1.0
On 07/01/02(01:14) you "Marc Pohl" <email@example.com> wrote
|But this happens only with http/1.0 keep-alive. If the IE 5.5-Setting
|HTTP/1.1 for Proxy-Connections" is activated, all works as desired. If i
|change the Cache-Behaviour of IE, so that the 304-requests don't happen,
|there is also no problem ...
The difference between behaviors of DeleGate for HTTP/1.0 Keep-Alive
and HTTP/1.1 is that, only in former case DeleGate does buffering
of response message to make sure the length of response message
to be put into the Content-Length header, to ensure the functionality
of Keep-Alive mechanism in HTTP/1.0, which is not necessary in HTTP/1.1
because of its "chunked" encoding.
In HTTP/1.0 Keep-Alive, a buffered message is flushed toward the client
in HTTP_putMIMEmsg(). A possible scenario to explain your situation
is that flushHead()->fflush() called from the function returns EOF
by some reason after flushed the header, thus aborting relay of body.
In this case, you see "## stop relay-3: flush()=EOF, client seems dead"
in the LOGFILE. I wish if I could see the LOGFILE.
@ @ Yutaka Sato <firstname.lastname@example.org> http://www.delegate.org/y.sato/
( - ) National Institute of Advanced Industrial Science and Technology
_< >_ 1-1-4 Umezono, Tsukuba, Ibaraki, 305-8568 Japan