r2012 - trunk/varnish-cache/bin/varnishd

cecilihf at projects.linpro.no cecilihf at projects.linpro.no
Mon Sep 24 15:18:04 CEST 2007


Author: cecilihf
Date: 2007-09-24 15:18:04 +0200 (Mon, 24 Sep 2007)
New Revision: 2012

Modified:
   trunk/varnish-cache/bin/varnishd/cache_backend.c
   trunk/varnish-cache/bin/varnishd/cache_backend_random.c
   trunk/varnish-cache/bin/varnishd/cache_backend_round_robin.c
Log:
Fixes bug #161.



Modified: trunk/varnish-cache/bin/varnishd/cache_backend.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_backend.c	2007-09-24 13:00:33 UTC (rev 2011)
+++ trunk/varnish-cache/bin/varnishd/cache_backend.c	2007-09-24 13:18:04 UTC (rev 2012)
@@ -309,16 +309,25 @@
 	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);

Modified: trunk/varnish-cache/bin/varnishd/cache_backend_random.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_backend_random.c	2007-09-24 13:00:33 UTC (rev 2011)
+++ trunk/varnish-cache/bin/varnishd/cache_backend_random.c	2007-09-24 13:18:04 UTC (rev 2012)
@@ -397,6 +397,10 @@
 
 /*--------------------------------------------------------------------*/
 
+/* 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)
 {

Modified: trunk/varnish-cache/bin/varnishd/cache_backend_round_robin.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_backend_round_robin.c	2007-09-24 13:00:33 UTC (rev 2011)
+++ trunk/varnish-cache/bin/varnishd/cache_backend_round_robin.c	2007-09-24 13:18:04 UTC (rev 2012)
@@ -382,6 +382,10 @@
 
 /*--------------------------------------------------------------------*/
 
+/* 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)
 {




More information about the varnish-commit mailing list