diff options
| author | Werner Koch <[email protected]> | 2023-09-20 10:05:41 +0000 | 
|---|---|---|
| committer | Werner Koch <[email protected]> | 2023-10-05 12:17:21 +0000 | 
| commit | 349a69b5ea77c334c1c59b56f283bb65dc54a590 (patch) | |
| tree | 41287c637fde9db0623cc1003fc55cb6f40e56a0 /src/export.c | |
| parent | gpgme-tool: Support use of Windows HANDLE for INPUT/OUTPUT/MESSAGE. (diff) | |
| download | gpgme-349a69b5ea77c334c1c59b56f283bb65dc54a590.tar.gz gpgme-349a69b5ea77c334c1c59b56f283bb65dc54a590.zip | |
core: Check STATUS_FAILURE in export operations.
* src/export.c (op_data_t): Add failure_code.
(export_status_handler): Set it.
(gpgme_op_export_ext, gpgme_op_export_keys): Also check the failure
code.
--
That is just in case we missed an error code.  For example with older
gpg versions (e.g. 2.3.8) and exporting to a keyserver.
Diffstat (limited to '')
| -rw-r--r-- | src/export.c | 15 | 
1 files changed, 12 insertions, 3 deletions
| diff --git a/src/export.c b/src/export.c index 155085ff..d5137866 100644 --- a/src/export.c +++ b/src/export.c @@ -35,7 +35,12 @@  /* Local operation data.  */  typedef struct  { -  gpg_error_t err;  /* Error encountered during the export.  */ +  /* The error code from a FAILURE status line or 0.  */ +  gpg_error_t failure_code; + +  /* Error encountered during the export.  */ +  gpg_error_t err; +  } *op_data_t; @@ -110,6 +115,10 @@ export_status_handler (void *priv, gpgme_status_code_t code, char *args)          opd->err = err;        break; +    case GPGME_STATUS_FAILURE: +      opd->failure_code = _gpgme_parse_failure (args); +      break; +      default:        break;      } @@ -356,7 +365,7 @@ gpgme_op_export_ext (gpgme_ctx_t ctx, const char *pattern[],            err = _gpgme_op_data_lookup (ctx, OPDATA_EXPORT, &hook, -1, NULL);            opd = hook;            if (!err) -            err = opd->err; +            err = opd->err ? opd->err : opd->failure_code;          }      } @@ -501,7 +510,7 @@ gpgme_op_export_keys (gpgme_ctx_t ctx,            err = _gpgme_op_data_lookup (ctx, OPDATA_EXPORT, &hook, -1, NULL);            opd = hook;            if (!err) -            err = opd->err; +            err = opd->err ? opd->err : opd->failure_code;          }      } | 
