X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=loaders.c;h=24b43d1b942d4716f7873ada4b2edebf3532001d;hp=577a653130de77d7d56cc1c5e8b75b6d86bd9efb;hb=17bd47f8dfbf8c5cba82c8e389c3039ca78a66dc;hpb=95a776d3520cd266bfd2b8962b5b1213e1e1095b diff --git a/loaders.c b/loaders.c index 577a6531..24b43d1b 100644 --- a/loaders.c +++ b/loaders.c @@ -1,4 +1,4 @@ -const char loaders_rcs[] = "$Id: loaders.c,v 1.22 2001/07/20 15:16:17 haroon Exp $"; +const char loaders_rcs[] = "$Id: loaders.c,v 1.26 2001/09/22 14:05:22 jongfoster Exp $"; /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/loaders.c,v $ @@ -35,6 +35,23 @@ const char loaders_rcs[] = "$Id: loaders.c,v 1.22 2001/07/20 15:16:17 haroon Exp * * Revisions : * $Log: loaders.c,v $ + * Revision 1.26 2001/09/22 14:05:22 jongfoster + * Bugfix: Multiple escaped "#" characters in a configuration + * file are now permitted. + * Also removing 3 unused headers. + * + * Revision 1.25 2001/09/13 22:44:03 jongfoster + * Adding {} to an if statement + * + * Revision 1.24 2001/07/30 22:08:36 jongfoster + * Tidying up #defines: + * - All feature #defines are now of the form FEATURE_xxx + * - Permanently turned off WIN_GUI_EDIT + * - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS + * + * Revision 1.23 2001/07/20 15:51:54 oes + * Fixed indentation of prepocessor commands + * * Revision 1.22 2001/07/20 15:16:17 haroon * - per Guy's suggestion, added a while loop in sweep() to catch not just * the last inactive CSP but all other consecutive inactive CSPs after that @@ -172,14 +189,11 @@ const char loaders_rcs[] = "$Id: loaders.c,v 1.22 2001/07/20 15:16:17 haroon Exp #include "project.h" #include "list.h" #include "loaders.h" -#include "encode.h" #include "filters.h" #include "parsers.h" #include "jcc.h" -#include "ssplit.h" #include "miscutil.h" #include "errlog.h" -#include "gateway.h" #include "actions.h" const char loaders_h_rcs[] = LOADERS_H_VERSION; @@ -199,9 +213,9 @@ const char loaders_h_rcs[] = LOADERS_H_VERSION; * These are also entered in the main linked list of files. */ -#ifdef TRUST_FILES +#ifdef FEATURE_TRUST static struct file_list *current_trustfile = NULL; -#endif /* def TRUST_FILES */ +#endif /* def FEATURE_TRUST */ static struct file_list *current_re_filterfile = NULL; @@ -265,12 +279,12 @@ void sweep(void) ncsp->rlist->active = 1; } -#ifdef TRUST_FILES +#ifdef FEATURE_TRUST if (ncsp->tlist) /* trust files */ { ncsp->tlist->active = 1; } -#endif /* def TRUST_FILES */ +#endif /* def FEATURE_TRUST */ } else @@ -288,9 +302,9 @@ void sweep(void) freez(ncsp->my_ip_addr_str); freez(ncsp->my_hostname); -#ifdef TRUST_FILES +#ifdef FEATURE_TRUST freez(ncsp->referrer); -#endif /* def TRUST_FILES */ +#endif /* def FEATURE_TRUST */ freez(ncsp->x_forwarded); freez(ncsp->iob->buf); @@ -301,13 +315,13 @@ void sweep(void) free_current_action(ncsp->action); -#ifdef STATISTICS +#ifdef FEATURE_STATISTICS urls_read++; if (ncsp->rejected) { urls_rejected++; } -#endif /* def STATISTICS */ +#endif /* def FEATURE_STATISTICS */ freez(ncsp); @@ -326,10 +340,6 @@ void sweep(void) (nfl->unloader)(nfl->f); -#ifndef SPLIT_PROXY_ARGS - freez(nfl->proxy_args); -#endif /* ndef SPLIT_PROXY_ARGS */ - freez(nfl->filename); freez(nfl); @@ -511,10 +521,7 @@ void free_url(struct url_spec *url) * This will be set to NULL, OR a struct * file_list newly allocated on the * heap, with the filename and lastmodified - * fields filled, standard header giving file - * name in proxy_args, and all others zeroed. - * (proxy_args is only filled in if !defined - * SPLIT_PROXY_ARGS and !suppress_blocklists). + * fields filled, and all others zeroed. * * Returns : If file unchanged: 0 (and sets newfl == NULL) * If file changed: 1 and sets newfl != NULL @@ -561,21 +568,6 @@ int check_file_changed(const struct file_list * current, return 1; } -#ifndef SPLIT_PROXY_ARGS - if (!suppress_blocklists) - { - char * p = html_encode(filename); - if (p) - { - fs->proxy_args = strsav(fs->proxy_args, "

