aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--g10/call-keyboxd.c26
-rw-r--r--kbx/kbx-client-util.c8
-rw-r--r--sm/keydb.c23
3 files changed, 48 insertions, 9 deletions
diff --git a/g10/call-keyboxd.c b/g10/call-keyboxd.c
index 7f4d5f493..121b7aa2a 100644
--- a/g10/call-keyboxd.c
+++ b/g10/call-keyboxd.c
@@ -385,6 +385,23 @@ keydb_get_keyblock (KEYDB_HANDLE hd, kbnode_t *ret_kb)
}
+/* Default status callback used to show diagnostics from the keyboxd */
+static gpg_error_t
+keydb_default_status_cb (void *opaque, const char *line)
+{
+ const char *s;
+
+ (void)opaque;
+
+ if ((s = has_leading_keyword (line, "NOTE")))
+ log_info (_("Note: %s\n"), s);
+ else if ((s = has_leading_keyword (line, "WARNING")))
+ log_info (_("WARNING: %s\n"), s);
+
+ return 0;
+}
+
+
/* Communication object for STORE commands. */
struct store_parm_s
@@ -464,7 +481,8 @@ keydb_update_keyblock (ctrl_t ctrl, KEYDB_HANDLE hd, kbnode_t kb)
err = assuan_transact (hd->kbl->ctx, "STORE --update",
NULL, NULL,
store_inq_cb, &parm,
- NULL, NULL);
+ keydb_default_status_cb, hd);
+
leave:
iobuf_close (iobuf);
@@ -515,7 +533,7 @@ keydb_insert_keyblock (KEYDB_HANDLE hd, kbnode_t kb)
err = assuan_transact (hd->kbl->ctx, "STORE --insert",
NULL, NULL,
store_inq_cb, &parm,
- NULL, NULL);
+ keydb_default_status_cb, hd);
leave:
iobuf_close (iobuf);
@@ -561,7 +579,7 @@ keydb_delete_keyblock (KEYDB_HANDLE hd)
err = assuan_transact (hd->kbl->ctx, line,
NULL, NULL,
NULL, NULL,
- NULL, NULL);
+ keydb_default_status_cb, hd);
leave:
return err;
@@ -648,6 +666,8 @@ search_status_cb (void *opaque, const char *line)
}
}
}
+ else
+ err = keydb_default_status_cb (opaque, line);
return err;
}
diff --git a/kbx/kbx-client-util.c b/kbx/kbx-client-util.c
index f9d06fab8..f6456a508 100644
--- a/kbx/kbx-client-util.c
+++ b/kbx/kbx-client-util.c
@@ -399,10 +399,10 @@ kbx_client_data_cmd (kbx_client_data_t kcd, const char *command,
status_cb, status_cb_value);
if (err)
{
- if (gpg_err_code (err) != GPG_ERR_NOT_FOUND
- && gpg_err_code (err) != GPG_ERR_NOTHING_FOUND)
- log_debug ("%s: finished command with error: %s\n",
- __func__, gpg_strerror (err));
+ /* if (gpg_err_code (err) != GPG_ERR_NOT_FOUND */
+ /* && gpg_err_code (err) != GPG_ERR_NOTHING_FOUND) */
+ /* log_debug ("%s: finished command with error: %s\n", */
+ /* __func__, gpg_strerror (err)); */
xfree (get_membuf (&mb, &len));
kcd->dlineerr = err;
goto leave;
diff --git a/sm/keydb.c b/sm/keydb.c
index 38737c96a..411720513 100644
--- a/sm/keydb.c
+++ b/sm/keydb.c
@@ -1129,6 +1129,23 @@ keydb_set_flags (KEYDB_HANDLE hd, int which, int idx, unsigned int value)
}
+/* Default status callback used to show diagnostics from the keyboxd */
+static gpg_error_t
+keydb_default_status_cb (void *opaque, const char *line)
+{
+ const char *s;
+
+ (void)opaque;
+
+ if ((s = has_leading_keyword (line, "NOTE")))
+ log_info (_("Note: %s\n"), s);
+ else if ((s = has_leading_keyword (line, "WARNING")))
+ log_info (_("WARNING: %s\n"), s);
+
+ return 0;
+}
+
+
/* Communication object for Keyboxd STORE commands. */
struct store_parm_s
@@ -1192,7 +1209,7 @@ keydb_insert_cert (KEYDB_HANDLE hd, ksba_cert_t cert)
err = assuan_transact (hd->kbl->ctx, "STORE --insert",
NULL, NULL,
store_inq_cb, &parm,
- NULL, NULL);
+ keydb_default_status_cb, hd);
goto leave;
}
@@ -1327,7 +1344,7 @@ keydb_delete (KEYDB_HANDLE hd)
err = assuan_transact (hd->kbl->ctx, line,
NULL, NULL,
NULL, NULL,
- NULL, NULL);
+ keydb_default_status_cb, hd);
goto leave;
}
@@ -1555,6 +1572,8 @@ search_status_cb (void *opaque, const char *line)
}
}
}
+ else
+ err = keydb_default_status_cb (opaque, line);
return err;
}