]> err.no Git - varnish/commit
Push hole through the esi:include path, making a very trivial example
authorphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Wed, 24 Oct 2007 20:34:24 +0000 (20:34 +0000)
committerphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Wed, 24 Oct 2007 20:34:24 +0000 (20:34 +0000)
commitb4a04f90d5cd52996821a462d956416ccc13ef36
treec08bc26e76004e3b06d68ef51ab4a43e7085b06b
parentecd17c64c9eea86af6126aae9d08583718c0795c
Push hole through the esi:include path, making a very trivial example
work fully, leaving a trail of XXX and other devastation:

Add an esi nesting counter to the session.

Teach RES_WriteObj() to send an object as a chunk in chunked encoding.

Bail cnt_done() early for nested ESI transactions.

Catch the src="" attribute in esi:include and store it in the esibit.

In ESI_Deliver(), recurse into CNT_Session(STP_RECV) in order to handle
the include element of an esibit.

Recursion is probably not the ideal solution here, but it might quite
conceiveably be the best one, since it is quite cheap and very trivial.

Outstanding issues: too many to list still.

The following example worked for me:

<html>
<body>
<pre>
<esi:include src="/esi.txt"/>
</pre>
</body>
</html>

git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2170 d4fa192b-c00b-0410-8231-f00ffab90ce4
varnish-cache/bin/varnishd/cache.h
varnish-cache/bin/varnishd/cache_center.c
varnish-cache/bin/varnishd/cache_response.c
varnish-cache/bin/varnishd/cache_vrt_esi.c