See ChangeLog: Thu Jan 21 06:22:10 CET 1999 Werner Koch
[gnupg.git] / g10 / trustdb.c
index de76a25..674240a 100644 (file)
@@ -139,7 +139,7 @@ static void
 die_invalid_db()
 {
     log_error(_(
-       "The trust DB is corrupted; please run \"gpgm --fix-trust-db\".\n") );
+       "The trustdb is corrupted; please run \"gpgm --fix-trustdb\".\n") );
     g10_exit(2);
 }
 
@@ -195,7 +195,7 @@ do_sync( )
     int rc = tdbio_sync();
     if( !rc )
        return;
-    log_error(_("trust db: sync failed: %s\n"), g10_errstr(rc) );
+    log_error(_("trustdb: sync failed: %s\n"), g10_errstr(rc) );
     g10_exit(2);
 }
 
@@ -1220,10 +1220,10 @@ import_ownertrust( const char *fname )
        rc = tdbio_search_dir_byfpr( line, fprlen, 0, &rec );
        if( !rc ) { /* found: update */
            if( rec.r.dir.ownertrust )
-               log_info(_("LID %lu: changing trust from %u to %u\n"),
+               log_info("LID %lu: changing trust from %u to %u\n",
                          rec.r.dir.lid, rec.r.dir.ownertrust, otrust );
            else
-               log_info(_("LID %lu: setting trust to %u\n"),
+               log_info("LID %lu: setting trust to %u\n",
                                   rec.r.dir.lid, otrust );
            rec.r.dir.ownertrust = otrust;
            write_record( &rec );
@@ -1749,7 +1749,7 @@ enum_cert_paths( void **context, ulong *lid,
 /****************
  * Print the current path
  */
-int
+void
 enum_cert_paths_print( void **context, FILE *fp,
                                       int refresh, ulong selected_lid )
 {
@@ -2939,9 +2939,18 @@ update_trust_record( KBNODE keyblock, int recheck, int *modified )
     /* delete keyrecords from the trustdb which are not anymore used */
     /* should we really do this, or is it better to keep them and */
     /* mark as unused? */
+    /* And set the revocation flag into the dir record */
+    drec.r.dir.dirflags &= ~DIRF_REVOKED;
     lastrecno = 0;
     for( recno=drec.r.dir.keylist; recno; recno = krec.r.key.next ) {
        read_record( recno, &krec, RECTYPE_KEY );
+       if( recno == drec.r.dir.keylist ) { /* this is the primary key */
+           if( (krec.r.key.keyflags & KEYF_REVOKED) ) {
+               drec.r.dir.dirflags |= DIRF_REVOKED;
+               drec.dirty = 1;
+           }
+       }
+
        if( !qry_recno_list( recno_list, recno, RECTYPE_KEY ) ) {
            /* delete this one */
            if( !lastrecno ) {
@@ -2994,11 +3003,11 @@ update_trust_record( KBNODE keyblock, int recheck, int *modified )
     if( rc )
        rc = tdbio_cancel_transaction();
     else {
+       if( modified && tdbio_is_dirty() )
+           *modified = 1;
        drec.r.dir.dirflags |= DIRF_CHECKED;
        drec.r.dir.dirflags &= ~DIRF_VALVALID;
        write_record( &drec );
-       if( modified && tdbio_is_dirty() )
-           *modified = 1;
        rc = tdbio_end_transaction();
     }
     rel_recno_list( &recno_list );