diff options
author | Eugen <eugen@zeonfederated.com> | 2017-04-25 02:47:31 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-25 02:47:31 +0200 |
commit | 17c591ffba59bda512fe43a09c06c40324acc472 (patch) | |
tree | c03ba1c23b0adf46230b3b97b62efb018c26ded5 /app/lib | |
parent | bb04a9be52e005fb8bbeef22e5b8d30f0d202903 (diff) |
Punycode URI normalization (#2370)
* Fix #2119 - Whenever about to send a HTTP request, normalize the URI * Add test for IDN request in FetchLinkCardService * Perform IDN normalization on domains before they are stored in the DB
Diffstat (limited to 'app/lib')
-rw-r--r-- | app/lib/tag_manager.rb | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/app/lib/tag_manager.rb b/app/lib/tag_manager.rb index f26c943d2..3bddfba7c 100644 --- a/app/lib/tag_manager.rb +++ b/app/lib/tag_manager.rb @@ -64,6 +64,12 @@ class TagManager domain.nil? || domain.gsub(/[\/]/, '').casecmp(Rails.configuration.x.local_domain).zero? end + def normalize_domain(domain) + uri = Addressable::URI.new + uri.host = domain + uri.normalize.host + end + def same_acct?(canonical, needle) return true if canonical.casecmp(needle).zero? username, domain = needle.split('@') @@ -71,7 +77,7 @@ class TagManager end def local_url?(url) - uri = Addressable::URI.parse(url) + uri = Addressable::URI.parse(url).normalize domain = uri.host + (uri.port ? ":#{uri.port}" : '') TagManager.instance.local_domain?(domain) end |