Re: Setting max-cache-ttl to 0 does not disable caching

NIIBE Yutaka via Gnupg-devel <[email protected]>
Newsgroups gmane.comp.encryption.gpg.devel
Message-ID <[email protected]>
Hello,

Lucas Mulling wrote:
> A few users have questioned a change in behaviour from version 2.4.7 to
> 2.5.0 (commit 92de0387f04b1e87a4a49ed063323624f25ac3ef) where setting
> max-cache-ttl to 0 does not disable password caching anymore, is this
> change intended?

Sorry, it's not intended change.  I overlooked this use case of setting
max-cache-ttl to 0.

To disable caching, I think that you can do by:

	default-cache-ttl 0

Possible fix to recover the same semantics would be the following.

==========================
diff --git a/agent/cache.c b/agent/cache.c
index e8544205f..fbe1c1f14 100644
--- a/agent/cache.c
+++ b/agent/cache.c
@@ -318,6 +318,7 @@ compute_expiration (ITEM r)
   unsigned long maxttl;
   time_t current = gnupg_get_time ();
   time_t next;
+  int no_maxttl = 0;
 
   if (r->cache_mode == CACHE_MODE_PIN)
     return 0; /* Don't let it expire - scdaemon explicitly flushes them.  */
@@ -334,13 +335,16 @@ compute_expiration (ITEM r)
     {
     case CACHE_MODE_DATA:
     case CACHE_MODE_PIN:
-      maxttl = 0;  /* No MAX TTL here.  */
+      no_maxttl = 1;
+      /* No MAX TTL here.  */
       break;
     case CACHE_MODE_SSH: maxttl = opt.max_cache_ttl_ssh; break;
     default: maxttl = opt.max_cache_ttl; break;
     }
 
-  if (maxttl)
+  if (no_maxttl)
+    next = 0;
+  else
     {
       if (r->created + maxttl < current)
         {
@@ -351,8 +355,6 @@ compute_expiration (ITEM r)
 
       next = r->created + maxttl - current;
     }
-  else
-    next = 0;
 
   if (r->ttl >= 0 && (next == 0 || r->ttl < next))
     {
--
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.