aboutsummaryrefslogtreecommitdiffstats
path: root/scd/scdaemon.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2005-05-20 20:39:36 +0000
committerWerner Koch <[email protected]>2005-05-20 20:39:36 +0000
commit41862f5f13bef8113cf040ecaba34a35c370eeb3 (patch)
tree8deaa1ca3c63351b2ef028947aa445b422081e9f /scd/scdaemon.c
parentChanged the scdaemon to handle concurrent sessions. Adjusted (diff)
downloadgnupg-41862f5f13bef8113cf040ecaba34a35c370eeb3.tar.gz
gnupg-41862f5f13bef8113cf040ecaba34a35c370eeb3.zip
* protect-tool.c: New option --canonical.
(show_file): Implement it. * keyformat.txt: Define the created-at attribute for keys. * ccid-driver.c: Replaced macro DEBUG_T1 by a new debug level. (parse_ccid_descriptor): Mark SCR335 firmware version 5.18 good. (ccid_transceive): Arghhh. The seqno is another bit in the R-block than in the I block, this was wrong at one place. * scdaemon.c: New options --debug-ccid-driver and --debug-disable-ticker. * app-openpgp.c (do_genkey, do_writekey): Factored code to check for existing key out into .. (does_key_exist): .. New function. * gpg-connect-agent.c (add_definq, show_definq, clear_definq) (handle_inquire): New. (read_and_print_response): Handle INQUIRE command. (main): Implement control commands.
Diffstat (limited to 'scd/scdaemon.c')
-rw-r--r--scd/scdaemon.c33
1 files changed, 21 insertions, 12 deletions
diff --git a/scd/scdaemon.c b/scd/scdaemon.c
index 9a8b31ac5..1110d9d76 100644
--- a/scd/scdaemon.c
+++ b/scd/scdaemon.c
@@ -50,6 +50,7 @@
#ifdef HAVE_W32_SYSTEM
#include "../jnlib/w32-afunix.h"
#endif
+#include "ccid-driver.h"
enum cmd_and_opt_values
@@ -66,7 +67,7 @@ enum cmd_and_opt_values
oDebugAll,
oDebugLevel,
oDebugWait,
- oDebugSC,
+ oDebugCCIDDriver,
oNoGreeting,
oNoOptions,
oHomedir,
@@ -85,8 +86,8 @@ enum cmd_and_opt_values
oAllowAdmin,
oDenyAdmin,
oDisableApplication,
-
-aTest };
+ oDebugDisableTicker
+};
@@ -97,6 +98,8 @@ static ARGPARSE_OPTS opts[] = {
{ 301, NULL, 0, N_("@Options:\n ") },
{ oServer, "server", 0, N_("run in server mode (foreground)") },
+ { oMultiServer, "multi-server", 0,
+ N_("run in multi server mode (foreground)") },
{ oDaemon, "daemon", 0, N_("run in daemon mode (background)") },
{ oVerbose, "verbose", 0, N_("verbose") },
{ oQuiet, "quiet", 0, N_("be somewhat more quiet") },
@@ -107,10 +110,10 @@ static ARGPARSE_OPTS opts[] = {
{ oDebugAll, "debug-all" ,0, "@"},
{ oDebugLevel, "debug-level" ,2, "@"},
{ oDebugWait,"debug-wait",1, "@"},
+ { oDebugCCIDDriver, "debug-ccid-driver", 0, "@"},
+ { oDebugDisableTicker, "debug-disable-ticker", 0, "@"},
{ oNoDetach, "no-detach" ,0, N_("do not detach from the console")},
{ oLogFile, "log-file" ,2, N_("use a log file for the server")},
- { oMultiServer, "multi-server", 0,
- N_("allow additional connections in server mode")},
{ oReaderPort, "reader-port", 2, N_("|N|connect to reader at port N")},
{ octapiDriver, "ctapi-driver", 2, N_("|NAME|use NAME as ct-API driver")},
{ opcscDriver, "pcsc-driver", 2, N_("|NAME|use NAME as PC/SC driver")},
@@ -125,10 +128,6 @@ static ARGPARSE_OPTS opts[] = {
{ oDenyAdmin, "deny-admin", 0, "@" },
{ oDisableApplication, "disable-application", 2, "@"},
- /* Dummy options to be removed at some point. */
- { oDebugSC, "debug-sc", 1, "@" },
- { oDisableOpenSC, "disable-opensc", 0, "@" },
-
{0}
};
@@ -150,6 +149,12 @@ static int maybe_setuid = 1;
/* Name of the communication socket */
static char *socket_name;
+
+/* Debug flag to disable the ticker. The ticker is in fact not
+ disabled but it won't perform any ticker specific actions. */
+static int ticker_disabled;
+
+
static char *create_socket_name (int use_standard_socket,
char *standard_name, char *template);
@@ -443,7 +448,10 @@ main (int argc, char **argv )
case oDebugAll: opt.debug = ~0; break;
case oDebugLevel: debug_level = pargs.r.ret_str; break;
case oDebugWait: debug_wait = pargs.r.ret_int; break;
- case oDebugSC: break;
+ case oDebugCCIDDriver:
+ ccid_set_debug_level (ccid_set_debug_level (-1)+1);
+ break;
+ case oDebugDisableTicker: ticker_disabled = 1; break;
case oOptions:
/* config files may not be nested (silently ignore them) */
@@ -463,7 +471,7 @@ main (int argc, char **argv )
case oCsh: csh_style = 1; break;
case oSh: csh_style = 0; break;
case oServer: pipe_server = 1; break;
- case oMultiServer: multi_server = 1; break;
+ case oMultiServer: pipe_server = 1; multi_server = 1; break;
case oDaemon: is_daemon = 1; break;
case oReaderPort: opt.reader_port = pargs.r.ret_str; break;
@@ -839,7 +847,8 @@ handle_signal (int signo)
static void
handle_tick (void)
{
- scd_update_reader_status_file ();
+ if (!ticker_disabled)
+ scd_update_reader_status_file ();
}