| Age | Commit message (Collapse) | Author | 
 | 
Move the script from tests to contrib as it may now
be useful to somebody else.
https://github.com/rfjakob/gocryptfs/issues/552
 | 
 | 
$ ./contrib/atomicrename/atomicrename -h
atomicrename creates 100 "src" files in the current directory, renames
them in random order over a single "dst" file while reading the "dst"
file concurrently in a loop.
Progress and errors are reported as they occour in addition to a summary
printed at the end. cifs and fuse filesystems are known to fail, local
filesystems and nfs seem ok.
See https://github.com/hanwen/go-fuse/issues/398 for background info.
 | 
 | 
Also, change the logic for the segment walk to not
rely on the total size. cp does not use the total
size either, and we miss bugs by cheating!
 | 
 | 
Utility and libs to find hole/data segments using lseek.
 | 
 | 
 | 
 | 
Also fix all shellcheck warnings.
 | 
 | 
 | 
 | 
Getting EINTR here is acceptable.
 | 
 | 
This made the code more complicated without reproducing
the problem.
This reverts commit 77632b7554000f2e832a0e9fded1a3894b2502c3.
 | 
 | 
This was an attempt to make the C code more
similar to Go (which also reads from multiple threads).
However, I still could not repro the ENOENT problems.
https://github.com/rfjakob/gocryptfs/issues/483
 | 
 | 
Locale trouble was
   sshfs-benchmark.bash: line 31: printf: 4.71: invalid number
because printf expected "4,71" in the German locale.
Force the C locale.
 | 
 | 
22e3eec15302eac28c1a2ac3f9af29c2c9e82a3c
 | 
 | 
Also try to improve and unify output a little.
$ ./getdents /usr/share/man/man1
  1: unix.Getdents: n=9984; n=9984; n=9968; n=9976; n=9984; n=9968; n=10000; n=9976; n=9992; n=10000; n=9976; n=9992; n=2312; n=0; err=<nil>; total 122112 bytes
  2: unix.Getdents: n=9984; n=48; n=9976; n=9968; n=9976; n=9976; n=9992; n=9984; n=9992; n=10000; n=9976; n=9968; n=10000; n=2272; n=0; err=<nil>; total 122112 bytes
  3: unix.Getdents: n=9984; n=9984; n=9968; n=704; n=10000; n=10000; n=9968; n=9968; n=9992; n=10000; n=9960; n=9992; n=9992; n=1600; n=0; err=<nil>; total 122112 bytes
  4: unix.Getdents: n=9984; n=9984; n=9968; n=9976; n=9984; n=32; n=9992; n=9984; n=9992; n=10000; n=9976; n=9968; n=10000; n=2272; n=0; err=<nil>; total 122112 bytes
$ ./getdents_c /usr/share/man/man1
  1: getdents64: n=9984; n=9984; n=9968; n=9976; n=9984; n=9968; n=10000; n=9976; n=9992; n=10000; n=9976; n=9992; n=2312; n=0; errno=0 total 122112 bytes
  2: getdents64: n=9984; n=9984; n=9968; n=9976; n=9984; n=9968; n=10000; n=9976; n=9992; n=10000; n=9976; n=9992; n=2312; n=0; errno=0 total 122112 bytes
  3: getdents64: n=9984; n=9984; n=9968; n=9976; n=9984; n=9968; n=10000; n=9976; n=9992; n=10000; n=9976; n=9992; n=2312; n=0; errno=0 total 122112 bytes
  4: getdents64: n=9984; n=9984; n=9968; n=9976; n=9984; n=9968; n=10000; n=9976; n=9992; n=10000; n=9976; n=9992; n=2312; n=0; errno=0 total 122112 bytes
 | 
 | 
$ ./getdents -loop /mnt/synology/public/tmp/g1
unix.Getdents: n=4176; n=4176; n=4176; n=4176; n=4176; n=3192; n=0; err=<nil>; total 24072 bytes
unix.Getdents: n=4176; n=4176; n=4176; n=4176; n=4176; n=3192; n=0; err=<nil>; total 24072 bytes
unix.Getdents: n=4176; n=-1; err=no such file or directory; total 4176 bytes
 | 
 | 
Another way to repro the problem in
https://github.com/rfjakob/gocryptfs/issues/483
 | 
 | 
 | 
 | 
Same thing like contrib/getdents, but written in C.
 | 
 | 
Small tool to try to debug unix.Getdents problems on CIFS mounts
https://github.com/rfjakob/gocryptfs/issues/483
 | 
 | 
And also, stop using the wrong directory for sshfs git init.
sshfs-benchmark.bash:    sshfs  gocryptfs-on-sshfs
git init                  4.35                7.82
rsync                     7.72               11.66
rm -R                     2.71               11.04
mkdir                     1.33                4.15
rmdir                     0.47                3.97
touch                     2.32                2.85
rm                        0.45                0.45
 | 
 | 
Let's get some reproducible numbers for
https://github.com/rfjakob/gocryptfs/issues/481
and
https://github.com/rfjakob/gocryptfs/issues/410
Example run:
$ ./sshfs-benchmark.bash nuetzlich.net
working directory: /tmp/sshfs-benchmark.bash.vu4
sshfs mounted: nuetzlich.net:/tmp -> sshfs.mnt
gocryptfs mounted: sshfs.mnt/sshfs-benchmark.bash.KM9/gocryptfs.crypt -> gocryptfs.mnt
                         sshfs  gocryptfs-on-sshfs
git init                  1.68               11.23
rsync                     6.07               20.35
 | 
 | 
Closes https://github.com/rfjakob/gocryptfs/issues/416
 | 
 | 
Useful when you have lots of broken mounts after something in
the test suite went wrong.
 | 
 | 
Cli tool to compare the result of Stat() and Fstat().
 | 
 | 
 | 
 | 
This should help debugging
https://github.com/rfjakob/gocryptfs/issues/375 and
https://github.com/rfjakob/gocryptfs/issues/274 ,
as MacOS does not have "stat -f".
 | 
 | 
Mac OS X does not have fusermount and uses umount instead.
The fuse-unmount.bash calls the appropriate command.
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
Conditionally try to mount a gocryptfs filesystem. If either
 * CIPHERDIR does not exist OR
 * something is already mounted on MOUNTPOINT
 print a message to stdout (not stderr!) but exit with 0.
 This is meant to be called from automated mount systems like pam_mount,
 where you want to avoid error messages if the filesystem does not exist,
 or duplicate mounts if the filesystem has already been mounted.
 | 
 | 
The README text has been moved to
https://github.com/rfjakob/gocryptfs/wiki/Mounting-on-login-using-pam_mount
and the gocryptfs_pam_mount.bash is no longer needed since
commit 9cf3ced0ce95495cabd8f4e7055d1c98f42363c9 .
 | 
 | 
pam_mount is supposed to check that as well, but it seems to get confused
by the "command#path" syntax used for FUSE. Let's do it here.
 | 
 | 
 | 
 | 
See ticket #34
 |