doc/
authorMarcus Brinkmann <mb@g10code.com>
Thu, 24 Apr 2003 14:33:13 +0000 (14:33 +0000)
committerMarcus Brinkmann <mb@g10code.com>
Thu, 24 Apr 2003 14:33:13 +0000 (14:33 +0000)
2003-04-24  Marcus Brinkmann  <marcus@g10code.de>

* gpgme.texi (Error Values): Rename GPGME_No_Passphrase to
GPGME_Bad_Passphrase.
* gpgme.texi (Decrypt): Likewise.
(Decrypt and Verify): Likewise.
(Creating a Signature): Likewise.
(Encrypting a Plaintext): Likewise.

* gpgme.texi (Error Values): Rename GPGME_No_Recipients to
GPGME_No_UserID and GPGME_Invalid_Recipient to
GPGME_Invalid_UserID.
(Encrypting a Plaintext): Likewise.

* gpgme.texi (Error Values): Remove GPGME_Busy and GPGME_No_Request.
(Listing Keys): Likewise.
(Listing Trust Items): Likewise.

gpgme/
2003-04-24  Marcus Brinkmann  <marcus@g10code.de>

* gpgme.h (GpgmeError): Rename GPGME_No_Passphrase to
GPGME_Bad_Passphrase.
* passphrase.c (_gpgme_passphrase_status_handler): Use
GPGME_Bad_Passphrase instead GPGME_No_Passphrase.

* gpgme.h (GpgmeError): Rename GPGME_No_Recipients to
GPGME_No_UserID and GPGME_Invalid_Recipient to
GPGME_Invalid_UserID.
* encrypt.c (_gpgme_encrypt_status_handler): Use GPGME_No_UserID
instead GPGME_No_Recipients and GPGME_Invalid_UserID instead
GPGME_Invalid_Recipient.
(_gpgme_op_encrypt_start): Likewise.

* gpgme.h (GpgmeError): Remove GPGME_Busy and GPGME_No_Request.
* wait-user.c (_gpgme_wait_user_event_cb): Don't clear CTX->pending.
* wait-private.c (_gpgme_wait_private_event_cb): Likewise.
* wait-global.c (gpgme_wait): Likewise.
* verify.c (_gpgme_op_verify_start): Likewise.
(gpgme_get_sig_status): Don't check pending flag.
(gpgme_get_sig_string_attr): Likewise.
(gpgme_get_sig_ulong_attr): Likewise.
(gpgme_get_sig_key): Likewise.
* op-support.c (_gpgme_op_reset): Likewise.
* trustlist.c (gpgme_op_trustlist_start): Don't clear pending flag.
(gpgme_op_trustlist_next): Don't check or clear pending flag.
(gpgme_op_trustlist_end): Likewise.
* sign.c (_gpgme_op_sign_start): Likewise.
* context.h (struct gpgme_context_s): Remove member PENDING.
* decrypt.c (_gpgme_decrypt_start): Likewise.
* delete.c (_gpgme_op_delete_start): Likewise.
* edit.c (_gpgme_op_edit_start): Likewise.
* encrypt.c (_gpgme_op_encrypt_start): Likewise.
* encrypt-sign.c (_gpgme_op_encrypt_sign_start): Likewise.
* export.c (_gpgme_op_export_start): Likewise.
* genkey.c (_gpgme_op_genkey_start): Likewise.
* import.c (_gpgme_op_import_start): Likewise.
* key.c (gpgme_get_key): Likewise.
* keylist.c (gpgme_op_keylist_start): Likewise.
(gpgme_op_keylist_ext_start): Likewise.
(gpgme_op_keylist_next): Likewise.
(gpgme_op_keylist_end): Likewise.
* data-compat.c (gpgme_error_to_errno): Don't convert EBUSY.

25 files changed:
NEWS
doc/ChangeLog
doc/gpgme.texi
gpgme/ChangeLog
gpgme/context.h
gpgme/data-compat.c
gpgme/decrypt.c
gpgme/delete.c
gpgme/edit.c
gpgme/encrypt-sign.c
gpgme/encrypt.c
gpgme/export.c
gpgme/genkey.c
gpgme/gpgme.h
gpgme/import.c
gpgme/key.c
gpgme/keylist.c
gpgme/op-support.c
gpgme/passphrase.c
gpgme/sign.c
gpgme/trustlist.c
gpgme/verify.c
gpgme/wait-global.c
gpgme/wait-private.c
gpgme/wait-user.c

