Add a hook to be called right after main.
authorWerner Koch <wk@gnupg.org>
Wed, 28 Jan 2015 18:57:22 +0000 (19:57 +0100)
committerWerner Koch <wk@gnupg.org>
Wed, 28 Jan 2015 18:57:22 +0000 (19:57 +0100)
* common/init.c (early_system_init): New stub function.

Signed-off-by: Werner Koch <wk@gnupg.org>
18 files changed:
agent/gpg-agent.c
agent/preset-passphrase.c
agent/protect-tool.c
common/init.c
common/init.h
dirmngr/dirmngr-client.c
dirmngr/dirmngr.c
dirmngr/dirmngr_ldap.c
g10/gpg.c
g10/gpgv.c
g13/g13.c
kbx/kbxutil.c
scd/scdaemon.c
sm/gpgsm.c
tools/gpg-check-pattern.c
tools/gpg-connect-agent.c
tools/gpgconf.c
tools/symcryptrun.c

index fe310f4..a874e76 100644 (file)
@@ -665,6 +665,8 @@ main (int argc, char **argv )
   gpg_error_t err;
   struct assuan_malloc_hooks malloc_hooks;
 
+  early_system_init ();
+
   /* Before we do anything else we save the list of currently open
      file descriptors and the signal mask.  This info is required to
      do the exec call properly. */
index ad8e500..6378d7a 100644 (file)
@@ -212,6 +212,7 @@ main (int argc, char **argv)
   int cmd = 0;
   const char *keygrip = NULL;
 
+  early_system_init ();
   set_strusage (my_strusage);
   log_set_prefix ("gpg-preset-passphrase", 1);
 
index 5e540cf..dc363f2 100644 (file)
@@ -549,6 +549,7 @@ main (int argc, char **argv )
   int cmd = 0;
   const char *fname;
 
+  early_system_init ();
   set_strusage (my_strusage);
   gcry_control (GCRYCTL_SUSPEND_SECMEM_WARN);
   log_set_prefix ("gpg-protect-tool", 1);
index 2d5d630..c68a4e6 100644 (file)
@@ -133,6 +133,13 @@ writestring_via_estream (int mode, const char *string)
 }
 
 
+/* This function should be the first called after main.  */
+void
+early_system_init (void)
+{
+}
+
+
 /* This function is to be used early at program startup to make sure
    that some subsystems are initialized.  This is in particular
    important for W32 to initialize the sockets so that our socket
index eea2eb1..530a479 100644 (file)
@@ -38,6 +38,7 @@
 
 void register_mem_cleanup_func (void (*func)(void));
 
+void early_system_init (void);
 void _init_common_subsystems (gpg_err_source_t errsource,
                               int *argcp, char ***argvp);
 #define init_common_subsystems(a,b)                             \
index 0e62764..770e941 100644 (file)
@@ -40,6 +40,7 @@
 
 #include "i18n.h"
 #include "util.h"
+#include "init.h"
 
 
 /* Constants for the options.  */
@@ -180,6 +181,7 @@ main (int argc, char **argv )
   int cmd_loadcrl = 0;
   int cmd_squid_mode = 0;
 
+  early_system_init ();
   set_strusage (my_strusage);
   log_set_prefix ("dirmngr-client",
                   JNLIB_LOG_WITH_PREFIX);
index d3424c1..a46f736 100644 (file)
@@ -650,6 +650,8 @@ main (int argc, char **argv)
   int homedir_seen = 0;
   struct assuan_malloc_hooks malloc_hooks;
 
+  early_system_init ();
+
 #ifdef USE_W32_SERVICE
   /* The option will be set by main() below if we should run as a
      system daemon.  */
index daa2d1b..981b5cc 100644 (file)
@@ -242,6 +242,8 @@ ldap_wrapper_main (char **argv, estream_t outstream)
 
   memset (&my_opt_buffer, 0, sizeof my_opt_buffer);
 
