class HrrRbSftp::Protocol::Version3::Extensions::StatvfsAtOpensshCom
This class implements statvfs@openssh.com version 2 extension format and responder.
Constants
- EXTENSION_DATA
Represents statvfs@openssh.com version 2 extension data.
- EXTENSION_NAME
Represents statvfs@openssh.com version 2 extension name.
- REPLY_FORMAT
Represents SSH_FXP_EXTENDED_REPLY packet additional format for statvfs@openssh.com version 2 extension.
- REQUEST_FORMAT
Represents SSH_FXP_EXTENDED packet additional format for statvfs@openssh.com version 2 extension.
- SSH_FXE_STATVFS_ST_NOSUID
Represents statvfs@openssh.com version 2 extension no setuid flag.
- SSH_FXE_STATVFS_ST_RDONLY
Represents statvfs@openssh.com version 2 extension read-only flag.
Public Instance Methods
Responds to SSH_FXP_EXTENDED request with statvfs@openssh.com extended-request.
@param request [Hash{Symbol=>Object}] SSH_FXP_EXTENDED request represented in Hash. @return [Hash{Symbol=>Object}] Response represented in Hash. In case of success, its type is SSH_FXP_EXTENDED_REPLY. In other cases, its type is SSH_FXP_STATUS.
# File lib/hrr_rb_sftp/protocol/version3/extensions/statvfs_at_openssh_com.rb, line 69 def respond_to request begin log_debug { "Sys::Filesystem.stat(#{request[:"path"].inspect})" } stat = Sys::Filesystem.stat(request[:"path"]) { :"type" => Packets::SSH_FXP_EXTENDED_REPLY::TYPE, :"request-id" => request[:"request-id"], :"extended-reply" => request[:"extended-request"], # implied field in reply format :"f_bsize" => stat.block_size, :"f_frsize" => stat.fragment_size, :"f_blocks" => stat.blocks, :"f_bfree" => stat.blocks_free, :"f_bavail" => stat.blocks_available, :"f_files" => stat.files, :"f_ffree" => stat.files_free, :"f_favail" => stat.files_available, :"f_fsid" => stat.filesystem_id, :"f_flag" => stat.flags & (Sys::Filesystem::Stat::RDONLY | Sys::Filesystem::Stat::NOSUID), :"f_namemax" => stat.name_max, } rescue Sys::Filesystem::Error => e log_debug { e.message } { :"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