[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