Commit ab5b0c83 authored by Poul-Henning Kamp's avatar Poul-Henning Kamp

Convert the remote address of the session to suckaddr too.

parent ff05032e
......@@ -767,8 +767,7 @@ struct sess {
/* Session related fields ------------------------------------*/
socklen_t sockaddrlen;
struct sockaddr_storage sockaddr;
struct suckaddr *their_addr;
struct suckaddr *our_addr;
/* formatted ascii client address */
......
......@@ -51,6 +51,7 @@
#include "vcli.h"
#include "vcli_priv.h"
#include "vsa.h"
#include "vtcp.h"
#include "vtim.h"
......@@ -350,9 +351,9 @@ VCA_SetupSess(struct worker *wrk, struct sess *sp)
sp->fd = wa->acceptsock;
wa->acceptsock = -1;
retval = wa->acceptlsock->name;
assert(wa->acceptaddrlen <= sp->sockaddrlen);
memcpy(&sp->sockaddr, &wa->acceptaddr, wa->acceptaddrlen);
sp->sockaddrlen = wa->acceptaddrlen;
assert(wa->acceptaddrlen <= vsa_suckaddr_len);
sp->their_addr = VSA_Build(sp->their_addr,
&wa->acceptaddr, wa->acceptaddrlen);
vca_pace_good();
wrk->stats.sess_conn++;
WS_Release(wrk->aws, 0);
......
......@@ -97,13 +97,19 @@ static struct sess *
ses_new(struct sesspool *pp)
{
struct sess *sp;
char *s;
CHECK_OBJ_NOTNULL(pp, SESSPOOL_MAGIC);
sp = MPL_Get(pp->mpl_sess, NULL);
sp->magic = SESS_MAGIC;
sp->sesspool = pp;
sp->sockaddrlen = sizeof(sp->sockaddr);
sp->sockaddr.ss_family = PF_UNSPEC;
s = (char *)sp;
s += sizeof *sp;
s += vsa_suckaddr_len;
memset(s, 0, vsa_suckaddr_len);
sp->their_addr = (void*)s;
sp->t_open = NAN;
sp->t_idle = NAN;
sp->our_addr = NULL;
......@@ -197,7 +203,7 @@ ses_vsl_socket(struct sess *sp, const char *lsockname)
CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);
AN(lsockname);
VTCP_name(&sp->sockaddr, sp->sockaddrlen,
VTCP_name((const void *)sp->their_addr, vsa_suckaddr_len,
sp->addr, sizeof sp->addr, sp->port, sizeof sp->port);
if (cache_param->log_local_addr) {
SES_Get_Our_Addr(sp);
......
......@@ -540,7 +540,7 @@ VRT_r_client_ip(const struct vrt_ctx *ctx)
CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
CHECK_OBJ_NOTNULL(ctx->req, REQ_MAGIC);
return (&ctx->req->sp->sockaddr);
return (ctx->req->sp->their_addr);
}
VCL_IP
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment