libgocryptfs/internal
Sebastian Lackner 682e642cfa fusefrontend: Rework the Utimens handling on macOS.
For Linux, everything effectively stays the same. For both path-based and
fd-based Utimens() calls, we use unix.UtimesNanoAt(). To avoid introducing
a separate syscall wrapper for futimens() (as done in go-fuse, for example),
we instead use the /proc/self/fd - trick.

On macOS, this changes quite a lot:

* Path-based Utimens() calls were previously completely broken, since
  unix.UtimensNanoAt() ignores the passed file descriptor. Note that this
  cannot be fixed easily since there IS no appropriate syscall available on
  macOS prior to High Sierra (10.13). We emulate this case by using
  Fchdir() + setattrlist().

* Fd-based Utimens() calls were previously translated to f.GetAttr() (to
  fill any empty parameters) and syscall.Futimes(), which does not does
  support nanosecond precision. Both issues can be fixed by switching to
  fsetattrlist().

Fixes https://github.com/rfjakob/gocryptfs/issues/350
2019-01-16 20:55:20 +01:00
..
configfile configfile: Fix a copy&paste error in validateParams method. 2018-12-28 09:58:46 +01:00
contentenc configfile: Explicitly wipe scrypt derived key after decrypting/encrypting master key. 2018-12-27 18:47:14 +01:00
cryptocore tlog: stop embedding log.Logger to prevent mistakes 2018-02-28 09:02:18 +01:00
ctlsock fsck: clean up log output 2018-04-02 18:32:30 +02:00
ensurefds012 main: Run 'ensure fds' code early during the program startup. 2019-01-05 16:12:16 +01:00
exitcodes main: ensure fds 0,1,2 are always open 2019-01-05 14:17:51 +01:00
fusefrontend fusefrontend: Rework the Utimens handling on macOS. 2019-01-16 20:55:20 +01:00
fusefrontend_reverse fusefrontend_reverse: Delete leftover debug statement. 2019-01-15 22:07:37 +01:00
nametransform nametransform: Create *.name files with 0400 permission. 2019-01-09 20:42:18 +01:00
openfiletable Add option for autounmount 2018-10-11 20:16:45 +02:00
pathiv pathiv: fix test failure on Go 1.6 2017-05-31 08:21:36 +02:00
prefer_openssl prefer_openssl: default to Go GCM on OSX 2016-12-10 21:04:17 +01:00
readpassword tests: fix TestPassfileNewline 2018-12-16 12:33:25 +01:00
serialize_reads fix golint complaints 2017-04-29 14:50:58 +02:00
siv_aead siv_aead: create private key copy and implement wiping 2018-02-18 16:01:46 +01:00
speed fix golint complaints 2017-04-29 14:50:58 +02:00
stupidgcm Assorted spelling fixes. 2018-12-27 15:19:55 +01:00
syscallcompat fusefrontend: Rework the Utimens handling on macOS. 2019-01-16 20:55:20 +01:00
tlog tlog: disable color codes when switching to syslog 2018-10-17 22:34:30 +02:00