aboutsummaryrefslogtreecommitdiffstats
path: root/sm
diff options
context:
space:
mode:
Diffstat (limited to 'sm')
-rw-r--r--sm/ChangeLog2
-rw-r--r--sm/keydb.c15
2 files changed, 17 insertions, 0 deletions
diff --git a/sm/ChangeLog b/sm/ChangeLog
index 28171b963..8c0297d28 100644
--- a/sm/ChangeLog
+++ b/sm/ChangeLog
@@ -1,5 +1,7 @@
2004-04-23 Werner Koch <[email protected]>
+ * keydb.c (keydb_add_resource): Try to compress the file on init.
+
* keylist.c (oidtranstbl): New. OIDs collected from several sources.
(print_name_raw, print_names_raw, list_cert_raw): New.
(gpgsm_list_keys): Check the dump mode and pass it down as
diff --git a/sm/keydb.c b/sm/keydb.c
index 858baf242..322307553 100644
--- a/sm/keydb.c
+++ b/sm/keydb.c
@@ -218,10 +218,25 @@ keydb_add_resource (const char *url, int force, int secret)
= create_dotlock (filename);
if (!all_resources[used_resources].lockhandle)
log_fatal ( _("can't create lock for `%s'\n"), filename);
+
+ /* Do a compress run if needed and the file is not locked. */
+ if (!make_dotlock (all_resources[used_resources].lockhandle, 0))
+ {
+ KEYBOX_HANDLE kbxhd = keybox_new (token, secret);
+
+ if (kbxhd)
+ {
+ keybox_compress (kbxhd);
+ keybox_release (kbxhd);
+ }
+ release_dotlock (all_resources[used_resources].lockhandle);
+ }
used_resources++;
}
}
+
+
break;
default:
log_error ("resource type of `%s' not supported\n", url);