[master] d0fe49799 varnishtest: enable the client to send arbitrary settings
Nils Goroll
nils.goroll at uplex.de
Sun Feb 23 12:36:10 UTC 2025
commit d0fe497993c7c451eb88987cafe6947055742895
Author: Nils Goroll <nils.goroll at uplex.de>
Date: Sun Feb 23 13:34:18 2025 +0100
varnishtest: enable the client to send arbitrary settings
diff --git a/bin/varnishtest/vtc_http2.c b/bin/varnishtest/vtc_http2.c
index 1caeeb5a3..f89bb187e 100644
--- a/bin/varnishtest/vtc_http2.c
+++ b/bin/varnishtest/vtc_http2.c
@@ -1898,6 +1898,9 @@ cmd_txprio(CMD_ARGS)
* \-hdrsize INT
* maximum size of the header list authorized
*
+ * \-0xHH[HH] INT
+ * tx arbitraty settings with tag xx
+ *
* \-ack
* set the ack bit
*/
@@ -1906,7 +1909,8 @@ cmd_txsettings(CMD_ARGS)
{
struct stream *s, *s2;
struct http *hp;
- char *p;
+ char *p, *e;
+ unsigned long u;
uint32_t val = 0;
struct frame f;
//TODO dynamic alloc
@@ -1952,6 +1956,15 @@ cmd_txsettings(CMD_ARGS)
PUT_KV(av, vl, framesize, val, 0x5);
else if (!strcmp(*av, "-hdrsize"))
PUT_KV(av, vl, hdrsize, val, 0x6);
+ else if (!strncmp(*av, "-0x", 3)) {
+ p = *av + 3;
+ errno = 0;
+ u = strtoul(p, &e, 16);
+ if (*p == '\0' || *e != '\0' || u > 0xffff || errno != 0)
+ vtc_fatal(vl, "Invalid settings tag %s", p);
+ assert(u <= 0xffff);
+ PUT_KV(av, vl, hdrtbl, val, (uint16_t)u);
+ }
else if (!strcmp(*av, "-ack"))
f.flags |= 1;
else
More information about the varnish-commit
mailing list