aboutsummaryrefslogtreecommitdiffstats
path: root/g10/import.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>1998-08-11 17:29:34 +0000
committerWerner Koch <[email protected]>1998-08-11 17:29:34 +0000
commit3e0e8f884f1ed37e120beeb57aa7cd79e3c145a0 (patch)
treedfff62df60f917addc9df4e83a1ed73e31041bab /g10/import.c
parentrel 0.3.3 (diff)
downloadgnupg-0-3-4.tar.gz
gnupg-0-3-4.zip
bug fix releaseV0-3-4
Diffstat (limited to 'g10/import.c')
-rw-r--r--g10/import.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/g10/import.c b/g10/import.c
index c5eaf9ba8..73e04cb3d 100644
--- a/g10/import.c
+++ b/g10/import.c
@@ -246,6 +246,7 @@ import_one( const char *fname, KBNODE keyblock )
KBPOS kbpos;
u32 keyid[2];
int rc = 0;
+ int new_key = 0;
/* get the key and print some info about it */
node = find_kbnode( keyblock, PKT_PUBLIC_KEY );
@@ -279,6 +280,7 @@ import_one( const char *fname, KBNODE keyblock )
if( !delete_inv_parts( fname, keyblock, keyid ) ) {
log_info_f( fname, _("key %08lX: no valid user ids\n"),
(ulong)keyid[1]);
+ log_info(_("this may be caused by a missing self-signature\n"));
return 0;
}
@@ -307,6 +309,7 @@ import_one( const char *fname, KBNODE keyblock )
unlock_keyblock( &kbpos );
/* we are ready */
log_info_f( fname, _("key %08lX: public key imported\n"), (ulong)keyid[1]);
+ new_key = 1;
}
else { /* merge */
int n_uids, n_sigs, n_subk;
@@ -382,11 +385,11 @@ import_one( const char *fname, KBNODE keyblock )
log_info_f(fname, _("key %08lX: not changed\n"), (ulong)keyid[1] );
}
if( !rc ) {
- rc = query_trust_record( pk_orig );
+ rc = query_trust_record( new_key? pk : pk_orig );
if( rc && rc != -1 )
log_error("trustdb error: %s\n", g10_errstr(rc) );
- else if( rc == -1 ) {
- rc = insert_trust_record( pk_orig );
+ else if( rc == -1 ) { /* not found trustdb */
+ rc = insert_trust_record( new_key? pk : pk_orig );
if( rc )
log_error("key %08lX: trustdb insert failed: %s\n",
(ulong)keyid[1], g10_errstr(rc) );