diff options
Diffstat (limited to '')
-rw-r--r-- | sm/gpgsm.c | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/sm/gpgsm.c b/sm/gpgsm.c index 329e80d9f..3a84777e1 100644 --- a/sm/gpgsm.c +++ b/sm/gpgsm.c @@ -319,6 +319,7 @@ static char *build_list (const char *text, static void set_cmd (enum cmd_and_opt_values *ret_cmd, enum cmd_and_opt_values new_cmd ); +static int check_special_filename (const char *fname); static int open_read (const char *filename); @@ -512,6 +513,7 @@ main ( int argc, char **argv) char *def_cipher_string = NULL; char *def_digest_string = NULL; enum cmd_and_opt_values cmd = 0; + struct server_control_s ctrl; /* FIXME: trap_unaligned ();*/ set_strusage (my_strusage); @@ -583,6 +585,12 @@ main ( int argc, char **argv) assuan_set_malloc_hooks (gcry_malloc, gcry_realloc, gcry_free); keybox_set_malloc_hooks (gcry_malloc, gcry_realloc, gcry_free); + /* Setup a default control structure */ + memset (&ctrl, 0, sizeof ctrl); + ctrl.no_server = 1; + ctrl.status_fd = -1; /* not status output */ + + /* set the default option file */ if (default_config ) configname = make_filename (opt.homedir, "gpgsm.conf", NULL); @@ -680,7 +688,7 @@ main ( int argc, char **argv) case oDebug: opt.debug |= pargs.r.ret_ulong; break; case oDebugAll: opt.debug = ~0; break; - case oStatusFD: /* fixme: set_status_fd (pargs.r.ret_int );*/ break; + case oStatusFD: ctrl.status_fd = pargs.r.ret_int; break; case oLoggerFD: /* fixme: log_set_logfile (NULL, pargs.r.ret_int );*/ break; case oWithFingerprint: with_fpr=1; /*fall thru*/ @@ -930,11 +938,11 @@ main ( int argc, char **argv) case aVerify: if (!argc) - gpgsm_verify (0, -1); /* normal signature from stdin */ + gpgsm_verify (&ctrl, 0, -1); /* normal signature from stdin */ else if (argc == 1) - gpgsm_verify (open_read (*argv), -1); /* normal signature */ + gpgsm_verify (&ctrl, open_read (*argv), -1); /* normal signature */ else if (argc == 2) /* detached signature (sig, detached) */ - gpgsm_verify (open_read (*argv), open_read (argv[1])); + gpgsm_verify (&ctrl, open_read (*argv), open_read (argv[1])); else wrong_args (_("--verify [signature [detached_data]]")); break; @@ -992,8 +1000,13 @@ main ( int argc, char **argv) break; case aImport: -/* import_keys (argc? argv:NULL, argc); */ - gpgsm_import (0); + if (!argc) + gpgsm_import (&ctrl, 0); + else + { + for (; argc; argc--, argv++) + gpgsm_import (&ctrl, open_read (*argv)); + } break; case aExport: |