Skip to content

Commit

Permalink
clean up header hash usage in stream block, add to upgrade handler
Browse files Browse the repository at this point in the history
  • Loading branch information
kenichi committed Oct 27, 2016
1 parent 4f25eb7 commit fb31af5
Showing 1 changed file with 13 additions and 13 deletions.
26 changes: 13 additions & 13 deletions example/upgrade_server.rb
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,15 @@
server = OpenSSL::SSL::SSLServer.new(server, ctx)
end

def request_header_hash
Hash.new do |hash, key|
k = key.to_s.downcase
k.gsub! '_', '-'
_, value = hash.find {|header_key,v| header_key.downcase == k}
hash[key] = value if value
end
end

class UpgradeHandler
VALID_UPGRADE_METHODS = %w(GET OPTIONS).freeze
UPGRADE_RESPONSE = <<-RESP
Expand All @@ -43,6 +52,7 @@ class UpgradeHandler
def initialize(conn, sock)
@conn, @sock = conn, sock
@complete, @parsing = false, false
@headers = request_header_hash
@body = ''
@parser = ::HTTP::Parser.new(self)
end
Expand Down Expand Up @@ -70,7 +80,7 @@ def complete!
end

def on_headers_complete(headers)
@headers = headers
@headers.merge! headers
end

def on_body(chunk)
Expand All @@ -84,15 +94,6 @@ def on_message_complete
end
end

def request_header_hash received_hash = {}
Hash.new do |hash, key|
k = key.to_s.upcase
k.gsub! '_', '-'
_, value = received_hash.find {|header_key,v| header_key.upcase == k}
hash[key] = value if value
end
end

loop do
sock = server.accept
puts 'New TCP connection!'
Expand All @@ -112,8 +113,7 @@ def request_header_hash received_hash = {}
conn.on(:stream) do |stream|

log = Logger.new(stream.id)
request_headers = {}
req = request_header_hash(request_headers)
req = request_header_hash
buffer = ''

stream.on(:active) { log.info 'client opened new stream' }
Expand All @@ -122,7 +122,7 @@ def request_header_hash received_hash = {}
end

stream.on(:headers) do |h|
request_headers.merge! Hash[*h.flatten]
req.merge! Hash[*h.flatten]
log.info "request headers: #{h}"
end

Expand Down

0 comments on commit fb31af5

Please sign in to comment.