On Thu, Feb 26, 2004, Henrik Nordstrom wrote:
> On Thu, 26 Feb 2004, Adrian Chadd wrote:
> 
> > Right, ok. I'm not seeing any half-closed logic popping up in the
> > squid logfiles.
> 
> Right.. this is probably due to a mixup in my thoughts..

*nod*

> For Squid to detect half-closed connection it must be trying to read 
> another request. So if you have sent two requests the half-closed 
> connection will only get detected once the first response is finished 
> (second request kicked alive).

Or, even a single request. If it gets an EOF on the read side it
should just have a comm_read() return 0, right?

(I've found more bugs in my handling of stuff here, still..)

> So in addition to the scenarios outlined earlier you also need to test
> with 1 and 1.5 requests. And while you are at it also test with 0.5
> requests to verify that all the resumed parsing and abort cases work
> properly..

*nod*

> Half-closed:
> 
> 0.5   abort

Ok. I'll analyse this request.

>From this:

[EMAIL PROTECTED]:~/work/squid/tests$ cat testfile0.5
GET http://localhost/cgi-bin/test.cgi HTTP/1.1
Connection: proxy-keepalive
[EMAIL PROTECTED]:~/work/squid/tests$ cat testfile0.5  | nc localhost 3128

Squid does this:


... thats it.ccept: FD 14: accepted
2004/02/26 18:29:54.722| commSetTimeout: FD 14 timeout 300
2004/02/26 18:29:54.722| clientReadSomeData: FD 14: reading request...
2004/02/26 18:29:54.722| comm_read_try: fd 14, size 4095, retval 75, errno 0
2004/02/26 18:29:54.722| Incomplete request, waiting for end of headers
2004/02/26 18:29:54.722| clientReadSomeData: FD 14: reading request...

.. and thats it until the socket times out.

Now, here's a tcpdump of my local conversation:

18:31:36.421730 127.0.0.1.33341 > 127.0.0.1.3128: S 2005892544:2005892544(0) win 32767 
<mss 16396,sackOK,timestamp 1399219195 0,nop,wscale 0> (DF)
18:31:36.421766 127.0.0.1.3128 > 127.0.0.1.33341: S 2012731824:2012731824(0) ack 
2005892545 win 32767 <mss 16396,sackOK,timestamp 1399219195 1399219195,nop,wscale 0> 
(DF)
18:31:36.421787 127.0.0.1.33341 > 127.0.0.1.3128: . ack 1 win 32767 <nop,nop,timestamp 
1399219195 1399219195> (DF)
18:31:36.422067 127.0.0.1.33341 > 127.0.0.1.3128: P 1:76(75) ack 1 win 32767 
<nop,nop,timestamp 1399219195 1399219195> (DF)
18:31:36.422094 127.0.0.1.3128 > 127.0.0.1.33341: . ack 76 win 32767 
<nop,nop,timestamp 1399219195 1399219195> (DF)

.. until, when I hit ctrl-C in netcat:

18:31:52.165995 127.0.0.1.33341 > 127.0.0.1.3128: F 76:76(0) ack 1 win 32767 
<nop,nop,timestamp 1399234941 1399219195> (DF)
18:31:52.166321 127.0.0.1.3128 > 127.0.0.1.33341: F 1:1(0) ack 77 win 32767 
<nop,nop,timestamp 1399234942 1399234941> (DF)
18:31:52.166413 127.0.0.1.33341 > 127.0.0.1.3128: . ack 2 win 32767 <nop,nop,timestamp 
1399234942 1399234942> (DF)



Hm. What am I doing wrong?



Adrian

Reply via email to