diff --git a/encfs/main.cpp b/encfs/main.cpp index c624341..93925ee 100644 --- a/encfs/main.cpp +++ b/encfs/main.cpp @@ -380,6 +380,11 @@ static bool processArgs(int argc, char *argv[], /* Disable kernel dentry cache * Fallout unknown, disabling for safety */ PUSHARG("-oentry_timeout=0"); +#ifdef __CYGWIN__ + // Should be enforced due to attr_timeout=0, but does not seem to work correctly + // https://github.com/billziss-gh/winfsp/issues/155 + PUSHARG("-oFileInfoTimeout=0"); +#endif break; case 'm': out->opts->mountOnDemand = true; diff --git a/integration/reverse.t.pl b/integration/reverse.t.pl index 9acf7cd..ce73d14 100755 --- a/integration/reverse.t.pl +++ b/integration/reverse.t.pl @@ -49,9 +49,23 @@ sub newWorkingDir our $plain = "$workingDir/plain"; mkdir($plain); our $ciphertext = "$workingDir/ciphertext"; - mkdir($ciphertext); + if ($^O ne "cygwin") + { + mkdir($ciphertext); + } + else + { + $ciphertext = "/cygdrive/x"; + } our $decrypted = "$workingDir/decrypted"; - mkdir($decrypted); + if ($^O ne "cygwin") + { + mkdir($decrypted); + } + else + { + $decrypted = "/cygdrive/y"; + } } # Helper function @@ -231,7 +245,14 @@ encfsctl_cat_test(); symlink_test("/"); # absolute symlink_test("foo"); # relative symlink_test("/1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/15/17/18"); # long -symlink_test("!§\$%&/()\\<>#+="); # special characters +if ($^O ne "cygwin") +{ + symlink_test("!§\$%&/()\\<>#+="); # special characters +} +else +{ + symlink_test("!§\$%&/()//<>#+="); # special characters but without \ which is not Windows compliant +} # Absolute symlinks may failed on Windows : https://github.com/billziss-gh/winfsp/issues/153 symlink_test("$plain/foo"); writesDenied();