]> err.no Git - varnish/commitdiff
First stab at implementing pass in vcl_miss()
authorphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Wed, 12 Jul 2006 13:28:26 +0000 (13:28 +0000)
committerphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Wed, 12 Jul 2006 13:28:26 +0000 (13:28 +0000)
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@456 d4fa192b-c00b-0410-8231-f00ffab90ce4

varnish-cache/bin/varnishd/cache_center.c

index e69bc87ee0ae28461adff8afd4e0734ee291f0a3..e79f667c19c96b31a10d6ea2a6212c909e9c67ca 100644 (file)
@@ -312,8 +312,15 @@ cnt_miss(struct worker *w, struct sess *sp)
        VCL_miss_method(sp);
        if (sp->handling == VCL_RET_ERROR)
                INCOMPL();
-       if (sp->handling == VCL_RET_PASS)
-               INCOMPL();
+       if (sp->handling == VCL_RET_PASS) {
+               sp->obj->cacheable = 0;
+               HSH_Unbusy(sp->obj);
+               HSH_Deref(sp->obj);
+               sp->obj = 0;
+               PassSession(w, sp);
+               sp->step = STP_DONE;
+               return;
+       }
        if (sp->handling == VCL_RET_LOOKUP)
                INCOMPL();
        if (sp->handling == VCL_RET_FETCH) {