[master] 58aafc2 Allocate client IP/port string from sess->ws
Poul-Henning Kamp
phk at FreeBSD.org
Tue Dec 3 17:38:41 CET 2013
commit 58aafc2a7ee750bada7a64f43378d5c6b7916e86
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Mon Dec 2 12:08:50 2013 +0000
Allocate client IP/port string from sess->ws
diff --git a/bin/varnishd/cache/cache.h b/bin/varnishd/cache/cache.h
index d6e0526..9a6dc78 100644
--- a/bin/varnishd/cache/cache.h
+++ b/bin/varnishd/cache/cache.h
@@ -772,8 +772,8 @@ struct sess {
struct suckaddr *local_addr;
/* formatted ascii client address */
- char addr[ADDR_BUFSIZE];
- char port[PORT_BUFSIZE];
+ char *client_addr_str;
+ char *client_port_str;
struct acct acct_ses;
diff --git a/bin/varnishd/cache/cache_panic.c b/bin/varnishd/cache/cache_panic.c
index 3258033..6f26703 100644
--- a/bin/varnishd/cache/cache_panic.c
+++ b/bin/varnishd/cache/cache_panic.c
@@ -348,7 +348,8 @@ pan_sess(const struct sess *sp)
VSB_printf(pan_vsp, " sp = %p {\n", sp);
VSB_printf(pan_vsp, " fd = %d, vxid = %u,\n",
sp->fd, sp->vxid & VSL_IDENTMASK);
- VSB_printf(pan_vsp, " client = %s %s,\n", sp->addr, sp->port);
+ VSB_printf(pan_vsp, " client = %s %s,\n", sp->client_addr_str,
+ sp->client_port_str);
switch (sp->sess_step) {
#define SESS_STEP(l, u) case S_STP_##u: stp = "S_STP_" #u; break;
#include "tbl/steps.h"
diff --git a/bin/varnishd/cache/cache_req_fsm.c b/bin/varnishd/cache/cache_req_fsm.c
index 5502a4b..af8531f 100644
--- a/bin/varnishd/cache/cache_req_fsm.c
+++ b/bin/varnishd/cache/cache_req_fsm.c
@@ -674,7 +674,8 @@ cnt_recv(struct worker *wrk, struct req *req)
AZ(req->obj);
AZ(req->objcore);
- VSLb(req->vsl, SLT_ReqStart, "%s %s", req->sp->addr, req->sp->port);
+ VSLb(req->vsl, SLT_ReqStart, "%s %s",
+ req->sp->client_addr_str, req->sp->client_port_str);
if (req->err_code) {
req->req_step = R_STP_ERROR;
diff --git a/bin/varnishd/cache/cache_session.c b/bin/varnishd/cache/cache_session.c
index fb488af..23a1feb 100644
--- a/bin/varnishd/cache/cache_session.c
+++ b/bin/varnishd/cache/cache_session.c
@@ -192,12 +192,14 @@ ses_vsl_socket(struct sess *sp, const char *lsockname)
AN(VSA_Build(sp->local_addr, &ss, sl));
assert(VSA_Sane(sp->local_addr));
- VTCP_name(sp->remote_addr,
- sp->addr, sizeof sp->addr, sp->port, sizeof sp->port);
+ VTCP_name(sp->remote_addr, laddr, sizeof laddr, lport, sizeof lport);
+ sp->client_addr_str = WS_Copy(sp->ws, laddr, -1);
+ sp->client_port_str = WS_Copy(sp->ws, lport, -1);
VTCP_name(sp->local_addr, laddr, sizeof laddr, lport, sizeof lport);
VSL(SLT_Begin, sp->vxid, "sess");
VSL(SLT_SessOpen, sp->vxid, "%s %s %s %s %s %.6f %d",
- sp->addr, sp->port, lsockname, laddr, lport, sp->t_open, sp->fd);
+ sp->client_addr_str, sp->client_port_str, lsockname, laddr, lport,
+ sp->t_open, sp->fd);
}
/*--------------------------------------------------------------------
diff --git a/bin/varnishd/cache/cache_vrt_var.c b/bin/varnishd/cache/cache_vrt_var.c
index 5e67e76..a769a06 100644
--- a/bin/varnishd/cache/cache_vrt_var.c
+++ b/bin/varnishd/cache/cache_vrt_var.c
@@ -199,7 +199,7 @@ VRT_r_client_identity(const struct vrt_ctx *ctx)
if (ctx->req->client_identity != NULL)
return (ctx->req->client_identity);
else
- return (ctx->req->sp->addr);
+ return (ctx->req->sp->client_addr_str);
}
void
More information about the varnish-commit
mailing list