diff options
| author | Marcus Brinkmann <[email protected]> | 2002-02-25 19:08:51 +0000 | 
|---|---|---|
| committer | Marcus Brinkmann <[email protected]> | 2002-02-25 19:08:51 +0000 | 
| commit | d75d6fb26208d3f135a99126c70f20396c6e458c (patch) | |
| tree | 74d06a2ba3c93dbba798c4fa2f0fe23b9b8c905d | |
| parent | Fix typo. (diff) | |
| download | gpgme-d75d6fb26208d3f135a99126c70f20396c6e458c.tar.gz gpgme-d75d6fb26208d3f135a99126c70f20396c6e458c.zip | |
2002-02-25  Marcus Brinkmann  <[email protected]>
	* verify.c (_gpgme_verify_status_handler): Parse the args line to
	see if the problem is due to a missing key, and report that back
	to the user.
| -rw-r--r-- | gpgme/ChangeLog | 6 | ||||
| -rw-r--r-- | gpgme/verify.c | 11 | 
2 files changed, 14 insertions, 3 deletions
| diff --git a/gpgme/ChangeLog b/gpgme/ChangeLog index 16b91887..ebecd264 100644 --- a/gpgme/ChangeLog +++ b/gpgme/ChangeLog @@ -1,5 +1,11 @@  2002-02-25  Marcus Brinkmann  <[email protected]> +	* verify.c (_gpgme_verify_status_handler): Parse the args line to +	see if the problem is due to a missing key, and report that back +	to the user. + +2002-02-25  Marcus Brinkmann  <[email protected]> +  	* context.h (struct gpgme_context_s): New member include_certs.  	* gpgme.h (gpgme_set_include_certs): Add prototype.  	(gpgme_get_include_certs): Likewise. diff --git a/gpgme/verify.c b/gpgme/verify.c index 768a6743..ae635790 100644 --- a/gpgme/verify.c +++ b/gpgme/verify.c @@ -191,9 +191,14 @@ _gpgme_verify_status_handler (GpgmeCtx ctx, GpgStatusCode code, char *args)        break;      case STATUS_ERRSIG: -      ctx->result.verify->status = GPGME_SIG_STAT_ERROR; -      /* FIXME: Distinguish between a regular error and a missing key. -	 This is encoded in the args.  */ +      /* The return code is the 6th argument, if it is 9, the problem +	 is a missing key.  */ +      for (p = args, i = 0; p && i < 5; i++) +	p = strchr (p, ' '); +      if (p && *(++p) == '9' && *(++p) == '\0') +	ctx->result.verify->status = GPGME_SIG_STAT_NOKEY; +      else +	ctx->result.verify->status = GPGME_SIG_STAT_ERROR;        /* Store the keyID in the fpr field.  */        p = ctx->result.verify->fpr;        for (i = 0; i < DIM(ctx->result.verify->fpr) | 
