added new status messages
This commit is contained in:
parent
5b3d8162b4
commit
92ca22fe6b
@ -1,3 +1,11 @@
|
|||||||
|
2001-09-07 Werner Koch <wk@gnupg.org>
|
||||||
|
|
||||||
|
* rungpg.h: Add NO_RECP.
|
||||||
|
* encrypt.c (encrypt_status_handler): Take on No_RECP.
|
||||||
|
(gpgme_op_encrypt): Better error return.
|
||||||
|
|
||||||
|
* verify.c (verify_status_handler): Take on NODATA.
|
||||||
|
|
||||||
2001-09-03 Werner Koch <wk@gnupg.org>
|
2001-09-03 Werner Koch <wk@gnupg.org>
|
||||||
|
|
||||||
* rungpg.h: Added STATUS_INV_RECP.
|
* rungpg.h: Added STATUS_INV_RECP.
|
||||||
|
@ -39,6 +39,7 @@
|
|||||||
|
|
||||||
|
|
||||||
struct encrypt_result_s {
|
struct encrypt_result_s {
|
||||||
|
int no_recipients;
|
||||||
GpgmeData xmlinfo;
|
GpgmeData xmlinfo;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -126,6 +127,10 @@ encrypt_status_handler ( GpgmeCtx ctx, GpgStatusCode code, char *args )
|
|||||||
append_xml_encinfo (&ctx->result.encrypt->xmlinfo, args);
|
append_xml_encinfo (&ctx->result.encrypt->xmlinfo, args);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case STATUS_NO_RECP:
|
||||||
|
ctx->result.encrypt->no_recipients = 1; /* i.e. no usable ones */
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -222,18 +227,27 @@ GpgmeError
|
|||||||
gpgme_op_encrypt ( GpgmeCtx c, GpgmeRecipients recp,
|
gpgme_op_encrypt ( GpgmeCtx c, GpgmeRecipients recp,
|
||||||
GpgmeData in, GpgmeData out )
|
GpgmeData in, GpgmeData out )
|
||||||
{
|
{
|
||||||
int rc = gpgme_op_encrypt_start ( c, recp, in, out );
|
int err = gpgme_op_encrypt_start ( c, recp, in, out );
|
||||||
if ( !rc ) {
|
if ( !err ) {
|
||||||
gpgme_wait (c, 1);
|
gpgme_wait (c, 1);
|
||||||
|
if ( c->result_type != RESULT_TYPE_ENCRYPT )
|
||||||
|
err = mk_error (General_Error);
|
||||||
|
else if ( c->out_of_core )
|
||||||
|
err = mk_error (Out_Of_Core);
|
||||||
|
else {
|
||||||
|
assert ( c->result.encrypt );
|
||||||
|
if (c->result.encrypt->no_recipients)
|
||||||
|
err = mk_error (No_Recipients);
|
||||||
|
}
|
||||||
c->pending = 0;
|
c->pending = 0;
|
||||||
/* FIXME: old gpg versions don't return status info for invalid
|
/* Old gpg versions don't return status info for invalid
|
||||||
* recipients, so we simply check whether we got any output at
|
* recipients, so we simply check whether we got any output at
|
||||||
* all and if not assume that we don't have valid recipients
|
* all and if not assume that we don't have valid recipients
|
||||||
* */
|
* */
|
||||||
if (gpgme_data_get_type (out) == GPGME_DATA_TYPE_NONE)
|
if (!err && gpgme_data_get_type (out) == GPGME_DATA_TYPE_NONE)
|
||||||
rc = mk_error (No_Recipients);
|
err = mk_error (No_Recipients);
|
||||||
}
|
}
|
||||||
return rc;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -87,7 +87,8 @@ typedef enum {
|
|||||||
STATUS_POLICY_URL ,
|
STATUS_POLICY_URL ,
|
||||||
STATUS_BEGIN_STREAM ,
|
STATUS_BEGIN_STREAM ,
|
||||||
STATUS_END_STREAM ,
|
STATUS_END_STREAM ,
|
||||||
STATUS_INV_RECP
|
STATUS_INV_RECP ,
|
||||||
|
STATUS_NO_RECP
|
||||||
} GpgStatusCode;
|
} GpgStatusCode;
|
||||||
|
|
||||||
typedef void (*GpgStatusHandler)( GpgmeCtx, GpgStatusCode code, char *args );
|
typedef void (*GpgStatusHandler)( GpgmeCtx, GpgStatusCode code, char *args );
|
||||||
|
@ -152,8 +152,12 @@ verify_status_handler ( GpgmeCtx ctx, GpgStatusCode code, char *args )
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch (code) {
|
switch (code) {
|
||||||
|
case STATUS_NODATA:
|
||||||
|
ctx->result.verify->status = GPGME_SIG_STAT_NOSIG;
|
||||||
|
break;
|
||||||
|
|
||||||
case STATUS_GOODSIG:
|
case STATUS_GOODSIG:
|
||||||
/* We just look at VALIDSIG */
|
/* We only look at VALIDSIG */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case STATUS_VALIDSIG:
|
case STATUS_VALIDSIG:
|
||||||
|
Loading…
Reference in New Issue
Block a user