[master] cf7304c64 Merge HAproxy support from vtest
Poul-Henning Kamp
phk at FreeBSD.org
Tue Jan 12 08:44:07 UTC 2021
commit cf7304c646d75b74fd84ccd040d2fcefe9c2ef5b
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Mon Jan 11 10:01:15 2021 +0000
Merge HAproxy support from vtest
diff --git a/bin/varnishtest/vtc_haproxy.c b/bin/varnishtest/vtc_haproxy.c
index ca0cb9259..012a89cba 100644
--- a/bin/varnishtest/vtc_haproxy.c
+++ b/bin/varnishtest/vtc_haproxy.c
@@ -45,10 +45,10 @@
#include "vpf.h"
#include "vre.h"
#include "vtcp.h"
-#include "vsa.h"
#include "vtim.h"
#define HAPROXY_PROGRAM_ENV_VAR "HAPROXY_PROGRAM"
+#define HAPROXY_ARGS_ENV_VAR "HAPROXY_ARGS"
#define HAPROXY_OPT_WORKER "-W"
#define HAPROXY_OPT_MCLI "-S"
#define HAPROXY_OPT_DAEMON "-D"
@@ -174,7 +174,7 @@ haproxy_cli_tcp_connect(struct vtclog *vl, const char *addr, double tmo,
const char **errp)
{
int fd;
- char mabuf[VTCP_ADDRBUFSIZE], mpbuf[VTCP_PORTBUFSIZE];
+ char mabuf[32], mpbuf[32];
AN(addr);
AN(errp);
@@ -520,23 +520,16 @@ haproxy_create_mcli(struct haproxy *h)
int sock;
const char *err;
char buf[128], addr[128], port[128];
- char vsabuf[vsa_suckaddr_len];
- struct suckaddr *sua;
- sock = VTCP_listen_on(default_listen_addr, NULL, 100, &err);
+ sock = VTCP_listen_on("127.0.0.1:0", NULL, 100, &err);
if (err != NULL)
vtc_fatal(h->vl,
"Create listen socket failed: %s", err);
assert(sock > 0);
- sua = VSA_getsockname(sock, vsabuf, sizeof vsabuf);
- AN(sua);
- VTCP_name(sua, addr, sizeof addr, port, sizeof port);
+ VTCP_myname(sock, addr, sizeof addr, port, sizeof port);
bprintf(buf, "%s_mcli", h->name);
- if (VSA_Get_Proto(sua) == AF_INET)
- macro_def(h->vl, buf, "sock", "%s:%s", addr, port);
- else
- macro_def(h->vl, buf, "sock", "[%s]:%s", addr, port);
+ macro_def(h->vl, buf, "sock", "%s %s", addr, port);
macro_def(h->vl, buf, "addr", "%s", addr);
macro_def(h->vl, buf, "port", "%s", port);
@@ -566,14 +559,18 @@ haproxy_new(const char *name)
int closed_sock;
char addr[128], port[128];
const char *err;
- char vsabuf[vsa_suckaddr_len];
- struct suckaddr *sua;
+ const char *env_args;
ALLOC_OBJ(h, HAPROXY_MAGIC);
AN(h);
REPLACE(h->name, name);
h->args = VSB_new_auto();
+ env_args = getenv(HAPROXY_ARGS_ENV_VAR);
+ if (env_args) {
+ VSB_cat(h->args, env_args);
+ VSB_cat(h->args, " ");
+ }
h->vl = vtc_logopen("%s", name);
vtc_log_set_cmd(h->vl, haproxy_cli_cmds);
@@ -607,13 +604,8 @@ haproxy_new(const char *name)
vtc_fatal(h->vl,
"Create listen socket failed: %s", err);
assert(closed_sock > 0);
- sua = VSA_getsockname(closed_sock, vsabuf, sizeof vsabuf);
- AN(sua);
- VTCP_name(sua, addr, sizeof addr, port, sizeof port);
- if (VSA_Get_Proto(sua) == AF_INET)
- macro_def(h->vl, h->closed_sock, "sock", "%s:%s", addr, port);
- else
- macro_def(h->vl, h->closed_sock, "sock", "[%s]:%s", addr, port);
+ VTCP_myname(closed_sock, addr, sizeof addr, port, sizeof port);
+ macro_def(h->vl, h->closed_sock, "sock", "%s %s", addr, port);
macro_def(h->vl, h->closed_sock, "addr", "%s", addr);
macro_def(h->vl, h->closed_sock, "port", "%s", port);
VTCP_close(&closed_sock);
@@ -851,8 +843,6 @@ haproxy_build_backends(struct haproxy *h, const char *vsb_data)
int sock;
char buf[128], addr[128], port[128];
const char *err;
- char vsabuf[vsa_suckaddr_len];
- struct suckaddr *sua;
p = strstr(p, HAPROXY_BE_FD_STR);
if (!p)
@@ -870,15 +860,10 @@ haproxy_build_backends(struct haproxy *h, const char *vsb_data)
vtc_fatal(h->vl,
"Create listen socket failed: %s", err);
assert(sock > 0);
- sua = VSA_getsockname(sock, vsabuf, sizeof vsabuf);
- AN(sua);
- VTCP_name(sua, addr, sizeof addr, port, sizeof port);
+ VTCP_myname(sock, addr, sizeof addr, port, sizeof port);
bprintf(buf, "%s_%s", h->name, p);
- if (VSA_Get_Proto(sua) == AF_INET)
- macro_def(h->vl, buf, "sock", "%s:%s", addr, port);
- else
- macro_def(h->vl, buf, "sock", "[%s]:%s", addr, port);
+ macro_def(h->vl, buf, "sock", "%s %s", addr, port);
macro_def(h->vl, buf, "addr", "%s", addr);
macro_def(h->vl, buf, "port", "%s", port);
diff --git a/bin/varnishtest/vtc_misc.c b/bin/varnishtest/vtc_misc.c
index 88437b757..75a4b7c38 100644
--- a/bin/varnishtest/vtc_misc.c
+++ b/bin/varnishtest/vtc_misc.c
@@ -384,7 +384,7 @@ ipvx_works(const char *target)
VTCP_close(&fd);
return (1);
}
- return(0);
+ return(0);
}
/* SECTION: feature feature
More information about the varnish-commit
mailing list