From e2a8a87bf9cfae5d4e8a5953c2a5303b44feb398 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Wed, 9 May 2018 16:39:30 +0200 Subject: [PATCH] core: Make the status-fd monitor work for all gpgsm commands. * src/engine-gpgsm.c (status_handler): Call the status monitor also here. Signed-off-by: Werner Koch --- src/engine-gpgsm.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/engine-gpgsm.c b/src/engine-gpgsm.c index da7e524f..7b221831 100644 --- a/src/engine-gpgsm.c +++ b/src/engine-gpgsm.c @@ -1013,8 +1013,17 @@ status_handler (void *opaque, int fd) *(rest++) = 0; r = _gpgme_parse_status (line + 2); + if (gpgsm->status.mon_cb && r != GPGME_STATUS_PROGRESS) + { + /* Note that we call the monitor even if we do + * not know the status code (r < 0). */ + err = gpgsm->status.mon_cb (gpgsm->status.mon_cb_value, + line + 2, rest); + } + else + err = 0; - if (r >= 0) + if (r >= 0 && !err) { if (gpgsm->status.fnc) {