diff --git a/lib/diaspora_federation/discovery/host_meta.rb b/lib/diaspora_federation/discovery/host_meta.rb
index 2de573e..255c519 100644
--- a/lib/diaspora_federation/discovery/host_meta.rb
+++ b/lib/diaspora_federation/discovery/host_meta.rb
@@ -84,7 +84,7 @@ module DiasporaFederation
# @param [Hash] data extracted data
# @return [String] webfinger url
def self.webfinger_url_from_xrd(data)
- link = data[:links].find {|l| (l[:rel] == "lrdd" && l[:type] == "application/xrd+xml") }
+ link = data[:links].find {|l| l[:rel] == "lrdd" }
return link[:template] unless link.nil?
end
private_class_method :webfinger_url_from_xrd
diff --git a/spec/lib/diaspora_federation/discovery/host_meta_spec.rb b/spec/lib/diaspora_federation/discovery/host_meta_spec.rb
index 66e7fc8..8c56ed1 100644
--- a/spec/lib/diaspora_federation/discovery/host_meta_spec.rb
+++ b/spec/lib/diaspora_federation/discovery/host_meta_spec.rb
@@ -58,6 +58,24 @@ XML
expect(hm.webfinger_template_url).to eq("#{base_url}webfinger?q={uri}")
end
+ it "also reads friendica/redmatrix XML" do
+ friendica_redmatrix_xml = <<-XML
+
+
+
+ pod.example.tld
+
+
+
+
+
+ XML
+ hm = Discovery::HostMeta.from_xml(friendica_redmatrix_xml)
+ expect(hm.webfinger_template_url).to eq("#{base_url}xrd/?uri={uri}")
+ end
+
it "fails if the document does not contain a webfinger url" do
invalid_xml = <