diff --git a/NEWS b/NEWS
index b3e9bf5..926739a 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -41,6 +41,11 @@ Noteworthy changes in version 0.4.1 (unreleased)
    function has been removed, just return GPGME_Canceled in the
    passphrase callback directly.
 
+ * For clarity and better reusability, the error codes
+   GPGME_No_Recipients, GPGME_Invalid_Recipient and
+   GPGME_No_Passphrase have been renamed to GPGME_No_UserID,
+   GPGME_Invalid_UserID and GPGME_Bad_Passphrase resp.
+
  * Interface changes relative to the 0.4.0 release:
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 GpgmeIOCb                      CHANGED: Return type from void to GpgmeError.
@@ -56,6 +61,9 @@ gpgme_get_engine_info         CHANGED: Return info structure instead XML.
 gpgme_get_protocol_name                NEW
 GpgmePassphraseCb              CHANGED: Return error value, new argument.
 gpgme_cancel                   REMOVED: Return error in callback directly.
+GPGME_No_Recipients            CHANGED: GPGME_No_UserID
+GPGME_Invalid_Recipient                CHANGED: GPGME_Invalid_UserID
+GPGME_No_Passphrase            CHANGED: GPGME_Bad_Passphrase
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Noteworthy changes in version 0.4.0 (2002-12-23)
index 37a7f08..e9e1d1f 100644 (file)
@@ -1,3 +1,21 @@
+2003-04-24  Marcus Brinkmann  <marcus@g10code.de>
+
+       * gpgme.texi (Error Values): Rename GPGME_No_Passphrase to
+       GPGME_Bad_Passphrase.
+       * gpgme.texi (Decrypt): Likewise.
+       (Decrypt and Verify): Likewise.
+       (Creating a Signature): Likewise.
+       (Encrypting a Plaintext): Likewise.
+
+       * gpgme.texi (Error Values): Rename GPGME_No_Recipients to
+       GPGME_No_UserID and GPGME_Invalid_Recipient to
+       GPGME_Invalid_UserID.
+       (Encrypting a Plaintext): Likewise.
+
+       * gpgme.texi (Error Values): Remove GPGME_Busy and GPGME_No_Request.
+       (Listing Keys): Likewise.
+       (Listing Trust Items): Likewise.
+
 2003-02-06  Marcus Brinkmann  <marcus@g10code.de>
 
        * gpgme.texi (Cancelling an Operation): Removed.
index 2db4538..5edf7b8 100644 (file)
@@ -783,16 +783,6 @@ can also refer to objects.  For example, if an empty @code{GpgmeData}
 object was expected, but one containing data was provided, this error
 value is returned.
 
-@item GPGME_Busy
-This value is returned if you try to start a new operation in a
-context that is already busy with some earlier operation which was not
-cancelled or finished yet.
-
-@item GPGME_No_Request
-This value is in some sense the opposite of @code{GPGME_Busy}.  There
-is no pending operation, but it is required for the function to
-succeed.
-
 @item GPGME_Exec_Error
 This value means that an error occurred when trying to spawn a child
 process.
@@ -803,10 +793,10 @@ This value means that there are too many active backend processes.
 @item GPGME_Pipe_Error
 This value means that the creation of a pipe failed.
 
-@item GPGME_No_Recipients 
+@item GPGME_No_UserID 
 This value means that no valid recipients for a message have been set.
 
-@item GPGME_Invalid_Recipients 
+@item GPGME_Invalid_UserID
 This value means that some, but not all, recipients for a message have
 been invalid.
 
@@ -846,9 +836,9 @@ This value means that a file I/O operation failed.  The value of
 @item GPGME_Decryption_Failed
 This value indicates that a decryption operation was unsuccessful.
 
-@item GPGME_No_Passphrase
-This value means that the user did not provide a passphrase when
-requested.
+@item GPGME_Bad_Passphrase
+This value means that the user did not provide a correct passphrase
+when requested.
 
 @item GPGME_Canceled
 This value means that the operation was canceled.
@@ -1727,9 +1717,8 @@ If the last key in the list has already been returned,
 @code{gpgme_op_keylist_next} returns @code{GPGME_EOF}.
 
 The function returns @code{GPGME_Invalid_Value} if @var{ctx} or
