[master] 2f6eaf09e Propagate the type of the connected to address all the way down
Poul-Henning Kamp
phk at FreeBSD.org
Thu Jan 7 13:00:08 UTC 2021
commit 2f6eaf09ee6fa55f842bd13fb4b23bdeef9f7122
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Thu Jan 7 11:49:03 2021 +0000
Propagate the type of the connected to address all the way down
diff --git a/bin/varnishd/cache/cache_backend.c b/bin/varnishd/cache/cache_backend.c
index fcd8b0c90..1a91c2753 100644
--- a/bin/varnishd/cache/cache_backend.c
+++ b/bin/varnishd/cache/cache_backend.c
@@ -341,7 +341,7 @@ vbe_dir_getip(VRT_CTX, VCL_BACKEND d)
CHECK_OBJ_NOTNULL(ctx->bo->htc, HTTP_CONN_MAGIC);
pfd = ctx->bo->htc->priv;
- return (VTP_getip(pfd));
+ return (VTP_GetIp(pfd));
}
/*--------------------------------------------------------------------*/
diff --git a/bin/varnishd/cache/cache_backend_probe.c b/bin/varnishd/cache/cache_backend_probe.c
index 4ff2ff7ce..8fb53d756 100644
--- a/bin/varnishd/cache/cache_backend_probe.c
+++ b/bin/varnishd/cache/cache_backend_probe.c
@@ -285,7 +285,7 @@ vbp_poke(struct vbp_target *vt)
t_start = t_now = VTIM_real();
t_end = t_start + vt->timeout;
- s = VTP_Open(vt->tcp_pool, t_end - t_now, (const void **)&sa, &err);
+ s = VTP_Open(vt->tcp_pool, t_end - t_now, &sa, &err);
if (s < 0) {
bprintf(vt->resp_buf, "Open error %d (%s)", err, vstrerror(err));
Lck_Lock(&vbp_mtx);
diff --git a/bin/varnishd/cache/cache_tcp_pool.c b/bin/varnishd/cache/cache_tcp_pool.c
index 6b1f4228a..31ddd9118 100644
--- a/bin/varnishd/cache/cache_tcp_pool.c
+++ b/bin/varnishd/cache/cache_tcp_pool.c
@@ -58,7 +58,7 @@ struct pfd {
#define PFD_MAGIC 0x0c5e6593
int fd;
VTAILQ_ENTRY(pfd) list;
- const void *priv;
+ VCL_IP addr;
uint8_t state;
struct waited waited[1];
struct conn_pool *conn_pool;
@@ -69,8 +69,7 @@ struct pfd {
/*--------------------------------------------------------------------
*/
-typedef int cp_open_f(const struct conn_pool *, vtim_dur tmo,
- const void **privp);
+typedef int cp_open_f(const struct conn_pool *, vtim_dur tmo, VCL_IP *ap);
typedef void cp_close_f(struct pfd *);
typedef void cp_name_f(const struct pfd *, char *, unsigned, char *, unsigned);
@@ -374,7 +373,7 @@ VCP_Recycle(const struct worker *wrk, struct pfd **pfdp)
*/
static int
-VCP_Open(struct conn_pool *cp, vtim_dur tmo, const void **privp, int *err)
+VCP_Open(struct conn_pool *cp, vtim_dur tmo, VCL_IP *ap, int *err)
{
int r;
vtim_mono h;
@@ -401,7 +400,7 @@ VCP_Open(struct conn_pool *cp, vtim_dur tmo, const void **privp, int *err)
return (-1);
}
- r = cp->methods->open(cp, tmo, privp);
+ r = cp->methods->open(cp, tmo, ap);
*err = errno;
@@ -518,7 +517,7 @@ VCP_Get(struct conn_pool *cp, vtim_dur tmo, struct worker *wrk,
INIT_OBJ(pfd->waited, WAITED_MAGIC);
pfd->state = PFD_STATE_USED;
pfd->conn_pool = cp;
- pfd->fd = VCP_Open(cp, tmo, &pfd->priv, err);
+ pfd->fd = VCP_Open(cp, tmo, &pfd->addr, err);
if (pfd->fd < 0) {
FREE_OBJ(pfd);
Lck_Lock(&cp->mtx);
@@ -572,7 +571,7 @@ tmo2msec(vtim_dur tmo)
}
static int v_matchproto_(cp_open_f)
-vtp_open(const struct conn_pool *cp, vtim_dur tmo, const void **privp)
+vtp_open(const struct conn_pool *cp, vtim_dur tmo, VCL_IP *ap)
{
int s;
int msec;
@@ -583,17 +582,17 @@ vtp_open(const struct conn_pool *cp, vtim_dur tmo, const void **privp)
msec = tmo2msec(tmo);
if (cache_param->prefer_ipv6) {
- *privp = tp->ip6;
+ *ap = tp->ip6;
s = VTCP_connect(tp->ip6, msec);
if (s >= 0)
return (s);
}
- *privp = tp->ip4;
+ *ap = tp->ip4;
s = VTCP_connect(tp->ip4, msec);
if (s >= 0)
return (s);
if (!cache_param->prefer_ipv6) {
- *privp = tp->ip6;
+ *ap = tp->ip6;
s = VTCP_connect(tp->ip6, msec);
}
return (s);
@@ -634,7 +633,7 @@ static const struct cp_methods vtp_methods = {
*/
static int v_matchproto_(cp_open_f)
-vus_open(const struct conn_pool *cp, vtim_dur tmo, const void **privp)
+vus_open(const struct conn_pool *cp, vtim_dur tmo, VCL_IP *ap)
{
int s;
int msec;
@@ -645,7 +644,7 @@ vus_open(const struct conn_pool *cp, vtim_dur tmo, const void **privp)
AN(tp->uds);
msec = tmo2msec(tmo);
- *privp = bogo_ip;
+ *ap = bogo_ip;
s = VUS_connect(tp->uds, msec);
return (s);
}
@@ -766,9 +765,9 @@ VTP_Rel(struct tcp_pool **tpp)
*/
int
-VTP_Open(struct tcp_pool *tp, vtim_dur tmo, const void **privp, int *err)
+VTP_Open(struct tcp_pool *tp, vtim_dur tmo, VCL_IP *ap, int *err)
{
- return (VCP_Open(tp->cp, tmo, privp, err));
+ return (VCP_Open(tp->cp, tmo, ap, err));
}
/*--------------------------------------------------------------------
@@ -817,14 +816,12 @@ VTP_Wait(struct worker *wrk, struct pfd *pfd, vtim_real tmo)
/*--------------------------------------------------------------------
*/
-const struct suckaddr *
-VTP_getip(struct pfd *pfd)
+VCL_IP
+VTP_GetIp(struct pfd *pfd)
{
- struct tcp_pool *tp;
CHECK_OBJ_NOTNULL(pfd, PFD_MAGIC);
- CAST_OBJ_NOTNULL(tp, pfd->conn_pool->priv, TCP_POOL_MAGIC);
- return (pfd->priv);
+ return (pfd->addr);
}
/*--------------------------------------------------------------------*/
diff --git a/bin/varnishd/cache/cache_tcp_pool.h b/bin/varnishd/cache/cache_tcp_pool.h
index 0cbaa094d..01fc952cb 100644
--- a/bin/varnishd/cache/cache_tcp_pool.h
+++ b/bin/varnishd/cache/cache_tcp_pool.h
@@ -73,7 +73,7 @@ void VTP_Rel(struct tcp_pool **);
* the pool is destroyed and all cached connections closed.
*/
-int VTP_Open(struct tcp_pool *, vtim_dur tmo, const void **, int*);
+int VTP_Open(struct tcp_pool *, vtim_dur tmo, VCL_IP *, int*);
/*
* Open a new connection and return the address used.
* errno will be returned in the last argument.
@@ -104,5 +104,5 @@ int VTP_Wait(struct worker *, struct pfd *, vtim_real tmo);
void VTP_panic(struct vsb *, struct tcp_pool *);
-const struct suckaddr *VTP_getip(struct pfd *);
+VCL_IP VTP_GetIp(struct pfd *);
More information about the varnish-commit
mailing list