X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=actions.c;h=6a30577caeb4355c387bfaeb922fb1cfeea24e71;hp=66a95a839f8cdaf840d692e0ce4212e70775f414;hb=32ba28b1225c54c850c48814b018e7afcffbd0a5;hpb=452b882d3844f7d6ba93155010aea2c406161f8e diff --git a/actions.c b/actions.c index 66a95a83..6a30577c 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,48 @@ 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"; +#ifdef FEATURE_EXTERNAL_FILTERS + case FT_EXTERNAL_CONTENT_FILTER: + return "external content filter"; +#endif + case FT_SUPPRESS_TAG: + return "suppress tag filter"; + case FT_CLIENT_BODY_FILTER: + return "client body filter"; + case FT_INVALID_FILTER: + return "invalid filter type"; + } + + return "unknown filter type"; + +} + /********************************************************************* * * Function : referenced_filters_are_missing @@ -1106,7 +1153,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 +1189,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; @@ -1171,7 +1220,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) { /* @@ -1785,7 +1837,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. *