diff options
author | Jakob Unterwurzacher | 2017-08-06 21:59:15 +0200 |
---|---|---|
committer | Jakob Unterwurzacher | 2017-08-06 21:59:15 +0200 |
commit | 5190cc09bbc8afca75986dbb14f09e62eda33b61 (patch) | |
tree | 37e5d9fc3febd063e9c09dc44dfbdaefd300a9c3 /internal/nametransform/diriv_cache.go | |
parent | 32611ff97afacb6525015ed322645e12bd296380 (diff) |
nametransform: move diriv cache into it's own package
Needs some space to grow.
renamed: internal/nametransform/diriv_cache.go -> internal/nametransform/dirivcache/dirivcache.go
Diffstat (limited to 'internal/nametransform/diriv_cache.go')
-rw-r--r-- | internal/nametransform/diriv_cache.go | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/internal/nametransform/diriv_cache.go b/internal/nametransform/diriv_cache.go deleted file mode 100644 index 82c5bd3..0000000 --- a/internal/nametransform/diriv_cache.go +++ /dev/null @@ -1,63 +0,0 @@ -package nametransform - -import ( - "sync" - "time" -) - -// Single-entry DirIV cache. Stores the directory IV and the encrypted -// path. -type dirIVCache struct { - // Directory the DirIV belongs to - dir string - // Time the entry expires. - // The cached entry my become out-of-date if the ciphertext directory is - // modifed behind the back of gocryptfs. Having an expiry time limits the - // inconstency to one second, like attr_timeout does for the kernel - // getattr cache. - expiry time.Time - - // The DirIV - iv []byte - // Ecrypted version of "dir" - cDir string - - // Invalidated? - cleared bool - sync.RWMutex -} - -// lookup - fetch entry for "dir" from the cache -func (c *dirIVCache) lookup(dir string) ([]byte, string) { - c.RLock() - defer c.RUnlock() - if c.cleared || c.dir != dir { - return nil, "" - } - if time.Since(c.expiry) > 0 { - c.cleared = true - return nil, "" - } - return c.iv, c.cDir -} - -// store - write entry for "dir" into the cache -func (c *dirIVCache) store(dir string, iv []byte, cDir string) { - c.Lock() - defer c.Unlock() - c.cleared = false - c.iv = iv - c.dir = dir - c.cDir = cDir - // Set expiry time one second into the future - c.expiry = time.Now().Add(1 * time.Second) -} - -// Clear ... clear the cache. -// Exported because it is called from fusefrontend when directories are -// renamed or deleted. -func (c *dirIVCache) Clear() { - c.Lock() - defer c.Unlock() - c.cleared = true -} |