Changes to use new list functions.
[privoxy.git] / filters.c
index 9a07966..aa798bc 100644 (file)
--- a/filters.c
+++ b/filters.c
@@ -1,4 +1,4 @@
-const char filters_rcs[] = "$Id: filters.c,v 1.27 2001/08/05 16:06:20 jongfoster Exp $";
+const char filters_rcs[] = "$Id: filters.c,v 1.31 2001/09/16 11:38:02 jongfoster Exp $";
 /*********************************************************************
  *
  * File        :  $Source: /cvsroot/ijbswa/current/filters.c,v $
@@ -38,6 +38,25 @@ const char filters_rcs[] = "$Id: filters.c,v 1.27 2001/08/05 16:06:20 jongfoster
  *
  * Revisions   :
  *    $Log: filters.c,v $
+ *    Revision 1.31  2001/09/16 11:38:02  jongfoster
+ *    Splitting fill_template() into 2 functions:
+ *    template_load() loads the file
+ *    template_fill() performs the PCRS regexps.
+ *    This is because the CGI edit interface has a "table row"
+ *    template which is used many times in the page - this
+ *    change means it's only loaded from disk once.
+ *
+ *    Revision 1.30  2001/09/16 11:00:10  jongfoster
+ *    New function alloc_http_response, for symmetry with free_http_response
+ *
+ *    Revision 1.29  2001/09/13 23:32:40  jongfoster
+ *    Moving image data to cgi.c rather than cgi.h
+ *    Fixing a GPF under Win32 (and any other OS that protects global
+ *    constants from being written to).
+ *
+ *    Revision 1.28  2001/09/10 10:18:51  oes
+ *    Silenced compiler warnings
+ *
  *    Revision 1.27  2001/08/05 16:06:20  jongfoster
  *    Modifiying "struct map" so that there are now separate header and
  *    "map_entry" structures.  This means that functions which modify a
@@ -469,7 +488,7 @@ struct http_response *block_url(struct client_state *csp)
    /* 
     * Else, prepare a response
     */
-   if (NULL == ( rsp = (struct http_response *)zalloc(sizeof(*rsp))))
+   if (NULL == (rsp = alloc_http_response()))
    {
       return NULL;
    }
@@ -488,15 +507,15 @@ struct http_response *block_url(struct client_state *csp)
       /* and handle accordingly: */
       if ((p == NULL) || (0 == strcmpic(p, "logo")))
       {
-         rsp->body = bindup(JBGIF, sizeof(JBGIF));
-         rsp->content_length = sizeof(JBGIF);
+         rsp->body = bindup(image_junkbuster_gif_data, image_junkbuster_gif_length);
+         rsp->content_length = image_junkbuster_gif_length;
          enlist_unique_header(rsp->headers, "Content-Type", "image/gif");
       }
 
       else if (0 == strcmpic(p, "blank"))
       {
-         rsp->body = bindup(BLANKGIF, sizeof(BLANKGIF));
-         rsp->content_length = sizeof(BLANKGIF);
+         rsp->body = bindup(image_blank_gif_data, image_blank_gif_length);
+         rsp->content_length = image_blank_gif_length;
          enlist_unique_header(rsp->headers, "Content-Type", "image/gif");
       }
 
@@ -525,7 +544,8 @@ struct http_response *block_url(struct client_state *csp)
       map(exports, "path", 1, csp->http->path, 1);
       map(exports, "path-html", 1, html_encode(csp->http->path), 0);
 
-      rsp->body = fill_template(csp, "blocked", exports);
+      rsp->body = template_load(csp, "blocked");
+      template_fill(&rsp->body, exports);
       free_map(exports);
   
       /*
@@ -585,7 +605,7 @@ struct http_response *trust_url(struct client_state *csp)
    /* 
     * Else, prepare a response:
     */
-   if (NULL == ( rsp = (struct http_response *)zalloc(sizeof(*rsp))))
+   if (NULL == (rsp = alloc_http_response()))
    {
       return NULL;
    }
@@ -625,11 +645,11 @@ struct http_response *trust_url(struct client_state *csp)
    /*
     * Export the trust info, if available
     */
-   if (csp->config->trust_info->next)
+   if (csp->config->trust_info->first)
    {
-      struct list *l;
+      struct list_entry *l;
 
-      for (l = csp->config->trust_info->next; l ; l = l->next)
+      for (l = csp->config->trust_info->first; l ; l = l->next)
       {
          sprintf(buf, "<li> <a href=%s>%s</a><br>\n",l->str, l->str);
          p = strsav(p, buf);
@@ -653,7 +673,8 @@ struct http_response *trust_url(struct client_state *csp)
    /*
     * Build the response
     */
-   rsp->body = fill_template(csp, "untrusted", exports);
+   rsp->body = template_load(csp, "untrusted");
+   template_fill(&rsp->body, exports);
    free_map(exports);
 
    return(finish_http_response(rsp));
@@ -699,7 +720,7 @@ struct http_response *redirect_url(struct client_state *csp)
    {
       log_error(LOG_LEVEL_REDIRECTS, "redirecting to: %s", q);
 
-      if (NULL == ( rsp = zalloc(sizeof(*rsp))))
+      if (NULL == (rsp = alloc_http_response()))
       {
          return NULL;
       }
@@ -1147,12 +1168,10 @@ void apply_url_actions(struct current_action_spec *action,
 const struct forward_spec * forward_url(struct http_request *http,
                                         struct client_state *csp)
 {
-   static const struct forward_spec fwd_default[1];
+   static const struct forward_spec fwd_default[1] = { FORWARD_SPEC_INITIALIZER };
    struct forward_spec *fwd = csp->config->forward;
    struct url_spec url[1];
 
-   memset(&fwd_default, '\0', sizeof(struct forward_spec));
-
    if (fwd == NULL)
    {
       return(fwd_default);