# File lib/openid/discovery.rb, line 61
    def openid_discovery(url)
      ret = @fetcher.get(url)
      return [HTTP_FAILURE, nil] if ret.nil?
      
      consumer_id, data = ret
      server = nil
      delegate = nil
      parse_link_attrs(data) do |attrs|
        rel = attrs["rel"]
        if rel == "openid.server" and server.nil?
          href = attrs["href"]
          server = href unless href.nil?
        end
        
        if rel == "openid.delegate" and delegate.nil?
          href = attrs["href"]
          delegate = href unless href.nil?
        end
      end

      return [PARSE_ERROR, nil] if server.nil?
    
      server_id = delegate.nil? ? consumer_id : delegate

      consumer_id = OpenID::Util.normalize_url(consumer_id)
      server_id = OpenID::Util.normalize_url(server_id)
      server_url = OpenID::Util.normalize_url(server)
                  
      service = OpenID::FakeOpenIDServiceEndpoint.new(consumer_id,
                                                      server_id,
                                                      server_url)
      return [SUCCESS, service]
    end