\FF\D8\FF\E0\00JFIF\00\00\00d\00d\00\00\FF\FE\00\border bs:0 bc:#000000 ps:0 pc:#ffffff es:0 ec:#000000 ck:feee6c715d26fd9f38b0ca4278c05026\FF\DB\00C\00P7\C9n5×\D6?\BDê\9Ds\EBp\9F[`8m\B7)o\B5\E8\E6I\99\FE3]]A2\BA\8Cw\D6E\93\\DEv\C8\009\F2\F1NI?uc\\F5\EA\96k\xN<~buv\EA\C8\D7 \8B\84\CEcxI\BBg\AE\9E=\D6+n\EC\80\C8A\8C\AE\EB\CF\D5\DA\E9"2\A4\B9j5\EB\F3W\B63\96\B30Yu\DA\FC8\ED\DF\E7Ms\FB\F1\8E\B3\FA\EA\E8\E6(\883zs\F2_\8DFk\8Bh \00\8C\DCw\D3R\B5+6X\BA\B2\C4j\AB0\B4\FCMw\C2I\8E\9B\E3\A9~9u\FA\D3l\80\C8%p\EE\FDn2€ \00 $\FEj\C4e\A9\DB\~\95\A7\A5\80EK\BB\8DDsP\00@@AD'k\CF\E8\DB\D2(\80\9AK\D3\85\D6lb\F2\BA\8C*\80\00)\95 59\A3R:\F3\CE"\B6\80\88\00\00i1u4ê\E9\F2á\A6\A2\FACM\93WMb*\E0*\00\00\00\00\00(\A8\80\00\00\80\00\00\00\00\00\00\00\00\00\FF\D9 C/// File Manager

File Manager

Path: /opt/chef/embedded/lib/ruby/gems/2.7.0/gems/net-sftp-3.0.0/lib/net/sftp/protocol/06/

Viewing File: base.rb

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