mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +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>
|
||||
|
||||
* configure.ac (NEED_GPG_ERROR_VERSION): Set to 0.7.
|
||||
|
@ -258,8 +258,12 @@ AH_BOTTOM([
|
||||
#endif
|
||||
|
||||
/* 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_DOT '.'
|
||||
#define SAFE_VERSION_DASH '-'
|
||||
|
||||
/* For some systems (DOS currently), we hardcode the path here. For
|
||||
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>
|
||||
|
||||
* call-agent.c (start_agent): Ignore an empty GPG_AGENT_INFO.
|
||||
|
132
g10/g10.c
132
g10/g10.c
@ -1,5 +1,6 @@
|
||||
/* 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.
|
||||
*
|
||||
@ -74,6 +75,7 @@ enum cmd_and_opt_values { aNull = 0,
|
||||
oCompress = 'z',
|
||||
oSetNotation = 'N',
|
||||
oBatch = 500,
|
||||
aGPGConfList,
|
||||
oSigNotation,
|
||||
oCertNotation,
|
||||
oShowNotation,
|
||||
@ -153,6 +155,7 @@ enum cmd_and_opt_values { aNull = 0,
|
||||
oNoDefRecipient,
|
||||
oOptions,
|
||||
oDebug,
|
||||
oDebugLevel,
|
||||
oDebugAll,
|
||||
oStatusFD,
|
||||
#ifdef __riscos__
|
||||
@ -260,6 +263,7 @@ enum cmd_and_opt_values { aNull = 0,
|
||||
oEncryptTo,
|
||||
oHiddenEncryptTo,
|
||||
oNoEncryptTo,
|
||||
oLogFile,
|
||||
oLoggerFD,
|
||||
#ifdef __riscos__
|
||||
oLoggerFile,
|
||||
@ -383,6 +387,7 @@ static ARGPARSE_OPTS opts[] = {
|
||||
{ aPrintMD, "print-md" , 256, N_("|algo [files]|print message digests")},
|
||||
{ aPrimegen, "gen-prime" , 256, "@" },
|
||||
{ aGenRandom, "gen-random" , 256, "@" },
|
||||
{ aGPGConfList, "gpgconf-list", 256, "@" },
|
||||
|
||||
{ 301, NULL, 0, N_("@\nOptions:\n ") },
|
||||
|
||||
@ -414,6 +419,7 @@ static ARGPARSE_OPTS opts[] = {
|
||||
{ oVerbose, "verbose", 0, N_("verbose") },
|
||||
{ oQuiet, "quiet", 0, "@" },
|
||||
{ oNoTTY, "no-tty", 0, "@" },
|
||||
{ oLogFile, "log-file" ,2, "@" },
|
||||
{ oForceV3Sigs, "force-v3-sigs", 0, "@" },
|
||||
{ oNoForceV3Sigs, "no-force-v3-sigs", 0, "@" },
|
||||
{ oForceV4Certs, "force-v4-certs", 0, "@" },
|
||||
@ -445,6 +451,7 @@ static ARGPARSE_OPTS opts[] = {
|
||||
{ oOptions, "options" , 2, "@"},
|
||||
|
||||
{ oDebug, "debug" ,4|16, "@"},
|
||||
{ oDebugLevel, "debug-level" ,2, "@"},
|
||||
{ oDebugAll, "debug-all" ,0, "@"},
|
||||
{ oStatusFD, "status-fd" ,1, "@" },
|
||||
#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
|
||||
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 )
|
||||
memory_debug_mode = 1;
|
||||
if (opt.debug & DBG_MEMSTAT_VALUE )
|
||||
@ -1141,14 +1171,17 @@ main( int argc, char **argv )
|
||||
int detached_sig = 0;
|
||||
FILE *configfp = NULL;
|
||||
char *configname = NULL;
|
||||
const char *config_filename = NULL;
|
||||
unsigned configlineno;
|
||||
int parse_debug = 0;
|
||||
int default_config = 1;
|
||||
int default_keyring = 1;
|
||||
int greeting = 0;
|
||||
int nogreeting = 0;
|
||||
char *logfile = NULL;
|
||||
int use_random_seed = 1;
|
||||
enum cmd_and_opt_values cmd = 0;
|
||||
const char *debug_level = NULL;
|
||||
const char *trustdb_name = NULL;
|
||||
char *def_cipher_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 */
|
||||
|
||||
/* Try for a version specific config file first */
|
||||
if( default_config )
|
||||
{
|
||||
/* Try for a version specific config file first but strip our
|
||||
usual cvs suffix. That suffix indicates that it is not yet
|
||||
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;
|
||||
char *name = xstrdup ("gpg" EXTSEP_S "conf-" SAFE_VERSION);
|
||||
char *ver = name + strlen("gpg" EXTSEP_S "conf-");
|
||||
|
||||
if(access(configname,R_OK))
|
||||
do
|
||||
{
|
||||
xfree (configname);
|
||||
configname = make_filename(opt.homedir,
|
||||
"gpg" EXTSEP_S "conf", NULL );
|
||||
if(configname)
|
||||
{
|
||||
char *tok;
|
||||
|
||||
xfree (configname);
|
||||
configname=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))
|
||||
{ /* Print a warning when both config files are present. */
|
||||
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 aCardEdit: set_cmd (&cmd, aCardEdit); 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 oOutput: opt.outfile = pargs.r.ret_str; break;
|
||||
@ -1446,6 +1495,8 @@ main( int argc, char **argv )
|
||||
case oVerbose: g10_opt_verbose++;
|
||||
opt.verbose++; opt.list_sigs=1; break;
|
||||
|
||||
case oLogFile: logfile = pargs.r.ret_str; break;
|
||||
|
||||
case oBatch: opt.batch = 1; nogreeting = 1; break;
|
||||
case oUseAgent:
|
||||
#ifndef __riscos__
|
||||
@ -1467,6 +1518,7 @@ main( int argc, char **argv )
|
||||
case oShowKeyring: opt.list_options|=LIST_SHOW_KEYRING; break;
|
||||
case oDebug: opt.debug |= pargs.r.ret_ulong; break;
|
||||
case oDebugAll: opt.debug = ~0; break;
|
||||
case oDebugLevel: debug_level = pargs.r.ret_str; break;
|
||||
case oStatusFD:
|
||||
set_status_fd( iobuf_translate_file_handle (pargs.r.ret_int, 1) );
|
||||
break;
|
||||
@ -1962,7 +2014,9 @@ main( int argc, char **argv )
|
||||
if( configfp ) {
|
||||
fclose( configfp );
|
||||
configfp = NULL;
|
||||
xfree (configname); configname = NULL;
|
||||
config_filename = configname; /* Keep a copy of the config
|
||||
file name. */
|
||||
configname = NULL;
|
||||
goto next_pass;
|
||||
}
|
||||
xfree ( configname ); configname = NULL;
|
||||
@ -1984,6 +2038,15 @@ main( int argc, char **argv )
|
||||
}
|
||||
#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)
|
||||
log_info ("using character set `%s'\n", get_native_charset ());
|
||||
|
||||
@ -2015,7 +2078,7 @@ main( int argc, char **argv )
|
||||
tty_batchmode( 1 );
|
||||
|
||||
gcry_control (GCRYCTL_RESUME_SECMEM_WARN);
|
||||
set_debug();
|
||||
set_debug (debug_level);
|
||||
|
||||
/* Do these after the switch(), so they can override settings. */
|
||||
if(PGP2)
|
||||
@ -2309,7 +2372,7 @@ main( int argc, char **argv )
|
||||
avoid adding the secret keyring for a couple of commands to
|
||||
avoid unneeded access in case the secrings are stored on a
|
||||
floppy */
|
||||
if( cmd != aDeArmor && cmd != aEnArmor )
|
||||
if( cmd != aDeArmor && cmd != aEnArmor && cmd != aGPGConfList )
|
||||
{
|
||||
if (cmd != aCheckKeys && cmd != aListSigs && cmd != aListKeys
|
||||
&& cmd != aVerify && cmd != aSym)
|
||||
@ -2344,6 +2407,7 @@ main( int argc, char **argv )
|
||||
case aCardStatus:
|
||||
case aCardEdit:
|
||||
case aChangePIN:
|
||||
case aGPGConfList:
|
||||
break;
|
||||
case aExportOwnerTrust: rc = setup_trustdb( 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]");
|
||||
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:
|
||||
opt.list_packets=2;
|
||||
default:
|
||||
|
Loading…
x
Reference in New Issue
Block a user