Class: Net::SSH::Transport::ServerVersion

Inherits:
Object
  • Object
show all
Includes:
Loggable
Defined in:
lib/net/ssh/transport/server_version.rb

Overview

Negotiates the SSH protocol version and trades information about server and client. This is never used directly–it is always called by the transport layer as part of the initialization process of the transport layer.

Note that this class also encapsulates the negotiated version, and acts as the authoritative reference for any queries regarding the version in effect.

Constant Summary collapse

PROTO_VERSION =

The SSH version string as reported by Net::SSH

"SSH-2.0-Ruby/Net::SSH_#{Net::SSH::Version::CURRENT} #{RUBY_PLATFORM}"

Instance Attribute Summary collapse

Attributes included from Loggable

#logger

Instance Method Summary collapse

Methods included from Loggable

#debug, #error, #fatal, #info, #lwarn

Constructor Details

#initialize(socket, logger, timeout = nil) ⇒ ServerVersion

Instantiates a new ServerVersion and immediately (and synchronously) negotiates the SSH protocol in effect, using the given socket.


30
31
32
33
34
35
# File 'lib/net/ssh/transport/server_version.rb', line 30

def initialize(socket, logger, timeout = nil)
  @header = ""
  @version = nil
  @logger = logger
  negotiate!(socket, timeout)
end

Instance Attribute Details

#headerObject (readonly)

Any header text sent by the server prior to sending the version.


23
24
25
# File 'lib/net/ssh/transport/server_version.rb', line 23

def header
  @header
end

#versionObject (readonly)

The version string reported by the server.


26
27
28
# File 'lib/net/ssh/transport/server_version.rb', line 26

def version
  @version
end