Wraps the low-level SFTP calls for version 4 of the SFTP protocol. Also implements the updated FXP_NAME packet parsing as mandated by v4 of the protocol.
None of these protocol methods block--all of them return immediately, requiring the SSH event loop to be run while the server response is pending.
You will almost certainly never need to use this driver directly. Please see Net::SFTP::Session for the recommended interface.
Methods
Public Instance
Protected Instance
Constants
DEFAULT_FLAGS | = | Attributes::F_SIZE | Attributes::F_PERMISSIONS | Attributes::F_ACCESSTIME | Attributes::F_CREATETIME | Attributes::F_MODIFYTIME | Attributes::F_ACL | Attributes::F_OWNERGROUP | Attributes::F_SUBSECOND_TIMES | Attributes::F_EXTENDED |
The default flags used if the |
Public Instance methods
Sends a FXP_FSTAT packet to the server for the given path
, and
with the given flags
. If flags
is nil, it
defaults to F_SIZE | F_PERMISSIONS | F_ACCESSTIME | F_CREATETIME |
F_MODIFYTIME | F_ACL | F_OWNERGROUP | F_SUBSECOND_TIMES | F_EXTENDED (see
Net::SFTP::Protocol::V04::Attributes for
those constants).
# File lib/net/sftp/protocol/04/base.rb, line 63 def fstat(handle, flags=nil) send_request(FXP_FSTAT, :string, handle, :long, flags || DEFAULT_FLAGS) end
Sends a FXP_LSTAT packet to the server for the given path
, and
with the given flags
. If flags
is nil, it
defaults to F_SIZE | F_PERMISSIONS | F_ACCESSTIME | F_CREATETIME |
F_MODIFYTIME | F_ACL | F_OWNERGROUP | F_SUBSECOND_TIMES | F_EXTENDED (see
Net::SFTP::Protocol::V04::Attributes for
those constants).
# File lib/net/sftp/protocol/04/base.rb, line 54 def lstat(path, flags=nil) send_request(FXP_LSTAT, :string, path, :long, flags || DEFAULT_FLAGS) end
As of v4 of the SFTP protocol, the "longname" member was removed from the FXP_NAME structure. This method is essentially the same as the previous implementation, but omits longname.
# File lib/net/sftp/protocol/04/base.rb, line 28 def parse_name_packet(packet) names = [] packet.read_long.times do filename = packet.read_string attrs = attribute_factory.from_buffer(packet) names << name_factory.new(filename, attrs) end { :names => names } end
Sends a FXP_STAT packet to the server for the given path
, and
with the given flags
. If flags
is nil, it
defaults to F_SIZE | F_PERMISSIONS | F_ACCESSTIME | F_CREATETIME |
F_MODIFYTIME | F_ACL | F_OWNERGROUP | F_SUBSECOND_TIMES | F_EXTENDED (see
Net::SFTP::Protocol::V04::Attributes for
those constants).
# File lib/net/sftp/protocol/04/base.rb, line 45 def stat(path, flags=nil) send_request(FXP_STAT, :string, path, :long, flags || DEFAULT_FLAGS) end
Returns the protocol version implemented by this driver. (4, in this case)
# File lib/net/sftp/protocol/04/base.rb, line 21 def version 4 end
Protected Instance methods
Returns the Attributes class used by this version of the protocol (Net::SFTP::Protocol::V04::Attributes, in this case)
# File lib/net/sftp/protocol/04/base.rb, line 83 def attribute_factory V04::Attributes end
Returns the Name class used by this version of the protocol (Net::SFTP::Protocol::V04::Name, in this case)
# File lib/net/sftp/protocol/04/base.rb, line 89 def name_factory V04::Name end