* Stick to the short names in this file for consistency.
*
* Copyright : Written by and Copyright (C) 2001-2014 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
/* alias_list contains the aliases defined in this file.
* It might be better to use the "file_line.data" fields
- * in the relavent places instead.
+ * in the relevant places instead.
*/
cur_line = file->lines;
* browsers (BR #1570678).
*
* The config option split-large-forms works around this browser
- * bug (HTTP has no URL length limitation) by deviding the action
+ * bug (HTTP has no URL length limitation) by dividing the action
* list form into multiple smaller ones. It means the URLs are shorter
* and work in broken browsers as well, but the user can no longer change
* all actions with one submit.
#ifndef FEATURE_EXTERNAL_FILTERS
if (!err) err = map_block_killer(exports, "external-content-filters");
#endif
+#ifndef FEATURE_HTTPS_INSPECTION
+ if (!err) err = map_block_killer(exports, "https-inspection");
+#endif
if (err)
{
}
+/*********************************************************************
+ *
+ * Function : get_number_of_filters
+ *
+ * Description : Counts the number of filter available.
+ *
+ * Parameters :
+ * 1 : csp = Current client state (buffers, headers, etc...)
+ *
+ * Returns : Number of filters available.
+ *
+ *********************************************************************/
+static int get_number_of_filters(const struct client_state *csp)
+{
+ int i;
+ struct re_filterfile_spec *b;
+ struct file_list *fl;
+ int number_of_filters = 0;
+
+ for (i = 0; i < MAX_AF_FILES; i++)
+ {
+ fl = csp->rlist[i];
+ if ((NULL == fl) || (NULL == fl->f))
+ {
+ /*
+ * Either there are no filter files left or this
+ * filter file just contains no valid filters.
+ *
+ * Continue to be sure we don't miss valid filter
+ * files that are chained after empty or invalid ones.
+ */
+ continue;
+ }
+
+ for (b = fl->f; b != NULL; b = b->next)
+ {
+ number_of_filters++;
+ }
+ }
+
+ return number_of_filters;
+
+}
+
+
/*********************************************************************
*
* Function : cgi_edit_actions_submit
const char * action_set_name;
struct file_list * fl;
struct url_actions * b;
+ int number_of_filters;
if (0 == (csp->config->feature_flags & RUNTIME_FEATURE_CGI_EDIT_ACTIONS))
{
}
}
- for (filter_identifier = 0; !err; filter_identifier++)
+ number_of_filters = get_number_of_filters(csp);
+
+ for (filter_identifier = 0; filter_identifier < number_of_filters && !err; filter_identifier++)
{
char key_value[30];
char key_name[30];
if (name == NULL)
{
- /* End of list */
- break;
+ /* The filter identifier isn't present. Try the next one. */
+ continue;
}
type = get_char_param(parameters, key_type);