From e6ec9cb43e4768bde4d40c1b792b608a188cc8ab Mon Sep 17 00:00:00 2001 From: HoneyryderChuck Date: Sat, 14 Dec 2019 16:48:23 +0000 Subject: [PATCH] adding support for the origin frame --- lib/httpx/connection.rb | 3 +++ lib/httpx/connection/http2.rb | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/lib/httpx/connection.rb b/lib/httpx/connection.rb index 595ab832..b775c434 100644 --- a/lib/httpx/connection.rb +++ b/lib/httpx/connection.rb @@ -274,6 +274,9 @@ module HTTPX parser.on(:promise) do |request, stream| request.emit(:promise, parser, stream) end + parser.on(:origin) do |origin| + @origins << origin + end parser.on(:close) do transition(:closing) end diff --git a/lib/httpx/connection/http2.rb b/lib/httpx/connection/http2.rb index 0da2c1ab..140da67f 100644 --- a/lib/httpx/connection/http2.rb +++ b/lib/httpx/connection/http2.rb @@ -107,6 +107,7 @@ module HTTPX @connection.on(:frame, &method(:on_frame)) @connection.on(:frame_sent, &method(:on_frame_sent)) @connection.on(:frame_received, &method(:on_frame_received)) + @connection.on(:origin, &method(:on_origin)) @connection.on(:promise, &method(:on_promise)) @connection.on(:altsvc) { |frame| on_altsvc(frame[:origin], frame) } @connection.on(:settings_ack, &method(:on_settings)) @@ -265,6 +266,10 @@ module HTTPX emit(:promise, @streams.key(stream.parent), stream) end + def on_origin(origin) + emit(:origin, origin) + end + def respond_to_missing?(meth, *args) @connection.respond_to?(meth, *args) || super end