(keyedit_menu) [W32]: Run the trustdb stale check
authorWerner Koch <wk@gnupg.org>
Thu, 10 Mar 2005 18:40:57 +0000 (18:40 +0000)
committerWerner Koch <wk@gnupg.org>
Thu, 10 Mar 2005 18:40:57 +0000 (18:40 +0000)
earlier.

g10/ChangeLog
g10/keyedit.c

index 3ffe66f..cb5fb4f 100644 (file)
@@ -1,3 +1,8 @@
+2005-03-10  Werner Koch  <wk@g10code.com>
+
+       * keyedit.c (keyedit_menu) [W32]: Run the trustdb stale check
+       earlier.
+
 2005-03-07  Werner Koch  <wk@g10code.com>
 
        * cardglue.c (agent_scd_pkdecrypt, agent_scd_pksign) 
 2005-03-07  Werner Koch  <wk@g10code.com>
 
        * cardglue.c (agent_scd_pkdecrypt, agent_scd_pksign) 
index 46759ef..8cd85d4 100644 (file)
@@ -1431,7 +1431,20 @@ keyedit_menu( const char *username, STRLIST locusr,
        goto leave;
       }
 
        goto leave;
       }
 
-    /* get the public key */
+#ifdef HAVE_W32_SYSTEM
+    /* Due to Windows peculiarities we need to make sure that the
+       trustdb stale check is done before we open another file
+       (i.e. by searching for a key).  In theory we could make sure
+       that the files are closed after use but the open/close caches
+       inhibits that and flushing the cache right before the stale
+       check is not easy to implement.  Thus we take the easy way out
+       and run the stale check as early as possible.  Note, that for
+       non- W32 platforms it is run indirectly trough a call to
+       get_validity ().  */
+    check_trustdb_stale ();
+#endif
+
+    /* Get the public key */
     rc = get_pubkey_byname (NULL, username, &keyblock, &kdbhd, 1);
     if( rc )
        goto leave;
     rc = get_pubkey_byname (NULL, username, &keyblock, &kdbhd, 1);
     if( rc )
        goto leave;