aboutsummaryrefslogtreecommitdiffstats
path: root/g13/g13.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2015-10-21 06:38:10 +0000
committerWerner Koch <[email protected]>2016-02-13 16:06:38 +0000
commit81494fd30d3815502247a721f50d9eadf86a73fa (patch)
tree5bb17e6db5ffcbbfd0d28dc3379038683b78468f /g13/g13.c
parenttests: Remove some harmless warnings in regression tests. (diff)
downloadgnupg-81494fd30d3815502247a721f50d9eadf86a73fa.tar.gz
gnupg-81494fd30d3815502247a721f50d9eadf86a73fa.zip
g13: First chunk of code to support dm-crypt.
* g13/call-syshelp.c, g13/call-syshelp.h: New. * g13/g13-syshelp.c, g13/g13-syshelp.h: New. * g13/sh-cmd.c: New. * g13/sh-blockdev.c: New. * g13/sh-exectool.c: New. * g13/sh-dmcrypt.c: New. * g13/Makefile.am (sbin_PROGRAMS): Add g13-syshelp.c (g13_syshelp_SOURCES): New. (g13_syshelp_LDADD): New. * g13/g13.c (opts): Add option --type. (g13_deinit_default_ctrl): New. (main): Implement that option. Call g13_deinit_default_ctrl. * g13/g13.h (struct call_syshelp_s): New declaration. (server_control_s): Add field syshelp_local. * g13/keyblob.h (KEYBLOB_TAG_CREATED): New. (KEYBLOB_TAG_ALGOSTR): New. (KEYBLOB_TAG_HDRCOPY): New. * g13/backend.c (be_parse_conttype_name): New. (be_get_detached_name): Add CONTTYPE_DM_CRYPT. Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'g13/g13.c')
-rw-r--r--g13/g13.c29
1 files changed, 28 insertions, 1 deletions
diff --git a/g13/g13.c b/g13/g13.c
index 7a8d775ae..d9d40982a 100644
--- a/g13/g13.c
+++ b/g13/g13.c
@@ -43,6 +43,8 @@
#include "create.h"
#include "mount.h"
#include "mountinfo.h"
+#include "backend.h"
+#include "call-syshelp.h"
enum cmd_and_opt_values {
@@ -73,6 +75,7 @@ enum cmd_and_opt_values {
oAgentProgram,
oGpgProgram,
+ oType,
oDisplay,
oTTYname,
@@ -114,6 +117,7 @@ static ARGPARSE_OPTS opts[] = {
ARGPARSE_group (301, N_("@\nOptions:\n ")),
ARGPARSE_s_s (oRecipient, "recipient", N_("|USER-ID|encrypt for USER-ID")),
+ ARGPARSE_s_s (oType, "type", N_("|NAME|use container format NAME")),
ARGPARSE_s_s (oOutput, "output", N_("|FILE|write output to FILE")),
ARGPARSE_s_n (oVerbose, "verbose", N_("verbose")),
@@ -570,6 +574,19 @@ main ( int argc, char **argv)
add_to_strlist (&recipients, pargs.r.ret_str);
break;
+ case oType:
+ if (!strcmp (pargs.r.ret_str, "help"))
+ {
+ be_parse_conttype_name (NULL);
+ g13_exit (0);
+ }
+ cmdline_conttype = be_parse_conttype_name (pargs.r.ret_str);
+ if (!cmdline_conttype)
+ {
+ pargs.r_opt = ARGPARSE_INVALID_ARG;
+ pargs.err = ARGPARSE_PRINT_ERROR;
+ }
+ break;
default:
pargs.err = configfp? ARGPARSE_PRINT_WARNING:ARGPARSE_PRINT_ERROR;
@@ -756,6 +773,8 @@ main ( int argc, char **argv)
break;
}
+ g13_deinit_default_ctrl (&ctrl);
+
if (!err)
join_idle_task ();
@@ -767,12 +786,20 @@ main ( int argc, char **argv)
/* Store defaults into the per-connection CTRL object. */
void
-g13_init_default_ctrl (struct server_control_s *ctrl)
+g13_init_default_ctrl (ctrl_t ctrl)
{
ctrl->conttype = cmdline_conttype? cmdline_conttype : CONTTYPE_ENCFS;
}
+/* Release remaining resources allocated in the CTRL object. */
+void
+g13_deinit_default_ctrl (ctrl_t ctrl)
+{
+ call_syshelp_release (ctrl);
+}
+
+
/* This function is called for each signal we catch. It is run in the
main context or the one of a NPth thread and thus it is not
restricted in what it may do. */