diff options
author | Mantas Mikulėnas <grawity@gmail.com> | 2017-02-20 23:38:40 +0200 |
---|---|---|
committer | Daiki Ueno <ueno@gnu.org> | 2017-02-21 09:56:10 +0100 |
commit | c65752d596e69f48ebe67694cfb2a91697a676bf (patch) | |
tree | 5ae7f677d572b2bb064e8462ae2c01065b2d54e4 | |
parent | 8eed1e60b0921d05872e2f43eee9088cef038d7e (diff) |
rpc: Try $XDG_CACHE_HOME before ~/.cache
This is unset on most systems, but might as well follow the Base
Directory spec properly.
-rw-r--r-- | p11-kit/client.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/p11-kit/client.c b/p11-kit/client.c index 75aebe8..b4eb57f 100644 --- a/p11-kit/client.c +++ b/p11-kit/client.c @@ -96,6 +96,17 @@ get_runtime_directory (char **directoryp) } /* We can't use /run/user/<UID>, fallback to ~/.cache. */ + envvar = secure_getenv ("XDG_CACHE_HOME"); + + if (envvar != NULL && envvar[0] != '\0') { + directory = strdup (envvar); + if (!directory) + return CKR_HOST_MEMORY; + + *directoryp = directory; + return CKR_OK; + } + if (getpwuid_r (uid, &pwbuf, buf, sizeof buf, &pw) < 0 || pw == NULL || pw->pw_dir == NULL || *pw->pw_dir != '/') return CKR_GENERAL_ERROR; |