aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2015-08-19 14:24:48 +0900
committerKazuki Yamaguchi <k@rhe.jp>2015-08-19 14:24:48 +0900
commitd084bc143bdf15c396871b3bbbe68ef91e210c69 (patch)
tree4167f37826f377eb0d8fb6589ddb0c2455245e29
parentbb04410f89a81c3981bf15752e6802a5f1decaaa (diff)
downloadplum-d084bc143bdf15c396871b3bbbe68ef91e210c69.tar.gz
connection_utils: add helper method to return whether server push is enabled or not
-rw-r--r--lib/plum/connection.rb1
-rw-r--r--lib/plum/connection_utils.rb5
-rw-r--r--lib/plum/flow_control.rb2
-rw-r--r--lib/plum/stream.rb1
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