[master] b8c2aa5 Add a function to extract a sockaddr and a socklen_t from a suckaddr.
Poul-Henning Kamp
phk at varnish-cache.org
Sun Oct 27 23:23:44 CET 2013
commit b8c2aa5c5b98c7fe43dc378e9f0964845456b278
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Sun Oct 27 22:23:24 2013 +0000
Add a function to extract a sockaddr and a socklen_t from a suckaddr.
diff --git a/include/vsa.h b/include/vsa.h
index 9bad737..d21f3c0 100644
--- a/include/vsa.h
+++ b/include/vsa.h
@@ -38,6 +38,8 @@ socklen_t VSA_Len(const void *);
unsigned VSA_Port(const void *);
int VSA_Compare(const struct suckaddr *, const struct suckaddr *);
+const struct sockaddr *VSA_Get_Sockaddr(const struct suckaddr *, socklen_t *sl);
+
/*
* 's' is a sockaddr of some kind, 'sal' is its length
*/
diff --git a/lib/libvarnish/vsa.c b/lib/libvarnish/vsa.c
index 4dd32b6..97ff0fa 100644
--- a/lib/libvarnish/vsa.c
+++ b/lib/libvarnish/vsa.c
@@ -257,6 +257,24 @@ VSA_Build(void *d, const void *s, unsigned sal)
return (sua);
}
+const struct sockaddr *
+VSA_Get_Sockaddr(const struct suckaddr *sua, socklen_t *sl)
+{
+ AN(sua);
+ AN(sl);
+ switch(sua->sa.sa_family) {
+ case PF_INET:
+ *sl = sizeof sua->sa4;
+ break;
+ case PF_INET6:
+ *sl = sizeof sua->sa6;
+ break;
+ default:
+ return (NULL);
+ }
+ return (&sua->sa);
+}
+
int
VSA_Sane(const void *s)
{
More information about the varnish-commit
mailing list