[master] d09ee6409 vcc: Don't set obj.http.* symbols' lname and uname

Dridi Boukelmoune dridi.boukelmoune at gmail.com
Mon Aug 28 13:02:06 UTC 2023


commit d09ee6409a130b664a078cd051551b2ca7fd23c3
Author: Dridi Boukelmoune <dridi.boukelmoune at gmail.com>
Date:   Mon May 30 06:18:49 2022 +0200

    vcc: Don't set obj.http.* symbols' lname and uname
    
    We don't need to since cache objects are mostly immutable and headers
    are read-only in VCL.
    
    Better diff with the --ignore-all-space option.

diff --git a/lib/libvcc/vcc_var.c b/lib/libvcc/vcc_var.c
index 286949e49..cb0b7e508 100644
--- a/lib/libvcc/vcc_var.c
+++ b/lib/libvcc/vcc_var.c
@@ -88,13 +88,19 @@ vcc_Var_Wildcard(struct vcc *tl, struct symbol *parent, struct symbol *sym)
 
 	/* Create the symbol r/l values */
 	sym->rname = TlDup(tl, VSB_data(vsb));
-	VSB_clear(vsb);
-	VSB_printf(vsb, "VRT_SetHdr(ctx, %s,", sym->rname);
-	AZ(VSB_finish(vsb));
-	sym->lname = TlDup(tl, VSB_data(vsb));
-	VSB_clear(vsb);
-	VSB_printf(vsb, "VRT_UnsetHdr(ctx, %s)", sym->rname);
-	AZ(VSB_finish(vsb));
-	sym->uname = TlDup(tl, VSB_data(vsb));
+
+	if (sym->w_methods) {
+		VSB_clear(vsb);
+		VSB_printf(vsb, "VRT_SetHdr(ctx, %s,", sym->rname);
+		AZ(VSB_finish(vsb));
+		sym->lname = TlDup(tl, VSB_data(vsb));
+	}
+
+	if (sym->u_methods) {
+		VSB_clear(vsb);
+		VSB_printf(vsb, "VRT_UnsetHdr(ctx, %s)", sym->rname);
+		AZ(VSB_finish(vsb));
+		sym->uname = TlDup(tl, VSB_data(vsb));
+	}
 	VSB_destroy(&vsb);
 }


More information about the varnish-commit mailing list