X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=parsers.c;h=bef3ca9e9435da397d02aae135b35848cb23267d;hp=4908f27483ea19fd127f634653313adffa80386b;hb=2e4e59c6a17462624e6eedd75c369c8f78e027a3;hpb=5026f059f533550013526b961082fad603eba10d diff --git a/parsers.c b/parsers.c index 4908f274..bef3ca9e 100644 --- a/parsers.c +++ b/parsers.c @@ -1488,7 +1488,7 @@ static jb_err header_tagger(struct client_state *csp, char *header) if (NULL == joblist) { - log_error(LOG_LEVEL_RE_FILTER, + log_error(LOG_LEVEL_TAGGING, "Tagger %s has empty joblist. Nothing to do.", b->name); continue; } @@ -1535,11 +1535,20 @@ static jb_err header_tagger(struct client_state *csp, char *header) * no one would do it intentionally. */ freez(tag); - log_error(LOG_LEVEL_INFO, + log_error(LOG_LEVEL_TAGGING, "Tagger \'%s\' created an empty tag. Ignored.", b->name); continue; } + if (list_contains_item(csp->action->multi[ACTION_MULTI_SUPPRESS_TAG], tag)) + { + log_error(LOG_LEVEL_TAGGING, + "Tagger \'%s\' didn't add tag \'%s\': suppressed", + b->name, tag); + freez(tag); + continue; + } + if (!list_contains_item(csp->tags, tag)) { if (JB_ERR_OK != enlist(csp->tags, tag)) @@ -1566,7 +1575,7 @@ static jb_err header_tagger(struct client_state *csp, char *header) action_message = "No action bits update necessary."; } - log_error(LOG_LEVEL_HEADER, + log_error(LOG_LEVEL_TAGGING, "Tagger \'%s\' added tag \'%s\'. %s", b->name, tag, action_message); } @@ -1574,7 +1583,7 @@ static jb_err header_tagger(struct client_state *csp, char *header) else { /* XXX: Is this log-worthy? */ - log_error(LOG_LEVEL_HEADER, + log_error(LOG_LEVEL_TAGGING, "Tagger \'%s\' didn't add tag \'%s\'. Tag already present", b->name, tag); } @@ -4067,7 +4076,8 @@ static jb_err server_http(struct client_state *csp, char **header) return JB_ERR_PARSE; } - if (csp->http->status == 206) + if (csp->http->status == 101 || + csp->http->status == 206) { csp->content_type = CT_TABOO; } @@ -4497,7 +4507,7 @@ static jb_err parse_header_time(const char *header_time, time_t *result) if (*result != result2) { log_error(LOG_LEVEL_ERROR, "strftime() and strptime() disagree. " - "Format: '%s'. In: '%s', out: '%s'. %d != %d. Rejecting.", + "Format: '%s'. In: '%s', out: '%s'. %ld != %ld. Rejecting.", time_formats[i], header_time, recreated_date, *result, result2); continue; } @@ -4586,7 +4596,11 @@ jb_err get_destination_from_headers(const struct list *headers, struct http_requ return JB_ERR_PARSE; } - p = strdup_or_die(host); + p = string_tolower(host); + if (p == NULL) + { + return JB_ERR_MEMORY; + } chomp(p); q = strdup_or_die(p); @@ -4673,7 +4687,11 @@ jb_err get_destination_from_https_headers(const struct list *headers, struct htt return JB_ERR_PARSE; } - p = strdup_or_die(host); + p = string_tolower(host); + if (p == NULL) + { + return JB_ERR_MEMORY; + } chomp(p); q = strdup_or_die(p); @@ -4834,6 +4852,10 @@ static jb_err handle_conditional_hide_referrer_parameter(char **header, referer[hostlength+17] = '\0'; } referer_url = strstr(referer, "http://"); + if (NULL == referer_url) + { + referer_url = strstr(referer, "https://"); + } if ((NULL == referer_url) || (NULL == strstr(referer_url, host))) { /* Host has changed, Referer is invalid or a https URL. */