[experimental-ims] bdbb1d5 Use the right counter for directors index

Geoff Simmons geoff at varnish-cache.org
Mon Jan 9 21:52:39 CET 2012


commit bdbb1d59513cba8b268ed1dbe2d948619ef4ae07
Author: Rogier 'DocWilco' Mulhuijzen <github at bsdchicks.com>
Date:   Fri Nov 18 12:29:04 2011 +0100

    Use the right counter for directors index
    
    Fixes	#1060

diff --git a/bin/varnishtest/tests/r01060.vtc b/bin/varnishtest/tests/r01060.vtc
new file mode 100644
index 0000000..25a3988
--- /dev/null
+++ b/bin/varnishtest/tests/r01060.vtc
@@ -0,0 +1,48 @@
+varnishtest "DNS director tramples on other backends"
+
+server s1 {
+	rxreq
+	txresp
+} -start
+
+server s2 {
+	rxreq
+	txresp
+} -start
+
+varnish v1 -vcl {
+	backend b1 {
+		.host = "${s1_addr}";
+		.port = "${s1_port}";
+	}
+
+	director d1 dns {
+		.list = {
+			.port = "80";
+			"${bad_ip}"/32;
+		}
+		.ttl = 1m;
+	}
+
+	backend b2 {
+		.host = "${s2_addr}";
+		.port = "${s2_port}";
+	}
+
+	sub vcl_recv {
+		set req.backend = d1;
+		if (req.url == "/1") {
+			set req.backend = b1;
+		} else {
+			set req.backend = b2;
+		}
+	}
+} -start
+
+
+client c1 {
+	txreq -url "/1"
+	rxresp
+	txreq -url "/2"
+	rxresp
+} -run
diff --git a/lib/libvcl/vcc_dir_dns.c b/lib/libvcl/vcc_dir_dns.c
index a91c021..bdc0a21 100644
--- a/lib/libvcl/vcc_dir_dns.c
+++ b/lib/libvcl/vcc_dir_dns.c
@@ -79,7 +79,7 @@ print_backend(struct vcc *tl,
 	AN(vsb);
 	tl->fb = vsb;
 	Fc(tl, 0, "\t{ .host = VGC_backend_%s },\n",vgcname);
-	Fh(tl, 1, "\n#define VGC_backend_%s %d\n", vgcname, serial);
+	Fh(tl, 1, "\n#define VGC_backend_%s %d\n", vgcname, tl->ndirector);
 
 	Fb(tl, 0, "\nstatic const struct vrt_backend vgc_dir_priv_%s = {\n",
 	    vgcname);



More information about the varnish-commit mailing list