r1659 - in trunk/varnish-cache: bin/varnishd include lib/libvcl

phk at projects.linpro.no phk at projects.linpro.no
Mon Jul 9 22:23:41 CEST 2007


Author: phk
Date: 2007-07-09 22:23:41 +0200 (Mon, 09 Jul 2007)
New Revision: 1659

Modified:
   trunk/varnish-cache/bin/varnishd/cache.h
   trunk/varnish-cache/bin/varnishd/cache_http.c
   trunk/varnish-cache/bin/varnishd/cache_vrt.c
   trunk/varnish-cache/include/shmlog_tags.h
   trunk/varnish-cache/include/vrt_obj.h
   trunk/varnish-cache/lib/libvcl/vcc_action.c
   trunk/varnish-cache/lib/libvcl/vcc_fixed_token.c
   trunk/varnish-cache/lib/libvcl/vcc_gen_obj.tcl
   trunk/varnish-cache/lib/libvcl/vcc_obj.c
Log:
Make all protocol header fields writable, except obj.status and resp.status
(which are numeric, they'll follow shortly)

Unify the shmemlog tag used for failure to rewrite something, the Rx/Tx/Obj
distinction is not helpful enough to warrant the complexity of it.






Modified: trunk/varnish-cache/bin/varnishd/cache.h
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache.h	2007-07-06 10:07:30 UTC (rev 1658)
+++ trunk/varnish-cache/bin/varnishd/cache.h	2007-07-09 20:23:41 UTC (rev 1659)
@@ -412,6 +412,7 @@
 void http_PutResponse(struct worker *w, int fd, struct http *to, const char *response);
 void http_PrintfHeader(struct worker *w, int fd, struct http *to, const char *fmt, ...);
 void http_SetHeader(struct worker *w, int fd, struct http *to, const char *hdr);
+void http_SetH(struct http *to, unsigned n, const char *fm);
 void http_Setup(struct http *ht, void *space, unsigned len);
 int http_GetHdr(struct http *hp, const char *hdr, char **ptr);
 int http_GetHdrField(struct http *hp, const char *hdr, const char *field, char **ptr);
@@ -428,7 +429,6 @@
 void http_DoConnection(struct sess *sp);
 void http_CopyHome(struct worker *w, int fd, struct http *hp);
 void http_Unset(struct http *hp, const char *hdr);
-void http_LogLostHeader(struct worker *w, int fd, struct http *hp, const char *hdr);
 
 
 #define HTTPH(a, b, c, d, e, f, g) extern char b[];

Modified: trunk/varnish-cache/bin/varnishd/cache_http.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_http.c	2007-07-06 10:07:30 UTC (rev 1658)
+++ trunk/varnish-cache/bin/varnishd/cache_http.c	2007-07-09 20:23:41 UTC (rev 1659)
@@ -58,7 +58,6 @@
 	HTTP_T_URL,
 	HTTP_T_Protocol,
 	HTTP_T_Header,
-	HTTP_T_LostHeader,
 };
 
 #define LOGMTX2(ax, bx) 	\
@@ -71,7 +70,6 @@
 	LOGMTX2(ax, URL),	\
 	LOGMTX2(ax, Protocol),	\
 	LOGMTX2(ax, Header),	\
-	LOGMTX2(ax, LostHeader)	\
 	}
 
 static enum shmlogtag logmtx[3][7] = {
@@ -86,7 +84,7 @@
 
 	CHECK_OBJ_NOTNULL(hp, HTTP_MAGIC);
 	assert(/* hp->logtag >= HTTP_Rx && */hp->logtag <= HTTP_Obj);
-	assert(/* t >= HTTP_T_Request && */t <= HTTP_T_LostHeader);
+	assert(/* t >= HTTP_T_Request && */t <= HTTP_T_Header);
 	return (logmtx[hp->logtag][t]);
 }
 