+  early_system_init ();
+
 #ifdef USE_LDAPWRAPPER
   set_strusage (my_strusage);
   log_set_prefix ("dirmngr_ldap", JNLIB_LOG_WITH_PREFIX);
index 2047e30..5e929d9 100644 (file)
--- a/g10/gpg.c
+++ b/g10/gpg.c
@@ -2048,6 +2048,7 @@ main (int argc, char **argv)
     /* Please note that we may running SUID(ROOT), so be very CAREFUL
        when adding any stuff between here and the call to
        secmem_init() somewhere after the option parsing. */
+    early_system_init ();
     gnupg_reopen_std (GPG_NAME);
     trap_unaligned ();
     gnupg_rl_initialize ();
index f09b5da..157fdea 100644 (file)
@@ -144,6 +144,7 @@ main( int argc, char **argv )
   unsigned configlineno;
   ctrl_t ctrl;
 
+  early_system_init ();
   set_strusage (my_strusage);
   log_set_prefix ("gpgv", 1);
 
index 8682114..157e646 100644 (file)
--- a/g13/g13.c
+++ b/g13/g13.c
@@ -344,6 +344,7 @@ main ( int argc, char **argv)
 
   /*mtrace();*/
 
+  early_system_init ();
   gnupg_reopen_std (G13_NAME);
   set_strusage (my_strusage);
   gcry_control (GCRYCTL_SUSPEND_SECMEM_WARN);
index 34cbc53..368c02d 100644 (file)
@@ -452,6 +452,7 @@ main( int argc, char **argv )
   unsigned long from = 0, to = ULONG_MAX;
   int dry_run = 0;
 
+  early_system_init ();
   set_strusage( my_strusage );
   gcry_control (GCRYCTL_DISABLE_SECMEM);
   log_set_prefix ("kbxutil", 1);
index 7c786c2..d0777e8 100644 (file)
@@ -411,6 +411,7 @@ main (int argc, char **argv )
   int res;
   npth_t pipecon_handler;
 
+  early_system_init ();
   set_strusage (my_strusage);
   gcry_control (GCRYCTL_SUSPEND_SECMEM_WARN);
   /* Please note that we may running SUID(ROOT), so be very CAREFUL
index 72bceb4..62e29b8 100644 (file)
@@ -910,6 +910,7 @@ main ( int argc, char **argv)
 
   /*mtrace();*/
 
+  early_system_init ();
   gnupg_reopen_std (GPGSM_NAME);
   /* trap_unaligned ();*/
   gnupg_rl_initialize ();
index 2db9ae5..e76f121 100644 (file)
@@ -164,6 +164,7 @@ main (int argc, char **argv )
   size_t raw_pattern_length;
   pattern_t *patternarray;
 
+  early_system_init ();
   set_strusage (my_strusage);
   gcry_control (GCRYCTL_SUSPEND_SECMEM_WARN);
   log_set_prefix ("gpg-check-pattern", 1);
index 1d9bb66..f1d123f 100644 (file)
@@ -1169,6 +1169,7 @@ main (int argc, char **argv)
   int        loopidx;
   char **cmdline_commands = NULL;
 
+  early_system_init ();
   gnupg_rl_initialize ();
   set_strusage (my_strusage);
   log_set_prefix ("gpg-connect-agent", 1);
index 423a66c..180c88a 100644 (file)
@@ -151,6 +151,7 @@ main (int argc, char **argv)
   enum cmd_and_opt_values cmd = 0;
   estream_t outfp = NULL;
 
+  early_system_init ();
   gnupg_reopen_std (GPGCONF_NAME);
   set_strusage (my_strusage);
   log_set_prefix (GPGCONF_NAME, 1);
index 4873d76..c7fc5b6 100644 (file)
@@ -889,6 +889,7 @@ main (int argc, char **argv)
   char *logfile = NULL;
   int default_config = 1;
 
+  early_system_init ();
   set_strusage (my_strusage);
   log_set_prefix ("symcryptrun", 1);