sftp/server_statvfs_impl.go

29 lines
597 B
Go
Raw Permalink Normal View History

// +build darwin linux
// fill in statvfs structure with OS specific values
// Statfs_t is different per-kernel, and only exists on some unixes (not Solaris for instance)
package sftp
import (
"syscall"
)
func (p *sshFxpExtendedPacketStatVFS) respond(svr *Server) responsePacket {
2021-02-11 02:13:19 +08:00
retPkt, err := getStatVFSForPath(p.Path)
if err != nil {
return statusFromError(p.ID, err)
}
return retPkt
}
2021-02-11 02:13:19 +08:00
func getStatVFSForPath(name string) (*StatVFS, error) {
var stat syscall.Statfs_t
if err := syscall.Statfs(name, &stat); err != nil {
2021-02-11 02:13:19 +08:00
return nil, err
}
return statvfsFromStatfst(&stat)
2021-02-11 02:13:19 +08:00
}