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