diff options
author | Werner Koch <[email protected]> | 1998-08-11 17:29:34 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 1998-08-11 17:29:34 +0000 |
commit | 3e0e8f884f1ed37e120beeb57aa7cd79e3c145a0 (patch) | |
tree | dfff62df60f917addc9df4e83a1ed73e31041bab /g10/import.c | |
parent | rel 0.3.3 (diff) | |
download | gnupg-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.c | 9 |
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) ); |