aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--tools/gpg-wks-client.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/tools/gpg-wks-client.c b/tools/gpg-wks-client.c
index 312f58bc1..20dfa2952 100644
--- a/tools/gpg-wks-client.c
+++ b/tools/gpg-wks-client.c
@@ -51,6 +51,7 @@ enum cmd_and_opt_values
aCreate,
aReceive,
+ aRead,
oGpgProgram,
oSend,
@@ -66,7 +67,9 @@ static ARGPARSE_OPTS opts[] = {
ARGPARSE_c (aCreate, "create",
("create a publication request")),
ARGPARSE_c (aReceive, "receive",
- ("receive a confirmation request")),
+ ("receive a MIME confirmation request")),
+ ARGPARSE_c (aRead, "read",
+ ("receive a plain text confirmation request")),
ARGPARSE_group (301, ("@\nOptions:\n ")),
@@ -96,6 +99,7 @@ static struct debug_flags_s debug_flags [] =
static void wrong_args (const char *text) GPGRT_ATTR_NORETURN;
static gpg_error_t command_send (const char *fingerprint, char *userid);
+static gpg_error_t process_confirmation_request (estream_t msg);
static gpg_error_t command_receive_cb (void *opaque,
const char *mediatype, estream_t fp);
@@ -172,6 +176,7 @@ parse_arguments (ARGPARSE_ARGS *pargs, ARGPARSE_OPTS *popts)
case aCreate:
case aReceive:
+ case aRead:
cmd = pargs->r_opt;
break;
@@ -242,12 +247,20 @@ main (int argc, char **argv)
case aReceive:
if (argc)
- wrong_args ("--receive");
+ wrong_args ("--receive < MIME-DATA");
err = wks_receive (es_stdin, command_receive_cb, NULL);
if (err)
log_error ("processing mail failed: %s\n", gpg_strerror (err));
break;
+ case aRead:
+ if (argc)
+ wrong_args ("--read < WKS-DATA");
+ err = process_confirmation_request (es_stdin);
+ if (err)
+ log_error ("processing mail failed: %s\n", gpg_strerror (err));
+ break;
+
default:
usage (1);
break;