r2423 - in trunk/varnish-cache: bin/varnishd include lib/libvcl

phk at projects.linpro.no phk at projects.linpro.no
Mon Feb 4 10:51:23 CET 2008


Author: phk
Date: 2008-02-04 10:51:23 +0100 (Mon, 04 Feb 2008)
New Revision: 2423

Modified:
   trunk/varnish-cache/bin/varnishd/cache_backend_random.c
   trunk/varnish-cache/include/vrt.h
   trunk/varnish-cache/lib/libvcl/vcc_backend.c
   trunk/varnish-cache/lib/libvcl/vcc_fixed_token.c
Log:
Complete the VCC part of random directors, runtime code next.


Modified: trunk/varnish-cache/bin/varnishd/cache_backend_random.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_backend_random.c	2008-02-04 09:35:53 UTC (rev 2422)
+++ trunk/varnish-cache/bin/varnishd/cache_backend_random.c	2008-02-04 09:51:23 UTC (rev 2423)
@@ -437,8 +437,11 @@
 /*--------------------------------------------------------------------*/
 
 void
-VRT_init_random_backend(struct backend **bp, const struct vrt_random_backend *t)
+VRT_init_random_backend(struct backend **bp, const struct vrt_dir_random *t)
 {
+	(void)bp;
+	(void)t;
+#if 0
 	struct backend *b;
 	struct ber *ber;
 	struct vrt_backend_entry *be;
@@ -508,5 +511,6 @@
 	ber->blist = bs;
 	
 	*bp = b;
+#endif
 }
 

Modified: trunk/varnish-cache/include/vrt.h
===================================================================
--- trunk/varnish-cache/include/vrt.h	2008-02-04 09:35:53 UTC (rev 2422)
+++ trunk/varnish-cache/include/vrt.h	2008-02-04 09:51:23 UTC (rev 2423)
@@ -72,7 +72,7 @@
 
 struct vrt_dir_random {
 	unsigned 			nmember;
-	struct vrt_dir_random_entry	*members;
+	const struct vrt_dir_random_entry	*members;
 	const char 			*ident;
 };
 
@@ -135,7 +135,7 @@
 /* Backend related */
 void VRT_init_simple_backend(struct backend **, const struct vrt_simple_backend *);
 void VRT_init_round_robin_backend(struct backend **, const struct vrt_round_robin_backend *);
-void VRT_init_random_backend(struct backend **, const struct vrt_random_backend *);
+void VRT_init_random_backend(struct backend **, const struct vrt_dir_random *);
 void VRT_fini_backend(struct backend *);
 
 char *VRT_IP_string(const struct sess *sp, const struct sockaddr *sa);

Modified: trunk/varnish-cache/lib/libvcl/vcc_backend.c
===================================================================
--- trunk/varnish-cache/lib/libvcl/vcc_backend.c	2008-02-04 09:35:53 UTC (rev 2422)
+++ trunk/varnish-cache/lib/libvcl/vcc_backend.c	2008-02-04 09:51:23 UTC (rev 2423)
@@ -217,7 +217,6 @@
 
 	fs = vcc_FldSpec(tl, "!host", "?port", NULL);
 	t_first = tl->t;
-	*nbh = tl->nbackend_host++;
 
 	if (tl->t->tok == ID) {
 		VTAILQ_FOREACH(h, &tl->hosts, list) {
@@ -240,8 +239,8 @@
 	ExpectErr(tl, '{');
 	vcc_NextToken(tl);
 
-	Fh(tl, 0, "\nstatic const struct vrt_backend_host bh_%d = {\n",
-	    *nbh);
+	*nbh = tl->nbackend_host++;
+	Fh(tl, 0, "\nstatic const struct vrt_backend_host bh_%d = {\n", *nbh);
 
 	/* Check for old syntax */
 	if (tl->t->tok == ID && vcc_IdIs(tl->t, "set")) {
@@ -376,6 +375,9 @@
 	int nbh, nelem;
 	struct fld_spec *fs;
 
+	Fh(tl, 1, "\n#define VGC_backend_%.*s (VCL_conf.backend[%d])\n",
+	    PF(t_dir), tl->nbackend);
+
 	fs = vcc_FldSpec(tl, "!backend", "?weight", NULL);
 
 	vcc_NextToken(tl);		/* ID: policy (= random) */
@@ -418,14 +420,18 @@
 		vcc_NextToken(tl);
 	}
 	Fc(tl, 0, "\t{ .host = 0 }\n");
-	Fc(tl, 0, "}\n");
+	Fc(tl, 0, "};\n");
 	Fc(tl, 0,
-	    "\nstatic const struct vrt_dir_random vdr_%.*s[] = {\n",
+	    "\nstatic const struct vrt_dir_random vdr_%.*s = {\n",
 	    PF(t_dir));
 	Fc(tl, 0, "\t.nmember = %d,\n", nelem);
 	Fc(tl, 0, "\t.members = vdre_%.*s,\n", PF(t_dir));
 	vcc_EmitBeIdent(tl->fc, t_first, tl->t);
+	Fc(tl, 0, "};\n");
 	vcc_NextToken(tl);
+	Fi(tl, 0, "\tVRT_init_random_backend(&VGC_backend_%.*s , &vdr_%.*s);\n",
+	    PF(t_dir), PF(t_dir));
+	Ff(tl, 0, "\tVRT_fini_random_backend(VGC_backend_%.*s);\n", PF(t_dir));
 }
 
 /*--------------------------------------------------------------------

Modified: trunk/varnish-cache/lib/libvcl/vcc_fixed_token.c
===================================================================
--- trunk/varnish-cache/lib/libvcl/vcc_fixed_token.c	2008-02-04 09:35:53 UTC (rev 2422)
+++ trunk/varnish-cache/lib/libvcl/vcc_fixed_token.c	2008-02-04 09:51:23 UTC (rev 2423)
@@ -423,7 +423,7 @@
 	vsb_cat(sb, "\n");
 	vsb_cat(sb, "struct vrt_dir_random {\n");
 	vsb_cat(sb, "	unsigned 			nmember;\n");
-	vsb_cat(sb, "	struct vrt_dir_random_entry	*members;\n");
+	vsb_cat(sb, "	const struct vrt_dir_random_entry	*members;\n");
 	vsb_cat(sb, "	const char 			*ident;\n");
 	vsb_cat(sb, "};\n");
 	vsb_cat(sb, "\n");
@@ -486,7 +486,7 @@
 	vsb_cat(sb, "/* Backend related */\n");
 	vsb_cat(sb, "void VRT_init_simple_backend(struct backend **, const struct vrt_simple_backend *);\n");
 	vsb_cat(sb, "void VRT_init_round_robin_backend(struct backend **, const struct vrt_round_robin_backend *);\n");
-	vsb_cat(sb, "void VRT_init_random_backend(struct backend **, const struct vrt_random_backend *);\n");
+	vsb_cat(sb, "void VRT_init_random_backend(struct backend **, const struct vrt_dir_random *);\n");
 	vsb_cat(sb, "void VRT_fini_backend(struct backend *);\n");
 	vsb_cat(sb, "\n");
 	vsb_cat(sb, "char *VRT_IP_string(const struct sess *sp, const struct sockaddr *sa);\n");




More information about the varnish-commit mailing list