# HG changeset patch # User Sergey Kandaurov # Date 1517315606 -10800 # Node ID 0f0ad7acb3143d62badc56d194aa5ef3d6d799f8 # Parent 9b737ad4260b0ad4503309a94439752ff90fc9f7 Tests: basic HTTP/2 PUSH_PROMISE support. diff --git a/lib/Test/Nginx/HTTP2.pm b/lib/Test/Nginx/HTTP2.pm --- a/lib/Test/Nginx/HTTP2.pm +++ b/lib/Test/Nginx/HTTP2.pm @@ -24,7 +24,7 @@ my %cframe = ( # 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 @@ sub settings { 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 };