]> err.no Git - varnish/commitdiff
Handle backend failure in pass mode
authorphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Wed, 23 Aug 2006 14:30:06 +0000 (14:30 +0000)
committerphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Wed, 23 Aug 2006 14:30:06 +0000 (14:30 +0000)
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@909 d4fa192b-c00b-0410-8231-f00ffab90ce4

varnish-cache/bin/varnishd/cache_pass.c

index 17d5e44c0a9a76caea1f8cdebe6733f4fde95f44..ead16da0cefeecf42f58e5b3af02824409ce5868 100644 (file)
@@ -45,6 +45,10 @@ pass_straight(struct sess *sp, int fd, struct http *hp, char *bi)
                i = http_Read(hp, fd, buf, c);
                if (i == 0 && bi == NULL)
                        return (1);
+               if (i <= 0) {
+                       vca_close_session(sp, "backend closed");
+                       return (1);
+               }
                assert(i > 0);
                sp->wrk->acct.bodybytes += WRK_Write(sp->wrk, buf, i);
                if (WRK_Flush(sp->wrk))