aboutsummaryrefslogtreecommitdiffstats
path: root/agent/cache.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2004-12-21 19:05:15 +0000
committerWerner Koch <[email protected]>2004-12-21 19:05:15 +0000
commit01f3f2515834876e2131d077e34c3cae4f9a2dc0 (patch)
tree6033e9b66eb3aa8cb46c8fa88cdf80ac29923dba /agent/cache.c
parent* homedir.c: New. Use CSIDL_APPDATA for W32 as the default home (diff)
downloadgnupg-01f3f2515834876e2131d077e34c3cae4f9a2dc0.tar.gz
gnupg-01f3f2515834876e2131d077e34c3cae4f9a2dc0.zip
* preset-passphrase.c (preset_passphrase): Handle --passphrase.
* Makefile.am (gpg_preset_passphrase_LDADD): Reorder libs so that pwquery may use stuff from jnlib. Conditionally add -lwsock2 (gpg_protect_tool_LDADD): Ditto. * preset-passphrase.c (main): Use default_homedir(). (main) [W32]: Initialize sockets. * simple-pwquery.c (agent_open) [W32]: Implement for W32. (readline) [W32]: Use recv instead of read. (writen) [W32]: Use send instead of write. (my_stpcpy): Define a stpcpy replacement so that this file continues to be self-contained. (agent_send_all_options) [W32]: Don't call ttyname. * gnupg-badge-openpgp.eps, gnupg-badge-openpgp.jpg: New * gnupg.texi: Add a logo. * sysnotes.texi: New. * gpgsm.c (main): Use default_homedir(). (main) [W32]: Default to disabled CRL checks. * gpgconf-comp.c (get_config_pathname) [DOSISH]: Detect absolute pathnames with a drive letter.
Diffstat (limited to 'agent/cache.c')
-rw-r--r--agent/cache.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/agent/cache.c b/agent/cache.c
index 8017b1414..b6762edd0 100644
--- a/agent/cache.c
+++ b/agent/cache.c
@@ -39,7 +39,7 @@ struct cache_item_s {
ITEM next;
time_t created;
time_t accessed;
- int ttl; /* max. lifetime given in seonds */
+ int ttl; /* max. lifetime given in seonds, -1 one means infinite */
int lockcount;
struct secret_data_s *pw;
char key[1];
@@ -88,7 +88,8 @@ housekeeping (void)
/* first expire the actual data */
for (r=thecache; r; r = r->next)
{
- if (!r->lockcount && r->pw && r->accessed + r->ttl < current)
+ if (!r->lockcount && r->pw
+ && r->ttl >= 0 && r->accessed + r->ttl < current)
{
if (DBG_CACHE)
log_debug (" expired `%s' (%ds after last access)\n",
@@ -118,7 +119,7 @@ housekeeping (void)
Expire old and unused entries after 30 minutes */
for (rprev=NULL, r=thecache; r; )
{
- if (!r->pw && r->accessed + 60*30 < current)
+ if (!r->pw && r->ttl >= 0 && r->accessed + 60*30 < current)
{
if (r->lockcount)
{
@@ -194,7 +195,7 @@ agent_put_cache (const char *key, const char *data, int ttl)
log_debug ("agent_put_cache `%s'\n", key);
housekeeping ();
- if (ttl < 1)
+ if (ttl == 1)
ttl = opt.def_cache_ttl;
if (!ttl)
return 0;