From 81c5aa4981e810b68fb6ab8f1a254267e455ad36 Mon Sep 17 00:00:00 2001 From: phk Date: Wed, 9 May 2007 12:08:41 +0000 Subject: [PATCH] Use struct sockaddr_storage instead of our own homegrown hack. git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1396 d4fa192b-c00b-0410-8231-f00ffab90ce4 --- varnish-cache/bin/varnishd/cache.h | 4 ++-- varnish-cache/bin/varnishd/cache_acceptor.c | 2 +- varnish-cache/bin/varnishd/cache_vrt.c | 7 ++++--- varnish-cache/bin/varnishd/cache_vrt_acl.c | 2 +- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/varnish-cache/bin/varnishd/cache.h b/varnish-cache/bin/varnishd/cache.h index b91e7145..9d13c1d4 100644 --- a/varnish-cache/bin/varnishd/cache.h +++ b/varnish-cache/bin/varnishd/cache.h @@ -256,9 +256,9 @@ struct sess { struct worker *wrk; unsigned sockaddrlen; - struct sockaddr sockaddr[2]; + struct sockaddr_storage sockaddr[1]; unsigned mysockaddrlen; - struct sockaddr mysockaddr[2]; + struct sockaddr_storage mysockaddr[1]; /* formatted ascii client address */ char addr[TCP_ADDRBUFSIZE]; diff --git a/varnish-cache/bin/varnishd/cache_acceptor.c b/varnish-cache/bin/varnishd/cache_acceptor.c index 3d267e7b..3d79adab 100644 --- a/varnish-cache/bin/varnishd/cache_acceptor.c +++ b/varnish-cache/bin/varnishd/cache_acceptor.c @@ -113,7 +113,7 @@ void VCA_Prep(struct sess *sp) { - TCP_name(sp->sockaddr, sp->sockaddrlen, + TCP_name((struct sockaddr *)sp->sockaddr, sp->sockaddrlen, sp->addr, sizeof sp->addr, sp->port, sizeof sp->port); VSL(SLT_SessionOpen, sp->fd, "%s %s", sp->addr, sp->port); sp->acct.first = sp->t_open.tv_sec; diff --git a/varnish-cache/bin/varnishd/cache_vrt.c b/varnish-cache/bin/varnishd/cache_vrt.c index dddfc358..52bc308b 100644 --- a/varnish-cache/bin/varnishd/cache_vrt.c +++ b/varnish-cache/bin/varnishd/cache_vrt.c @@ -256,7 +256,7 @@ VREQ(proto, HTTP_HDR_PROTO) struct sockaddr * VRT_r_client_ip(struct sess *sp) { - return (sp->sockaddr); + return ((struct sockaddr *)sp->sockaddr); } struct sockaddr * @@ -266,9 +266,10 @@ VRT_r_server_ip(struct sess *sp) if (sp->mysockaddrlen == 0) { l = sizeof sp->mysockaddr; - AZ(getsockname(sp->fd, sp->mysockaddr, &l)); + AZ(getsockname(sp->fd, + (struct sockaddr*)sp->mysockaddr, &l)); sp->mysockaddrlen = l; } - return (sp->mysockaddr); + return ((struct sockaddr*)sp->mysockaddr); } diff --git a/varnish-cache/bin/varnishd/cache_vrt_acl.c b/varnish-cache/bin/varnishd/cache_vrt_acl.c index 9de30f78..9c1544e1 100644 --- a/varnish-cache/bin/varnishd/cache_vrt_acl.c +++ b/varnish-cache/bin/varnishd/cache_vrt_acl.c @@ -104,7 +104,7 @@ VRT_acl_match(struct sess *sp, struct sockaddr *sa, const char *acln, struct vrt for (a1 = ap->priv; a1 != NULL; a1 = a1->ai_next) { /* only match the right family */ - if (a1->ai_family != sp->sockaddr->sa_family) + if (a1->ai_family != sp->sockaddr->ss_family) continue; if (a1->ai_family == AF_INET) { -- 2.39.5