diff options
author | Homu <homu@barosl.com> | 2016-09-11 09:06:40 +0900 |
---|---|---|
committer | Homu <homu@barosl.com> | 2016-09-11 09:06:40 +0900 |
commit | eb20f97d8e52175cd2004159c5ee46dcc1f89d7e (patch) | |
tree | 671d32d3c3c7760268762efad49a6064bf261738 /lib | |
parent | 7607a611ed570edcad8c60a5f14192e20603e0e9 (diff) | |
parent | 609f758a73fde232ba831cb5c32671a1c554e4d4 (diff) | |
download | bundler-eb20f97d8e52175cd2004159c5ee46dcc1f89d7e.tar.gz |
Auto merge of #4955 - bundler:seg-fail-invalid-uri-schemes, r=indirect
Fail gracefully when attempting to request from an unknown URI scheme
Closes #4953
Diffstat (limited to 'lib')
-rw-r--r-- | lib/bundler/fetcher/downloader.rb | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/bundler/fetcher/downloader.rb b/lib/bundler/fetcher/downloader.rb index c8d714c05a..ee1aa1a972 100644 --- a/lib/bundler/fetcher/downloader.rb +++ b/lib/bundler/fetcher/downloader.rb @@ -38,6 +38,8 @@ module Bundler end def request(uri, options) + validate_uri_scheme!(uri) + Bundler.ui.debug "HTTP GET #{uri}" req = Net::HTTP::Get.new uri.request_uri, options if uri.user @@ -61,6 +63,15 @@ module Bundler raise HTTPError, "Network error while fetching #{URICredentialsFilter.credential_filtered_uri(uri)}" end end + + private + + def validate_uri_scheme!(uri) + return if uri.scheme =~ /\Ahttps?\z/ + raise InvalidOption, + "The request uri `#{uri}` has an invalid scheme (`#{uri.scheme}`). " \ + "Did you mean `http` or `https`?" + end end end end |