From 0814039fdfe4b6422d41ab59ca1424e56034f5fe Mon Sep 17 00:00:00 2001 From: Peter Verraedt Date: Thu, 13 Jul 2023 17:15:31 +0200 Subject: [PATCH] Add SetExtendedData to Client Add function to set extended attributes in the sftp client. Signed-off-by: Peter Verraedt Add longer comment Signed-off-by: Peter Verraedt --- client.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/client.go b/client.go index 3a9a8bf1..95413a5c 100644 --- a/client.go +++ b/client.go @@ -593,6 +593,20 @@ func (c *Client) Truncate(path string, size int64) error { return c.setstat(path, sshFileXferAttrSize, uint64(size)) } +// SetExtendedData sets extended attributes of the named 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 (c *Client) SetExtendedData(path string, extended []StatExtended) error { + attrs := &FileStat{ + Extended: extended, + } + return c.setstat(path, sshFileXferAttrExtended, attrs) +} + // Open opens the named file for reading. If successful, methods on the // returned file can be used for reading; the associated file descriptor // has mode O_RDONLY.