[master] 63d6667 Move suckaddr all the way through backends (I think...)
Poul-Henning Kamp
phk at varnish-cache.org
Sun Oct 27 22:45:30 CET 2013
commit 63d66674a84ff86ff957444dccb2e341403a6362
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Sun Oct 27 21:45:10 2013 +0000
Move suckaddr all the way through backends (I think...)
diff --git a/bin/varnishd/cache/cache_backend.c b/bin/varnishd/cache/cache_backend.c
index f626552..9e8a050 100644
--- a/bin/varnishd/cache/cache_backend.c
+++ b/bin/varnishd/cache/cache_backend.c
@@ -108,7 +108,7 @@ VBE_ReleaseConn(struct vbc *vc)
static int
vbe_TryConnect(const struct busyobj *bo, int pf,
- const struct sockaddr_storage *sa, const struct vdi_simple *vs)
+ const struct suckaddr *sa, const struct vdi_simple *vs)
{
int s, i, tmo;
double tmod;
diff --git a/bin/varnishd/cache/cache_backend.h b/bin/varnishd/cache/cache_backend.h
index 265073b..9324dfb 100644
--- a/bin/varnishd/cache/cache_backend.h
+++ b/bin/varnishd/cache/cache_backend.h
@@ -113,8 +113,8 @@ struct backend {
char *ipv6_addr;
char *port;
- struct sockaddr_storage *ipv4;
- struct sockaddr_storage *ipv6;
+ struct suckaddr *ipv4;
+ struct suckaddr *ipv6;
unsigned n_conn;
VTAILQ_HEAD(, vbc) connlist;
@@ -139,7 +139,7 @@ struct vbc {
struct vsl_log *vsl;
int fd;
- struct sockaddr_storage *addr;
+ struct suckaddr *addr;
uint8_t recycled;
diff --git a/bin/varnishd/cache/cache_backend_cfg.c b/bin/varnishd/cache/cache_backend_cfg.c
index 9bd1ff0..63ab402 100644
--- a/bin/varnishd/cache/cache_backend_cfg.c
+++ b/bin/varnishd/cache/cache_backend_cfg.c
@@ -151,13 +151,13 @@ VBE_DropRefConn(struct backend *b)
*/
static void
-copy_sockaddr(struct sockaddr_storage **sa, const void *src)
+copy_sockaddr(struct suckaddr **sa, const struct suckaddr *src)
{
assert(VSA_Sane(src));
- *sa = calloc(sizeof **sa, 1);
+ *sa = calloc(1, vsa_suckaddr_len);
XXXAN(*sa);
- memcpy(*sa, src, VSA_Len(src));
+ memcpy(*sa, src, vsa_suckaddr_len);
assert(VSA_Sane(*sa));
}
diff --git a/bin/varnishd/cache/cache_backend_poll.c b/bin/varnishd/cache/cache_backend_poll.c
index 53d1183..4773785 100644
--- a/bin/varnishd/cache/cache_backend_poll.c
+++ b/bin/varnishd/cache/cache_backend_poll.c
@@ -105,7 +105,7 @@ static struct lock vbp_mtx;
*/
static int
-vbp_connect(int pf, const struct sockaddr_storage *sa, int tmo)
+vbp_connect(int pf, const struct suckaddr *sa, int tmo)
{
int s, i;
diff --git a/include/vsa.h b/include/vsa.h
index 7293547..1e430d6 100644
--- a/include/vsa.h
+++ b/include/vsa.h
@@ -36,7 +36,7 @@ extern const int vsa_suckaddr_len;
int VSA_Sane(const void *);
socklen_t VSA_Len(const void *);
unsigned VSA_Port(const void *);
-int VSA_Compare(const void *, const void *);
+int VSA_Compare(const struct suckaddr *, const struct suckaddr *);
struct suckaddr *VSA_Malloc(const void *s, unsigned sal);
diff --git a/include/vtcp.h b/include/vtcp.h
index 205d9e1..842d897 100644
--- a/include/vtcp.h
+++ b/include/vtcp.h
@@ -28,6 +28,8 @@
*
*/
+struct suckaddr;
+
/* from libvarnish/tcp.c */
/* NI_MAXHOST and NI_MAXSERV are ridiculously long for numeric format */
#define VTCP_ADDRBUFSIZE 64
@@ -67,7 +69,7 @@ int VTCP_check_hup(int sock);
#ifdef SOL_SOCKET
void VTCP_name(const struct sockaddr_storage *addr, unsigned l, char *abuf,
unsigned alen, char *pbuf, unsigned plen);
-int VTCP_connect(int s, const struct sockaddr_storage *name, int msec);
+int VTCP_connect(int s, const struct suckaddr *name, int msec);
void VTCP_close(int *s);
void VTCP_set_read_timeout(int s, double seconds);
#endif
diff --git a/lib/libvarnish/vsa.c b/lib/libvarnish/vsa.c
index 5aadb4f..8bdc73f 100644
--- a/lib/libvarnish/vsa.c
+++ b/lib/libvarnish/vsa.c
@@ -259,17 +259,11 @@ VSA_Len(const void *s)
}
int
-VSA_Compare(const void *s1, const void *s2)
+VSA_Compare(const struct suckaddr *s1, const struct suckaddr *s2)
{
- const struct sockaddr *sa = s1;
-
- switch(sa->sa_family) {
- case PF_INET:
- case PF_INET6:
- return (memcmp(s1, s2, VSA_Len(s1)));
- default:
- return (-1);
- }
+ AN(s1);
+ AN(s2);
+ return (memcmp(s1, s2, vsa_suckaddr_len));
}
unsigned
diff --git a/lib/libvarnish/vtcp.c b/lib/libvarnish/vtcp.c
index b33d306..81a5f27 100644
--- a/lib/libvarnish/vtcp.c
+++ b/lib/libvarnish/vtcp.c
@@ -195,7 +195,7 @@ VTCP_nonblocking(int sock)
*/
int
-VTCP_connect(int s, const struct sockaddr_storage *name, int msec)
+VTCP_connect(int s, const struct suckaddr *name, int msec)
{
int i, k;
socklen_t l;
More information about the varnish-commit
mailing list