@@ -97,12 +95,6 @@
 	WSLR(w, http2shmlog(hp, t), fd, hp->hd[hdr].b, hp->hd[hdr].e);
 }
 
-void
-http_LogLostHeader(struct worker *w, int fd, struct http *hp, const char *hdr)
-{
-	WSLR(w, http2shmlog(hp, HTTP_T_LostHeader), fd, hdr + 1, hdr + hdr[0]);
-}
-
 /*--------------------------------------------------------------------*/
 /* List of canonical HTTP response code names from RFC2616 */
 
@@ -430,7 +422,7 @@
 			hp->nhd++;
 		} else {
 			VSL_stats->losthdr++;
-			WSLR(w, http2shmlog(hp, HTTP_T_LostHeader), fd, p, q);
+			WSLR(w, SLT_LostHeader, fd, p, q);
 		}
 	}
 	return (0);
@@ -686,8 +678,8 @@
 
 /*--------------------------------------------------------------------*/
 
-static void
-http_seth(struct http *to, unsigned n, const char *fm)
+void
+http_SetH(struct http *to, unsigned n, const char *fm)
 {
 
 	assert(n < HTTP_HDR_MAX);
@@ -715,11 +707,11 @@
 	CHECK_OBJ_NOTNULL(fm, HTTP_MAGIC);
 	CHECK_OBJ_NOTNULL(to, HTTP_MAGIC);
 	if (forceget)
-		http_seth(to, HTTP_HDR_REQ, "GET");
+		http_SetH(to, HTTP_HDR_REQ, "GET");
 	else
 		http_copyh(to, fm, HTTP_HDR_REQ);
 	http_copyh(to, fm, HTTP_HDR_URL);
-	http_seth(to, HTTP_HDR_PROTO, "HTTP/1.1");
+	http_SetH(to, HTTP_HDR_PROTO, "HTTP/1.1");
 }
 
 void
@@ -729,7 +721,7 @@
 	CHECK_OBJ_NOTNULL(fm, HTTP_MAGIC);
 	CHECK_OBJ_NOTNULL(to, HTTP_MAGIC);
 	if (params->client_http11)
-		http_seth(to, HTTP_HDR_PROTO, "HTTP/1.1");
+		http_SetH(to, HTTP_HDR_PROTO, "HTTP/1.1");
 	else
 		http_copyh(to, fm, HTTP_HDR_PROTO);
 	http_copyh(to, fm, HTTP_HDR_STATUS);
@@ -741,9 +733,9 @@
 {
 
 	CHECK_OBJ_NOTNULL(to, HTTP_MAGIC);
-	http_seth(to, HTTP_HDR_PROTO, proto);
-	http_seth(to, HTTP_HDR_STATUS, status);
-	http_seth(to, HTTP_HDR_RESPONSE, response);
+	http_SetH(to, HTTP_HDR_PROTO, proto);
+	http_SetH(to, HTTP_HDR_STATUS, status);
+	http_SetH(to, HTTP_HDR_RESPONSE, response);
 }
 
 static void
@@ -760,7 +752,7 @@
 		to->nhd++;
 	} else  {
 		VSL_stats->losthdr++;
-		WSLH(w, HTTP_T_LostHeader, fd, fm, n);
+		WSLH(w, SLT_LostHeader, fd, fm, n);
 	}
 }
 
@@ -853,7 +845,7 @@
 			hp->hd[u].b = p;
 			hp->hd[u].e = p + l;
 		} else {
-			WSLH(w, HTTP_T_LostHeader, fd, hp, u);
+			WSLH(w, SLT_LostHeader, fd, hp, u);
 			hp->hd[u].b = NULL;
 			hp->hd[u].e = NULL;
 		}
@@ -881,10 +873,10 @@
 	CHECK_OBJ_NOTNULL(to, HTTP_MAGIC);
 	if (to->nhd >= HTTP_HDR_MAX) {
 		VSL_stats->losthdr++;
-		WSL(w, http2shmlog(to, HTTP_T_LostHeader), fd, "%s", hdr);
+		WSL(w, SLT_LostHeader, fd, "%s", hdr);
 		return;
 	}