-@var{r_key} is not a valid pointer, @code{GPGME_No_Request} if there
-is no pending operation, @code{GPGME_Out_Of_Core} if there is not
-enough memory for the operation.
+@var{r_key} is not a valid pointer, and @code{GPGME_Out_Of_Core} if
+there is not enough memory for the operation.
 @end deftypefun
 
 @deftypefun GpgmeError gpgme_op_keylist_end (@w{GpgmeCtx @var{ctx}})
@@ -1737,8 +1726,7 @@ The function @code{gpgme_op_keylist_next} ends a pending key list
 operation in the context @var{ctx}.
 
 The function returns @code{GPGME_Invalid_Value} if @var{ctx} is not a
-valid pointer, @code{GPGME_No_Request} if there is no pending
-operation, @code{GPGME_Out_Of_Core} if at some time during the
+valid pointer, and @code{GPGME_Out_Of_Core} if at some time during the
 operation there was not enough memory available.
 @end deftypefun
 
@@ -1785,10 +1773,10 @@ If the @code{GPGME_KEYLIST_MODE_SIGS} mode is active, the key will be
 retrieved with the key signatures (and updated if necessary).
 
 The function returns @code{GPGME_Invalid_Value} if @var{ctx} or
-@var{r_key} is not a valid pointer, @code{GPGME_Busy} if there is a
-pending operation, @code{GPGME_Invalid_Key} if @var{fpr} is not a
-fingerprint or key ID, @code{GPGME_Out_Of_Core} if at some time during
-the operation there was not enough memory available.
+@var{r_key} is not a valid pointer, @code{GPGME_Invalid_Key} if
+@var{fpr} is not a fingerprint or key ID, @code{GPGME_Out_Of_Core} if
+at some time during the operation there was not enough memory
+available.
 @end deftypefun
 
 
@@ -2359,9 +2347,8 @@ If the last trust item in the list has already been returned,
 @code{gpgme_op_trustlist_next} returns @code{GPGME_EOF}.
 
 The function returns @code{GPGME_Invalid_Value} if @var{ctx} or
-@var{r_item} is not a valid pointer, @code{GPGME_No_Request} if there
-is no pending operation, @code{GPGME_Out_Of_Core} if there is not
-enough memory for the operation.
+@var{r_item} is not a valid pointer, and @code{GPGME_Out_Of_Core} if
+there is not enough memory for the operation.
 @end deftypefun
 
 @deftypefun GpgmeError gpgme_op_trustlist_end (@w{GpgmeCtx @var{ctx}})
@@ -2369,8 +2356,7 @@ The function @code{gpgme_op_trustlist_next} ends a pending key list
 operation in the context @var{ctx}.
 
 The function returns @code{GPGME_Invalid_Value} if @var{ctx} is not a
-valid pointer, @code{GPGME_No_Request} if there is no pending
-operation, @code{GPGME_Out_Of_Core} if at some time during the
+valid pointer, and @code{GPGME_Out_Of_Core} if at some time during the
 operation there was not enough memory available.
 @end deftypefun
 
@@ -2450,7 +2436,7 @@ decrypted successfully, @code{GPGME_Invalid_Value} if @var{ctx},
 @var{cipher} or @var{plain} is not a valid pointer,
 @code{GPGME_No_Data} if @var{cipher} does not contain any data to
 decrypt, @code{GPGME_Decryption_Failed} if @var{cipher} is not a valid
-cipher text, @code{GPGME_No_Passphrase} if the passphrase for the
+cipher text, @code{GPGME_Bad_Passphrase} if the passphrase for the
 secret key could not be retrieved, and passes through any errors that
 are reported by the crypto engine support routines.
 @end deftypefun
@@ -2729,7 +2715,7 @@ decrypted successfully, @code{GPGME_Invalid_Value} if @var{ctx},
 @var{cipher}, @var{plain} or @var{r_stat} is not a valid pointer,
 @code{GPGME_No_Data} if @var{cipher} does not contain any data to
 decrypt, @code{GPGME_Decryption_Failed} if @var{cipher} is not a valid
-cipher text, @code{GPGME_No_Passphrase} if the passphrase for the
+cipher text, @code{GPGME_Bad_Passphrase} if the passphrase for the
 secret key could not be retrieved, and passes through any errors that
 are reported by the crypto engine support routines.
 @end deftypefun
@@ -2833,7 +2819,7 @@ with @code{gpgme_set_include_certs}.  @xref{Included Certificates}.
 The function returns @code{GPGME_No_Error} if the signature could be
 created successfully, @code{GPGME_Invalid_Value} if @var{ctx},
 @var{plain} or @var{sig} is not a valid pointer, @code{GPGME_No_Data}
