Well, I've got a proof of concept which works well but its -very-
ugly. This is one of those things may have been slightly easier to do
in Squid-3 with Alex's BodyPipe changes. I haven't stared at the
BodyPipe code to know whether its doing all the right kinds of
buffering for this application.
The problem is that Squid-2's request body data pipeline doesn't do
any of its own buffering - it doesn't do anything at all until a
consumer says "give me some more request body data please" at which
point its copied out of conn->in.buf (the client-side incoming socket
buffer), consumed, and passed onto the caller.
I thought about a "clean" implementation which would involve the
request body pipeline code consuming socket buffer data until a
certain threshold is reached, then feeding that back up to the request
body consumer but I decided that was too difficult for this particular
contract.
Instead, the "hack" here is to just keep reading data into the
client-side socket buffer - its already doing double duty as a request
body buffer anyway - until an ACL match fires to begin forwarding. Its
certainly not clean but it seems to work in local testing. I haven't
yet tested connection aborts and such to make sure that connections
are properly cleaned up.
I'll look at posting a patch to squid-dev in a day or two once my
client has had a look at it.
Thanks,
Adrian
2008/8/8 Adrian Chadd <[EMAIL PROTECTED]>:
> Well I'm still going through the process of planning out what changes
> need to happen.
>
> I know what changes need to happen long-term but this project doesn't
> have that sort of scope..
>
>
>
> Adrian
>
> 2008/8/8 Mark Nottingham <[EMAIL PROTECTED]>:
>> You said you were doing it :)
>>
>>
>> On 08/08/2008, at 4:40 PM, Adrian Chadd wrote:
>>
>>> Way to dob me in!
>>>
>>>
>>> Adrian
>>>
>>> 2008/8/8 Mark Nottingham <[EMAIL PROTECTED]>:
I took at stab at:
http://wiki.squid-cache.org/Features/RequestBuffering
On 22/07/2008, at 4:40 PM, Henrik Nordstrom wrote:
> It's not a bug. A feature request in the wiki is more appropriate.
>
> wiki.squid-cache.org/Features/
>
> Regards
> Henrik
>
> On mån, 2008-07-21 at 17:50 -0700, Mark Nottingham wrote:
>>
>> I couldn't find an open bug for this, so I opened
>> http://www.squid-cache.org/bugs/show_bug.cgi?id=2420
>>
>>
>> On 11/06/2008, at 3:29 AM, Henrik Nordstrom wrote:
>>
>>> On ons, 2008-06-11 at 12:51 +0300, Mikko Kettunen wrote:
>>>
Yes, I read something about this on squid-users list, there seems
to be
8kB buffer for this if I understood right.
>>>
>>> The buffer is bigger than that. But not unlimited.
>>>
>>> The big change needed is that there currently isn't anything delaying
>>> forwarding of the request headers until sufficient amount of the
>>> request
>>> body has been buffered.
>>>
>>> Regards
>>> Henrik
>>
>> --
>> Mark Nottingham [EMAIL PROTECTED]
>>
--
Mark Nottingham [EMAIL PROTECTED]
>>
>> --
>> Mark Nottingham [EMAIL PROTECTED]
>>
>>
>>
>