def open_server(uri, config, first=true)
      @protocol.each do |prot|
	begin
	  return prot.open_server(uri, config)
	rescue DRbBadScheme
	end
      end
      if first && (config[:auto_load] != false)
	auto_load(uri, config)
	return open_server(uri, config, false)
      end
      raise DRbBadURI, 'can\'t parse uri:' + uri
    end
def open_server(uri, config, first=true)
      @protocol.each do |prot|
	begin
	  return prot.open_server(uri, config)
	rescue DRbBadScheme
	end
      end
      if first && (config[:auto_load] != false)
	auto_load(uri, config)
	return open_server(uri, config, false)
      end
      raise DRbBadURI, 'can\'t parse uri:' + uri
    end
Open a server listening for connections at +uri+ with
 configuration +config+.

 The DRbProtocol module asks each registered protocol in turn to
 try to open a server at the URI.  Each protocol signals that it does
 not handle that URI by raising a DRbBadScheme error.  If no protocol
 recognises the URI, then a DRbBadURI error is raised.  If a protocol
 accepts the URI, but an error occurs in opening it, the underlying
 error is passed on to the caller.