sftp/attrs_unix.go

26 lines
549 B
Go
Raw Normal View History

// +build aix dragonfly !android,linux openbsd solaris
2015-09-20 10:09:03 +08:00
package sftp
import (
"os"
"syscall"
sshfx "github.com/pkg/sftp/internal/encoding/ssh/filexfer"
2015-09-20 10:09:03 +08:00
)
func attributesFromFileInfo(fi os.FileInfo) sshfx.Attributes {
if sys, ok := fi.Sys().(*syscall.Stat_t); ok {
var attrs sshfx.Attributes
attrs.SetSize(uint64(sys.Size))
attrs.SetUIDGID(sys.Uid, sys.Gid)
attrs.SetPermissions(sshfx.FileMode(sys.Mode))
attrs.SetACModTime(uint32(sys.Atim.Sec), uint32(sys.Mtim.Sec))
return attrs
2015-09-20 10:09:03 +08:00
}
return attributesFromGenericFileInfo(fi)
2015-09-20 10:09:03 +08:00
}