summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2015-07-20 13:48:22 +0900
committerKazuki Yamaguchi <k@rhe.jp>2015-07-20 13:48:22 +0900
commit38cd4d08a400950056d6be21d8fcae6f62811d91 (patch)
treef330a253ef3802711a500401dfa5900a2fed3f05
parentdf90697ece07c47f810832026c9764c1163b24c2 (diff)
downloadplum-38cd4d08a400950056d6be21d8fcae6f62811d91.tar.gz
server_connection: don't respond SETTINGS ACK for received SETTINGS ACK
-rw-r--r--examples/local_server.rb1
-rw-r--r--lib/plum/server_connection.rb3
2 files changed, 3 insertions, 1 deletions
diff --git a/examples/local_server.rb b/examples/local_server.rb
index 712c4eb..fda0092 100644
--- a/examples/local_server.rb
+++ b/examples/local_server.rb
@@ -109,6 +109,7 @@ loop do
end if DEBUG
plum.on(:stream) do |stream|
+ log(id, stream.id, "stream open")
stream.on(:stream_error) do |exception|
puts exception
puts exception.backtrace
diff --git a/lib/plum/server_connection.rb b/lib/plum/server_connection.rb
index 2ffa5c9..de41033 100644
--- a/lib/plum/server_connection.rb
+++ b/lib/plum/server_connection.rb
@@ -110,6 +110,7 @@ module Plum
def process_control_frame(frame)
case frame.type
when :settings
+ return if frame.flags.include?(:ack)
process_settings(frame)
callback(:settings, @remote_settings)
@state = :initialized if @state == :waiting_for_settings
@@ -125,7 +126,7 @@ module Plum
when :data, :headers, :priority, :rst_stream, :push_promise, :continuation
raise Plum::ConnectionError.new(:protocol_error)
else
- raie Error.new("unknown frame type: #{frame.inspect}")
+ raise Error.new("unknown frame type: #{frame.inspect}")
end
end