Class: HrrRbSftp::Protocol::Version3::Extensions::StatvfsAtOpensshCom
- Inherits:
-
Extension
- Object
- Extension
- HrrRbSftp::Protocol::Version3::Extensions::StatvfsAtOpensshCom
- Defined in:
- lib/hrr_rb_sftp/protocol/version3/extensions/statvfs_at_openssh_com.rb
Overview
This class implements [email protected] version 2 extension format and responder.
Constant Summary collapse
- EXTENSION_NAME =
Represents [email protected] version 2 extension name.
"[email protected]"- EXTENSION_DATA =
Represents [email protected] version 2 extension data.
"2"- SSH_FXE_STATVFS_ST_RDONLY =
Represents [email protected] version 2 extension read-only flag.
0x1- SSH_FXE_STATVFS_ST_NOSUID =
Represents [email protected] version 2 extension no setuid flag.
0x2- REQUEST_FORMAT =
Represents SSH_FXP_EXTENDED packet additional format for [email protected] version 2 extension.
{ :"extended-request" => { "[email protected]" => [ [DataTypes::String, :"path"], ], }, }
- REPLY_FORMAT =
Represents SSH_FXP_EXTENDED_REPLY packet additional format for [email protected] version 2 extension.
{ :"extended-reply" => { "[email protected]" => [ [DataTypes::Uint64, :"f_bsize" ], # file system block size [DataTypes::Uint64, :"f_frsize" ], # fundamental fs block size [DataTypes::Uint64, :"f_blocks" ], # number of blocks (unit f_frsize) [DataTypes::Uint64, :"f_bfree" ], # free blocks in file system [DataTypes::Uint64, :"f_bavail" ], # free blocks for non-root [DataTypes::Uint64, :"f_files" ], # total file inodes [DataTypes::Uint64, :"f_ffree" ], # free file inodes [DataTypes::Uint64, :"f_favail" ], # free file inodes for to non-root [DataTypes::Uint64, :"f_fsid" ], # file system id [DataTypes::Uint64, :"f_flag" ], # bit mask of f_flag values [DataTypes::Uint64, :"f_namemax"], # maximum filename length ], }, }
Instance Method Summary collapse
-
#respond_to(request) ⇒ Hash{Symbol=>Object}
Responds to SSH_FXP_EXTENDED request with [email protected] extended-request.
Instance Method Details
#respond_to(request) ⇒ Hash{Symbol=>Object}
Responds to SSH_FXP_EXTENDED request with [email protected] extended-request.
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# 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. } { :"type" => Packets::SSH_FXP_STATUS::TYPE, :"request-id" => request[:"request-id"], :"code" => Packets::SSH_FXP_STATUS::SSH_FX_FAILURE, :"error message" => e., :"language tag" => "", } end end |