/usr/lib/ruby/vendor_ruby/net/sftp/protocol/06/base.rb is in ruby-net-sftp 1:2.1.2-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | require 'net/sftp/protocol/05/base'
require 'net/sftp/protocol/06/attributes'
module Net; module SFTP; module Protocol; module V06
# Wraps the low-level SFTP calls for version 6 of the SFTP 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.
class Base < V05::Base
# Returns the protocol version implemented by this driver. (6, in this
# case)
def version
6
end
# Sends a FXP_LINK packet to the server to request that a link be created
# at +new_link_path+, pointing to +existing_path+. If +symlink+ is true, a
# symbolic link will be created; otherwise a hard link will be created.
def link(new_link_path, existing_path, symlink)
send_request(FXP_LINK, :string, new_link_path, :string, existing_path, :bool, symlink)
end
# Provided for backwards compatibility; v6 of the SFTP protocol removes the
# older FXP_SYMLINK packet type, so this method simply calls the #link
# method.
def symlink(path, target)
link(path, target, true)
end
# Sends a FXP_BLOCK packet to the server to request that a byte-range lock
# be obtained on the given +handle+, for the given byte +offset+ and
# +length+. The +mask+ parameter is a bitfield indicating what kind of
# lock to acquire, and must be a combination of one or more of the
# Net::SFTP::Constants::LockTypes constants.
def block(handle, offset, length, mask)
send_request(FXP_BLOCK, :string, handle, :int64, offset, :int64, length, :long, mask)
end
# Sends a FXP_UNBLOCK packet to the server to request that a previously
# acquired byte-range lock be released on the given +handle+, for the
# given byte +offset+ and +length+. The +handle+, +offset+, and +length+
# must all exactly match the parameters that were given when the lock was
# originally acquired (see #block).
def unblock(handle, offset, length)
send_request(FXP_UNBLOCK, :string, handle, :int64, offset, :int64, length)
end
protected
# Returns the Attributes class used by this version of the protocol
# (Net::SFTP::Protocol::V06::Attributes, in this case)
def attribute_factory
V06::Attributes
end
end
end; end; end; end
|