mirror of
https://github.com/vgough/encfs.git
synced 2024-11-24 17:03:13 +01:00
Add 2 options --noattrcache --nodatacache (#500)
--nocache : disables attr and data cache. --noattrcache : disables attr cache only. --nodatacache : disables data cache only.
This commit is contained in:
parent
a220c395f4
commit
980648c3b2
@ -21,7 +21,7 @@ B<encfs> [B<--version>] [B<-v>|B<--verbose>] [B<-c>|B<--config>] [B<-t>|B<--sysl
|
|||||||
[B<--reverse>] [B<--reversewrite>] [B<--extpass=program>] [B<-S>|B<--stdinpass>]
|
[B<--reverse>] [B<--reversewrite>] [B<--extpass=program>] [B<-S>|B<--stdinpass>]
|
||||||
[B<--anykey>] [B<--forcedecode>] [B<-require-macs>]
|
[B<--anykey>] [B<--forcedecode>] [B<-require-macs>]
|
||||||
[B<-i MINUTES>|B<--idle=MINUTES>] [B<-m>|B<--ondemand>] [B<--delaymount>] [B<-u>|B<--unmount>]
|
[B<-i MINUTES>|B<--idle=MINUTES>] [B<-m>|B<--ondemand>] [B<--delaymount>] [B<-u>|B<--unmount>]
|
||||||
[B<--public>] [B<--nocache>] [B<--no-default-flags>]
|
[B<--public>] [B<--nocache>] [B<--noattrcache>] [B<--nodatacache>] [B<--no-default-flags>]
|
||||||
[B<-o FUSE_OPTION>] [B<-d>|B<--fuse-debug>] [B<-H>|B<--fuse-help>]
|
[B<-o FUSE_OPTION>] [B<-d>|B<--fuse-debug>] [B<-H>|B<--fuse-help>]
|
||||||
I<rootdir> I<mountPoint>
|
I<rootdir> I<mountPoint>
|
||||||
[B<--> [I<Fuse Mount Options>]]
|
[B<--> [I<Fuse Mount Options>]]
|
||||||
@ -238,9 +238,17 @@ you want before considering the use of B<--public>.
|
|||||||
|
|
||||||
Disable the kernel's cache of file attributes.
|
Disable the kernel's cache of file attributes.
|
||||||
Setting this option makes EncFS pass "attr_timeout=0" and "entry_timeout=0" to
|
Setting this option makes EncFS pass "attr_timeout=0" and "entry_timeout=0" to
|
||||||
FUSE. This makes sure that modifications to the backing files that occour
|
FUSE. This makes sure that modifications to the backing file attributes that
|
||||||
outside EncFS show up immediately in the EncFS mount. The main use case
|
occour outside EncFS show up immediately in the EncFS mount. The internal EncFS
|
||||||
for "--nocache" is reverse mode.
|
data cache is also disabled. The main use case for B<--nocache> is reverse mode.
|
||||||
|
|
||||||
|
=item B<--noattrcache>
|
||||||
|
|
||||||
|
Same as B<--nocache> but for attributes only.
|
||||||
|
|
||||||
|
=item B<--nodatacache>
|
||||||
|
|
||||||
|
Same as B<--nocache> but for data only.
|
||||||
|
|
||||||
=item B<--no-default-flags>
|
=item B<--no-default-flags>
|
||||||
|
|
||||||
|
@ -47,8 +47,10 @@
|
|||||||
* not have a short version */
|
* not have a short version */
|
||||||
#define LONG_OPT_ANNOTATE 513
|
#define LONG_OPT_ANNOTATE 513
|
||||||
#define LONG_OPT_NOCACHE 514
|
#define LONG_OPT_NOCACHE 514
|
||||||
#define LONG_OPT_REQUIRE_MAC 515
|
#define LONG_OPT_NODATACACHE 515
|
||||||
#define LONG_OPT_INSECURE 516
|
#define LONG_OPT_NOATTRCACHE 516
|
||||||
|
#define LONG_OPT_REQUIRE_MAC 517
|
||||||
|
#define LONG_OPT_INSECURE 518
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace encfs;
|
using namespace encfs;
|
||||||
@ -254,7 +256,9 @@ static bool processArgs(int argc, char *argv[],
|
|||||||
{"syslogtag", 1, nullptr, 't'}, // syslog tag
|
{"syslogtag", 1, nullptr, 't'}, // syslog tag
|
||||||
{"annotate", 0, nullptr,
|
{"annotate", 0, nullptr,
|
||||||
LONG_OPT_ANNOTATE}, // Print annotation lines to stderr
|
LONG_OPT_ANNOTATE}, // Print annotation lines to stderr
|
||||||
{"nocache", 0, nullptr, LONG_OPT_NOCACHE}, // disable caching
|
{"nocache", 0, nullptr, LONG_OPT_NOCACHE}, // disable all caching
|
||||||
|
{"nodatacache", 0, nullptr, LONG_OPT_NODATACACHE}, // disable data caching
|
||||||
|
{"noattrcache", 0, nullptr, LONG_OPT_NOATTRCACHE}, // disable attr caching
|
||||||
{"verbose", 0, nullptr, 'v'}, // verbose mode
|
{"verbose", 0, nullptr, 'v'}, // verbose mode
|
||||||
{"version", 0, nullptr, 'V'}, // version
|
{"version", 0, nullptr, 'V'}, // version
|
||||||
{"reverse", 0, nullptr, 'r'}, // reverse encryption
|
{"reverse", 0, nullptr, 'r'}, // reverse encryption
|
||||||
@ -384,6 +388,16 @@ static bool processArgs(int argc, char *argv[],
|
|||||||
// Should be enforced due to attr_timeout=0, but does not seem to work correctly
|
// Should be enforced due to attr_timeout=0, but does not seem to work correctly
|
||||||
// https://github.com/billziss-gh/winfsp/issues/155
|
// https://github.com/billziss-gh/winfsp/issues/155
|
||||||
PUSHARG("-oFileInfoTimeout=0");
|
PUSHARG("-oFileInfoTimeout=0");
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
case LONG_OPT_NODATACACHE:
|
||||||
|
out->opts->noCache = true;
|
||||||
|
break;
|
||||||
|
case LONG_OPT_NOATTRCACHE:
|
||||||
|
PUSHARG("-oattr_timeout=0");
|
||||||
|
PUSHARG("-oentry_timeout=0");
|
||||||
|
#ifdef __CYGWIN__
|
||||||
|
PUSHARG("-oFileInfoTimeout=0");
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
case 'm':
|
case 'm':
|
||||||
|
@ -90,7 +90,7 @@ sub mount
|
|||||||
ok(waitForFile("$plain/.encfs6.xml"), "plain .encfs6.xml exists") or BAIL_OUT("'$plain/.encfs6.xml'");
|
ok(waitForFile("$plain/.encfs6.xml"), "plain .encfs6.xml exists") or BAIL_OUT("'$plain/.encfs6.xml'");
|
||||||
my $e = encName(".encfs6.xml");
|
my $e = encName(".encfs6.xml");
|
||||||
ok(waitForFile("$ciphertext/$e"), "encrypted .encfs6.xml exists") or BAIL_OUT("'$ciphertext/$e'");
|
ok(waitForFile("$ciphertext/$e"), "encrypted .encfs6.xml exists") or BAIL_OUT("'$ciphertext/$e'");
|
||||||
system("ENCFS6_CONFIG=$plain/.encfs6.xml ./build/encfs --nocache --extpass=\"echo test\" $ciphertext $decrypted");
|
system("ENCFS6_CONFIG=$plain/.encfs6.xml ./build/encfs --noattrcache --nodatacache --extpass=\"echo test\" $ciphertext $decrypted");
|
||||||
ok(waitForFile("$decrypted/.encfs6.xml"), "decrypted .encfs6.xml exists") or BAIL_OUT("'$decrypted/.encfs6.xml'");
|
ok(waitForFile("$decrypted/.encfs6.xml"), "decrypted .encfs6.xml exists") or BAIL_OUT("'$decrypted/.encfs6.xml'");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user