]> err.no Git - varnish/commitdiff
Fixes bug #161.
authorcecilihf <cecilihf@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Mon, 24 Sep 2007 13:18:04 +0000 (13:18 +0000)
committercecilihf <cecilihf@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Mon, 24 Sep 2007 13:18:04 +0000 (13:18 +0000)
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2012 d4fa192b-c00b-0410-8231-f00ffab90ce4

varnish-cache/bin/varnishd/cache_backend.c
varnish-cache/bin/varnishd/cache_backend_random.c
varnish-cache/bin/varnishd/cache_backend_round_robin.c

index cdf34fa70155eff15e7e1f4cf7ef62724dd3329e..5becc1369bb78cb4579168ed833b5da7d0b12d2c 100644 (file)
@@ -309,16 +309,25 @@ VBE_RecycleFd(struct worker *w, struct vbe_conn *vc)
        CHECK_OBJ_NOTNULL(b, BACKEND_MAGIC);
 }
 
-/* Update health ----------------------------------------------*/
-
+/* Update health ----------------------------------------------------*/
+/* See cache_backend_random.c and/or cache_backend_round_robin.c for
+ * details and comments about this function. 
+ */
 void
 VBE_UpdateHealth(struct sess *sp, struct vbe_conn *vc, int a)
 {
        struct backend *b;
 
-       CHECK_OBJ_NOTNULL(vc, VBE_CONN_MAGIC);
-       CHECK_OBJ_NOTNULL(vc->backend, BACKEND_MAGIC);
-       b = vc->backend;
+       if (vc != NULL) {
+               CHECK_OBJ_NOTNULL(vc, VBE_CONN_MAGIC);
+               CHECK_OBJ_NOTNULL(vc->backend, BACKEND_MAGIC);
+               b = vc->backend;
+       }
+       else {
+               CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);
+               CHECK_OBJ_NOTNULL(sp->backend, BACKEND_MAGIC);
+               b = sp->backend;
+       }
        AN(b->method);
        if(b->method->updatehealth != NULL)
                b->method->updatehealth(sp, vc, a);
index 8a79d2f163d6c66c35d09a984962b5f7c536ba50..edc10d077724bc5c56b63fff49f2110e2f79153e 100644 (file)
@@ -397,6 +397,10 @@ ber_GetHostname(struct backend *b)
 
 /*--------------------------------------------------------------------*/
 
+/* This should maybe be divided into two separate functions. One for 
+ * increasing/decreasing health, and one for "pulling" the health
+ * towards neutral (0) as time passes
+ */
 static void
 ber_UpdateHealth(struct sess *sp, struct vbe_conn *vc, int add)
 {
index 882003f7dbcbd06fd3f5d9ab12a5ac7847e2ae5d..36f4f8420d96f78ab8ce283c2244063735fcfe4f 100644 (file)
@@ -382,6 +382,10 @@ brr_GetHostname(struct backend *b)
 
 /*--------------------------------------------------------------------*/
 
+/* This should maybe be divided into two separate functions. One for 
+ * increasing/decreasing health, and one for "pulling" the health
+ * towards neutral (0) as time passes
+ */
 static void
 brr_UpdateHealth(struct sess *sp, struct vbe_conn *vc, int add)
 {