mirror of
git://git.gnupg.org/gnupg.git
synced 2025-01-03 12:11:33 +01:00
* configure.ac: Define SAFE_VERSION_DASH and SAFE_VERSION_DOT>
* g10.c: New options --gpgconf-list, --debug-level and --log-file (set_debug): Add arg DEBUG_LEVEL. (main): Look at less and less version specific config files. From gnupg 1.3.
This commit is contained in:
parent
fc584a063d
commit
a40cbf1c33
@ -1,3 +1,7 @@
|
|||||||
|
2004-03-23 Werner Koch <wk@gnupg.org>
|
||||||
|
|
||||||
|
* configure.ac: Define SAFE_VERSION_DASH and SAFE_VERSION_DOT>
|
||||||
|
|
||||||
2004-03-09 Werner Koch <wk@gnupg.org>
|
2004-03-09 Werner Koch <wk@gnupg.org>
|
||||||
|
|
||||||
* configure.ac (NEED_GPG_ERROR_VERSION): Set to 0.7.
|
* configure.ac (NEED_GPG_ERROR_VERSION): Set to 0.7.
|
||||||
|
@ -258,8 +258,12 @@ AH_BOTTOM([
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* This is the same as VERSION, but should be overridden if the
|
/* This is the same as VERSION, but should be overridden if the
|
||||||
platform cannot handle things like dots '.' in filenames. */
|
platform cannot handle things like dots '.' in filenames. Set
|
||||||
|
SAFE_VERSION_DOT and SAFE_VERSION_DASH to whatever SAFE_VERSION
|
||||||
|
uses for dots and dashes. */
|
||||||
#define SAFE_VERSION VERSION
|
#define SAFE_VERSION VERSION
|
||||||
|
#define SAFE_VERSION_DOT '.'
|
||||||
|
#define SAFE_VERSION_DASH '-'
|
||||||
|
|
||||||
/* For some systems (DOS currently), we hardcode the path here. For
|
/* For some systems (DOS currently), we hardcode the path here. For
|
||||||
POSIX systems the values are constructed by the Makefiles, so that
|
POSIX systems the values are constructed by the Makefiles, so that
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
2004-03-23 Werner Koch <wk@gnupg.org>
|
||||||
|
|
||||||
|
* g10.c: New options --gpgconf-list, --debug-level and --log-file
|
||||||
|
(set_debug): Add arg DEBUG_LEVEL.
|
||||||
|
(main): Look at less and less version specific config files. From
|
||||||
|
gnupg 1.3.
|
||||||
|
|
||||||
2004-02-17 Werner Koch <wk@gnupg.org>
|
2004-02-17 Werner Koch <wk@gnupg.org>
|
||||||
|
|
||||||
* call-agent.c (start_agent): Ignore an empty GPG_AGENT_INFO.
|
* call-agent.c (start_agent): Ignore an empty GPG_AGENT_INFO.
|
||||||
|
130
g10/g10.c
130
g10/g10.c
@ -1,5 +1,6 @@
|
|||||||
/* g10.c - The GnuPG utility (main for gpg)
|
/* g10.c - The GnuPG utility (main for gpg)
|
||||||
* Copyright (C) 1998,1999,2000,2001,2002,2003 Free Software Foundation, Inc.
|
* Copyright (C) 1998,1999,2000,2001,2002,2003
|
||||||
|
* 2004 Free Software Foundation, Inc.
|
||||||
*
|
*
|
||||||
* This file is part of GnuPG.
|
* This file is part of GnuPG.
|
||||||
*
|
*
|
||||||
@ -74,6 +75,7 @@ enum cmd_and_opt_values { aNull = 0,
|
|||||||
oCompress = 'z',
|
oCompress = 'z',
|
||||||
oSetNotation = 'N',
|
oSetNotation = 'N',
|
||||||
oBatch = 500,
|
oBatch = 500,
|
||||||
|
aGPGConfList,
|
||||||
oSigNotation,
|
oSigNotation,
|
||||||
oCertNotation,
|
oCertNotation,
|
||||||
oShowNotation,
|
oShowNotation,
|
||||||
@ -153,6 +155,7 @@ enum cmd_and_opt_values { aNull = 0,
|
|||||||
oNoDefRecipient,
|
oNoDefRecipient,
|
||||||
oOptions,
|
oOptions,
|
||||||
oDebug,
|
oDebug,
|
||||||
|
oDebugLevel,
|
||||||
oDebugAll,
|
oDebugAll,
|
||||||
oStatusFD,
|
oStatusFD,
|
||||||
#ifdef __riscos__
|
#ifdef __riscos__
|
||||||
@ -260,6 +263,7 @@ enum cmd_and_opt_values { aNull = 0,
|
|||||||
oEncryptTo,
|
oEncryptTo,
|
||||||
oHiddenEncryptTo,
|
oHiddenEncryptTo,
|
||||||
oNoEncryptTo,
|
oNoEncryptTo,
|
||||||
|
oLogFile,
|
||||||
oLoggerFD,
|
oLoggerFD,
|
||||||
#ifdef __riscos__
|
#ifdef __riscos__
|
||||||
oLoggerFile,
|
oLoggerFile,
|
||||||
@ -383,6 +387,7 @@ static ARGPARSE_OPTS opts[] = {
|
|||||||
{ aPrintMD, "print-md" , 256, N_("|algo [files]|print message digests")},
|
{ aPrintMD, "print-md" , 256, N_("|algo [files]|print message digests")},
|
||||||
{ aPrimegen, "gen-prime" , 256, "@" },
|
{ aPrimegen, "gen-prime" , 256, "@" },
|
||||||
{ aGenRandom, "gen-random" , 256, "@" },
|
{ aGenRandom, "gen-random" , 256, "@" },
|
||||||
|
{ aGPGConfList, "gpgconf-list", 256, "@" },
|
||||||
|
|
||||||
{ 301, NULL, 0, N_("@\nOptions:\n ") },
|
{ 301, NULL, 0, N_("@\nOptions:\n ") },
|
||||||
|
|
||||||
@ -414,6 +419,7 @@ static ARGPARSE_OPTS opts[] = {
|
|||||||
{ oVerbose, "verbose", 0, N_("verbose") },
|
{ oVerbose, "verbose", 0, N_("verbose") },
|
||||||
{ oQuiet, "quiet", 0, "@" },
|
{ oQuiet, "quiet", 0, "@" },
|
||||||
{ oNoTTY, "no-tty", 0, "@" },
|
{ oNoTTY, "no-tty", 0, "@" },
|
||||||
|
{ oLogFile, "log-file" ,2, "@" },
|
||||||
{ oForceV3Sigs, "force-v3-sigs", 0, "@" },
|
{ oForceV3Sigs, "force-v3-sigs", 0, "@" },
|
||||||
{ oNoForceV3Sigs, "no-force-v3-sigs", 0, "@" },
|
{ oNoForceV3Sigs, "no-force-v3-sigs", 0, "@" },
|
||||||
{ oForceV4Certs, "force-v4-certs", 0, "@" },
|
{ oForceV4Certs, "force-v4-certs", 0, "@" },
|
||||||
@ -445,6 +451,7 @@ static ARGPARSE_OPTS opts[] = {
|
|||||||
{ oOptions, "options" , 2, "@"},
|
{ oOptions, "options" , 2, "@"},
|
||||||
|
|
||||||
{ oDebug, "debug" ,4|16, "@"},
|
{ oDebug, "debug" ,4|16, "@"},
|
||||||
|
{ oDebugLevel, "debug-level" ,2, "@"},
|
||||||
{ oDebugAll, "debug-all" ,0, "@"},
|
{ oDebugAll, "debug-all" ,0, "@"},
|
||||||
{ oStatusFD, "status-fd" ,1, "@" },
|
{ oStatusFD, "status-fd" ,1, "@" },
|
||||||
#ifdef __riscos__
|
#ifdef __riscos__
|
||||||
@ -835,9 +842,32 @@ add_to_strlist2 ( STRLIST *list, const char *string, int is_utf8)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Setup the debugging. With a LEVEL of NULL only the active debug
|
||||||
|
flags are propagated to the subsystems. With LEVEL set, a specific
|
||||||
|
set of debug flags is set; thus overriding all flags already
|
||||||
|
set. */
|
||||||
static void
|
static void
|
||||||
set_debug(void)
|
set_debug (const char *level)
|
||||||
{
|
{
|
||||||
|
if (!level)
|
||||||
|
;
|
||||||
|
else if (!strcmp (level, "none"))
|
||||||
|
opt.debug = 0;
|
||||||
|
else if (!strcmp (level, "basic"))
|
||||||
|
opt.debug = DBG_MEMSTAT_VALUE;
|
||||||
|
else if (!strcmp (level, "advanced"))
|
||||||
|
opt.debug = DBG_MEMSTAT_VALUE|DBG_TRUST_VALUE|DBG_EXTPROG_VALUE;
|
||||||
|
else if (!strcmp (level, "expert"))
|
||||||
|
opt.debug = (DBG_MEMSTAT_VALUE|DBG_TRUST_VALUE|DBG_EXTPROG_VALUE
|
||||||
|
|DBG_CACHE_VALUE|DBG_FILTER_VALUE|DBG_PACKET_VALUE);
|
||||||
|
else if (!strcmp (level, "guru"))
|
||||||
|
opt.debug = ~0;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
log_error (_("invalid debug-level `%s' given\n"), level);
|
||||||
|
g10_exit (2);
|
||||||
|
}
|
||||||
|
|
||||||
if (opt.debug & DBG_MEMORY_VALUE )
|
if (opt.debug & DBG_MEMORY_VALUE )
|
||||||
memory_debug_mode = 1;
|
memory_debug_mode = 1;
|
||||||
if (opt.debug & DBG_MEMSTAT_VALUE )
|
if (opt.debug & DBG_MEMSTAT_VALUE )
|
||||||
@ -1141,14 +1171,17 @@ main( int argc, char **argv )
|
|||||||
int detached_sig = 0;
|
int detached_sig = 0;
|
||||||
FILE *configfp = NULL;
|
FILE *configfp = NULL;
|
||||||
char *configname = NULL;
|
char *configname = NULL;
|
||||||
|
const char *config_filename = NULL;
|
||||||
unsigned configlineno;
|
unsigned configlineno;
|
||||||
int parse_debug = 0;
|
int parse_debug = 0;
|
||||||
int default_config = 1;
|
int default_config = 1;
|
||||||
int default_keyring = 1;
|
int default_keyring = 1;
|
||||||
int greeting = 0;
|
int greeting = 0;
|
||||||
int nogreeting = 0;
|
int nogreeting = 0;
|
||||||
|
char *logfile = NULL;
|
||||||
int use_random_seed = 1;
|
int use_random_seed = 1;
|
||||||
enum cmd_and_opt_values cmd = 0;
|
enum cmd_and_opt_values cmd = 0;
|
||||||
|
const char *debug_level = NULL;
|
||||||
const char *trustdb_name = NULL;
|
const char *trustdb_name = NULL;
|
||||||
char *def_cipher_string = NULL;
|
char *def_cipher_string = NULL;
|
||||||
char *def_digest_string = NULL;
|
char *def_digest_string = NULL;
|
||||||
@ -1294,22 +1327,34 @@ main( int argc, char **argv )
|
|||||||
|
|
||||||
set_native_charset (NULL); /* Try to auto set the character set */
|
set_native_charset (NULL); /* Try to auto set the character set */
|
||||||
|
|
||||||
|
/* Try for a version specific config file first */
|
||||||
if( default_config )
|
if( default_config )
|
||||||
{
|
{
|
||||||
/* Try for a version specific config file first but strip our
|
char *name = xstrdup ("gpg" EXTSEP_S "conf-" SAFE_VERSION);
|
||||||
usual cvs suffix. That suffix indicates that it is not yet
|
char *ver = name + strlen("gpg" EXTSEP_S "conf-");
|
||||||
the given version but we already want this config file. */
|
|
||||||
configname = make_filename(opt.homedir,
|
|
||||||
"gpg" EXTSEP_S "conf-" SAFE_VERSION, NULL );
|
|
||||||
if (!strcmp (configname + strlen (configname) - 4, "-cvs"))
|
|
||||||
configname[strlen (configname)-4] = 0;
|
|
||||||
|
|
||||||
if(access(configname,R_OK))
|
do
|
||||||
{
|
{
|
||||||
|
if(configname)
|
||||||
|
{
|
||||||
|
char *tok;
|
||||||
|
|
||||||
xfree (configname);
|
xfree (configname);
|
||||||
configname = make_filename(opt.homedir,
|
configname=NULL;
|
||||||
"gpg" EXTSEP_S "conf", NULL );
|
|
||||||
|
if((tok=strrchr (ver,SAFE_VERSION_DASH)))
|
||||||
|
*tok='\0';
|
||||||
|
else if((tok=strrchr (ver,SAFE_VERSION_DOT)))
|
||||||
|
*tok='\0';
|
||||||
|
else
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
configname = make_filename (opt.homedir, name, NULL);
|
||||||
|
}
|
||||||
|
while ( access(configname,R_OK) );
|
||||||
|
xfree(name);
|
||||||
|
|
||||||
if (!access (configname, R_OK))
|
if (!access (configname, R_OK))
|
||||||
{ /* Print a warning when both config files are present. */
|
{ /* Print a warning when both config files are present. */
|
||||||
char *p = make_filename(opt.homedir, "options", NULL );
|
char *p = make_filename(opt.homedir, "options", NULL );
|
||||||
@ -1436,6 +1481,10 @@ main( int argc, char **argv )
|
|||||||
case aCardStatus: set_cmd (&cmd, aCardStatus); break;
|
case aCardStatus: set_cmd (&cmd, aCardStatus); break;
|
||||||
case aCardEdit: set_cmd (&cmd, aCardEdit); break;
|
case aCardEdit: set_cmd (&cmd, aCardEdit); break;
|
||||||
case aChangePIN: set_cmd (&cmd, aChangePIN); break;
|
case aChangePIN: set_cmd (&cmd, aChangePIN); break;
|
||||||
|
case aGPGConfList:
|
||||||
|
set_cmd (&cmd, aGPGConfList);
|
||||||
|
nogreeting = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
case oArmor: opt.armor = 1; opt.no_armor=0; break;
|
case oArmor: opt.armor = 1; opt.no_armor=0; break;
|
||||||
case oOutput: opt.outfile = pargs.r.ret_str; break;
|
case oOutput: opt.outfile = pargs.r.ret_str; break;
|
||||||
@ -1446,6 +1495,8 @@ main( int argc, char **argv )
|
|||||||
case oVerbose: g10_opt_verbose++;
|
case oVerbose: g10_opt_verbose++;
|
||||||
opt.verbose++; opt.list_sigs=1; break;
|
opt.verbose++; opt.list_sigs=1; break;
|
||||||
|
|
||||||
|
case oLogFile: logfile = pargs.r.ret_str; break;
|
||||||
|
|
||||||
case oBatch: opt.batch = 1; nogreeting = 1; break;
|
case oBatch: opt.batch = 1; nogreeting = 1; break;
|
||||||
case oUseAgent:
|
case oUseAgent:
|
||||||
#ifndef __riscos__
|
#ifndef __riscos__
|
||||||
@ -1467,6 +1518,7 @@ main( int argc, char **argv )
|
|||||||
case oShowKeyring: opt.list_options|=LIST_SHOW_KEYRING; break;
|
case oShowKeyring: opt.list_options|=LIST_SHOW_KEYRING; break;
|
||||||
case oDebug: opt.debug |= pargs.r.ret_ulong; break;
|
case oDebug: opt.debug |= pargs.r.ret_ulong; break;
|
||||||
case oDebugAll: opt.debug = ~0; break;
|
case oDebugAll: opt.debug = ~0; break;
|
||||||
|
case oDebugLevel: debug_level = pargs.r.ret_str; break;
|
||||||
case oStatusFD:
|
case oStatusFD:
|
||||||
set_status_fd( iobuf_translate_file_handle (pargs.r.ret_int, 1) );
|
set_status_fd( iobuf_translate_file_handle (pargs.r.ret_int, 1) );
|
||||||
break;
|
break;
|
||||||
@ -1962,7 +2014,9 @@ main( int argc, char **argv )
|
|||||||
if( configfp ) {
|
if( configfp ) {
|
||||||
fclose( configfp );
|
fclose( configfp );
|
||||||
configfp = NULL;
|
configfp = NULL;
|
||||||
xfree (configname); configname = NULL;
|
config_filename = configname; /* Keep a copy of the config
|
||||||
|
file name. */
|
||||||
|
configname = NULL;
|
||||||
goto next_pass;
|
goto next_pass;
|
||||||
}
|
}
|
||||||
xfree ( configname ); configname = NULL;
|
xfree ( configname ); configname = NULL;
|
||||||
@ -1984,6 +2038,15 @@ main( int argc, char **argv )
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* FIXME: We should use the lggging to a file only in server mode;
|
||||||
|
however we have not yet implemetyed that thus we try to get
|
||||||
|
away with --batch as indication for logging to file required. */
|
||||||
|
if (logfile && opt.batch)
|
||||||
|
{
|
||||||
|
log_set_file (logfile);
|
||||||
|
log_set_prefix (NULL, 1|2|4);
|
||||||
|
}
|
||||||
|
|
||||||
if (opt.verbose > 2)
|
if (opt.verbose > 2)
|
||||||
log_info ("using character set `%s'\n", get_native_charset ());
|
log_info ("using character set `%s'\n", get_native_charset ());
|
||||||
|
|
||||||
@ -2015,7 +2078,7 @@ main( int argc, char **argv )
|
|||||||
tty_batchmode( 1 );
|
tty_batchmode( 1 );
|
||||||
|
|
||||||
gcry_control (GCRYCTL_RESUME_SECMEM_WARN);
|
gcry_control (GCRYCTL_RESUME_SECMEM_WARN);
|
||||||
set_debug();
|
set_debug (debug_level);
|
||||||
|
|
||||||
/* Do these after the switch(), so they can override settings. */
|
/* Do these after the switch(), so they can override settings. */
|
||||||
if(PGP2)
|
if(PGP2)
|
||||||
@ -2309,7 +2372,7 @@ main( int argc, char **argv )
|
|||||||
avoid adding the secret keyring for a couple of commands to
|
avoid adding the secret keyring for a couple of commands to
|
||||||
avoid unneeded access in case the secrings are stored on a
|
avoid unneeded access in case the secrings are stored on a
|
||||||
floppy */
|
floppy */
|
||||||
if( cmd != aDeArmor && cmd != aEnArmor )
|
if( cmd != aDeArmor && cmd != aEnArmor && cmd != aGPGConfList )
|
||||||
{
|
{
|
||||||
if (cmd != aCheckKeys && cmd != aListSigs && cmd != aListKeys
|
if (cmd != aCheckKeys && cmd != aListSigs && cmd != aListKeys
|
||||||
&& cmd != aVerify && cmd != aSym)
|
&& cmd != aVerify && cmd != aSym)
|
||||||
@ -2344,6 +2407,7 @@ main( int argc, char **argv )
|
|||||||
case aCardStatus:
|
case aCardStatus:
|
||||||
case aCardEdit:
|
case aCardEdit:
|
||||||
case aChangePIN:
|
case aChangePIN:
|
||||||
|
case aGPGConfList:
|
||||||
break;
|
break;
|
||||||
case aExportOwnerTrust: rc = setup_trustdb( 0, trustdb_name ); break;
|
case aExportOwnerTrust: rc = setup_trustdb( 0, trustdb_name ); break;
|
||||||
case aListTrustDB: rc = setup_trustdb( argc? 1:0, trustdb_name ); break;
|
case aListTrustDB: rc = setup_trustdb( argc? 1:0, trustdb_name ); break;
|
||||||
@ -2869,6 +2933,42 @@ main( int argc, char **argv )
|
|||||||
wrong_args ("--change-pin [no]");
|
wrong_args ("--change-pin [no]");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case aGPGConfList:
|
||||||
|
{ /* List options and default values in the GPG Conf format. */
|
||||||
|
|
||||||
|
/* The following list is taken from gnupg/tools/gpgconf-comp.c. */
|
||||||
|
/* Option flags. YOU MUST NOT CHANGE THE NUMBERS OF THE EXISTING
|
||||||
|
FLAGS, AS THEY ARE PART OF THE EXTERNAL INTERFACE. */
|
||||||
|
#define GC_OPT_FLAG_NONE 0UL
|
||||||
|
/* The RUNTIME flag for an option indicates that the option can be
|
||||||
|
changed at runtime. */
|
||||||
|
#define GC_OPT_FLAG_RUNTIME (1UL << 3)
|
||||||
|
/* The DEFAULT flag for an option indicates that the option has a
|
||||||
|
default value. */
|
||||||
|
#define GC_OPT_FLAG_DEFAULT (1UL << 4)
|
||||||
|
/* The DEF_DESC flag for an option indicates that the option has a
|
||||||
|
default, which is described by the value of the default field. */
|
||||||
|
#define GC_OPT_FLAG_DEF_DESC (1UL << 5)
|
||||||
|
/* The NO_ARG_DESC flag for an option indicates that the argument has
|
||||||
|
a default, which is described by the value of the ARGDEF field. */
|
||||||
|
#define GC_OPT_FLAG_NO_ARG_DESC (1UL << 6)
|
||||||
|
|
||||||
|
printf ("gpgconf-gpg.conf:%lu:\"%s\n",
|
||||||
|
GC_OPT_FLAG_DEFAULT,
|
||||||
|
config_filename?config_filename:"/dev/null");
|
||||||
|
|
||||||
|
printf ("verbose:%lu:\n"
|
||||||
|
"quiet:%lu:\n"
|
||||||
|
"debug-level:%lu:\"none:\n"
|
||||||
|
"log-file:%lu:\n",
|
||||||
|
GC_OPT_FLAG_NONE,
|
||||||
|
GC_OPT_FLAG_NONE,
|
||||||
|
GC_OPT_FLAG_DEFAULT,
|
||||||
|
GC_OPT_FLAG_NONE );
|
||||||
|
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case aListPackets:
|
case aListPackets:
|
||||||
opt.list_packets=2;
|
opt.list_packets=2;
|
||||||
default:
|
default:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user