The file `"); - fs->proxy_args = strsav(fs->proxy_args, p); - fs->proxy_args = strsav(fs->proxy_args, - "' contains the following patterns

\n"); - freez(p); - } - fs->proxy_args = strsav(fs->proxy_args, "
");
-   }
-#endif /* ndef SPLIT_PROXY_ARGS */
 
    *newfl = fs;
    return 1;
@@ -590,22 +582,21 @@ int check_file_changed(const struct file_list * current,
  * Description :  Read a single non-empty line from a file and return
  *                it.  Trims comments, leading and trailing whitespace
  *                and respects escaping of newline and comment char.
- *                Also writes the file to fs->proxy_args.
  *
  * Parameters  :
  *          1  :  buf = Buffer to use.
  *          2  :  buflen = Size of buffer in bytes.
  *          3  :  fp = File to read from
- *          4  :  fs = File will be written to fs->proxy_args.  May
- *                be NULL to disable this feature.
  *
  * Returns     :  NULL on EOF or error
  *                Otherwise, returns buf.
  *
  *********************************************************************/
-char *read_config_line(char *buf, int buflen, FILE *fp, struct file_list *fs)
+char *read_config_line(char *buf, int buflen, FILE *fp)
 {
-   char *p, *q;
+   char *p;
+   char *src;
+   char *dest;
    char linebuf[BUFFER_SIZE];
    int contflag = 0;
 
@@ -613,19 +604,6 @@ char *read_config_line(char *buf, int buflen, FILE *fp, struct file_list *fs)
 
    while (fgets(linebuf, sizeof(linebuf), fp))
    {
-#ifndef SPLIT_PROXY_ARGS
-      if (fs && !suppress_blocklists)
-      {
-         char *html_line = html_encode(linebuf);
-         if (html_line != NULL)
-         {
-            fs->proxy_args = strsav(fs->proxy_args, html_line);
-            freez(html_line);
-         }
-         fs->proxy_args = strsav(fs->proxy_args, "
"); - } -#endif /* ndef SPLIT_PROXY_ARGS */ - /* Trim off newline */ if ((p = strpbrk(linebuf, "\r\n")) != NULL) { @@ -644,13 +622,19 @@ char *read_config_line(char *buf, int buflen, FILE *fp, struct file_list *fs) } /* If there's a comment char.. */ - if ((p = strpbrk(linebuf, "#")) != NULL) + p = linebuf; + while ((p = strchr(p, '#')) != NULL) { /* ..and it's escaped, left-shift the line over the escape. */ if ((p != linebuf) && (*(p-1) == '\\')) { - q = p-1; - while ((*q++ = *p++) != '\0') /* nop */; + src = p; + dest = p - 1; + while ((*dest++ = *src++) != '\0') + { + /* nop */ + } + /* Now scan from just after the "#". */ } /* Else, chop off the rest of the line */ else @@ -669,7 +653,7 @@ char *read_config_line(char *buf, int buflen, FILE *fp, struct file_list *fs) if (contflag) { contflag = 0; - continue; + continue; } /* Remove leading and trailing whitespace */ @@ -687,7 +671,7 @@ char *read_config_line(char *buf, int buflen, FILE *fp, struct file_list *fs) } -#ifdef TRUST_FILES +#ifdef FEATURE_TRUST /********************************************************************* * * Function : unload_trustfile @@ -764,7 +748,7 @@ int load_trustfile(struct client_state *csp) tl = csp->config->trust_list; - while (read_config_line(buf, sizeof(buf), fp, fs) != NULL) + while (read_config_line(buf, sizeof(buf), fp) != NULL) { trusted = 0; reject = 1; @@ -825,13 +809,6 @@ int load_trustfile(struct client_state *csp) fclose(fp); -#ifndef SPLIT_PROXY_ARGS - if (!suppress_blocklists) - { - fs->proxy_args = strsav(fs->proxy_args, "
"); - } -#endif /* ndef SPLIT_PROXY_ARGS */ - /* the old one is now obsolete */ if (current_trustfile) { @@ -855,7 +832,7 @@ load_trustfile_error: return(-1); } -#endif /* def TRUST_FILES */ +#endif /* def FEATURE_TRUST */ /********************************************************************* @@ -874,7 +851,10 @@ static void unload_re_filterfile(void *f) { struct re_filterfile_spec *b = (struct re_filterfile_spec *)f; - if (b == NULL) return; + if (b == NULL) + { + return; + } destroy_list(b->patterns); pcrs_free_joblist(b->joblist); @@ -935,7 +915,7 @@ int load_re_filterfile(struct client_state *csp) } /* Read line by line */ - while (read_config_line(buf, sizeof(buf), fp, fs) != NULL) + while (read_config_line(buf, sizeof(buf), fp) != NULL) { enlist( bl->patterns, buf ); @@ -956,13 +936,6 @@ int load_re_filterfile(struct client_state *csp) fclose(fp); -#ifndef SPLIT_PROXY_ARGS - if (!suppress_blocklists) - { - fs->proxy_args = strsav(fs->proxy_args, ""); - } -#endif /* ndef SPLIT_PROXY_ARGS */ - /* the old one is now obsolete */ if ( NULL != current_re_filterfile ) {