changeset 1925:a4f1cbd87f0d

Tests: fixed decoding QUIC packet numbers with PNL bits set.
author Sergey Kandaurov <pluknet@nginx.com>
date Mon, 14 Aug 2023 16:41:10 +0400
parents 0e4ff5f83653
children 0fb9ca9046bf
files lib/Test/Nginx/HTTP3.pm
diffstat 1 files changed, 7 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lib/Test/Nginx/HTTP3.pm
+++ b/lib/Test/Nginx/HTTP3.pm
@@ -1727,7 +1727,13 @@ mask:
 		& ($level == 3 ? "\x1f" : "\x0f");
 	my $pnl = unpack("C", substr($buf, 0, 1) & "\x03") + 1;
 	substr($buf, $offset, $pnl) ^= substr($mask, 1);
-	my $pn = unpack("C", substr($buf, $offset, $pnl));
+
+	my $pn = 0;
+	for my $n (1 .. $pnl) {
+		$pn += unpack("C", substr($buf, $offset + $n - 1, 1))
+			<< ($pnl - $n) * 8;
+	}
+
 	my $ad = substr($buf, 0, $offset + $pnl);
 	return ($ad, $pnl, $pn);
 }