Skip to content

Commit 7d6fd87

Browse files
committed
Gracefully handle malformed Host headers in the Server driver
1 parent 5cab908 commit 7d6fd87

1 file changed

Lines changed: 12 additions & 5 deletions

File tree

lib/websocket/http/request.rb

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,18 @@ def complete
3333
rack_name = "HTTP_#{ rack_name }" unless RESERVED_HEADERS.include?(name)
3434
@env[rack_name] = value
3535
end
36-
if host = @env['HTTP_HOST']
37-
uri = URI.parse("http://#{ host }")
38-
@env['SERVER_NAME'] = uri.host
39-
@env['SERVER_PORT'] = uri.port.to_s
40-
end
36+
37+
set_server_vars
38+
end
39+
40+
def set_server_vars
41+
return unless host = @env['HTTP_HOST']
42+
43+
uri = URI.parse("http://#{ host }")
44+
@env['SERVER_NAME'] = uri.host
45+
@env['SERVER_PORT'] = uri.port.to_s
46+
rescue URI::InvalidURIError
47+
error
4148
end
4249
end
4350

0 commit comments

Comments
 (0)