[master] c73544e Make VTCP_name() take a suckaddr.

Poul-Henning Kamp phk at varnish-cache.org
Mon Oct 28 08:54:18 CET 2013


commit c73544e44cdbaaaec6396f5f66b47f32a486d326
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Mon Oct 28 07:54:02 2013 +0000

    Make VTCP_name() take a suckaddr.

diff --git a/bin/varnishd/cache/cache_session.c b/bin/varnishd/cache/cache_session.c
index e27ed68..3d1964a 100644
--- a/bin/varnishd/cache/cache_session.c
+++ b/bin/varnishd/cache/cache_session.c
@@ -203,11 +203,11 @@ ses_vsl_socket(struct sess *sp, const char *lsockname)
 	CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);
 	AN(lsockname);
 
-	VTCP_name((const void *)sp->their_addr, vsa_suckaddr_len,
+	VTCP_name(sp->their_addr,
 	    sp->addr, sizeof sp->addr, sp->port, sizeof sp->port);
 	if (cache_param->log_local_addr) {
 		SES_Get_Our_Addr(sp);
-		VTCP_name((const void*)sp->our_addr, vsa_suckaddr_len,
+		VTCP_name(sp->our_addr,
 		    laddr, sizeof laddr, lport, sizeof lport);
 	} else {
 		strcpy(laddr, "-");
diff --git a/bin/varnishd/cache/cache_vrt.c b/bin/varnishd/cache/cache_vrt.c
index 280118b..1f58a1d 100644
--- a/bin/varnishd/cache/cache_vrt.c
+++ b/bin/varnishd/cache/cache_vrt.c
@@ -43,7 +43,6 @@
 #include "vcl.h"
 #include "vrt.h"
 #include "vrt_obj.h"
-#include "vsa.h"
 #include "vtcp.h"
 #include "vtim.h"
 
@@ -304,7 +303,7 @@ VRT_IP_string(const struct vrt_ctx *ctx, VCL_IP ip)
 	CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
 	len = WS_Reserve(ctx->ws, 0);
 	p = ctx->ws->r;
-	VTCP_name(ip, VSA_Len(ip), p, len, NULL, 0);
+	VTCP_name(ip, p, len, NULL, 0);
 	WS_Release(ctx->ws, strlen(p) + 1);
 	return (p);
 }
diff --git a/include/vtcp.h b/include/vtcp.h
index 842d897..d89d383 100644
--- a/include/vtcp.h
+++ b/include/vtcp.h
@@ -67,8 +67,8 @@ int VTCP_linger(int sock, int linger);
 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);
+void VTCP_name(const struct suckaddr *addr, char *abuf, unsigned alen,
+    char *pbuf, unsigned plen);
 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);
diff --git a/lib/libvarnish/vtcp.c b/lib/libvarnish/vtcp.c
index 81a5f27..282d5f5 100644
--- a/lib/libvarnish/vtcp.c
+++ b/lib/libvarnish/vtcp.c
@@ -55,14 +55,13 @@
 #include "vtcp.h"
 
 /*--------------------------------------------------------------------*/
-
-void
-VTCP_name(const struct sockaddr_storage *addr, unsigned l,
-    char *abuf, unsigned alen, char *pbuf, unsigned plen)
+static void
+vtcp_sa_to_ascii(const void *sa, socklen_t l, char *abuf, unsigned alen,
+    char *pbuf, unsigned plen)
 {
 	int i;
 
-	i = getnameinfo((const void *)addr, l, abuf, alen, pbuf, plen,
+	i = getnameinfo(sa, l, abuf, alen, pbuf, plen,
 	   NI_NUMERICHOST | NI_NUMERICSERV);
 	if (i) {
 		/*
@@ -85,6 +84,19 @@ VTCP_name(const struct sockaddr_storage *addr, unsigned l,
 /*--------------------------------------------------------------------*/
 
 void
+VTCP_name(const struct suckaddr *addr, char *abuf, unsigned alen,
+    char *pbuf, unsigned plen)
+{
+	const struct sockaddr *sa;
+	socklen_t sl;
+
+	sa = VSA_Get_Sockaddr(addr, &sl);
+	vtcp_sa_to_ascii(sa, sl, abuf, alen, pbuf, plen);
+}
+
+/*--------------------------------------------------------------------*/
+
+void
 VTCP_myname(int sock, char *abuf, unsigned alen, char *pbuf, unsigned plen)
 {
 	struct sockaddr_storage addr_s;
@@ -92,8 +104,9 @@ VTCP_myname(int sock, char *abuf, unsigned alen, char *pbuf, unsigned plen)
 
 	l = sizeof addr_s;
 	AZ(getsockname(sock, (void *)&addr_s, &l));
-	VTCP_name(&addr_s, l, abuf, alen, pbuf, plen);
+	vtcp_sa_to_ascii(&addr_s, l, abuf, alen, pbuf, plen);
 }
+
 /*--------------------------------------------------------------------*/
 
 void
@@ -104,7 +117,7 @@ VTCP_hisname(int sock, char *abuf, unsigned alen, char *pbuf, unsigned plen)
 
 	l = sizeof addr_s;
 	if (!getpeername(sock, (void*)&addr_s, &l))
-		VTCP_name(&addr_s, l, abuf, alen, pbuf, plen);
+		vtcp_sa_to_ascii(&addr_s, l, abuf, alen, pbuf, plen);
 	else {
 		(void)snprintf(abuf, alen, "<none>");
 		(void)snprintf(pbuf, plen, "<none>");



More information about the varnish-commit mailing list