mirror of https://github.com/pkg/sftp.git
Add fsetstat variant of SetExtendedData
Signed-off-by: Peter Verraedt <peter@verraedt.be>
This commit is contained in:
parent
0814039fdf
commit
478aa2e956
22
client.go
22
client.go
|
@ -2058,6 +2058,28 @@ func (f *File) Chmod(mode os.FileMode) error {
|
||||||
return f.c.fsetstat(f.handle, sshFileXferAttrPermissions, toChmodPerm(mode))
|
return f.c.fsetstat(f.handle, sshFileXferAttrPermissions, toChmodPerm(mode))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SetExtendedData sets extended attributes of the current file. It uses the
|
||||||
|
// SSH_FILEXFER_ATTR_EXTENDED flag in the setstat request.
|
||||||
|
//
|
||||||
|
// This flag provides a general extension mechanism for vendor-specific extensions.
|
||||||
|
// Names of the attributes should be a string of the format "name@domain", where "domain"
|
||||||
|
// is a valid, registered domain name and "name" identifies the method. Server
|
||||||
|
// implementations SHOULD ignore extended data fields that they do not understand.
|
||||||
|
func (f *File) SetExtendedData(path string, extended []StatExtended) error {
|
||||||
|
f.mu.RLock()
|
||||||
|
defer f.mu.RUnlock()
|
||||||
|
|
||||||
|
if f.handle == "" {
|
||||||
|
return os.ErrClosed
|
||||||
|
}
|
||||||
|
|
||||||
|
attrs := &FileStat{
|
||||||
|
Extended: extended,
|
||||||
|
}
|
||||||
|
|
||||||
|
return f.c.fsetstat(f.handle, sshFileXferAttrExtended, attrs)
|
||||||
|
}
|
||||||
|
|
||||||
// Truncate sets the size of the current file. Although it may be safely assumed
|
// Truncate sets the size of the current file. Although it may be safely assumed
|
||||||
// that if the size is less than its current size it will be truncated to fit,
|
// that if the size is less than its current size it will be truncated to fit,
|
||||||
// the SFTP protocol does not specify what behavior the server should do when setting
|
// the SFTP protocol does not specify what behavior the server should do when setting
|
||||||
|
|
Loading…
Reference in New Issue