core: Add gpg auditlog to get diagnostics
authorAndre Heinecke <aheinecke@intevation.de>
Wed, 4 Jul 2018 13:39:01 +0000 (15:39 +0200)
committerAndre Heinecke <aheinecke@intevation.de>
Thu, 5 Jul 2018 09:29:36 +0000 (11:29 +0200)
commita2458806f8bf04b66795e1dde765b42fe1ef6797
tree0eebff2f24f9f8bfdce1871b4041bccd293773d9
parent7d65dc2a5c4f32139a1b9b1f0bd375f7ab1c58f6
core: Add gpg auditlog to get diagnostics

* src/engine-gpg.c (engine_gpg): Add diagnostics member.
(gpg_release): Release diagnostics data.
(gpg_new): Set up logger-fd and diagnostics.
(gpg_getauditlog): New. Copy diagnostics to a user data.
(engine_ops): Add getauditlog.
* src/engine-gpgsm.c (gpgsm_getauditlog): Return not implemented
for GPGME_AUDITLOG_DIAG.
* src/getauditlog.c (getauditlog_start): Don't reset engine
for diagnostics.
* src/gpgme.h.in (GPGME_AUDITLOG_DIAG): New.
(GPGME_AUDITLOG_DEFAULT): New alias to 0.
* tests/run-decrypt.c (show_usage, main): Add --diagnostics.
* doc/gpgme.texi(Additional Logs): Document getauditlog.

--
This enables users of GPGME to get more verbose information
from gpg which can assist users in figuring out a problem
that was before hidden behind a generalized error like
"Decryption Failed".

For GPGSM it is not yet available as it is problematic to
get it properly in server mode and GPGSM already had the
original audit log mechanism in place.

GPGME_AUDITLOG_DEFAULT was added for a more explicit
documentation.
NEWS
doc/gpgme.texi
src/engine-gpg.c
src/engine-gpgsm.c
src/getauditlog.c
src/gpgme.h.in
tests/run-decrypt.c