-	http_seth(to, to->nhd++, hdr);
+	http_SetH(to, to->nhd++, hdr);
 }
 
 /*--------------------------------------------------------------------*/
@@ -901,7 +893,7 @@
 	l = (e - string);
 	p = WS_Alloc(to->ws, l + 1);
 	if (p == NULL) {
-		WSL(w, http2shmlog(to, HTTP_T_LostHeader), fd, "%s", string);
+		WSL(w, SLT_LostHeader, fd, "%s", string);
 		to->hd[field].b = NULL;
 		to->hd[field].e = NULL;
 	} else {
@@ -948,7 +940,7 @@
 	va_end(ap);
 	if (n + 1 >= l || to->nhd >= HTTP_HDR_MAX) {
 		VSL_stats->losthdr++;
-		WSL(w, http2shmlog(to, HTTP_T_LostHeader), fd, "%s", to->ws->f);
+		WSL(w, SLT_LostHeader, fd, "%s", to->ws->f);
 		WS_Release(to->ws, 0);
 	} else {
 		to->hd[to->nhd].b = to->ws->f;

Modified: trunk/varnish-cache/bin/varnishd/cache_vrt.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_vrt.c	2007-07-06 10:07:30 UTC (rev 1658)
+++ trunk/varnish-cache/bin/varnishd/cache_vrt.c	2007-07-09 20:23:41 UTC (rev 1659)
@@ -112,14 +112,41 @@
 
 /*--------------------------------------------------------------------*/
 
+static char *
+vrt_assemble_string(struct http *hp, const char *p, va_list ap)
+{
+	char *b, *e;
+	unsigned u, x;
+
+	u = WS_Reserve(hp->ws, 0);
+	e = b = hp->ws->f;
+	*e = '\0';
+	while (p != NULL) {
+		x = strlen(p);
+		if (x + 1 < u)
+			memcpy(e, p, x);
+		e += x;
+		p = va_arg(ap, const char *);
+	}
+	*e = '\0';
+	if (e > b + u) {
+		WS_Release(hp->ws, 0);
+		return (NULL);
+	} else {
+		WS_Release(hp->ws, 1 + e - b);
+		return (b);
+	}
+}
+
+/*--------------------------------------------------------------------*/
+
 void
 VRT_SetHdr(struct sess *sp , enum gethdr_e where, const char *hdr, ...)
 {
 	struct http *hp;
 	va_list ap;
 	const char *p;
-	char *b, *e;
-	unsigned u, x;
+	char *b;
 
 	CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);
 	hp = vrt_selecthttp(sp, where);
@@ -128,29 +155,10 @@
 	if (p == NULL) {
 		http_Unset(hp, hdr);
 	} else {
-		u = WS_Reserve(hp->ws, 0);
-		e = b = hp->ws->f;
-		*e = '\0';
-		x = strlen(hdr + 1);
-		if (x + 1 < u)
-			memcpy(e, hdr + 1, x);
-		e += x;
-		if (1 + 1 < u)
-			*e++ = ' ';
-		while (p != NULL) {
-			x = strlen(p);
-			if (x + 1 < u)
-				memcpy(e, p, x);
-			e += x;
-			p = va_arg(ap, const char *);
-		}
-		*e = '\0';
-		if (e > b + u) {
-			http_LogLostHeader(sp->wrk, sp->fd, hp, hdr);
-			WS_Release(hp->ws, 0);
-			
+		b = vrt_assemble_string(hp, p, ap);
+		if (b == NULL) {
+			VSL(SLT_LostHeader, sp->fd, hdr + 1);
 		} else {
-			WS_Release(hp->ws, 1 + e - b);
 			http_Unset(hp, hdr);
 			http_SetHeader(sp->wrk, sp->fd, hp, b);
 		}
@@ -160,6 +168,52 @@
 
 /*--------------------------------------------------------------------*/
 
+static void
+vrt_do_string(struct worker *w, int fd, struct http *hp, int fld, const char *err, const char *p, va_list ap)
+{
+	char *b;
+
+	AN(p);
+	AN(hp);
+	b = vrt_assemble_string(hp, p, ap);
+	if (b == NULL) {
+		WSL(w, SLT_LostHeader, fd, err);
+	} else {
+		http_SetH(hp, fld, b);
+	}
+	va_end(ap);
+}
+
+#define VRT_DO_HDR(obj, hdr, http, fld)				\
+void								\
+VRT_l_##obj##_##hdr(struct sess *sp, const char *p, ...)	\
+{								\
+	va_list ap;						\
+								\
+	AN(p);							\
+	va_start(ap, p);					\
+	vrt_do_string(sp->wrk, sp->fd,				\
+	    http, fld, #obj "." #hdr, p, ap);			\
+	va_end(ap);						\
+}
+
+VRT_DO_HDR(req,   request,	sp->http,		HTTP_HDR_REQ)
+VRT_DO_HDR(req,   url,		sp->http,		HTTP_HDR_URL)
+VRT_DO_HDR(req,   proto,	sp->http,		HTTP_HDR_PROTO)
+VRT_DO_HDR(bereq, request,	sp->bereq->http,	HTTP_HDR_REQ)
+VRT_DO_HDR(bereq, url,		sp->bereq->http,	HTTP_HDR_URL)
+VRT_DO_HDR(bereq, proto,	sp->bereq->http,	HTTP_HDR_PROTO)
+VRT_DO_HDR(obj,   proto,	&sp->obj->http,		HTTP_HDR_PROTO)
+VRT_DO_HDR(obj,   response,	&sp->obj->http,		HTTP_HDR_RESPONSE)
+VRT_DO_HDR(resp,  proto,	sp->bereq->http,	HTTP_HDR_PROTO)
+VRT_DO_HDR(resp,  response,	sp->bereq->http,	HTTP_HDR_RESPONSE)
+
+#if 0
+VRT_DO_HDR(obj,   status,	&sp->obj->http,		HTTP_HDR_STATUS)
+VRT_DO_HDR(resp,  status,	sp->bereq->http,	HTTP_HDR_STATUS)
+#endif
+/*--------------------------------------------------------------------*/
+
 void
 VRT_handling(struct sess *sp, unsigned hand)
 {

Modified: trunk/varnish-cache/include/shmlog_tags.h
===================================================================
--- trunk/varnish-cache/include/shmlog_tags.h	2007-07-06 10:07:30 UTC (rev 1658)
+++ trunk/varnish-cache/include/shmlog_tags.h	2007-07-09 20:23:41 UTC (rev 1659)
@@ -62,7 +62,6 @@
 SLTM(RxURL)
 SLTM(RxProtocol)
 SLTM(RxHeader)
-SLTM(RxLostHeader)
 
 SLTM(TxRequest)
 SLTM(TxResponse)
@@ -70,7 +69,6 @@
 SLTM(TxURL)
 SLTM(TxProtocol)
 SLTM(TxHeader)
-SLTM(TxLostHeader)
 
 SLTM(ObjRequest)
 SLTM(ObjResponse)
@@ -78,8 +76,9 @@
 SLTM(ObjURL)
 SLTM(ObjProtocol)
 SLTM(ObjHeader)
-SLTM(ObjLostHeader)
 
+SLTM(LostHeader)
+
 SLTM(TTL)
 SLTM(VCL_acl)
 SLTM(VCL_call)

Modified: trunk/varnish-cache/include/vrt_obj.h
===================================================================
--- trunk/varnish-cache/include/vrt_obj.h	2007-07-06 10:07:30 UTC (rev 1658)
+++ trunk/varnish-cache/include/vrt_obj.h	2007-07-09 20:23:41 UTC (rev 1659)
@@ -12,23 +12,26 @@
 struct sockaddr * VRT_r_client_ip(struct sess *);
 struct sockaddr * VRT_r_server_ip(struct sess *);
 const char * VRT_r_req_request(struct sess *);
+void VRT_l_req_request(struct sess *, const char *, ...);
 const char * VRT_r_req_url(struct sess *);
+void VRT_l_req_url(struct sess *, const char *, ...);
 const char * VRT_r_req_proto(struct sess *);
+void VRT_l_req_proto(struct sess *, const char *, ...);
 void VRT_l_req_hash(struct sess *, const char *);
 struct backend * VRT_r_req_backend(struct sess *);
 void VRT_l_req_backend(struct sess *, struct backend *);
 const char * VRT_r_bereq_request(struct sess *);
-void VRT_l_bereq_request(struct sess *, const char *);
+void VRT_l_bereq_request(struct sess *, const char *, ...);
 const char * VRT_r_bereq_url(struct sess *);
-void VRT_l_bereq_url(struct sess *, const char *);
+void VRT_l_bereq_url(struct sess *, const char *, ...);
 const char * VRT_r_bereq_proto(struct sess *);
-void VRT_l_bereq_proto(struct sess *, const char *);
+void VRT_l_bereq_proto(struct sess *, const char *, ...);
 const char * VRT_r_obj_proto(struct sess *);
-void VRT_l_obj_proto(struct sess *, const char *);
+void VRT_l_obj_proto(struct sess *, const char *, ...);
 int VRT_r_obj_status(struct sess *);
 void VRT_l_obj_status(struct sess *, int);
 const char * VRT_r_obj_response(struct sess *);
-void VRT_l_obj_response(struct sess *, const char *);
+void VRT_l_obj_response(struct sess *, const char *, ...);
 unsigned VRT_r_obj_valid(struct sess *);
 void VRT_l_obj_valid(struct sess *, unsigned);
 unsigned VRT_r_obj_cacheable(struct sess *);
@@ -37,9 +40,9 @@
 void VRT_l_obj_ttl(struct sess *, double);
 double VRT_r_obj_lastuse(struct sess *);
 const char * VRT_r_resp_proto(struct sess *);
-void VRT_l_resp_proto(struct sess *, const char *);
+void VRT_l_resp_proto(struct sess *, const char *, ...);
 int VRT_r_resp_status(struct sess *);
 void VRT_l_resp_status(struct sess *, int);
 const char * VRT_r_resp_response(struct sess *);
-void VRT_l_resp_response(struct sess *, const char *);
+void VRT_l_resp_response(struct sess *, const char *, ...);
 double VRT_r_now(struct sess *);

Modified: trunk/varnish-cache/lib/libvcl/vcc_action.c
===================================================================
--- trunk/varnish-cache/lib/libvcl/vcc_action.c	2007-07-06 10:07:30 UTC (rev 1658)
+++ trunk/varnish-cache/lib/libvcl/vcc_action.c	2007-07-09 20:23:41 UTC (rev 1659)
@@ -208,14 +208,11 @@
 		}
 		vcc_NextToken(tl);
 		vcc_StringVal(tl);
-		if (vp->hdr != NULL) {
-			while (tl->t->tok != ';') {
-				Fb(tl, 0, ", ");
-				vcc_StringVal(tl);
-			}
-			Fb(tl, 0, ", 0");
+		while (tl->t->tok != ';') {
+			Fb(tl, 0, ", ");
+			vcc_StringVal(tl);
 		}
-		Fb(tl, 0, ");\n");
+		Fb(tl, 0, ", 0);\n");
 		break;
 	default:
 		vsb_printf(tl->sb,

Modified: trunk/varnish-cache/lib/libvcl/vcc_fixed_token.c
===================================================================
--- trunk/varnish-cache/lib/libvcl/vcc_fixed_token.c	2007-07-06 10:07:30 UTC (rev 1658)
+++ trunk/varnish-cache/lib/libvcl/vcc_fixed_token.c	2007-07-09 20:23:41 UTC (rev 1659)
@@ -461,23 +461,26 @@
 	vsb_cat(sb, "struct sockaddr * VRT_r_client_ip(struct sess *);\n");
 	vsb_cat(sb, "struct sockaddr * VRT_r_server_ip(struct sess *);\n");
 	vsb_cat(sb, "const char * VRT_r_req_request(struct sess *);\n");
+	vsb_cat(sb, "void VRT_l_req_request(struct sess *, const char *, ...);\n");
 	vsb_cat(sb, "const char * VRT_r_req_url(struct sess *);\n");
+	vsb_cat(sb, "void VRT_l_req_url(struct sess *, const char *, ...);\n");
 	vsb_cat(sb, "const char * VRT_r_req_proto(struct sess *);\n");
+	vsb_cat(sb, "void VRT_l_req_proto(struct sess *, const char *, ...);\n");
 	vsb_cat(sb, "void VRT_l_req_hash(struct sess *, const char *);\n");
 	vsb_cat(sb, "struct backend * VRT_r_req_backend(struct sess *);\n");
 	vsb_cat(sb, "void VRT_l_req_backend(struct sess *, struct backend *);\n");
 	vsb_cat(sb, "const char * VRT_r_bereq_request(struct sess *);\n");
-	vsb_cat(sb, "void VRT_l_bereq_request(struct sess *, const char *);\n");
+	vsb_cat(sb, "void VRT_l_bereq_request(struct sess *, const char *, ...);\n");
 	vsb_cat(sb, "const char * VRT_r_bereq_url(struct sess *);\n");
-	vsb_cat(sb, "void VRT_l_bereq_url(struct sess *, const char *);\n");
+	vsb_cat(sb, "void VRT_l_bereq_url(struct sess *, const char *, ...);\n");
 	vsb_cat(sb, "const char * VRT_r_bereq_proto(struct sess *);\n");
-	vsb_cat(sb, "void VRT_l_bereq_proto(struct sess *, const char *);\n");
+	vsb_cat(sb, "void VRT_l_bereq_proto(struct sess *, const char *, ...);\n");
 	vsb_cat(sb, "const char * VRT_r_obj_proto(struct sess *);\n");
-	vsb_cat(sb, "void VRT_l_obj_proto(struct sess *, const char *);\n");
+	vsb_cat(sb, "void VRT_l_obj_proto(struct sess *, const char *, ...);\n");
 	vsb_cat(sb, "int VRT_r_obj_status(struct sess *);\n");
 	vsb_cat(sb, "void VRT_l_obj_status(struct sess *, int);\n");
 	vsb_cat(sb, "const char * VRT_r_obj_response(struct sess *);\n");
-	vsb_cat(sb, "void VRT_l_obj_response(struct sess *, const char *);\n");
+	vsb_cat(sb, "void VRT_l_obj_response(struct sess *, const char *, ...);\n");
 	vsb_cat(sb, "unsigned VRT_r_obj_valid(struct sess *);\n");
 	vsb_cat(sb, "void VRT_l_obj_valid(struct sess *, unsigned);\n");
 	vsb_cat(sb, "unsigned VRT_r_obj_cacheable(struct sess *);\n");
@@ -486,10 +489,10 @@
 	vsb_cat(sb, "void VRT_l_obj_ttl(struct sess *, double);\n");
 	vsb_cat(sb, "double VRT_r_obj_lastuse(struct sess *);\n");
 	vsb_cat(sb, "const char * VRT_r_resp_proto(struct sess *);\n");
-	vsb_cat(sb, "void VRT_l_resp_proto(struct sess *, const char *);\n");
+	vsb_cat(sb, "void VRT_l_resp_proto(struct sess *, const char *, ...);\n");
 	vsb_cat(sb, "int VRT_r_resp_status(struct sess *);\n");
 	vsb_cat(sb, "void VRT_l_resp_status(struct sess *, int);\n");
 	vsb_cat(sb, "const char * VRT_r_resp_response(struct sess *);\n");
-	vsb_cat(sb, "void VRT_l_resp_response(struct sess *, const char *);\n");
+	vsb_cat(sb, "void VRT_l_resp_response(struct sess *, const char *, ...);\n");
 	vsb_cat(sb, "double VRT_r_now(struct sess *);\n");
 }

Modified: trunk/varnish-cache/lib/libvcl/vcc_gen_obj.tcl
===================================================================
--- trunk/varnish-cache/lib/libvcl/vcc_gen_obj.tcl	2007-07-06 10:07:30 UTC (rev 1658)
+++ trunk/varnish-cache/lib/libvcl/vcc_gen_obj.tcl	2007-07-09 20:23:41 UTC (rev 1659)
@@ -56,15 +56,15 @@
 
 	# Request paramters
 	{ req.request
-		RO STRING
+		RW STRING
 		{recv pipe pass hash miss hit fetch                        }
 	}
 	{ req.url
-		RO STRING
+		RW STRING
 		{recv pipe pass hash miss hit fetch                        }
 	}
 	{ req.proto
-		RO STRING
+		RW STRING
 		{recv pipe pass hash miss hit fetch                        }
 	}
 	{ req.http.
@@ -231,7 +231,10 @@
 		}
 		if {$a == "WO" || $a == "RW"} {
 			puts $fo  "\t    \"VRT_l_${m}($pa, \","
-			if {$t != "HEADER"} {
+			if {$t == "HEADER"} {
+			} elseif {$t == "STRING"} {
+				puts $fp  "void VRT_l_${m}($ty, $tt($t), ...);"
+			} else {
 				puts $fp  "void VRT_l_${m}($ty, $tt($t));"
 			}
 		} else {

Modified: trunk/varnish-cache/lib/libvcl/vcc_obj.c
===================================================================
--- trunk/varnish-cache/lib/libvcl/vcc_obj.c	2007-07-06 10:07:30 UTC (rev 1658)
+++ trunk/varnish-cache/lib/libvcl/vcc_obj.c	2007-07-09 20:23:41 UTC (rev 1659)
@@ -51,22 +51,22 @@
 	},
 	{ "req.request", STRING, 11,
 	    "VRT_r_req_request(sp)",
-	    NULL,
-	    V_RO,
+	    "VRT_l_req_request(sp, ",
+	    V_RW,
 	    0,
 	    VCL_MET_RECV | VCL_MET_PIPE | VCL_MET_PASS | VCL_MET_HASH | VCL_MET_MISS | VCL_MET_HIT | VCL_MET_FETCH
 	},
 	{ "req.url", STRING, 7,
 	    "VRT_r_req_url(sp)",
-	    NULL,
-	    V_RO,
+	    "VRT_l_req_url(sp, ",
+	    V_RW,
 	    0,
 	    VCL_MET_RECV | VCL_MET_PIPE | VCL_MET_PASS | VCL_MET_HASH | VCL_MET_MISS | VCL_MET_HIT | VCL_MET_FETCH
 	},
 	{ "req.proto", STRING, 9,
 	    "VRT_r_req_proto(sp)",
-	    NULL,
-	    V_RO,
+	    "VRT_l_req_proto(sp, ",
+	    V_RW,
 	    0,
 	    VCL_MET_RECV | VCL_MET_PIPE | VCL_MET_PASS | VCL_MET_HASH | VCL_MET_MISS | VCL_MET_HIT | VCL_MET_FETCH
 	},




More information about the varnish-commit mailing list