[master] 9cfd20660 Generalize VSA_getsockname() to VSA_getpeername()

Nils Goroll nils.goroll at uplex.de
Fri Jan 8 16:54:08 UTC 2021


commit 9cfd2066013bd935a1f6b43a92ad34bdb0cda6d0
Author: Nils Goroll <nils.goroll at uplex.de>
Date:   Fri Jan 8 16:51:05 2021 +0100

    Generalize VSA_getsockname() to VSA_getpeername()

diff --git a/include/vsa.h b/include/vsa.h
index 88b76f866..e9fd9108a 100644
--- a/include/vsa.h
+++ b/include/vsa.h
@@ -43,6 +43,7 @@ int VSA_Compare(const struct suckaddr *, const struct suckaddr *);
 int VSA_Compare_IP(const struct suckaddr *, const struct suckaddr *);
 struct suckaddr *VSA_Clone(const struct suckaddr *sua);
 struct suckaddr *VSA_getsockname(int, void *, size_t);
+struct suckaddr *VSA_getpeername(int, void *, size_t);
 
 const void *VSA_Get_Sockaddr(const struct suckaddr *, socklen_t *sl);
 int VSA_Get_Proto(const struct suckaddr *);
diff --git a/lib/libvarnish/vsa.c b/lib/libvarnish/vsa.c
index 2ff6bdaea..921ff0f04 100644
--- a/lib/libvarnish/vsa.c
+++ b/lib/libvarnish/vsa.c
@@ -419,25 +419,29 @@ VSA_Port(const struct suckaddr *sua)
 	}
 }
 
-/* VSA_Build from socket name of a file descriptor */
-struct suckaddr *
-VSA_getsockname(int fd, void *d, size_t l)
-{
-	struct suckaddr *sua;
-	socklen_t sl;
-	int r;
-
-	AN(d);
-	if (l != vsa_suckaddr_len) {
-		errno = EINVAL;
-		return (NULL);
-	}
-
-	sua = d;
-
-	INIT_OBJ(sua, SUCKADDR_MAGIC);
-	sl = sizeof(sua->sa);
-	r = getsockname(fd, &sua->sa, &sl);
-
-	return (r == 0 ? sua : NULL);
-}
+#define VSA_getname(which)				\
+struct suckaddr *					\
+VSA_get ## which ## name(int fd, void *d, size_t l)	\
+{							\
+	struct suckaddr *sua;				\
+	socklen_t sl;					\
+	int r;						\
+							\
+	AN(d);						\
+	if (l != vsa_suckaddr_len) {			\
+		errno = EINVAL;				\
+		return (NULL);				\
+	}						\
+							\
+	sua = d;					\
+							\
+	INIT_OBJ(sua, SUCKADDR_MAGIC);			\
+	sl = sizeof(sua->sa);				\
+	r = get ## which ## name(fd, &sua->sa, &sl);	\
+							\
+	return (r == 0 ? sua : NULL);			\
+}							\
+
+VSA_getname(sock)
+VSA_getname(peer)
+#undef VSA_getname


More information about the varnish-commit mailing list