...by using the OpenNofollow helper & Fstatat. Also introduce a helper to convert from unix.Stat_t to syscall.Stat_t. Tracking ticket: https://github.com/rfjakob/gocryptfs/issues/165libgocryptfs
parent
03bf604fc0
commit
a3bdc2bf2b
@ -0,0 +1,28 @@
|
||||
package syscallcompat
|
||||
|
||||
import (
|
||||
"syscall"
|
||||
|
||||
"golang.org/x/sys/unix"
|
||||
)
|
||||
|
||||
// Unix2syscall converts a unix.Stat_t struct to a syscall.Stat_t struct.
|
||||
// A direct cast does not work because the padding is named differently in
|
||||
// unix.Stat_t for some reason ("X__unused" in syscall, "_" in unix).
|
||||
func Unix2syscall(u unix.Stat_t) syscall.Stat_t {
|
||||
return syscall.Stat_t{
|
||||
Dev: u.Dev,
|
||||
Ino: u.Ino,
|
||||
Nlink: u.Nlink,
|
||||
Mode: u.Mode,
|
||||
Uid: u.Uid,
|
||||
Gid: u.Gid,
|
||||
Rdev: u.Rdev,
|
||||
Size: u.Size,
|
||||
Blksize: u.Blksize,
|
||||
Blocks: u.Blocks,
|
||||
Atim: syscall.Timespec(u.Atim),
|
||||
Mtim: syscall.Timespec(u.Mtim),
|
||||
Ctim: syscall.Timespec(u.Ctim),
|
||||
}
|
||||
}
|
Loading…
Reference in new issue