Updating
[privoxy.git] / loadcfg.c
index 54ea6d6..831e976 100644 (file)
--- a/loadcfg.c
+++ b/loadcfg.c
@@ -1,4 +1,4 @@
-const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.48.2.1 2002/08/21 17:58:05 oes Exp $";
+const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.48.2.4 2003/04/11 12:06:14 oes Exp $";
 /*********************************************************************
  *
  * File        :  $Source: /cvsroot/ijbswa/current/Attic/loadcfg.c,v $
@@ -35,6 +35,17 @@ const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.48.2.1 2002/08/21 17:58:05 oes Ex
  *
  * Revisions   :
  *    $Log: loadcfg.c,v $
+ *    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)
  *
@@ -372,8 +383,8 @@ const char loadcfg_h_rcs[] = LOADCFG_H_VERSION;
 #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 */
@@ -510,8 +521,13 @@ void unload_configfile (void * data)
    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 */
 
+   freez(config->re_filterfile);
+   freez(config);
 }
 
 
@@ -575,7 +591,7 @@ struct configuration_spec * load_config(void)
    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));
@@ -835,6 +851,22 @@ struct configuration_spec * load_config(void)
             continue;
 #endif /* def FEATURE_CGI_EDIT_ACTIONS */
 
+/* *************************************************************************
+ * filterfile file-name
+ * In confdir by default.
+ * *************************************************************************/
+         case hash_filterfile :
+            if(config->re_filterfile)
+            {
+               log_error(LOG_LEVEL_ERROR, "Ignoring extraneous directive 'filterfile %s' "
+                  "in line %lu in configuration file (%s).", arg, linenum, configfile);
+               string_append(&config->proxy_args, 
+                  " <b><font color=\"red\">WARNING: extraneous directive, ignored</font></b>");
+               continue;
+            }
+            config->re_filterfile = make_path(config->confdir, arg);
+            continue;
+
 /* *************************************************************************
  * forward url-pattern (.|http-proxy-host[:port])
  * *************************************************************************/
@@ -1178,15 +1210,6 @@ struct configuration_spec * load_config(void)
             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
  * *************************************************************************/
@@ -1199,7 +1222,7 @@ struct configuration_spec * load_config(void)
  * *************************************************************************/
 #ifdef FEATURE_TOGGLE
          case hash_toggle :
-            g_bToggleIJB = atoi(arg);
+            global_toggle_state = atoi(arg);
             continue;
 #endif /* def FEATURE_TOGGLE */
 
@@ -1367,11 +1390,10 @@ struct configuration_spec * load_config(void)
              * 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;
 
 /* *************************************************************************/
@@ -1552,7 +1574,7 @@ static void savearg(char *command, char *argument, struct configuration_spec * c
     * 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));
@@ -1590,8 +1612,6 @@ static void savearg(char *command, char *argument, struct configuration_spec * c
       }
    }
 
-   string_append(&buf, "<br>\n");
-
    string_join(&config->proxy_args, buf);
 }