[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