[master] 96ba7a4 Add function to produce HAproxy backend confs

Poul-Henning Kamp phk at FreeBSD.org
Thu Mar 29 11:13:11 UTC 2018


commit 96ba7a4a20cbeb468d32a17958bc127bf45272d8
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Thu Mar 29 11:05:02 2018 +0000

    Add function to produce HAproxy backend confs

diff --git a/bin/varnishtest/vtc.h b/bin/varnishtest/vtc.h
index f5b8e35..5776e9b 100644
--- a/bin/varnishtest/vtc.h
+++ b/bin/varnishtest/vtc.h
@@ -91,7 +91,8 @@ int http_process(struct vtclog *vl, const char *spec, int sock, int *sfd,
 
 char * synth_body(const char *len, int rnd);
 
-void cmd_server_genvcl(struct vsb *vsb);
+void cmd_server_gen_vcl(struct vsb *vsb);
+void cmd_server_gen_haproxy_conf(struct vsb *vsb);
 
 void vtc_loginit(char *buf, unsigned buflen);
 struct vtclog *vtc_logopen(const char *id);
diff --git a/bin/varnishtest/vtc_server.c b/bin/varnishtest/vtc_server.c
index 9496046..a339a7f 100644
--- a/bin/varnishtest/vtc_server.c
+++ b/bin/varnishtest/vtc_server.c
@@ -386,7 +386,7 @@ server_wait(struct server *s)
  */
 
 void
-cmd_server_genvcl(struct vsb *vsb)
+cmd_server_gen_vcl(struct vsb *vsb)
 {
 	struct server *s;
 
@@ -407,6 +407,39 @@ cmd_server_genvcl(struct vsb *vsb)
 
 
 /**********************************************************************
+ * Generate VCL backend decls for our servers
+ */
+
+void
+cmd_server_gen_haproxy_conf(struct vsb *vsb)
+{
+	struct server *s;
+
+	AZ(pthread_mutex_lock(&server_mtx));
+	VTAILQ_FOREACH(s, &servers, list) {
+		if (*s->listen != '/')
+			VSB_printf(vsb,
+			   "\n    backend be%s\n"
+			   "\tserver srv%s %s:%s\n",
+			   s->name + 1, s->name + 1, s->aaddr, s->aport);
+		else
+			INCOMPL();
+	}
+	VTAILQ_FOREACH(s, &servers, list) {
+		if (*s->listen != '/')
+			VSB_printf(vsb,
+			   "\n    frontend http%s\n"
+			   "\tuse_backend be%s\n"
+			   "\tbind \"fd@${fe%s}\"\n",
+			   s->name + 1, s->name + 1, s->name + 1);
+		else
+			INCOMPL();
+	}
+	AZ(pthread_mutex_unlock(&server_mtx));
+}
+
+
+/**********************************************************************
  * Server command dispatch
  */
 
diff --git a/bin/varnishtest/vtc_varnish.c b/bin/varnishtest/vtc_varnish.c
index d09d7cf..4c2e529 100644
--- a/bin/varnishtest/vtc_varnish.c
+++ b/bin/varnishtest/vtc_varnish.c
@@ -754,7 +754,7 @@ varnish_vclbackend(struct varnish *v, const char *vcl)
 
 	VSB_printf(vsb2, "vcl %.1f;\n", v->syntax);
 
-	cmd_server_genvcl(vsb2);
+	cmd_server_gen_vcl(vsb2);
 
 	AZ(VSB_finish(vsb2));
 


More information about the varnish-commit mailing list