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