diff options
author | Werner Koch <wk@gnupg.org> | 2016-07-03 00:41:30 +0200 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2016-07-03 00:41:30 +0200 |
commit | 7705f310f1406fe49b45e16c371b09863313f24f (patch) | |
tree | 1b49d277ef1b6dd05a4c03f9cc73a0a35eea7cdb /tools/gpg-wks-client.c | |
parent | tools: Add options to gpg-wks-server. (diff) | |
download | gnupg2-7705f310f1406fe49b45e16c371b09863313f24f.tar.xz gnupg2-7705f310f1406fe49b45e16c371b09863313f24f.zip |
tools: Call sendmail directly from the wks tools.
* tools/send-mail.c, tools/send-mail.h: New.
* tools/wks-util.c: New.
* tools/Makefile.am (gpg_wks_server_SOURCES): Add them.
(gpg_wks_client_SOURCES): Ditto.
* tools/gpg-wks.h (opt): Add fields use_sendmail and output.
* tools/gpg-wks-client.c: Add options --send and --output. Rename
command --send to --create.
(command_send, send_confirmation_response): Output via wks_send_mime.
* tools/gpg-wks-server.c: Add options --send and --output.
(send_confirmation_request): Output via wks_send_mime.
(check_and_publish): Add hack for name-value bug.
--
With this code, a dedicated user on the server along with a procmail
script, it was possible to run a basic test.
Signed-off-by: Werner Koch <wk@gnupg.org>
Diffstat (limited to 'tools/gpg-wks-client.c')
-rw-r--r-- | tools/gpg-wks-client.c | 35 |
1 files changed, 23 insertions, 12 deletions
diff --git a/tools/gpg-wks-client.c b/tools/gpg-wks-client.c index c7cb8fb69..25ee43f2e 100644 --- a/tools/gpg-wks-client.c +++ b/tools/gpg-wks-client.c @@ -34,6 +34,7 @@ #include "name-value.h" #include "call-dirmngr.h" #include "mime-maker.h" +#include "send-mail.h" #include "gpg-wks.h" @@ -44,13 +45,15 @@ enum cmd_and_opt_values oQuiet = 'q', oVerbose = 'v', + oOutput = 'o', oDebug = 500, - aSend, + aCreate, aReceive, oGpgProgram, + oSend, oDummy }; @@ -60,8 +63,8 @@ enum cmd_and_opt_values static ARGPARSE_OPTS opts[] = { ARGPARSE_group (300, ("@Commands:\n ")), - ARGPARSE_c (aSend, "send", - ("send a publication request")), + ARGPARSE_c (aCreate, "create", + ("create a publication request")), ARGPARSE_c (aReceive, "receive", ("receive a confirmation request")), @@ -71,6 +74,8 @@ static ARGPARSE_OPTS opts[] = { ARGPARSE_s_n (oQuiet, "quiet", ("be somewhat more quiet")), ARGPARSE_s_s (oDebug, "debug", "@"), ARGPARSE_s_s (oGpgProgram, "gpg", "@"), + ARGPARSE_s_n (oSend, "send", "send the mail using sendmail"), + ARGPARSE_s_s (oOutput, "output", "|FILE|write the mail to FILE"), ARGPARSE_end () @@ -112,10 +117,10 @@ my_strusage( int level ) case 1: case 40: - p = ("Usage: gpg-wks-client --send|--receive [args] (-h for help)"); + p = ("Usage: gpg-wks-client [command] [options] [args] (-h for help)"); break; case 41: - p = ("Syntax: gpg-wks-client --send|--receive [args]\n" + p = ("Syntax: gpg-wks-client [command] [options] [args]\n" "Client for the Web Key Service\n"); break; @@ -158,8 +163,14 @@ parse_arguments (ARGPARSE_ARGS *pargs, ARGPARSE_OPTS *popts) case oGpgProgram: opt.gpg_program = pargs->r.ret_str; break; + case oSend: + opt.use_sendmail = 1; + break; + case oOutput: + opt.output = pargs->r.ret_str; + break; - case aSend: + case aCreate: case aReceive: cmd = pargs->r_opt; break; @@ -221,12 +232,12 @@ main (int argc, char **argv) /* Run the selected command. */ switch (cmd) { - case aSend: + case aCreate: if (argc != 2) - wrong_args ("--send FINGERPRINT USER-ID"); + wrong_args ("--create FINGERPRINT USER-ID"); err = command_send (argv[0], argv[1]); if (err) - log_error ("sending key failed: %s\n", gpg_strerror (err)); + log_error ("creating request failed: %s\n", gpg_strerror (err)); break; case aReceive: @@ -234,7 +245,7 @@ main (int argc, char **argv) wrong_args ("--receive"); err = wks_receive (es_stdin, command_receive_cb, NULL); if (err) - log_error ("reading mail failed: %s\n", gpg_strerror (err)); + log_error ("processing mail failed: %s\n", gpg_strerror (err)); break; default: @@ -407,7 +418,7 @@ command_send (const char *fingerprint, char *userid) if (err) goto leave; - err = mime_maker_make (mime, es_stdout); + err = wks_send_mime (mime); leave: mime_maker_release (mime); @@ -502,7 +513,7 @@ send_confirmation_response (const char *sender, const char *address, if (err) goto leave; - err = mime_maker_make (mime, es_stdout); + err = wks_send_mime (mime); leave: mime_maker_release (mime); |