aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNIIBE Yutaka <[email protected]>2020-03-13 06:59:14 +0000
committerNIIBE Yutaka <[email protected]>2020-04-02 05:11:52 +0000
commit20a5cc93b572a2118c9c833dadb10fdd76b2bc05 (patch)
tree9f826a25f4bfa39aa7865579cdf0fb169f1f59c1
parentAdd flags in server_local_s. (diff)
downloadgnupg-20a5cc93b572a2118c9c833dadb10fdd76b2bc05.tar.gz
gnupg-20a5cc93b572a2118c9c833dadb10fdd76b2bc05.zip
rough sketch.
Signed-off-by: NIIBE Yutaka <[email protected]>
-rw-r--r--scd/command.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/scd/command.c b/scd/command.c
index 0a34312f5..d38182cce 100644
--- a/scd/command.c
+++ b/scd/command.c
@@ -2163,6 +2163,27 @@ cmd_list_device (assuan_context_t ctx, char *line)
if ((err = open_card (ctrl)))
return err;
+ if (watch)
+ {
+ ctrl->server_local->watching_status = 1;
+ while (1)
+ {
+ sigset_t sigmask;
+ int sig;
+
+ /* FIXME: sigwait OK?, what about Windows? */
+ sigemptyset (&sigmask);
+ sigaddset (&sigmask, SIGCONT);
+ npth_sigwait (&sigmask, &sig);
+ /**/
+ if (ctrl->server_local->card_removed)
+ {
+ ctrl->server_local->watching_status = 0;
+ return 0;
+ }
+ }
+ }
+
/* XXX: Actively try to open devices available. */
return gpg_error (GPG_ERR_NOT_FOUND);
return 0;
@@ -2729,6 +2750,9 @@ send_client_notifications (card_t card, int removal)
card_unref_locked (card);
}
+ if (sl->watching_status)
+ assuan_write_status (sl->assuan_ctx, "FIXME: change", "something");
+
if (!sl->event_signal || !sl->assuan_ctx)
continue;