[master] 1d670e2f0 VCL xid variables should be integers

Nils Goroll nils.goroll at uplex.de
Wed Oct 26 22:04:15 UTC 2022


commit 1d670e2f04a4ff13615c7e6a4ee800e4ba8ebaf2
Author: Nils Goroll <nils.goroll at uplex.de>
Date:   Wed Oct 26 23:52:26 2022 +0200

    VCL xid variables should be integers
    
    Due to string folding, I expect this change to be fully backwards compatible
    - even with std.integert(req.xid) as proven by the vtcs which I am about to
    change.

diff --git a/bin/varnishd/cache/cache_vrt_var.c b/bin/varnishd/cache/cache_vrt_var.c
index d3880f4af..97e74b9bf 100644
--- a/bin/varnishd/cache/cache_vrt_var.c
+++ b/bin/varnishd/cache/cache_vrt_var.c
@@ -767,7 +767,7 @@ VRT_DO_AGE_R(beresp, ctx->bo->fetch_objcore)
  * [[be]req|sess].xid
  */
 
-VCL_STRING
+VCL_INT
 VRT_r_req_xid(VRT_CTX)
 {
 
@@ -775,12 +775,10 @@ VRT_r_req_xid(VRT_CTX)
 	CHECK_OBJ_NOTNULL(ctx->req, REQ_MAGIC);
 	CHECK_OBJ_NOTNULL(ctx->req->http, HTTP_MAGIC);
 	AN(ctx->req->vsl);
-
-	return (WS_Printf(ctx->req->http->ws, "%ju",
-	    VXID(ctx->req->vsl->wid)));
+	return (VXID(ctx->req->vsl->wid));
 }
 
-VCL_STRING
+VCL_INT
 VRT_r_bereq_xid(VRT_CTX)
 {
 
@@ -788,10 +786,10 @@ VRT_r_bereq_xid(VRT_CTX)
 	CHECK_OBJ_NOTNULL(ctx->bo, BUSYOBJ_MAGIC);
 	AN(ctx->bo->vsl);
 
-	return (WS_Printf(ctx->ws, "%ju", VXID(ctx->bo->vsl->wid)));
+	return (VXID(ctx->bo->vsl->wid));
 }
 
-VCL_STRING
+VCL_INT
 VRT_r_sess_xid(VRT_CTX)
 {
 	struct sess *sp;
@@ -807,7 +805,7 @@ VRT_r_sess_xid(VRT_CTX)
 	}
 
 	CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);
-	return (WS_Printf(ctx->ws, "%ju", VXID(sp->vxid)));
+	return (VXID(sp->vxid));
 }
 
 /*--------------------------------------------------------------------
diff --git a/doc/sphinx/reference/vcl_var.rst b/doc/sphinx/reference/vcl_var.rst
index d97016976..bf307edd2 100644
--- a/doc/sphinx/reference/vcl_var.rst
+++ b/doc/sphinx/reference/vcl_var.rst
@@ -434,7 +434,7 @@ req.url
 
 req.xid
 
-	Type: STRING
+	Type: INT
 
 	Readable from: client
 
@@ -720,7 +720,7 @@ bereq.url
 
 bereq.xid
 
-	Type: STRING
+	Type: INT
 
 	Readable from: vcl_pipe, backend
 
@@ -1488,7 +1488,7 @@ sess.timeout_linger
 
 sess.xid	``VCL >= 4.1``
 
-	Type: STRING
+	Type: INT
 
 	Readable from: client, backend
 


More information about the varnish-commit mailing list