aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2021-04-20 08:50:10 +0000
committerWerner Koch <[email protected]>2021-04-20 08:50:10 +0000
commit45918813f0599505e4f84bd44b09fb708b4e7f23 (patch)
tree5f65a09232336e12e2201b64036e804576a131e1
parentgpgconf: Fix a diagnostic output. (diff)
downloadgnupg-45918813f0599505e4f84bd44b09fb708b4e7f23.tar.gz
gnupg-45918813f0599505e4f84bd44b09fb708b4e7f23.zip
Support log-file option from common.conf for all daemon.
* agent/gpg-agent.c: Include comopt.h. (main): Read log-file option from common.conf. (reread_configuration): Ditto. * dirmngr/dirmngr.c: Include comopt.h. (main): Read log-file option from common.conf. (reread_configuration): Ditto. * kbx/keyboxd.c: Include comopt.h. (main): Read log-file option from common.conf. (reread_configuration): Ditto. * scd/scdaemon.c: Include comopt.h. (main): Read log-file option from common.conf. Signed-off-by: Werner Koch <[email protected]>
-rw-r--r--agent/gpg-agent.c28
-rw-r--r--dirmngr/dirmngr.c31
-rw-r--r--kbx/keyboxd.c31
-rw-r--r--scd/scdaemon.c12
4 files changed, 97 insertions, 5 deletions
diff --git a/agent/gpg-agent.c b/agent/gpg-agent.c
index 74c2108b1..0a9e903c4 100644
--- a/agent/gpg-agent.c
+++ b/agent/gpg-agent.c
@@ -59,6 +59,7 @@
#include "../common/gc-opt-flags.h"
#include "../common/exechelp.h"
#include "../common/asshelp.h"
+#include "../common/comopt.h"
#include "../common/init.h"
@@ -1317,6 +1318,13 @@ main (int argc, char **argv)
finalize_rereadable_options ();
+ /* Get a default log file from common.conf. */
+ if (!logfile && !parse_comopt (GNUPG_MODULE_NAME_AGENT, debug_argparser))
+ {
+ logfile = comopt.logfile;
+ comopt.logfile = NULL;
+ }
+
/* Print a warning if an argument looks like an option. */
if (!opt.quiet && !(pargs.flags & ARGPARSE_FLAG_STOP_SEEN))
{
@@ -1986,6 +1994,7 @@ reread_configuration (void)
gpgrt_argparse_t pargs;
char *twopart;
int dummy;
+ int logfile_seen = 0;
if (!config_filename)
return; /* No config file. */
@@ -2013,12 +2022,29 @@ reread_configuration (void)
else if (pargs.r_opt < -1)
pargs.err = ARGPARSE_PRINT_WARNING;
else /* Try to parse this option - ignore unchangeable ones. */
- parse_rereadable_options (&pargs, 1);
+ {
+ if (pargs.r_opt == oLogFile)
+ logfile_seen = 1;
+ parse_rereadable_options (&pargs, 1);
+ }
}
gpgrt_argparse (NULL, &pargs, NULL); /* Release internal state. */
xfree (twopart);
+
finalize_rereadable_options ();
set_debug ();
+
+ /* Get a default log file from common.conf. */
+ if (!logfile_seen && !parse_comopt (GNUPG_MODULE_NAME_AGENT, !!opt.debug))
+ {
+ if (!current_logfile || !comopt.logfile
+ || strcmp (current_logfile, comopt.logfile))
+ {
+ log_set_file (comopt.logfile);
+ xfree (current_logfile);
+ current_logfile = comopt.logfile? xtrystrdup (comopt.logfile) : NULL;
+ }
+ }
}
diff --git a/dirmngr/dirmngr.c b/dirmngr/dirmngr.c
index 33de686f5..38ae1c6ed 100644
--- a/dirmngr/dirmngr.c
+++ b/dirmngr/dirmngr.c
@@ -71,6 +71,7 @@
#if USE_LDAP
# include "ldap-wrapper.h"
#endif
+#include "../common/comopt.h"
#include "../common/init.h"
#include "../common/gc-opt-flags.h"
#include "dns-stuff.h"
@@ -1072,6 +1073,14 @@ main (int argc, char **argv)
if (log_get_errorcount(0))
exit(2);
+
+ /* Get a default log file from common.conf. */
+ if (!logfile && !parse_comopt (GNUPG_MODULE_NAME_DIRMNGR, debug_argparser))
+ {
+ logfile = comopt.logfile;
+ comopt.logfile = NULL;
+ }
+
if (nogreeting )
greeting = 0;
@@ -1806,9 +1815,10 @@ reread_configuration (void)
gpgrt_argparse_t pargs;
char *twopart;
int dummy;
+ int logfile_seen = 0;
if (!opt.config_filename)
- return; /* No config file. */
+ goto finish; /* No config file. */
twopart = strconcat (DIRMNGR_NAME EXTSEP_S "conf" PATHSEP_S,
opt.config_filename, NULL);
@@ -1833,11 +1843,28 @@ reread_configuration (void)
else if (pargs.r_opt < -1)
pargs.err = ARGPARSE_PRINT_WARNING;
else /* Try to parse this option - ignore unchangeable ones. */
- parse_rereadable_options (&pargs, 1);
+ {
+ if (pargs.r_opt == oLogFile)
+ logfile_seen = 1;
+ parse_rereadable_options (&pargs, 1);
+ }
}
gpgrt_argparse (NULL, &pargs, NULL); /* Release internal state. */
xfree (twopart);
post_option_parsing ();
+
+ finish:
+ /* Get a default log file from common.conf. */
+ if (!logfile_seen && !parse_comopt (GNUPG_MODULE_NAME_DIRMNGR, !!opt.debug))
+ {
+ if (!current_logfile || !comopt.logfile
+ || strcmp (current_logfile, comopt.logfile))
+ {
+ log_set_file (comopt.logfile);
+ xfree (current_logfile);
+ current_logfile = comopt.logfile? xtrystrdup (comopt.logfile) : NULL;
+ }
+ }
}
diff --git a/kbx/keyboxd.c b/kbx/keyboxd.c
index be9098c13..76a0694a4 100644
--- a/kbx/keyboxd.c
+++ b/kbx/keyboxd.c
@@ -58,6 +58,7 @@
#include "../common/init.h"
#include "../common/gc-opt-flags.h"
#include "../common/exechelp.h"
+#include "../common/comopt.h"
#include "frontend.h"
@@ -610,6 +611,14 @@ main (int argc, char **argv )
if (log_get_errorcount(0))
exit (2);
+ /* Get a default log file from common.conf. */
+ if (!logfile && !parse_comopt (GNUPG_MODULE_NAME_KEYBOXD, debug_argparser))
+ {
+ logfile = comopt.logfile;
+ comopt.logfile = NULL;
+ }
+
+
finalize_rereadable_options ();
/* Print a warning if an argument looks like an option. */
@@ -988,9 +997,10 @@ reread_configuration (void)
gpgrt_argparse_t pargs;
char *twopart;
int dummy;
+ int logfile_seen = 0;
if (!config_filename)
- return; /* No config file. */
+ goto finish; /* No config file. */
twopart = strconcat ("keyboxd" EXTSEP_S "conf" PATHSEP_S,
config_filename, NULL);
@@ -1015,12 +1025,29 @@ reread_configuration (void)
else if (pargs.r_opt < -1)
pargs.err = ARGPARSE_PRINT_WARNING;
else /* Try to parse this option - ignore unchangeable ones. */
- parse_rereadable_options (&pargs, 1);
+ {
+ if (pargs.r_opt == oLogFile)
+ logfile_seen = 1;
+ parse_rereadable_options (&pargs, 1);
+ }
}
gpgrt_argparse (NULL, &pargs, NULL); /* Release internal state. */
xfree (twopart);
finalize_rereadable_options ();
set_debug ();
+
+ finish:
+ /* Get a default log file from common.conf. */
+ if (!logfile_seen && !parse_comopt (GNUPG_MODULE_NAME_KEYBOXD, !!opt.debug))
+ {
+ if (!current_logfile || !comopt.logfile
+ || strcmp (current_logfile, comopt.logfile))
+ {
+ log_set_file (comopt.logfile);
+ xfree (current_logfile);
+ current_logfile = comopt.logfile? xtrystrdup (comopt.logfile) : NULL;
+ }
+ }
}
diff --git a/scd/scdaemon.c b/scd/scdaemon.c
index eddc83256..60d68c26a 100644
--- a/scd/scdaemon.c
+++ b/scd/scdaemon.c
@@ -54,6 +54,7 @@
#include "../common/gc-opt-flags.h"
#include "../common/asshelp.h"
#include "../common/exechelp.h"
+#include "../common/comopt.h"
#include "../common/init.h"
#ifndef ENAMETOOLONG
@@ -652,6 +653,17 @@ main (int argc, char **argv )
if (log_get_errorcount(0))
exit(2);
+
+ /* Process common component options. */
+ if (parse_comopt (GNUPG_MODULE_NAME_SCDAEMON, debug_argparser))
+ exit(2);
+
+ if (!logfile)
+ {
+ logfile = comopt.logfile;
+ comopt.logfile = NULL;
+ }
+
if (nogreeting )
greeting = 0;