-if the signature could not be created, @code{GPGME_No_Passphrase} if
+if the signature could not be created, @code{GPGME_Bad_Passphrase} if
 the passphrase for the secret key could not be retrieved, and passes
 through any errors that are reported by the crypto engine support
 routines.
@@ -2956,7 +2942,7 @@ ciphertext in the data object @var{cipher}.  The type of the
 ciphertext created is determined by the @acronym{ASCII} armor and text
 mode attributes set for the context @var{ctx}.
 
-If @code{GPGME_Invalid_Recipients} is returned, some recipients in
+If @code{GPGME_Invalid_UserID} is returned, some recipients in
 @var{rset} are invalid, but not all.  In this case the plaintext is
 encrypted for all valid recipients and returned in @var{cipher}.  More
 information about the invalid recipients is available with
@@ -2972,11 +2958,11 @@ crypto backend.
 The function returns @code{GPGME_No_Error} if the ciphertext could be
 created successfully, @code{GPGME_Invalid_Value} if @var{ctx},
 @var{rset}, @var{plain} or @var{cipher} is not a valid pointer,
-@code{GPGME_No_Recipients} if @var{rset} does not contain any valid
-recipients, @code{GPGME_Invalid_Recipients} if @var{rset} contains
-some invalid recipients, @code{GPGME_No_Passphrase} if the passphrase
-for the secret key could not be retrieved, and passes through any
-errors that are reported by the crypto engine support routines.
+@code{GPGME_No_UserID} if @var{rset} does not contain any valid
+recipients, @code{GPGME_Invalid_UserID} if @var{rset} contains some
+invalid recipients, @code{GPGME_Bad_Passphrase} if the passphrase for
+the secret key could not be retrieved, and passes through any errors
+that are reported by the crypto engine support routines.
 @end deftypefun
 
 @deftypefun GpgmeError gpgme_op_encrypt_start (@w{GpgmeCtx @var{ctx}}, @w{GpgmeRecipients @var{rset}}, @w{GpgmeData @var{plain}}, @w{GpgmeData @var{cipher}})
@@ -2987,7 +2973,7 @@ The function @code{gpgme_op_encrypt_start} initiates a
 The function returns @code{GPGME_No_Error} if the operation could be
 started successfully, @code{GPGME_Invalid_Value} if @var{ctx},
 @var{rset}, @var{plain} or @var{cipher} is not a valid pointer, and
-@code{GPGME_No_Recipients} if @var{rset} does not contain any valid
+@code{GPGME_No_UserID} if @var{rset} does not contain any valid
 recipients.
 @end deftypefun
 
@@ -3011,7 +2997,7 @@ Completion}.
 The function returns @code{GPGME_No_Error} if the operation could be
 started successfully, @code{GPGME_Invalid_Value} if @var{ctx},
 @var{rset}, @var{plain} or @var{cipher} is not a valid pointer, and
-@code{GPGME_No_Recipients} if @var{rset} does not contain any valid
+@code{GPGME_No_UserID} if @var{rset} does not contain any valid
 recipients.
 @end deftypefun
 
