aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2016-01-25 10:34:49 +0000
committerWerner Koch <[email protected]>2016-01-25 10:35:45 +0000
commitfbe1cf67aadc5a33cf815ddbcfc9669e43caa123 (patch)
tree070d8ce528a4151dd2737e49d3e83e71efe850e8
parentagent: Send PROGRESS status lines to the client. (diff)
downloadgnupg-fbe1cf67aadc5a33cf815ddbcfc9669e43caa123.tar.gz
gnupg-fbe1cf67aadc5a33cf815ddbcfc9669e43caa123.zip
gpg: Print PROGRESS status lines during key generation.
* g10/call-agent.c (cache_nonce_status_cb): Rewrite by using has_leading_keyword. Handle PROGRESS lines. -- GnuPG-bug-id: 1415 Co-authored-by: Daiki Ueno <[email protected]> Signed-off-by: Werner Koch <[email protected]>
-rw-r--r--g10/call-agent.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/g10/call-agent.c b/g10/call-agent.c
index 83fabcc32..1d7ff577b 100644
--- a/g10/call-agent.c
+++ b/g10/call-agent.c
@@ -1749,30 +1749,29 @@ static gpg_error_t
cache_nonce_status_cb (void *opaque, const char *line)
{
struct cache_nonce_parm_s *parm = opaque;
- const char *keyword = line;
- int keywordlen;
-
- for (keywordlen=0; *line && !spacep (line); line++, keywordlen++)
- ;
- while (spacep (line))
- line++;
+ const char *s;
- if (keywordlen == 11 && !memcmp (keyword, "CACHE_NONCE", keywordlen))
+ if ((s = has_leading_keyword (line, "CACHE_NONCE")))
{
if (parm->cache_nonce_addr)
{
xfree (*parm->cache_nonce_addr);
- *parm->cache_nonce_addr = xtrystrdup (line);
+ *parm->cache_nonce_addr = xtrystrdup (s);
}
}
- else if (keywordlen == 12 && !memcmp (keyword, "PASSWD_NONCE", keywordlen))
+ else if ((s = has_leading_keyword (line, "PASSWD_NONCE")))
{
if (parm->passwd_nonce_addr)
{
xfree (*parm->passwd_nonce_addr);
- *parm->passwd_nonce_addr = xtrystrdup (line);
+ *parm->passwd_nonce_addr = xtrystrdup (s);
}
}
+ else if ((s = has_leading_keyword (line, "PROGRESS")))
+ {
+ if (opt.enable_progress_filter)
+ write_status_text (STATUS_PROGRESS, s);
+ }
return 0;
}