[master] b71cb6a All the _r_ object accessor functions should by definition be able to take a "const struct req *" so enforce this.

Poul-Henning Kamp phk at varnish-cache.org
Mon Jun 18 14:57:56 CEST 2012


commit b71cb6a8ea5b9f4d3788c5e2c535dca9bcd3c5f1
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Mon Jun 18 12:57:25 2012 +0000

    All the _r_ object accessor functions should by definition be able to
    take a "const struct req *" so enforce this.

diff --git a/bin/varnishd/cache/cache_vrt_var.c b/bin/varnishd/cache/cache_vrt_var.c
index 8d325ca..36ff4c6 100644
--- a/bin/varnishd/cache/cache_vrt_var.c
+++ b/bin/varnishd/cache/cache_vrt_var.c
@@ -204,7 +204,7 @@ VBERESP(beresp, unsigned, do_pass, busyobj->do_pass)
 /*--------------------------------------------------------------------*/
 
 const char *
-VRT_r_client_identity(struct req *req)
+VRT_r_client_identity(const struct req *req)
 {
 
 	CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
@@ -238,8 +238,8 @@ VRT_l_bereq_##which(struct req *req, double num)		\
 	req->busyobj->which = (num > 0.0 ? num : 0.0);		\
 }								\
 								\
-double __match_proto__()					\
-VRT_r_bereq_##which(struct req *req)				\
+double								\
+VRT_r_bereq_##which(const struct req *req)			\
 {								\
 								\
 	CHECK_OBJ_NOTNULL(req, REQ_MAGIC);			\
@@ -280,8 +280,8 @@ VRT_r_beresp_backend_port(const struct req *req)
 	return (VTCP_port(req->busyobj->vbc->addr));
 }
 
-const char * __match_proto__()
-VRT_r_beresp_storage(struct req *req)
+const char *
+VRT_r_beresp_storage(const struct req *req)
 {
 	CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
 	if (req->storage_hint != NULL)
@@ -290,7 +290,7 @@ VRT_r_beresp_storage(struct req *req)
 		return (NULL);
 }
 
-void __match_proto__()
+void
 VRT_l_beresp_storage(struct req *req, const char *str, ...)
 {
 	va_list ap;
@@ -314,7 +314,7 @@ VRT_l_req_backend(struct req *req, struct director *be)
 }
 
 struct director *
-VRT_r_req_backend(struct req *req)
+VRT_r_req_backend(const struct req *req)
 {
 
 	CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
@@ -336,7 +336,7 @@ VRT_l_req_esi(struct req *req, unsigned process_esi)
 }
 
 unsigned
-VRT_r_req_esi(struct req *req)
+VRT_r_req_esi(const struct req *req)
 {
 	CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
 	return (!req->disable_esi);
@@ -352,8 +352,8 @@ VRT_r_req_esi_level(const struct req *req)
 
 /*--------------------------------------------------------------------*/
 
-unsigned __match_proto__()
-VRT_r_req_can_gzip(struct req *req)
+unsigned
+VRT_r_req_can_gzip(const struct req *req)
 {
 
 	CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
@@ -378,7 +378,7 @@ VRT_r_req_restarts(const struct req *req)
 
 #define VRT_DO_EXP(which, exp, fld, offset, extra)		\
 								\
-void __match_proto__()						\
+void								\
 VRT_l_##which##_##fld(struct req *req, double a)		\
 {								\
 								\
@@ -389,8 +389,8 @@ VRT_l_##which##_##fld(struct req *req, double a)		\
 	extra;							\
 }								\
 								\
-double __match_proto__()					\
-VRT_r_##which##_##fld(struct req *req)				\
+double								\
+VRT_r_##which##_##fld(const struct req *req)			\
 {								\
 								\
 	CHECK_OBJ_NOTNULL(req, REQ_MAGIC);			\
@@ -432,8 +432,8 @@ VRT_DO_EXP(beresp, req->busyobj->exp, keep, 0,
  * req.xid
  */
 
-const char * __match_proto__()
-VRT_r_req_xid(struct req *req)
+const char *
+VRT_r_req_xid(const struct req *req)
 {
 	char *p;
 	int size;
@@ -448,7 +448,7 @@ VRT_r_req_xid(struct req *req)
 /*--------------------------------------------------------------------*/
 
 #define REQ_BOOL(hash_var)					\
-void __match_proto__()						\
+void								\
 VRT_l_req_##hash_var(struct req *req, unsigned val)		\
 {								\
 								\
@@ -456,8 +456,8 @@ VRT_l_req_##hash_var(struct req *req, unsigned val)		\
 	req->hash_var = val ? 1 : 0;				\
 }								\
 								\
-unsigned __match_proto__()					\
-VRT_r_req_##hash_var(struct req *req)				\
+unsigned							\
+VRT_r_req_##hash_var(const struct req *req)			\
 {								\
 								\
 	CHECK_OBJ_NOTNULL(req, REQ_MAGIC);			\
@@ -470,7 +470,7 @@ REQ_BOOL(hash_always_miss)
 /*--------------------------------------------------------------------*/
 
 struct sockaddr_storage *
-VRT_r_client_ip(struct req *req)
+VRT_r_client_ip(const struct req *req)
 {
 
 	CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
@@ -478,7 +478,7 @@ VRT_r_client_ip(struct req *req)
 }
 
 struct sockaddr_storage *
-VRT_r_server_ip(struct req *req)
+VRT_r_server_ip(const struct req *req)
 {
 	int i;
 
@@ -493,7 +493,7 @@ VRT_r_server_ip(struct req *req)
 }
 
 const char*
-VRT_r_server_identity(struct req *req)
+VRT_r_server_identity(const struct req *req)
 {
 
 	CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
@@ -504,7 +504,7 @@ VRT_r_server_identity(struct req *req)
 }
 
 const char*
-VRT_r_server_hostname(struct req *req)
+VRT_r_server_hostname(const struct req *req)
 {
 
 	CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
@@ -518,7 +518,7 @@ VRT_r_server_hostname(struct req *req)
  */
 
 int
-VRT_r_server_port(struct req *req)
+VRT_r_server_port(const struct req *req)
 {
 	int i;
 
@@ -552,7 +552,7 @@ VRT_r_obj_lastuse(const struct req *req)
 }
 
 unsigned
-VRT_r_req_backend_healthy(struct req *req)
+VRT_r_req_backend_healthy(const struct req *req)
 {
 	CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
 	CHECK_OBJ_NOTNULL(req->director, DIRECTOR_MAGIC);
diff --git a/lib/libvcl/generate.py b/lib/libvcl/generate.py
index c999186..3a1daa1 100755
--- a/lib/libvcl/generate.py
+++ b/lib/libvcl/generate.py
@@ -833,7 +833,7 @@ for i in sp_variables:
 	if len(i[2]) > 0:
 		fo.write('\t    "VRT_r_%s(req)",\n' % cnam)
 		if typ != "HEADER":
-			fh.write(ctyp + " VRT_r_%s(%s);\n" % (cnam, i[4]))
+			fh.write(ctyp + " VRT_r_%s(const %s);\n" % (cnam, i[4]))
 	else:
 		fo.write('\t    NULL,\t/* No reads allowed */\n')
 	restrict(fo, i[2])



More information about the varnish-commit mailing list