diff --git a/lib/openid/consumer/discovery.rb b/lib/openid/consumer/discovery.rb index 01fe0365..f150d6b6 100644 --- a/lib/openid/consumer/discovery.rb +++ b/lib/openid/consumer/discovery.rb @@ -421,8 +421,7 @@ def self.discover_xri(iname) iname = self.normalize_xri(iname) begin - canonical_id, services = Yadis::XRI::ProxyResolver.new().query( - iname, OpenIDServiceEndpoint::OPENID_TYPE_URIS) + canonical_id, services = Yadis::XRI::ProxyResolver.new().query( iname ) if canonical_id.nil? raise Yadis::XRDSError.new(sprintf('No CanonicalID found for XRI %s', iname)) diff --git a/lib/openid/yadis/xrires.rb b/lib/openid/yadis/xrires.rb index 39439119..e2a14dc7 100644 --- a/lib/openid/yadis/xrires.rb +++ b/lib/openid/yadis/xrires.rb @@ -42,34 +42,27 @@ def query_url(xri, service_type=nil) return XRI.append_args(hxri, args) end - def query(xri, service_types) + def query(xri) # these can be query args or http headers, needn't be both. # headers = {'Accept' => 'application/xrds+xml;sep=true'} canonicalID = nil - services = service_types.collect { |service_type| - url = self.query_url(xri, service_type) + url = self.query_url(xri) begin response = OpenID.fetch(url) rescue - raise XRIHTTPError, ["Could not fetch #{xri}", $!] + raise XRIHTTPError, "Could not fetch #{xri}, #{$!}" end raise XRIHTTPError, "Could not fetch #{xri}" if response.nil? xrds = Yadis::parseXRDS(response.body) canonicalID = Yadis::get_canonical_id(xri, xrds) - Yadis::services(xrds) unless xrds.nil? - } + return canonicalID, Yadis::services(xrds) # TODO: # * If we do get hits for multiple service_types, we're almost # certainly going to have duplicated service entries and # broken priority ordering. - services = services.inject([]) { |flatter, some_services| - flatter += some_services unless some_services.nil? - } - - return canonicalID, services end end