X-Git-Url: http://www.privoxy.org/gitweb/?a=blobdiff_plain;f=actions.c;h=7fbcd3a30d3e84f998ba58a264c02b10f7e481a3;hb=dd4013765fc5c0b8b052365f20a59a31f88797a8;hp=66a95a839f8cdaf840d692e0ce4212e70775f414;hpb=452b882d3844f7d6ba93155010aea2c406161f8e;p=privoxy.git
diff --git a/actions.c b/actions.c
index 66a95a83..7fbcd3a3 100644
--- a/actions.c
+++ b/actions.c
@@ -1,4 +1,3 @@
-const char actions_rcs[] = "$Id: actions.c,v 1.95 2016/01/16 12:33:35 fabiankeil Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/actions.c,v $
@@ -6,7 +5,7 @@ const char actions_rcs[] = "$Id: actions.c,v 1.95 2016/01/16 12:33:35 fabiankeil
* Purpose : Declares functions to work with actions files
*
* Copyright : Written by and Copyright (C) 2001-2016 the
- * Privoxy team. http://www.privoxy.org/
+ * Privoxy team. https://www.privoxy.org/
*
* Based on the Internet Junkbuster originally written
* by and Copyright (C) 1997 Anonymous Coders and
@@ -57,9 +56,6 @@ const char actions_rcs[] = "$Id: actions.c,v 1.95 2016/01/16 12:33:35 fabiankeil
#include "ssplit.h"
#include "filters.h"
-const char actions_h_rcs[] = ACTIONS_H_VERSION;
-
-
/*
* We need the main list of options.
*
@@ -124,7 +120,10 @@ static const struct action_name action_names[] =
};
-static int load_one_actions_file(struct client_state *csp, int fileid);
+#ifndef FUZZ
+static
+#endif
+int load_one_actions_file(struct client_state *csp, int fileid);
/*********************************************************************
@@ -548,6 +547,12 @@ jb_err get_actions(char *line,
return JB_ERR_PARSE;
}
}
+#ifdef FEATURE_EXTENDED_STATISTICS
+ if (0 == strcmpic(action->name, "+block"))
+ {
+ register_block_reason_for_statistics(value);
+ }
+#endif
/* FIXME: should validate option string here */
freez (cur_action->string[action->index]);
cur_action->string[action->index] = strdup(value);
@@ -1080,6 +1085,52 @@ int load_action_files(struct client_state *csp)
}
+/*********************************************************************
+ *
+ * Function : filter_type_to_string
+ *
+ * Description : Converts a filter type enum into a string.
+ *
+ * Parameters :
+ * 1 : filter_type = filter_type as enum
+ *
+ * Returns : Pointer to static string.
+ *
+ *********************************************************************/
+static const char *filter_type_to_string(enum filter_type filter_type)
+{
+ switch (filter_type)
+ {
+ case FT_CONTENT_FILTER:
+ return "content filter";
+ case FT_CLIENT_HEADER_FILTER:
+ return "client-header filter";
+ case FT_SERVER_HEADER_FILTER:
+ return "server-header filter";
+ case FT_CLIENT_HEADER_TAGGER:
+ return "client-header tagger";
+ case FT_SERVER_HEADER_TAGGER:
+ return "server-header tagger";
+ case FT_SUPPRESS_TAG:
+ return "suppress tag filter";
+ case FT_CLIENT_BODY_FILTER:
+ return "client body filter";
+ case FT_CLIENT_BODY_TAGGER:
+ return "client body tagger";
+ case FT_ADD_HEADER:
+ return "add-header action";
+#ifdef FEATURE_EXTERNAL_FILTERS
+ case FT_EXTERNAL_CONTENT_FILTER:
+ return "external content filter";
+#endif
+ case FT_INVALID_FILTER:
+ return "invalid filter type";
+ }
+
+ return "unknown filter type";
+
+}
+
/*********************************************************************
*
* Function : referenced_filters_are_missing
@@ -1106,7 +1157,8 @@ static int referenced_filters_are_missing(const struct client_state *csp,
{
if (NULL == get_filter(csp, filtername->str, filter_type))
{
- log_error(LOG_LEVEL_ERROR, "Missing filter '%s'", filtername->str);
+ log_error(LOG_LEVEL_ERROR, "Missing %s '%s'",
+ filter_type_to_string(filter_type), filtername->str);
return 1;
}
}
@@ -1141,7 +1193,8 @@ static int action_spec_is_valid(struct client_state *csp, const struct action_sp
{ACTION_MULTI_CLIENT_HEADER_FILTER, FT_CLIENT_HEADER_FILTER},
{ACTION_MULTI_SERVER_HEADER_FILTER, FT_SERVER_HEADER_FILTER},
{ACTION_MULTI_CLIENT_HEADER_TAGGER, FT_CLIENT_HEADER_TAGGER},
- {ACTION_MULTI_SERVER_HEADER_TAGGER, FT_SERVER_HEADER_TAGGER}
+ {ACTION_MULTI_SERVER_HEADER_TAGGER, FT_SERVER_HEADER_TAGGER},
+ {ACTION_MULTI_CLIENT_BODY_FILTER, FT_CLIENT_BODY_FILTER}
};
int errors = 0;
int i;
@@ -1161,7 +1214,7 @@ static int action_spec_is_valid(struct client_state *csp, const struct action_sp
*
* Function : load_one_actions_file
*
- * Description : Read and parse a action file and add to files
+ * Description : Read and parse an action file and add to files
* list.
*
* Parameters :
@@ -1171,7 +1224,10 @@ static int action_spec_is_valid(struct client_state *csp, const struct action_sp
* Returns : 0 => Ok, everything else is an error.
*
*********************************************************************/
-static int load_one_actions_file(struct client_state *csp, int fileid)
+#ifndef FUZZ
+static
+#endif
+int load_one_actions_file(struct client_state *csp, int fileid)
{
/*
@@ -1592,7 +1648,7 @@ static int load_one_actions_file(struct client_state *csp, int fileid)
*
* Function : actions_to_text
*
- * Description : Converts a actionsfile entry from the internal
+ * Description : Converts an actionsfile entry from the internal
* structure into a text line. The output is split
* into one line for each action with line continuation.
*
@@ -1678,7 +1734,7 @@ char * actions_to_text(const struct action_spec *action)
*
* Function : actions_to_html
*
- * Description : Converts a actionsfile entry from numeric form
+ * Description : Converts an actionsfile entry from numeric form
* ("mask" and "add") to a
-separated HTML string
* in which each action is linked to its chapter in
* the user manual.
@@ -1785,7 +1841,7 @@ char * actions_to_html(const struct client_state *csp,
*
* Function : current_actions_to_html
*
- * Description : Converts a curren action spec to a
separated HTML
+ * Description : Converts a current action spec to a
separated HTML
* text in which each action is linked to its chapter in
* the user manual.
*
@@ -1881,7 +1937,7 @@ char *current_action_to_html(const struct client_state *csp,
*
* Function : action_to_line_of_text
*
- * Description : Converts a action spec to a single text line
+ * Description : Converts an action spec to a single text line
* listing the enabled actions.
*
* Parameters :