From 76b0b076d0dfc1c0b011b9fd458a5158c189ebb4 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Tue, 10 Jun 2014 14:54:55 +0200 Subject: [PATCH] gpg: Use more specific reason codes for INV_RECP. * g10/pkclist.c (build_pk_list): Use more specific reasons codes for INV_RECP. -- GnuPG-bug-id: 1650 Note that this patch is a bit more limited than the one in 2.1. --- g10/pkclist.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/g10/pkclist.c b/g10/pkclist.c index 85a8eeb6f..1d0b2d22e 100644 --- a/g10/pkclist.c +++ b/g10/pkclist.c @@ -831,7 +831,11 @@ build_pk_list( strlist_t rcpts, PK_LIST *ret_pk_list, unsigned int use ) { free_public_key ( pk ); pk = NULL; log_error (_("%s: skipped: %s\n"), rov->d, g10_errstr(rc) ); - write_status_text_and_buffer (STATUS_INV_RECP, "0 ", + write_status_text_and_buffer (STATUS_INV_RECP, + (rc == GPG_ERR_NO_PUBKEY + || rc == GPG_ERR_NO_SECKEY)? "1 ": + (rc == GPG_ERR_INV_USER_ID)? "14 ": + "0 ", rov->d, strlen (rov->d), -1); goto fail; } @@ -874,7 +878,7 @@ build_pk_list( strlist_t rcpts, PK_LIST *ret_pk_list, unsigned int use ) available. */ free_public_key( pk ); pk = NULL; log_error(_("%s: skipped: %s\n"), rov->d, g10_errstr(rc) ); - write_status_text_and_buffer (STATUS_INV_RECP, "0 ", + write_status_text_and_buffer (STATUS_INV_RECP, "3 ", rov->d, strlen (rov->d), -1); goto fail; } @@ -1086,7 +1090,11 @@ build_pk_list( strlist_t rcpts, PK_LIST *ret_pk_list, unsigned int use ) /* Key not found or other error. */ free_public_key( pk ); pk = NULL; log_error(_("%s: skipped: %s\n"), remusr->d, g10_errstr(rc) ); - write_status_text_and_buffer (STATUS_INV_RECP, "0 ", + write_status_text_and_buffer (STATUS_INV_RECP, + (rc == G10ERR_NO_PUBKEY + || rc == G10ERR_NO_SECKEY)? "1 ": + (rc == G10ERR_INV_USER_ID)? "14 ": + "0 ", remusr->d, strlen (remusr->d), -1); goto fail; @@ -1103,7 +1111,7 @@ build_pk_list( strlist_t rcpts, PK_LIST *ret_pk_list, unsigned int use ) free_public_key(pk); pk = NULL; log_info(_("%s: skipped: public key is disabled\n"), remusr->d); - write_status_text_and_buffer (STATUS_INV_RECP, "0 ", + write_status_text_and_buffer (STATUS_INV_RECP, "13 ", remusr->d, strlen (remusr->d), -1); @@ -1152,7 +1160,7 @@ build_pk_list( strlist_t rcpts, PK_LIST *ret_pk_list, unsigned int use ) { /* Key found but not usable for us (e.g. sign-only key). */ free_public_key( pk ); pk = NULL; - write_status_text_and_buffer (STATUS_INV_RECP, "0 ", + write_status_text_and_buffer (STATUS_INV_RECP, "3 ", remusr->d, strlen (remusr->d), -1);