Methods
Classes and Modules
Module Net::SFTP::Protocol::ConstantsModule Net::SFTP::Protocol::V_01
Module Net::SFTP::Protocol::V_02
Module Net::SFTP::Protocol::V_03
Module Net::SFTP::Protocol::V_04
Module Net::SFTP::Protocol::V_05
Class Net::SFTP::Protocol::Driver
Class Net::SFTP::Protocol::PacketAssistant
Public Instance methods
[ show source ]
# File lib/net/sftp/protocol/services.rb, line 19
19: def register_services( container )
20: container.namespace_define :protocol do |ns|
21:
22: # The maximum version of the SFTP protocol supported by this
23: # implementation. Clients may set this to a lower value to force the
24: # usage of a specific SFTP version. It should _not_ be set higher than
25: # the value that is given below.
26: ns.version { 5 }
27:
28: # A proc object that, when invoked, returns a dispatcher object capable
29: # of handling the requested protocol version.
30: ns.dispatcher_factory do |c,|
31: lambda do |version, extensions|
32: version = "%02d" % version
33: c.require "net/sftp/protocol/#{version}/services",
34: "#{self}::V_#{version}"
35: impl = c["v_#{version}".to_sym][:impl]
36: impl.extensions = extensions
37: impl
38: end
39: end
40:
41: # The driver service that manages the SFTP protocol-level communications
42: ns.driver do |c,p|
43: require 'net/sftp/protocol/driver'
44: Driver.new( c[:connection][:driver],
45: c[:transport][:buffers],
46: c[:version],
47: c[:dispatcher_factory],
48: c[:log_for, p] )
49: end
50:
51: end
52: end