index 0ab9523..219bcff 100644 (file)
@@ -1,3 +1,48 @@
+2003-04-24  Marcus Brinkmann  <marcus@g10code.de>
+
+       * gpgme.h (GpgmeError): Rename GPGME_No_Passphrase to
+       GPGME_Bad_Passphrase.
+       * passphrase.c (_gpgme_passphrase_status_handler): Use
+       GPGME_Bad_Passphrase instead GPGME_No_Passphrase.
+
+       * gpgme.h (GpgmeError): Rename GPGME_No_Recipients to
+       GPGME_No_UserID and GPGME_Invalid_Recipient to
+       GPGME_Invalid_UserID.
+       * encrypt.c (_gpgme_encrypt_status_handler): Use GPGME_No_UserID
+       instead GPGME_No_Recipients and GPGME_Invalid_UserID instead
+       GPGME_Invalid_Recipient.
+       (_gpgme_op_encrypt_start): Likewise.
+
+       * gpgme.h (GpgmeError): Remove GPGME_Busy and GPGME_No_Request.
+       * wait-user.c (_gpgme_wait_user_event_cb): Don't clear CTX->pending.
+       * wait-private.c (_gpgme_wait_private_event_cb): Likewise.
+       * wait-global.c (gpgme_wait): Likewise.
+       * verify.c (_gpgme_op_verify_start): Likewise.
+       (gpgme_get_sig_status): Don't check pending flag.
+       (gpgme_get_sig_string_attr): Likewise.
+       (gpgme_get_sig_ulong_attr): Likewise.
+       (gpgme_get_sig_key): Likewise.
+       * op-support.c (_gpgme_op_reset): Likewise.
+       * trustlist.c (gpgme_op_trustlist_start): Don't clear pending flag.
+       (gpgme_op_trustlist_next): Don't check or clear pending flag.
+       (gpgme_op_trustlist_end): Likewise.
+       * sign.c (_gpgme_op_sign_start): Likewise.
+       * context.h (struct gpgme_context_s): Remove member PENDING.
+       * decrypt.c (_gpgme_decrypt_start): Likewise.
+       * delete.c (_gpgme_op_delete_start): Likewise.
+       * edit.c (_gpgme_op_edit_start): Likewise.
+       * encrypt.c (_gpgme_op_encrypt_start): Likewise.
+       * encrypt-sign.c (_gpgme_op_encrypt_sign_start): Likewise.
+       * export.c (_gpgme_op_export_start): Likewise.
+       * genkey.c (_gpgme_op_genkey_start): Likewise.
+       * import.c (_gpgme_op_import_start): Likewise.
+       * key.c (gpgme_get_key): Likewise.
+       * keylist.c (gpgme_op_keylist_start): Likewise.
+       (gpgme_op_keylist_ext_start): Likewise.
+       (gpgme_op_keylist_next): Likewise.
+       (gpgme_op_keylist_end): Likewise.
+       * data-compat.c (gpgme_error_to_errno): Don't convert EBUSY.
+
 2003-02-06  Marcus Brinkmann  <marcus@g10code.de>
 
        * gpgme.h (GpgmePassphraseCb): Change type to return GpgmeError,
