Project

General

Profile

Actions

Bug #19756

open

URI::HTTP.build does not accept a host of `_gateway`, but `URI.parse` will.

Added by postmodern (Hal Brodigan) 10 months ago. Updated 10 months ago.

Status:
Open
Assignee:
-
Target version:
-
ruby -v:
ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-linux]
[ruby-core:114080]

Description

I noticed a difference in behavior between URI::HTTP.build and URI.parse. URI::HTTP.build will not accept host: value of _gateway, but URI.parse will.

Steps To Reproduce

URI::HTTP.build(host: "_gateway")

vs.

URI.parse("http://_gateway")

Expected Results

Both raise the same exception, or return the same URI object.

Actual Results

URI::HTTP.build(host: "_gateway")
/usr/share/ruby/uri/generic.rb:601:in `check_host': bad component(expected host component): _gateway (URI::InvalidComponentError)
	from /usr/share/ruby/uri/generic.rb:640:in `host='
	from /usr/share/ruby/uri/generic.rb:673:in `hostname='
	from /usr/share/ruby/uri/generic.rb:190:in `initialize'
	from /usr/share/ruby/uri/generic.rb:136:in `new'
	from /usr/share/ruby/uri/generic.rb:136:in `build'
	from /usr/share/ruby/uri/http.rb:61:in `build'
	from (irb):2:in `<main>'
	from /usr/local/share/gems/gems/irb-1.7.0/exe/irb:9:in `<top (required)>'
	from /usr/local/bin/irb:25:in `load'
	from /usr/local/bin/irb:25:in `<main>'
URI.parse("https://_gateway")
# => #<URI::HTTPS https://_gateway>

Additional Information

$ gem list uri
uri (default: 0.12.1)

Related issues 1 (1 open0 closed)

Related to Ruby master - Bug #19266: URI::Generic should use URI::RFC3986_PARSER instead of URI::DEFAULT_PARSEROpenActions
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0