Inspect Request bodies?

Tim Kientzle tim at metaweb.com
Thu Nov 6 02:47:06 CET 2008


Thanks, Poul-Henning!  These are exactly the hints I needed.

Agree completely about it being controllable in VCL; my
own environment has a mix of requests of widely-varying sizes
and I certainly don't want this for large uploads.

Tim


On Nov 5, 2008, at 11:37 AM, Poul-Henning Kamp wrote:

> In message <55911D51-8964-4D13-9667-63CACCD1A9A4 at metaweb.com>, Tim  
> Kientzle wri
> tes:
>
>> * I'll need code to actually read and store the POST body in memory
>>   (including updates to the PASS handler and other places to
>>   use the in-memory data when it's available)
>
> We sort of have this as point 15 on our shoppinglist:
>
> 	(http://varnish.projects.linpro.no/wiki/PostTwoShoppingList)
>
> The crucial point here, is that we want it to be controllable in
> VCL, so that people can disable it for GB sized uploads and enable
> it for short stuff (or vice versa) if they want.
>
>> * I'll need to add VCL functions to actually analyze the POST body.
>
> To be honest, I would would probably just use the inline C facility
> and do it there, than trying to generalize it into a VCL extension.
>
>> The first part looks trickier.  Has anyone here tried anything
>> similar?  Any pointers (particular source files I should pay  
>> attention
>> to or memory-management issues I should keep in mind)?
>
> It's pretty straightforward really:  allocate an (non-hashed)
> object, add storage to it and store the contents there.
>
> You can see pretty much all the code you need in cache_fetch.c and
> for it to go into the tree as a patch, I would insist that the
> code gets generalized so we use the same code in both directions,
> rather than have two copies.
>
>
> -- 
> Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
> phk at FreeBSD.ORG         | TCP/IP since RFC 956
> FreeBSD committer       | BSD since 4.3-tahoe
> Never attribute to malice what can adequately be explained by  
> incompetence.




More information about the varnish-misc mailing list