From ec8ea73bc02a2bb487981415bb008b8e4a8c09c4 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Tue, 10 Oct 2023 16:45:45 +0200 Subject: [PATCH] DEV: h2: add the preface as well in supported output types It's annoying to always have to append it from a capture, let's also support producing the preface. --- dev/h2/mkhdr.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/dev/h2/mkhdr.sh b/dev/h2/mkhdr.sh index e83e24f94..086b84b85 100755 --- a/dev/h2/mkhdr.sh +++ b/dev/h2/mkhdr.sh @@ -9,7 +9,7 @@ USAGE=\ Numbers are decimal or 0xhex. Not set=0. If is passed, it points to a file that is read and chunked into frames of bytes. -e encodes a headers frame (by default) with all headers at once encoded - in literal. + in literal. Use type 'p' for the preface. Supported symbolic types (case insensitive prefix match): DATA (0x00) PUSH_PROMISE (0x05) @@ -140,7 +140,9 @@ if [ -n "${ID##[0-9]*}" ]; then die fi -if [ -z "$DATA" ]; then +if [ "$TYPE" = "p" ]; then + printf "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n" +elif [ -z "$DATA" ]; then HEX="" # If we're trying to emit literal headers, let's pre-build the raw data # and measure their total length.