def receive_banner(name, version, scheme)
log.info("[pry-remote-em] remote is #{name} #{version} #{scheme}")
client_ver = Gem::Version.new(PryRemoteEm::VERSION)
server_req = Gem::Requirement.new("~>#{version}")
server_ver = Gem::Version.new(version)
client_req = Gem::Requirement.new("~>#{PryRemoteEm::VERSION}")
unless server_req.satisfied_by?(client_ver) || client_req.satisfied_by?(server_ver)
fail("[pry-remote-em] incompatible version #{PryRemoteEm::VERSION}")
return false
end
if scheme.nil? || scheme != (reqscheme = opts[:tls] ? 'pryems' : 'pryem')
if scheme == 'pryems' && defined?(::OpenSSL)
opts[:tls] = true
else
fail("[pry-remote-em] server doesn't support required scheme #{reqscheme.dump}")
return false
end
end
@negotiated = true
@nego_timer.cancel
true
end