def initialize( host, options={} )
@saved_message = nil
@session_id = nil
yield self
invalid_options = options.keys - VALID_OPTIONS
unless invalid_options.empty?
raise ArgumentError,
"invalid option(s) to #{self.class}: #{invalid_options.inspect}"
end
@port = options[ :port ] || @default_port
@socket = timeout( options[:timeout] || 0 ) do
( options[:proxy] || @socket_factory ).open( host, @port )
end
@packet_sender.socket = @socket
@packet_receiver.socket = @socket
@kex_info = {
:client_version_string => self.class.version,
:server_version_string =>
@version_negotiator.negotiate( @socket, self.class.version ) }
@options = options
kexinit
end