Change the Windows taskbar icon when privoxy is toggled off.
[privoxy.git] / filters.c
index 0d1d544..5e26f50 100644 (file)
--- a/filters.c
+++ b/filters.c
@@ -1,4 +1,4 @@
-const char filters_rcs[] = "$Id: filters.c,v 1.104 2008/03/27 18:27:24 fabiankeil Exp $";
+const char filters_rcs[] = "$Id: filters.c,v 1.110 2008/11/10 16:40:25 fabiankeil Exp $";
 /*********************************************************************
  *
  * File        :  $Source: /cvsroot/ijbswa/current/filters.c,v $
@@ -40,6 +40,29 @@ const char filters_rcs[] = "$Id: filters.c,v 1.104 2008/03/27 18:27:24 fabiankei
  *
  * Revisions   :
  *    $Log: filters.c,v $
+ *    Revision 1.110  2008/11/10 16:40:25  fabiankeil
+ *    Fix a gcc44 warning.
+ *
+ *    Revision 1.109  2008/11/08 15:48:41  fabiankeil
+ *    Mention actual values when complaining about
+ *    the chunk size exceeding the buffer size.
+ *
+ *    Revision 1.108  2008/05/21 15:35:08  fabiankeil
+ *    - Mark csp as immutable for block_acl().
+ *    - Remove an obsolete complaint about filter_popups().
+ *
+ *    Revision 1.107  2008/05/04 17:52:56  fabiankeil
+ *    Adjust parse_http_url() call to new prototype.
+ *
+ *    Revision 1.106  2008/05/03 16:40:44  fabiankeil
+ *    Change content_filters_enabled()'s parameter from
+ *    csp->action to action so it can be also used in the
+ *    CGI code. Don't bother checking if there are filters
+ *    loaded, as that's somewhat besides the point.
+ *
+ *    Revision 1.105  2008/03/28 15:13:39  fabiankeil
+ *    Remove inspect-jpegs action.
+ *
  *    Revision 1.104  2008/03/27 18:27:24  fabiankeil
  *    Remove kill-popups action.
  *
@@ -694,7 +717,7 @@ static jb_err prepare_for_filtering(struct client_state *csp);
  * Returns     : 0 = FALSE (don't block) and 1 = TRUE (do block)
  *
  *********************************************************************/
-int block_acl(struct access_control_addr *dst, struct client_state *csp)
+int block_acl(const struct access_control_addr *dst, const struct client_state *csp)
 {
    struct access_control_list *acl = csp->config->acl;
 
@@ -818,7 +841,7 @@ int acl_addr(const char *aspec, struct access_control_addr *aca)
    aca->mask = 0;
    for (i=1; i <= masklength ; i++)
    {
-      aca->mask |= (1 << (32 - i));
+      aca->mask |= (1U << (32 - i));
    }
 
    /* now mask off the host portion of the ip address
@@ -1732,7 +1755,7 @@ int is_untrusted_url(const struct client_state *csp)
    /*
     * If not, do we maybe trust its referrer?
     */
-   err = parse_http_url(referer, rhttp, csp);
+   err = parse_http_url(referer, rhttp, REQUIRE_PROTOCOL);
    if (err)
    {
       return 1;
@@ -2067,12 +2090,6 @@ static char *gif_deanimate_response(struct client_state *csp)
  * Description :  Decides which content filter function has
  *                to be applied (if any).
  *
- *                XXX: Doesn't handle filter_popups()
- *                because of the different prototype. Probably
- *                we should ditch filter_popups() anyway, it's
- *                even less reliable than popup blocking based
- *                on pcrs filters.
- *
  * Parameters  :
  *          1  :  csp = Current client state (buffers, headers, etc...)
  *
@@ -2168,7 +2185,7 @@ static jb_err remove_chunked_transfer_coding(char *buffer, size_t *size)
       return JB_ERR_PARSE;
    }
 
-   while (chunksize > 0)
+   while (chunksize > 0U)
    {
       if (NULL == (from_p = strstr(from_p, "\r\n")))
       {
@@ -2178,7 +2195,9 @@ static jb_err remove_chunked_transfer_coding(char *buffer, size_t *size)
 
       if ((newsize += chunksize) >= *size)
       {
-         log_error(LOG_LEVEL_ERROR, "Chunksize exceeds buffer in  \"chunked\" transfer coding");
+         log_error(LOG_LEVEL_ERROR,
+            "Chunk size %d exceeds buffer size %d in  \"chunked\" transfer coding",
+            chunksize, *size);
          return JB_ERR_PARSE;
       }
       from_p += 2;
@@ -2660,16 +2679,15 @@ struct http_response *direct_response(struct client_state *csp)
  *                enabled for the current request.
  *
  * Parameters  :  
- *          1  :  csp = Current client state (buffers, headers, etc...)
+ *          1  :  action = Action spec to check.
  *
  * Returns     :  TRUE for yes, FALSE otherwise
  *
  *********************************************************************/
-inline int content_filters_enabled(const struct client_state *csp)
+int content_filters_enabled(const struct current_action_spec *action)
 {
-   return (((csp->rlist != NULL) &&
-      (!list_is_empty(csp->action->multi[ACTION_MULTI_FILTER]))) ||
-      (csp->action->flags & ACTION_DEANIMATE));
+   return ((action->flags & ACTION_DEANIMATE) ||
+      !list_is_empty(action->multi[ACTION_MULTI_FILTER]));
 }
 
 /*