X-Git-Url: http://www.privoxy.org/gitweb/?a=blobdiff_plain;f=filters.c;h=886239a0ee8014d1bf49e2b185934e8deb1b89c0;hb=7c6b68ca9c6904520e7a69907be810b8dc679274;hp=7eb673340781f392d2fdf0b1d5bd90c182faf727;hpb=93953651c25a05476b1393493ef2b86ac73a21d1;p=privoxy.git diff --git a/filters.c b/filters.c index 7eb67334..886239a0 100644 --- a/filters.c +++ b/filters.c @@ -1,4 +1,4 @@ -const char filters_rcs[] = "$Id: filters.c,v 1.62 2006/08/14 00:27:47 david__schmidt Exp $"; +const char filters_rcs[] = "$Id: filters.c,v 1.65 2006/09/21 12:54:43 fabiankeil Exp $"; /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/filters.c,v $ @@ -39,6 +39,18 @@ const char filters_rcs[] = "$Id: filters.c,v 1.62 2006/08/14 00:27:47 david__sch * * Revisions : * $Log: filters.c,v $ + * Revision 1.65 2006/09/21 12:54:43 fabiankeil + * Fix +redirect{}. Didn't work with -fast-redirects. + * + * Revision 1.64 2006/08/31 10:55:49 fabiankeil + * Block requests for untrusted URLs with status + * code 403 instead of 200. + * + * Revision 1.63 2006/08/31 10:11:28 fabiankeil + * Don't free p which is still in use and will be later + * freed by free_map(). Don't claim the referrer is unknown + * when the client didn't set one. + * * Revision 1.62 2006/08/14 00:27:47 david__schmidt * Feature request 595948: Re-Filter logging in single line * @@ -760,7 +772,7 @@ struct http_response *block_url(struct client_state *csp) if (((csp->action->flags & ACTION_IMAGE_BLOCKER) != 0) && is_imageurl(csp)) { - char *p; + char *p; /* determine HOW images should be blocked */ p = csp->action->string[ACTION_STRING_IMAGE_BLOCKER]; @@ -968,7 +980,7 @@ struct http_response *block_url(struct client_state *csp) * Function : trust_url FIXME: I should be called distrust_url * * Description : Calls is_untrusted_url to determine if the URL is trusted - * and if not, returns a HTTP 304 response with a reject message. + * and if not, returns a HTTP 403 response with a reject message. * * Parameters : * 1 : csp = Current client state (buffers, headers, etc...) @@ -1002,8 +1014,9 @@ struct http_response *trust_url(struct client_state *csp) return cgi_error_memory(); } + rsp->status = strdup("403 Request blocked by Privoxy"); exports = default_exports(csp, NULL); - if (exports == NULL) + if (exports == NULL || rsp->status == NULL) { free_http_response(rsp); return cgi_error_memory(); @@ -1133,7 +1146,7 @@ struct http_response *redirect_url(struct client_state *csp) { q = csp->action->string[ACTION_STRING_REDIRECT]; } - else + else if ((csp->action->flags & ACTION_FAST_REDIRECTS)) { redirect_mode = csp->action->string[ACTION_STRING_FAST_REDIRECTS]; if (0 == strcmpic(redirect_mode, "check-decoded-url")) @@ -1175,6 +1188,11 @@ struct http_response *redirect_url(struct client_state *csp) q = p++; } } + else + { + /* All redirection actions are disabled */ + return NULL; + } /* * if there was any, generate and return a HTTP redirect */