-
Poul-Henning Kamp authored
element: Add two checkpoints for the sessions workspace. The first checkpoint is after the session fixed data, and move the client address and port to workspace to see that this works. The second checkpoint is after the, as received unadultered by VCL http request. Grab a copy of the http request matching this. Implement rollback as an optional feature of restart in VCL. Move various workspace initialization and resetting operations to more suitable locations in the program flow. I don't know if this is really usable, but now it's possible to do: backend b1 { set backend.host = "backend1"; set backend.port = "80"; } backend b2 { set backend.host = "backend2"; set backend.port = "80"; } sub vcl_recv { set req.backend = b1; remove req.http.cookie; if (req.restarts == 0) { set req.url = "foobar.html"; } else { set req.backend = b2; } } sub vcl_fetch { if (obj.status != 200) { restart rollback; } } And have it first look for "foobar.html" on one backend, and failing that, try to give the user what they asked for from the other backend. git-svn-id: http://www.varnish-cache.org/svn/trunk/varnish-cache@2167 d4fa192b-c00b-0410-8231-f00ffab90ce4
4dd41763