X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=loadcfg.c;h=a2858b8238d421fd6442202218bdd526e552766d;hp=e7dccc8b7aabb0d1312f950065783bba9f27e818;hb=299a43a9012f4c361ff92b302e57990b3016bb64;hpb=4964be92d509d057d6eb1ccd57a21e9c7478db2c diff --git a/loadcfg.c b/loadcfg.c index e7dccc8b..a2858b82 100644 --- a/loadcfg.c +++ b/loadcfg.c @@ -1,4 +1,5 @@ -const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.10 2001/06/03 11:03:48 oes Exp $"; +/* vim:ts=3: */ +const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.13 2001/06/05 22:33:54 jongfoster Exp $"; /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/loadcfg.c,v $ @@ -35,6 +36,22 @@ const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.10 2001/06/03 11:03:48 oes Exp $" * * Revisions : * $Log: loadcfg.c,v $ + * Revision 1.13 2001/06/05 22:33:54 jongfoster + * + * Fixed minor memory leak. + * Also now uses make_path to prepend the pathnames. + * + * Revision 1.12 2001/06/05 20:04:09 jongfoster + * Now uses _snprintf() in place of snprintf() under Win32. + * + * Revision 1.11 2001/06/04 18:31:58 swa + * files are now prefixed with either `confdir' or `logdir'. + * `make redhat-dist' replaces both entries confdir and logdir + * with redhat values + * + * Revision 1.10 2001/06/03 19:11:54 oes + * introduced confdir option + * * Revision 1.10 2001/06/03 11:03:48 oes * Makefile/in * @@ -224,6 +241,9 @@ const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.10 2001/06/03 11:03:48 oes Exp $" # include "w32log.h" # endif /* ndef _WIN_CONSOLE */ +/* VC++ has "_snprintf", not "snprintf" */ +#define snprintf _snprintf + #else /* ifndef _WIN32 */ # include @@ -293,6 +313,7 @@ static struct file_list *current_configfile = NULL; #define hash_actions_file 3825730796ul /* FIXME "permissionsfile" */ #define hash_debug 78263ul #define hash_confdir 1978389lu +#define hash_logdir 422889lu #define hash_forwardfile 1268669141ul #define hash_jarfile 2046641ul #define hash_listen_address 1255650842ul @@ -317,7 +338,6 @@ static struct file_list *current_configfile = NULL; #define hash_show_on_task_bar 215410365ul - /********************************************************************* * * Function : unload_configfile @@ -342,6 +362,9 @@ void unload_configfile (void * data) } #endif /* def JAR_FILES */ + freez((char *)config->confdir); + freez((char *)config->logdir); + freez((char *)config->haddr); freez((char *)config->logfile); @@ -387,7 +410,6 @@ struct configuration_spec * load_config(void) FILE *configfp = NULL; struct configuration_spec * config = NULL; struct client_state * fake_csp; - struct file_list *fs; if (!check_file_changed(current_configfile, configfile, &fs)) @@ -494,7 +516,7 @@ struct configuration_spec * load_config(void) #ifdef TRUST_FILES case hash_trustfile : freez((char *)config->trustfile); - config->trustfile = strdup(arg); + config->trustfile = make_path(config->confdir, arg); continue; case hash_trust_info_url : @@ -507,27 +529,33 @@ struct configuration_spec * load_config(void) continue; case hash_confdir : + freez((char *)config->confdir); config->confdir = strdup(arg); continue; + case hash_logdir : + freez((char *)config->logdir); + config->logdir = strdup(arg); + continue; + case hash_single_threaded : config->multi_threaded = 0; continue; case hash_actions_file : freez((char *)config->actions_file); - config->actions_file = strdup(arg); + config->actions_file = make_path(config->confdir, arg); continue; case hash_logfile : freez((char *)config->logfile); - config->logfile = strdup(arg); + config->logfile = make_path(config->logdir, arg); continue; #ifdef JAR_FILES case hash_jarfile : freez((char *)config->jarfile); - config->jarfile = strdup(arg); + config->jarfile = make_path(config->logdir, arg); continue; #endif /* def JAR_FILES */ @@ -538,20 +566,20 @@ struct configuration_spec * load_config(void) case hash_forwardfile : freez((char *)config->forwardfile); - config->forwardfile = strdup(arg); + config->forwardfile = make_path(config->confdir, arg); continue; #ifdef ACL_FILES case hash_aclfile : freez((char *)config->aclfile); - config->aclfile = strdup(arg); + config->aclfile = make_path(config->confdir, arg); continue; #endif /* def ACL_FILES */ #ifdef PCRS case hash_re_filterfile : freez((char *)config->re_filterfile); - config->re_filterfile = strdup(arg); + config->re_filterfile = make_path(config->confdir, arg); continue; #endif /* def PCRS */