index d2b22d6..41f25c6 100644 (file)
@@ -75,8 +75,6 @@ struct trust_queue_item_s
 struct gpgme_context_s
 {
   int initialized;
-  /* An engine request is still pending.  */
-  int pending;
 
   int use_cms;
 
index c5ec071..0c0d34b 100644 (file)
@@ -120,9 +120,6 @@ gpgme_error_to_errno (GpgmeError err)
     case GPGME_Invalid_Value:
       errno = EINVAL;
       return -1;
-    case GPGME_Busy:
-      errno = EBUSY;
-      return -1;
     case GPGME_Not_Implemented:
       errno = EOPNOTSUPP;
       return -1;
index 6855563..40ae932 100644 (file)
@@ -195,7 +195,6 @@ _gpgme_decrypt_start (GpgmeCtx ctx, int synchronous,
  leave:
   if (err)
     {
-      ctx->pending = 0; 
       _gpgme_engine_release (ctx->engine);
       ctx->engine = NULL;
     }
index e711b30..1bed6d5 100644 (file)
@@ -82,7 +82,6 @@ _gpgme_op_delete_start (GpgmeCtx ctx, int synchronous,
  leave:
   if (err)
     {
-      ctx->pending = 0; 
       _gpgme_engine_release (ctx->engine);
       ctx->engine = NULL;
     }
index 1fa3929..e46f42b 100644 (file)
@@ -128,7 +128,6 @@ _gpgme_op_edit_start (GpgmeCtx ctx, int synchronous,
  leave:
   if (err)
     {
-      ctx->pending = 0; 
       _gpgme_engine_release (ctx->engine);
       ctx->engine = NULL;
     }
index fd277ab..b20f2b3 100644 (file)
@@ -79,7 +79,6 @@ _gpgme_op_encrypt_sign_start (GpgmeCtx ctx, int synchronous,
  leave:
   if (err)
     {
-      ctx->pending = 0; 
       _gpgme_engine_release (ctx->engine);
       ctx->engine = NULL;
     }
index 5f95151..7679d74 100644 (file)
@@ -118,9 +118,9 @@ _gpgme_encrypt_status_handler (GpgmeCtx ctx, GpgmeStatusCode code, char *args)
              result->xmlinfo = NULL;
            }
          if (result && result->no_valid_recipients) 
-           return GPGME_No_Recipients;
+           return GPGME_No_UserID;
          if (result && result->invalid_recipients) 
-           return GPGME_Invalid_Recipients;
+           return GPGME_Invalid_UserID;
        }
       break;
 
@@ -168,7 +168,7 @@ _gpgme_op_encrypt_start (GpgmeCtx ctx, int synchronous,
     symmetric = 1;
   else if (!gpgme_recipients_count (recp))
     {
-      err = GPGME_No_Recipients;
+      err = GPGME_No_UserID;
       goto leave;
     }
 
@@ -208,7 +208,6 @@ _gpgme_op_encrypt_start (GpgmeCtx ctx, int synchronous,
  leave:
   if (err)
     {
-      ctx->pending = 0; 
       _gpgme_engine_release (ctx->engine);
       ctx->engine = NULL;
     }
index 2cf9169..4031986 100644 (file)
@@ -61,7 +61,6 @@ _gpgme_op_export_start (GpgmeCtx ctx, int synchronous,
  leave:
   if (err)
     {
-      ctx->pending = 0; 
       _gpgme_engine_release (ctx->engine);
       ctx->engine = NULL;
     }
index 2636c0f..1d078b0 100644 (file)
@@ -135,7 +135,6 @@ _gpgme_op_genkey_start (GpgmeCtx ctx, int synchronous, const char *parms,
  leave:
   if (err)
     {
-      ctx->pending = 0; 
       _gpgme_engine_release (ctx->engine);
       ctx->engine = NULL;
     }
index 9d39595..4a718f1 100644 (file)
@@ -73,31 +73,30 @@ typedef struct gpgme_trust_item_s *GpgmeTrustItem;
 /* The error numbers used by GPGME.  */
 typedef enum
   {
-    GPGME_EOF                = -1,
-    GPGME_No_Error           = 0,
-    GPGME_General_Error      = 1,
-    GPGME_Out_Of_Core        = 2,
-    GPGME_Invalid_Value      = 3,
-    GPGME_Busy               = 4,
-    GPGME_No_Request         = 5,
-    GPGME_Exec_Error         = 6,
-    GPGME_Too_Many_Procs     = 7,
-    GPGME_Pipe_Error         = 8,
-    GPGME_No_Recipients      = 9,
-    GPGME_No_Data            = 10,
-    GPGME_Conflict           = 11,
-    GPGME_Not_Implemented    = 12,
-    GPGME_Read_Error         = 13,
-    GPGME_Write_Error        = 14,
-    GPGME_Invalid_Type       = 15,
-    GPGME_Invalid_Mode       = 16,
-    GPGME_File_Error         = 17,  /* errno is set in this case.  */
-    GPGME_Decryption_Failed  = 18,
-    GPGME_No_Passphrase      = 19,
-    GPGME_Canceled           = 20,
-    GPGME_Invalid_Key        = 21,
-    GPGME_Invalid_Engine     = 22,
-    GPGME_Invalid_Recipients = 23
+    GPGME_EOF                     = -1,
+    GPGME_No_Error                = 0x0000,
+    GPGME_General_Error           = 0x0001,
+    GPGME_Out_Of_Core             = 0x0002,
+    GPGME_Invalid_Value           = 0x0003,
+    GPGME_No_Request              = 0x0004,
+    GPGME_Exec_Error              = 0x0005,
+    GPGME_Too_Many_Procs          = 0x0006,
+    GPGME_Pipe_Error              = 0x0007,
+    GPGME_No_Data                 = 0x0008,
+    GPGME_Conflict                = 0x0009,
+    GPGME_Not_Implemented         = 0x000a,
+    GPGME_Read_Error              = 0x000b,
+    GPGME_Write_Error             = 0x000c,
+    GPGME_Invalid_Type            = 0x000d,
+    GPGME_Invalid_Mode            = 0x000e,
+    GPGME_File_Error              = 0x000f, /* errno is set in this case.  */
+    GPGME_Decryption_Failed       = 0x0010,
+    GPGME_Bad_Passphrase          = 0x0011,
+    GPGME_Canceled                = 0x0012,
+    GPGME_Invalid_Key             = 0x0013,
+    GPGME_Invalid_Engine          = 0x0014,
+    GPGME_No_UserID               = 0x0015,
+    GPGME_Invalid_UserID          = 0x0016,
   }
 GpgmeError;
 
index ada3dd8..30138bc 100644 (file)
@@ -204,7 +204,6 @@ _gpgme_op_import_start (GpgmeCtx ctx, int synchronous, GpgmeData keydata)
  leave:
   if (err)
     {
-      ctx->pending = 0;
       _gpgme_engine_release (ctx->engine);
       ctx->engine = NULL;
     }
index 1f8e011..7a2b754 100644 (file)
@@ -1195,8 +1195,6 @@ gpgme_get_key (GpgmeCtx ctx, const char *fpr, GpgmeKey *r_key,
 
   if (!ctx || !r_key)
     return GPGME_Invalid_Value;
-  if (ctx->pending)
-    return GPGME_Busy;
   
   if (strlen (fpr) < 16)       /* We have at least a key ID.  */
     return GPGME_Invalid_Key;
index e6cc5ce..29e2459 100644 (file)
@@ -755,7 +755,6 @@ gpgme_op_keylist_start (GpgmeCtx ctx, const char *pattern, int secret_only)
  leave:
   if (err)
     {
-      ctx->pending = 0; 
       _gpgme_engine_release (ctx->engine);
       ctx->engine = NULL;
     }
@@ -806,7 +805,6 @@ gpgme_op_keylist_ext_start (GpgmeCtx ctx, const char *pattern[],
  leave:
   if (err)
     {
-      ctx->pending = 0; 
       _gpgme_engine_release (ctx->engine);
       ctx->engine = NULL;
     }
@@ -837,31 +835,14 @@ gpgme_op_keylist_next (GpgmeCtx ctx, GpgmeKey *r_key)
   *r_key = NULL;
   if (!ctx)
     return GPGME_Invalid_Value;
-  if (!ctx->pending)
-    return GPGME_No_Request;
 
   if (!ctx->key_queue)
     {
       GpgmeError err = _gpgme_wait_on_condition (ctx, &ctx->key_cond);
       if (err)
-       {
-         ctx->pending = 0;
-         return err;
-       }
-      if (!ctx->pending)
-       {
-         /* The operation finished.  Because not all keys might have
-            been returned to the caller yet, we just reset the
-            pending flag to 1.  This will cause us to call
-            _gpgme_wait_on_condition without any active file
-            descriptors, but that is a no-op, so it is safe.  */
-         ctx->pending = 1;
-       }
+       return err;
       if (!ctx->key_cond)
-       {
-         ctx->pending = 0;
-         return GPGME_EOF;
-       }
+       return GPGME_EOF;
       ctx->key_cond = 0; 
       assert (ctx->key_queue);
     }
@@ -888,9 +869,6 @@ gpgme_op_keylist_end (GpgmeCtx ctx)
 {
   if (!ctx)
     return GPGME_Invalid_Value;
-  if (!ctx->pending)
-    return GPGME_No_Request;
 
-  ctx->pending = 0;
   return 0;
 }
index 909b75d..4bf5bb5 100644 (file)
@@ -66,15 +66,11 @@ _gpgme_op_reset (GpgmeCtx ctx, int type)
   GpgmeError err = 0;
   struct GpgmeIOCbs io_cbs;
 
-  if (ctx->pending)
-    return GPGME_Busy;
-
   _gpgme_release_result (ctx);
 
   /* Create an engine object.  */
   _gpgme_engine_release (ctx->engine);
   ctx->engine = NULL;
-  ctx->pending = 1;
   err = _gpgme_engine_new (ctx->use_cms ? GPGME_PROTOCOL_CMS
                           : GPGME_PROTOCOL_OpenPGP, &ctx->engine);
   if (err)
index fd492ac..d56562f 100644 (file)
@@ -97,7 +97,7 @@ _gpgme_passphrase_status_handler (GpgmeCtx ctx, GpgmeStatusCode code, char *args
     case GPGME_STATUS_EOF:
       if (result->no_passphrase
          || result->bad_passphrase)
-       return GPGME_No_Passphrase;
+       return GPGME_Bad_Passphrase;
       break;
 
     default:
index eeebe7a..f45879a 100644 (file)
@@ -223,7 +223,6 @@ _gpgme_op_sign_start (GpgmeCtx ctx, int synchronous,
  leave:
   if (err)
     {
-      ctx->pending = 0; 
       _gpgme_engine_release (ctx->engine);
       ctx->engine = NULL;
     }
index 0a6f635..ba1188a 100644 (file)
@@ -192,7 +192,6 @@ gpgme_op_trustlist_start (GpgmeCtx ctx, const char *pattern, int max_level)
  leave:
   if (err)
     {
-      ctx->pending = 0; 
       _gpgme_engine_release (ctx->engine);
       ctx->engine = NULL;
     }
@@ -210,31 +209,14 @@ gpgme_op_trustlist_next (GpgmeCtx ctx, GpgmeTrustItem *r_item)
   *r_item = NULL;
   if (!ctx)
     return GPGME_Invalid_Value;
-  if (!ctx->pending)
-    return GPGME_No_Request;
 
   if (!ctx->trust_queue)
     {
       GpgmeError err = _gpgme_wait_on_condition (ctx, &ctx->key_cond);
       if (err)
-       {
-         ctx->pending = 0;
-         return err;
-       }
-      if (!ctx->pending)
-       {
-         /* The operation finished.  Because not all keys might have
-            been returned to the caller yet, we just reset the
-            pending flag to 1.  This will cause us to call
-            _gpgme_wait_on_condition without any active file
-            descriptors, but that is a no-op, so it is safe.  */
-         ctx->pending = 1;
-       }
+       return err;
       if (!ctx->key_cond)
-       {
-         ctx->pending = 0;
-         return GPGME_EOF;
-       }
+       return GPGME_EOF;
       ctx->key_cond = 0; 
       assert (ctx->trust_queue);
     }
@@ -259,10 +241,7 @@ gpgme_op_trustlist_end (GpgmeCtx ctx)
 {
   if (!ctx)
     return GPGME_Invalid_Value;
-  if (!ctx->pending)
-    return GPGME_No_Request;
 
-  ctx->pending = 0;
   return 0;
 }
 
index 7817668..190418f 100644 (file)
@@ -400,7 +400,6 @@ _gpgme_op_verify_start (GpgmeCtx ctx, int synchronous,
  leave:
   if (err)
     {
-      ctx->pending = 0; 
       _gpgme_engine_release (ctx->engine);
       ctx->engine = NULL;
     }
@@ -483,7 +482,7 @@ gpgme_get_sig_status (GpgmeCtx ctx, int idx,
   struct ctx_op_data *op_data;
   VerifyResult result;
 
-  if (!ctx || ctx->pending)
+  if (!ctx)
     return NULL;       /* No results yet or verification error.  */
 
   op_data = ctx->op_data;
@@ -570,7 +569,7 @@ gpgme_get_sig_string_attr (GpgmeCtx ctx, int idx, GpgmeAttr what, int whatidx)
   struct ctx_op_data *op_data;
   VerifyResult result;
 
-  if (!ctx || ctx->pending)
+  if (!ctx)
     return NULL;       /* No results yet or verification error.  */
 
   op_data = ctx->op_data;
@@ -608,7 +607,7 @@ gpgme_get_sig_ulong_attr (GpgmeCtx ctx, int idx, GpgmeAttr what, int reserved)
   struct ctx_op_data *op_data;
   VerifyResult result;
 
-  if (!ctx || ctx->pending)
+  if (!ctx)
     return 0;  /* No results yet or verification error.  */
 
   op_data = ctx->op_data;
@@ -663,9 +662,6 @@ gpgme_get_sig_key (GpgmeCtx ctx, int idx, GpgmeKey *r_key)
   if (!ctx || !r_key)
     return GPGME_Invalid_Value;
 
-  if (ctx->pending)
-    return GPGME_Busy;
-
   op_data = ctx->op_data;
   while (op_data)
     {
index 4025d2b..12d2cec 100644 (file)
@@ -343,7 +343,6 @@ gpgme_wait (GpgmeCtx ctx, GpgmeError *status, int hang)
          {
            ctx = dctx;
            hang = 0;
-           ctx->pending = 0;
          }
       }
     }
index de7f535..134e389 100644 (file)
@@ -54,7 +54,6 @@ _gpgme_wait_private_event_cb (void *data, GpgmeEventIO type, void *type_data)
       break;
 
     case GPGME_EVENT_DONE:
-      ctx->pending = 0;
       break;
 
     case GPGME_EVENT_NEXT_KEY:
index 02a6076..d3d789a 100644 (file)
@@ -119,9 +119,6 @@ _gpgme_wait_user_event_cb (void *data, GpgmeEventIO type, void *type_data)
 {
   GpgmeCtx ctx = data;
 
-  if (type == GPGME_EVENT_DONE)
-    ctx->pending = 0;
-
   if (ctx->io_cbs.event)
     (*ctx->io_cbs.event) (ctx->io_cbs.event_priv, type, type_data);
 }