-const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.47 2002/05/12 21:36:29 jongfoster Exp $";
+const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.48.2.7 2006/02/02 17:29:16 david__schmidt Exp $";
/*********************************************************************
*
- * File : $Source: /cvsroot/ijbswa/current/loadcfg.c,v $
+ * File : $Source: /cvsroot/ijbswa/current/Attic/loadcfg.c,v $
*
* Purpose : Loads settings from the configuration file into
* global variables. This file contains both the
*
* Revisions :
* $Log: loadcfg.c,v $
+ * Revision 1.48.2.7 2006/02/02 17:29:16 david__schmidt
+ * Don't forget to malloc space for the null terminator...
+ *
+ * Revision 1.48.2.6 2006/01/29 23:10:56 david__schmidt
+ * Multiple filter file support
+ *
+ * Revision 1.48.2.5 2003/05/08 15:17:25 oes
+ * Closed two memory leaks; hopefully the last remaining ones
+ * (in the main execution paths, anyway).
+ *
+ * Revision 1.48.2.4 2003/04/11 12:06:14 oes
+ * Addressed bug #719435
+ * - Extraneous filterfile directives now logged as errors
+ * - This and unrecnonised directives now really obvious on status page
+ *
+ * Revision 1.48.2.3 2003/03/11 11:53:59 oes
+ * Cosmetic: Renamed cryptic variable
+ *
+ * Revision 1.48.2.2 2002/11/12 16:28:20 oes
+ * Move unrelated variable declaration out of #ifdef FEATURE_ACL; fixes bug #636655
+ *
+ * Revision 1.48.2.1 2002/08/21 17:58:05 oes
+ * Temp kludge to let user and default action file be edited through win32 GUI (FR 592080)
+ *
+ * Revision 1.48 2002/05/14 21:30:38 oes
+ * savearg now uses own linking code instead of (now special-cased) add_help_link
+ *
* Revision 1.47 2002/05/12 21:36:29 jongfoster
* Correcting function comments
*
* - savearg now embeds option names in help links
*
* Revision 1.45 2002/04/24 02:11:54 oes
- * Jon's multiple AF patch: Allow up to MAX_ACTION_FILES actionsfile options
+ * Jon's multiple AF patch: Allow up to MAX_AF_FILES actionsfile options
*
* Revision 1.44 2002/04/08 20:37:13 swa
* fixed JB spelling
#define ijb_tolower(__X) tolower((int)(unsigned char)(__X))
#ifdef FEATURE_TOGGLE
-/* by haroon - indicates if ijb is enabled */
-int g_bToggleIJB = 1; /* Privoxy is enabled by default. */
+/* Privoxy is enabled by default. */
+int global_toggle_state = 1;
#endif /* def FEATURE_TOGGLE */
/* The filename of the configfile */
{
struct configuration_spec * config = (struct configuration_spec *)data;
struct forward_spec *cur_fwd = config->forward;
+ int i;
+
#ifdef FEATURE_ACL
struct access_control_list *cur_acl = config->acl;
- int i;
while (cur_acl != NULL)
{
freez(config->haddr);
freez(config->logfile);
- for (i = 0; i < MAX_ACTION_FILES; i++)
+ for (i = 0; i < MAX_AF_FILES; i++)
{
freez(config->actions_file_short[i]);
freez(config->actions_file[i]);
freez(config->jarfile);
#endif /* def FEATURE_COOKIE_JAR */
- freez(config->re_filterfile);
+#ifdef FEATURE_TRUST
+ freez(config->trustfile);
+ list_remove_all(config->trust_info);
+#endif /* def FEATURE_TRUST */
+
+ for (i = 0; i < MAX_AF_FILES; i++)
+ {
+ freez(config->re_filterfile[i]);
+ }
+ freez(config);
}
log_error(LOG_LEVEL_INFO, "loading configuration file '%s':", configfile);
#ifdef FEATURE_TOGGLE
- g_bToggleIJB = 1;
+ global_toggle_state = 1;
#endif /* def FEATURE_TOGGLE */
fs->f = config = (struct configuration_spec *)zalloc(sizeof(*config));
* *************************************************************************/
case hash_actions_file :
i = 0;
- while ((i < MAX_ACTION_FILES) && (NULL != config->actions_file[i]))
+ while ((i < MAX_AF_FILES) && (NULL != config->actions_file[i]))
{
i++;
}
- if (i >= MAX_ACTION_FILES)
+ if (i >= MAX_AF_FILES)
{
log_error(LOG_LEVEL_FATAL, "Too many 'actionsfile' directives in config file - limit is %d.\n"
- "(You can increase this limit by changing MAX_ACTION_FILES in project.h and recompiling).",
- MAX_ACTION_FILES);
+ "(You can increase this limit by changing MAX_AF_FILES in project.h and recompiling).",
+ MAX_AF_FILES);
}
config->actions_file_short[i] = strdup(arg);
p = malloc(strlen(arg) + sizeof(".action"));
continue;
#endif /* def FEATURE_CGI_EDIT_ACTIONS */
+/* *************************************************************************
+ * filterfile file-name
+ * In confdir by default.
+ * *************************************************************************/
+ case hash_filterfile :
+ i = 0;
+ while ((i < MAX_AF_FILES) && (NULL != config->re_filterfile[i]))
+ {
+ i++;
+ }
+
+ if (i >= MAX_AF_FILES)
+ {
+ log_error(LOG_LEVEL_FATAL, "Too many 'filterfile' directives in config file - limit is %d.\n"
+ "(You can increase this limit by changing MAX_AF_FILES in project.h and recompiling).",
+ MAX_AF_FILES);
+ }
+ config->re_filterfile_short[i] = strdup(arg);
+ p = malloc(strlen(arg) + 1);
+ if (p == NULL)
+ {
+ log_error(LOG_LEVEL_FATAL, "Out of memory");
+ }
+ strcpy(p, arg);
+ config->re_filterfile[i] = make_path(config->confdir, p);
+ free(p);
+ continue;
+
/* *************************************************************************
* forward url-pattern (.|http-proxy-host[:port])
* *************************************************************************/
config->proxy_info_url = strdup(arg);
continue;
-/* *************************************************************************
- * re_filterfile file-name
- * In confdir by default.
- * *************************************************************************/
- case hash_filterfile :
- freez(config->re_filterfile);
- config->re_filterfile = make_path(config->confdir, arg);
- continue;
-
/* *************************************************************************
* single-threaded
* *************************************************************************/
* *************************************************************************/
#ifdef FEATURE_TOGGLE
case hash_toggle :
- g_bToggleIJB = atoi(arg);
+ global_toggle_state = atoi(arg);
continue;
#endif /* def FEATURE_TOGGLE */
* error. To change back to an error, just change log level
* to LOG_LEVEL_FATAL.
*/
- log_error(LOG_LEVEL_ERROR, "Unrecognized directive '%s' (%luul) in line %lu in "
- "configuration file (%s).", buf, hash_string(cmd), linenum, configfile);
- string_append(&config->proxy_args, "<br>\nWARNING: unrecognized directive : ");
- string_append(&config->proxy_args, buf);
- string_append(&config->proxy_args, "<br><br>\n");
+ log_error(LOG_LEVEL_ERROR, "Ignoring unrecognized directive '%s' (%luul) in line %lu "
+ "in configuration file (%s).", buf, hash_string(cmd), linenum, configfile);
+ string_append(&config->proxy_args,
+ " <b><font color=\"red\">WARNING: unrecognized directive, ignored</font></b>");
continue;
/* *************************************************************************/
/* FIXME: this is a kludge for win32 */
#if defined(_WIN32) && !defined (_WIN_CONSOLE)
- g_actions_file = config->actions_file[0]; /* FIXME only works for first action file */
+ g_default_actions_file = config->actions_file[1]; /* FIXME Hope this is default.action */
+ g_user_actions_file = config->actions_file[2]; /* FIXME Hope this is user.action */
g_re_filterfile = config->re_filterfile;
#ifdef FEATURE_TRUST
* Add config option name embedded in
* link to it's section in the user-manual
*/
- buf = strdup("<a href=\"");
+ buf = strdup("\n<br><a href=\"");
string_append(&buf, config->usermanual);
string_append(&buf, CONFIG_HELP_PREFIX);
string_join (&buf, string_toupper(command));
}
}
- string_append(&buf, "<br>\n");
-
string_join(&config->proxy_args, buf);
}