]> err.no Git - varnish/commitdiff
Add a simple linear retry in five steps for backend connection.
authorphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Mon, 18 Sep 2006 07:16:03 +0000 (07:16 +0000)
committerphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Mon, 18 Sep 2006 07:16:03 +0000 (07:16 +0000)
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1060 d4fa192b-c00b-0410-8231-f00ffab90ce4

varnish-cache/bin/varnishd/cache_backend.c

index 7ec02e598e01c4bdfee88b8ae34d4f813ab515cc..68047b594ac35720ba38975c74dbd3c2448a4271 100644 (file)
@@ -260,12 +260,16 @@ struct vbe_conn *
 VBE_GetFd(struct sess *sp)
 {
        struct vbe_conn *vc;
+       unsigned n;
 
-       vc = vbe_nextfd(sp);
-       if (vc != NULL) {
-               WSL(sp->wrk, SLT_Backend, sp->fd, "%d %s", vc->fd,
-                   sp->backend->vcl_name);
-               return (vc);
+       for (n = 1; n < 5; n++) {
+               vc = vbe_nextfd(sp);
+               if (vc != NULL) {
+                       WSL(sp->wrk, SLT_Backend, sp->fd, "%d %s", vc->fd,
+                           sp->backend->vcl_name);
+                       return (vc);
+               }
+               usleep(100000 * n);
        }
        RES_Error(sp, 503, "Backend did not respond.");
        return (NULL);