Tests: basic HTTP/2 PUSH_PROMISE support.
diff --git a/lib/Test/Nginx/HTTP2.pm b/lib/Test/Nginx/HTTP2.pm index 089aa6f..30028c1 100644 --- a/lib/Test/Nginx/HTTP2.pm +++ b/lib/Test/Nginx/HTTP2.pm
@@ -24,7 +24,7 @@ # 2 => { name => 'PRIORITY', value => \&priority }, 3 => { name => 'RST_STREAM', value => \&rst_stream }, 4 => { name => 'SETTINGS', value => \&settings }, -# 5 => { name => 'PUSH_PROMISE', value => \&push_promise }, + 5 => { name => 'PUSH_PROMISE', value => \&push_promise }, 6 => { name => 'PING', value => \&ping }, 7 => { name => 'GOAWAY', value => \&goaway }, 8 => { name => 'WINDOW_UPDATE', value => \&window_update }, @@ -402,6 +402,13 @@ return \%payload; } +sub push_promise { + my ($ctx, $buf, $len, $flags) = @_; + + { promised => unpack("N", $buf), + headers => hunpack($ctx, substr($buf, 4, $len), $len) }; +} + sub ping { my ($ctx, $buf, $len) = @_; return { value => unpack "A$len", $buf };