Re: [twsocket] Fwd: Re: FIN being set to early on HTTP response when serving uTorre

2012-07-12 Thread Angus Robertson - Magenta Systems Ltd
 The issue is caused by having a superfluous 
 carriage return being sent in the HTTP request

I've reproduced the problem using ICS components, the issue relates to
the THttpConnectionState mechanism which was changed a few years ago by
Bjornar Nielsen to improve pipelined requests, where a new command is
sent before the old one is finished.  

The extra blank line is treated as a new request and causes lots of
internal variables to be cleared which stops the current request
completing properly.  This also explains some blank logging lines I
sometimes see in my web server logs, because the method and path are
cleared before the request completes and is logged, below server log
lines before and after the fix, showing 64K sent before and 20M after. 

2012-07-11 16:56:26 WebAppTelecom PC19 192.168.1.119   - 80 - pc19
HTTP/1.00 65693 0 0

2012-07-11 20:02:51 WebAppTelecom PC19 192.168.1.119 GET
/testing/speed20meg.zip - 80 - pc19 HTTP/1.0 Mozilla/4.0+(compatible;+ICS)
telecom.magenta 200 20450787 394 172

I've fixed my local copy of ICS V8, which version are you using?  

My only concern is whether we are properly supporting pipelining. I don't
believe pipelining works properly at the moment, but have no easy way to
test it.  

To support pipelining, I think more changes are needed to prevent the new
commands being accepted while the old request is being processed, but
this is more complex than my current fix and needs a means to send
pipelined commands.  Does anyone know an HTTP client that uses pipelining?


Angus

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


Re: [twsocket] Fwd: Re: FIN being set to early on HTTP response when serving uTorre

2012-07-12 Thread Lester Clayton

On 12/07/2012 11:47, Angus Robertson - Magenta Systems Ltd wrote:

I've fixed my local copy of ICS V8, which version are you using?

Currently running icsipv6 (I presume this is ICS v8?).

I have today updated from 1046 to 1048

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


Re: [twsocket] Fwd: Re: FIN being set to early on HTTP response when serving uTorre

2012-07-11 Thread Angus Robertson - Magenta Systems Ltd
 I've done a lot more work since yesterday, and I've managed to find 
 the cause of the problem!  The issue is caused by having a 
 superfluous carriage return being sent in the HTTP request

Not looked at our web server code, but I assume the extra blank line
after the header has been completed is being interpreted as 'cancel the
last request'.  

While it may break the RFC, if other web servers ignore at least one CRLF,
perhaps the ICS server should do the same.  

I'll do some testing this week. 

Angus

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