class HrrRbSftp::Protocol::Version3::Packets::SSH_FXP_EXTENDED
This class implements SFTP protocol version 1 SSH_FXP_EXTENDED
packet type, format, and responder.
Constants
- CONDITIONAL_FORMAT
Private method
conditional_format
is used instead.@example
{ :"extended-request" => { "hardlink@openssh.com" => [ [DataTypes::String, :"oldpath"], [DataTypes::String, :"newpath"], ], }, }
- FORMAT
Represents
SSH_FXP_EXTENDED
packet format.- TYPE
Represents
SSH_FXP_EXTENDED
packet type.
Public Instance Methods
respond_to(request)
click to toggle source
Responds to SSH_FXP_EXTENDED
request.
@param request [Hash{Symbol=>Object}] SSH_FXP_EXTENDED
request represented in Hash. @return [Hash{Symbol=>Object}] Response represented in Hash. Its type is SSH_FXP_STATUS
.
# File lib/hrr_rb_sftp/protocol/version3/packets/200_ssh_fxp_extended.rb, line 47 def respond_to request begin if extensions.respond_to? request extensions.respond_to request else { :"type" => Packets::SSH_FXP_STATUS::TYPE, :"request-id" => request[:"request-id"], :"code" => Packets::SSH_FXP_STATUS::SSH_FX_OP_UNSUPPORTED, :"error message" => "Unsupported extended-request: #{request[:"extended-request"]}", :"language tag" => "", } end rescue => e log_error { [e.backtrace[0], ": ", e.message, " (", e.class.to_s, ")\n\t", e.backtrace[1..-1].join("\n\t")].join } { :"type" => Packets::SSH_FXP_STATUS::TYPE, :"request-id" => request[:"request-id"], :"code" => Packets::SSH_FXP_STATUS::SSH_FX_FAILURE, :"error message" => e.message, :"language tag" => "", } end end
Private Instance Methods
conditional_format(packet)
click to toggle source
Overrides Common::Packetable#conditional_format private method and represents SSH_FXP_EXTENDED
packet conditional format.
# File lib/hrr_rb_sftp/protocol/version3/packets/200_ssh_fxp_extended.rb, line 86 def conditional_format packet packet.inject([]){ |a, (field_name, field_value)| a + ((extensions.conditional_request_format[field_name] || {})[field_value] || []) } end
extensions()
click to toggle source
Returns An instance of Extensions
.
@return [Extensions] An instance of Extensions
.
# File lib/hrr_rb_sftp/protocol/version3/packets/200_ssh_fxp_extended.rb, line 79 def extensions @extensions ||= Protocol.const_get(:"Version#{version}")::Extensions.new(context, logger: logger) end