diff options
author | Kazuki Yamaguchi <k@rhe.jp> | 2015-08-19 14:24:48 +0900 |
---|---|---|
committer | Kazuki Yamaguchi <k@rhe.jp> | 2015-08-19 14:24:48 +0900 |
commit | d084bc143bdf15c396871b3bbbe68ef91e210c69 (patch) | |
tree | 4167f37826f377eb0d8fb6589ddb0c2455245e29 | |
parent | bb04410f89a81c3981bf15752e6802a5f1decaaa (diff) | |
download | plum-d084bc143bdf15c396871b3bbbe68ef91e210c69.tar.gz |
connection_utils: add helper method to return whether server push is enabled or not
-rw-r--r-- | lib/plum/connection.rb | 1 | ||||
-rw-r--r-- | lib/plum/connection_utils.rb | 5 | ||||
-rw-r--r-- | lib/plum/flow_control.rb | 2 | ||||
-rw-r--r-- | lib/plum/stream.rb | 1 |
4 files changed, 9 insertions, 0 deletions
diff --git a/lib/plum/connection.rb b/lib/plum/connection.rb index 94f1cc4..a3cca9c 100644 --- a/lib/plum/connection.rb +++ b/lib/plum/connection.rb @@ -161,6 +161,7 @@ module Plum when :ping receive_ping(frame) when :goaway + callback(:goaway, frame) goaway close when :data, :headers, :priority, :rst_stream, :push_promise, :continuation diff --git a/lib/plum/connection_utils.rb b/lib/plum/connection_utils.rb index da89edf..da1781c 100644 --- a/lib/plum/connection_utils.rb +++ b/lib/plum/connection_utils.rb @@ -26,6 +26,11 @@ module Plum send_immediately Frame.goaway(last_id, error_type) end + # Returns whether peer enables server push or not + def push_enabled? + @remote_settings[:enable_push] == 1 + end + private def update_local_settings(new_settings) old_settings = @local_settings.dup diff --git a/lib/plum/flow_control.rb b/lib/plum/flow_control.rb index 27f39bf..f01905a 100644 --- a/lib/plum/flow_control.rb +++ b/lib/plum/flow_control.rb @@ -90,6 +90,8 @@ module Plum raise local_error.new(:protocol_error) end + callback(:window_update, wsi) + @send_remaining_window += wsi consume_send_buffer end diff --git a/lib/plum/stream.rb b/lib/plum/stream.rb index 46fad40..eee7cad 100644 --- a/lib/plum/stream.rb +++ b/lib/plum/stream.rb @@ -211,6 +211,7 @@ module Plum raise ConnectionError.new(:protocol_error) end + callback(:rst_stream, frame) @state = :closed # MUST NOT send RST_STREAM end end |