server_statvfs_impl.go 581 B

1234567891011121314151617181920212223242526
  1. // +build darwin linux,!gccgo
  2. // fill in statvfs structure with OS specific values
  3. // Statfs_t is different per-kernel, and only exists on some unixes (not Solaris for instance)
  4. package sftp
  5. import (
  6. "syscall"
  7. )
  8. func (p sshFxpExtendedPacketStatVFS) respond(svr *Server) error {
  9. stat := &syscall.Statfs_t{}
  10. if err := syscall.Statfs(p.Path, stat); err != nil {
  11. return svr.sendPacket(statusFromError(p, err))
  12. }
  13. retPkt, err := statvfsFromStatfst(stat)
  14. if err != nil {
  15. return svr.sendPacket(statusFromError(p, err))
  16. }
  17. retPkt.ID = p.ID
  18. return svr.sendPacket(retPkt)
  19. }