r557 - trunk/varnish-cache/bin/varnishd
phk at projects.linpro.no
phk at projects.linpro.no
Sat Jul 22 12:35:39 CEST 2006
Author: phk
Date: 2006-07-22 12:35:39 +0200 (Sat, 22 Jul 2006)
New Revision: 557
Modified:
trunk/varnish-cache/bin/varnishd/cache.h
trunk/varnish-cache/bin/varnishd/cache_session.c
Log:
Store the socket address in the session
Modified: trunk/varnish-cache/bin/varnishd/cache.h
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache.h 2006-07-22 09:38:09 UTC (rev 556)
+++ trunk/varnish-cache/bin/varnishd/cache.h 2006-07-22 10:35:39 UTC (rev 557)
@@ -207,6 +207,9 @@
struct worker *wrk;
+ unsigned sockaddrlen;
+ struct sockaddr *sockaddr;
+
/* formatted ascii client address */
char addr[TCP_ADDRBUFSIZE];
char port[TCP_PORTBUFSIZE];
Modified: trunk/varnish-cache/bin/varnishd/cache_session.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_session.c 2006-07-22 09:38:09 UTC (rev 556)
+++ trunk/varnish-cache/bin/varnishd/cache_session.c 2006-07-22 10:35:39 UTC (rev 557)
@@ -15,6 +15,7 @@
#include <stdlib.h>
#include <string.h>
#include <sys/uio.h>
+#include <sys/socket.h>
#include "libvarnish.h"
#include "heritage.h"
@@ -27,11 +28,12 @@
/*--------------------------------------------------------------------*/
struct sessmem {
- unsigned magic;
-#define SESSMEM_MAGIC 0x555859c5
+ unsigned magic;
+#define SESSMEM_MAGIC 0x555859c5
- struct sess sess;
- struct http http;
+ struct sess sess;
+ struct http http;
+ struct sockaddr sockaddr[2]; /* INET6 hack */
};
/*--------------------------------------------------------------------*/
@@ -166,8 +168,6 @@
{
struct sessmem *sm;
- (void)addr; /* XXX */
- (void)len; /* XXX */
sm = calloc(
sizeof *sm + heritage.mem_workspace,
1);
@@ -178,6 +178,11 @@
sm->sess.magic = SESS_MAGIC;
sm->sess.mem = sm;
sm->sess.http = &sm->http;
+
+ sm->sess.sockaddr = sm->sockaddr;
+ assert(len < sizeof(sm->sockaddr));
+ memcpy(sm->sess.sockaddr, addr, len);
+ sm->sess.sockaddrlen = len;
http_Setup(&sm->http, (void *)(sm + 1), heritage.mem_workspace);
return (&sm->sess);
}
More information about the varnish-commit
mailing list