mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +01:00
common: Add an assuan logging monitor.
* common/asshelp.c (my_log_monitor): New var. (my_libassuan_log_handler): Run that monitor. (setup_libassuan_logging): Add arg to set a log monitor and change all callers. Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
parent
0a4a03e531
commit
0ac671f8a2
@ -771,7 +771,7 @@ main (int argc, char **argv )
|
|||||||
assuan_set_gpg_err_source (GPG_ERR_SOURCE_DEFAULT);
|
assuan_set_gpg_err_source (GPG_ERR_SOURCE_DEFAULT);
|
||||||
assuan_set_system_hooks (ASSUAN_SYSTEM_NPTH);
|
assuan_set_system_hooks (ASSUAN_SYSTEM_NPTH);
|
||||||
assuan_sock_init ();
|
assuan_sock_init ();
|
||||||
setup_libassuan_logging (&opt.debug);
|
setup_libassuan_logging (&opt.debug, NULL);
|
||||||
|
|
||||||
setup_libgcrypt_logging ();
|
setup_libgcrypt_logging ();
|
||||||
gcry_control (GCRYCTL_USE_SECURE_RNDPOOL);
|
gcry_control (GCRYCTL_USE_SECURE_RNDPOOL);
|
||||||
|
@ -69,6 +69,12 @@
|
|||||||
static int log_cats;
|
static int log_cats;
|
||||||
#define TEST_LOG_CAT(x) (!! (log_cats & (1 << (x - 1))))
|
#define TEST_LOG_CAT(x) (!! (log_cats & (1 << (x - 1))))
|
||||||
|
|
||||||
|
/* The assuan log monitor used to temporary inhibit log messages from
|
||||||
|
* assuan. */
|
||||||
|
static int (*my_log_monitor) (assuan_context_t ctx,
|
||||||
|
unsigned int cat,
|
||||||
|
const char *msg);
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
my_libassuan_log_handler (assuan_context_t ctx, void *hook,
|
my_libassuan_log_handler (assuan_context_t ctx, void *hook,
|
||||||
@ -76,8 +82,6 @@ my_libassuan_log_handler (assuan_context_t ctx, void *hook,
|
|||||||
{
|
{
|
||||||
unsigned int dbgval;
|
unsigned int dbgval;
|
||||||
|
|
||||||
(void)ctx;
|
|
||||||
|
|
||||||
if (! TEST_LOG_CAT (cat))
|
if (! TEST_LOG_CAT (cat))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
@ -85,6 +89,9 @@ my_libassuan_log_handler (assuan_context_t ctx, void *hook,
|
|||||||
if (!(dbgval & 1024))
|
if (!(dbgval & 1024))
|
||||||
return 0; /* Assuan debugging is not enabled. */
|
return 0; /* Assuan debugging is not enabled. */
|
||||||
|
|
||||||
|
if (ctx && my_log_monitor && !my_log_monitor (ctx, cat, msg))
|
||||||
|
return 0; /* Temporary disabled. */
|
||||||
|
|
||||||
if (msg)
|
if (msg)
|
||||||
log_string (GPGRT_LOG_DEBUG, msg);
|
log_string (GPGRT_LOG_DEBUG, msg);
|
||||||
|
|
||||||
@ -95,7 +102,10 @@ my_libassuan_log_handler (assuan_context_t ctx, void *hook,
|
|||||||
/* Setup libassuan to use our own logging functions. Should be used
|
/* Setup libassuan to use our own logging functions. Should be used
|
||||||
early at startup. */
|
early at startup. */
|
||||||
void
|
void
|
||||||
setup_libassuan_logging (unsigned int *debug_var_address)
|
setup_libassuan_logging (unsigned int *debug_var_address,
|
||||||
|
int (*log_monitor)(assuan_context_t ctx,
|
||||||
|
unsigned int cat,
|
||||||
|
const char *msg))
|
||||||
{
|
{
|
||||||
char *flagstr;
|
char *flagstr;
|
||||||
|
|
||||||
@ -104,9 +114,11 @@ setup_libassuan_logging (unsigned int *debug_var_address)
|
|||||||
log_cats = atoi (flagstr);
|
log_cats = atoi (flagstr);
|
||||||
else /* Default to log the control channel. */
|
else /* Default to log the control channel. */
|
||||||
log_cats = (1 << (ASSUAN_LOG_CONTROL - 1));
|
log_cats = (1 << (ASSUAN_LOG_CONTROL - 1));
|
||||||
|
my_log_monitor = log_monitor;
|
||||||
assuan_set_log_cb (my_libassuan_log_handler, debug_var_address);
|
assuan_set_log_cb (my_libassuan_log_handler, debug_var_address);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Change the Libassuan log categories to those given by NEWCATS.
|
/* Change the Libassuan log categories to those given by NEWCATS.
|
||||||
NEWCATS is 0 the default category of ASSUAN_LOG_CONTROL is
|
NEWCATS is 0 the default category of ASSUAN_LOG_CONTROL is
|
||||||
selected. Note, that setup_libassuan_logging overrides the values
|
selected. Note, that setup_libassuan_logging overrides the values
|
||||||
|
@ -38,7 +38,10 @@
|
|||||||
|
|
||||||
/*-- asshelp.c --*/
|
/*-- asshelp.c --*/
|
||||||
|
|
||||||
void setup_libassuan_logging (unsigned int *debug_var_address);
|
void setup_libassuan_logging (unsigned int *debug_var_address,
|
||||||
|
int (*log_monitor)(assuan_context_t ctx,
|
||||||
|
unsigned int cat,
|
||||||
|
const char *msg));
|
||||||
void set_libassuan_log_cats (unsigned int newcats);
|
void set_libassuan_log_cats (unsigned int newcats);
|
||||||
|
|
||||||
|
|
||||||
|
@ -702,7 +702,7 @@ main (int argc, char **argv)
|
|||||||
assuan_set_gpg_err_source (GPG_ERR_SOURCE_DEFAULT);
|
assuan_set_gpg_err_source (GPG_ERR_SOURCE_DEFAULT);
|
||||||
assuan_set_system_hooks (ASSUAN_SYSTEM_NPTH);
|
assuan_set_system_hooks (ASSUAN_SYSTEM_NPTH);
|
||||||
assuan_sock_init ();
|
assuan_sock_init ();
|
||||||
setup_libassuan_logging (&opt.debug);
|
setup_libassuan_logging (&opt.debug, NULL);
|
||||||
|
|
||||||
setup_libgcrypt_logging ();
|
setup_libgcrypt_logging ();
|
||||||
|
|
||||||
|
@ -2317,7 +2317,7 @@ main (int argc, char **argv)
|
|||||||
malloc_hooks.free = gcry_free;
|
malloc_hooks.free = gcry_free;
|
||||||
assuan_set_malloc_hooks (&malloc_hooks);
|
assuan_set_malloc_hooks (&malloc_hooks);
|
||||||
assuan_set_gpg_err_source (GPG_ERR_SOURCE_DEFAULT);
|
assuan_set_gpg_err_source (GPG_ERR_SOURCE_DEFAULT);
|
||||||
setup_libassuan_logging (&opt.debug);
|
setup_libassuan_logging (&opt.debug, NULL);
|
||||||
|
|
||||||
/* Try for a version specific config file first */
|
/* Try for a version specific config file first */
|
||||||
default_configname = get_default_configname ();
|
default_configname = get_default_configname ();
|
||||||
|
@ -302,7 +302,7 @@ main ( int argc, char **argv)
|
|||||||
/* Prepare libassuan. */
|
/* Prepare libassuan. */
|
||||||
assuan_set_gpg_err_source (GPG_ERR_SOURCE_DEFAULT);
|
assuan_set_gpg_err_source (GPG_ERR_SOURCE_DEFAULT);
|
||||||
/*assuan_set_system_hooks (ASSUAN_SYSTEM_NPTH);*/
|
/*assuan_set_system_hooks (ASSUAN_SYSTEM_NPTH);*/
|
||||||
setup_libassuan_logging (&opt.debug);
|
setup_libassuan_logging (&opt.debug, NULL);
|
||||||
|
|
||||||
/* Setup a default control structure for command line mode. */
|
/* Setup a default control structure for command line mode. */
|
||||||
memset (&ctrl, 0, sizeof ctrl);
|
memset (&ctrl, 0, sizeof ctrl);
|
||||||
|
@ -431,7 +431,7 @@ main ( int argc, char **argv)
|
|||||||
/* Prepare libassuan. */
|
/* Prepare libassuan. */
|
||||||
assuan_set_gpg_err_source (GPG_ERR_SOURCE_DEFAULT);
|
assuan_set_gpg_err_source (GPG_ERR_SOURCE_DEFAULT);
|
||||||
assuan_set_system_hooks (ASSUAN_SYSTEM_NPTH);
|
assuan_set_system_hooks (ASSUAN_SYSTEM_NPTH);
|
||||||
setup_libassuan_logging (&opt.debug);
|
setup_libassuan_logging (&opt.debug, NULL);
|
||||||
|
|
||||||
/* Setup a default control structure for command line mode. */
|
/* Setup a default control structure for command line mode. */
|
||||||
memset (&ctrl, 0, sizeof ctrl);
|
memset (&ctrl, 0, sizeof ctrl);
|
||||||
|
@ -433,7 +433,7 @@ main (int argc, char **argv )
|
|||||||
assuan_set_gpg_err_source (GPG_ERR_SOURCE_DEFAULT);
|
assuan_set_gpg_err_source (GPG_ERR_SOURCE_DEFAULT);
|
||||||
assuan_set_system_hooks (ASSUAN_SYSTEM_NPTH);
|
assuan_set_system_hooks (ASSUAN_SYSTEM_NPTH);
|
||||||
assuan_sock_init ();
|
assuan_sock_init ();
|
||||||
setup_libassuan_logging (&opt.debug);
|
setup_libassuan_logging (&opt.debug, NULL);
|
||||||
|
|
||||||
setup_libgcrypt_logging ();
|
setup_libgcrypt_logging ();
|
||||||
gcry_control (GCRYCTL_USE_SECURE_RNDPOOL);
|
gcry_control (GCRYCTL_USE_SECURE_RNDPOOL);
|
||||||
|
@ -1006,7 +1006,7 @@ main ( int argc, char **argv)
|
|||||||
malloc_hooks.free = gcry_free;
|
malloc_hooks.free = gcry_free;
|
||||||
assuan_set_malloc_hooks (&malloc_hooks);
|
assuan_set_malloc_hooks (&malloc_hooks);
|
||||||
assuan_set_gpg_err_source (GPG_ERR_SOURCE_DEFAULT);
|
assuan_set_gpg_err_source (GPG_ERR_SOURCE_DEFAULT);
|
||||||
setup_libassuan_logging (&opt.debug);
|
setup_libassuan_logging (&opt.debug, NULL);
|
||||||
|
|
||||||
keybox_set_malloc_hooks (gcry_malloc, gcry_realloc, gcry_free);
|
keybox_set_malloc_hooks (gcry_malloc, gcry_realloc, gcry_free);
|
||||||
|
|
||||||
|
@ -211,7 +211,7 @@ main (int argc, char **argv)
|
|||||||
init_common_subsystems (&argc, &argv);
|
init_common_subsystems (&argc, &argv);
|
||||||
|
|
||||||
assuan_set_gpg_err_source (GPG_ERR_SOURCE_DEFAULT);
|
assuan_set_gpg_err_source (GPG_ERR_SOURCE_DEFAULT);
|
||||||
setup_libassuan_logging (&opt.debug);
|
setup_libassuan_logging (&opt.debug, NULL);
|
||||||
|
|
||||||
/* Parse the command line. */
|
/* Parse the command line. */
|
||||||
pargs.argc = &argc;
|
pargs.argc = &argc;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user