[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