X-Git-Url: http://www.privoxy.org/gitweb/?a=blobdiff_plain;f=loaders.c;h=cf4e59fc888e2d96770c7e81b4277994fa6f1f0c;hb=1d7f399a3bc43e93923bb7f6b965df4de2ee5b90;hp=7752a97f0d60cd56cbe36e9dd203f4ea293288e3;hpb=b28e9205bb0d4ac98d591c6e506219438799d56c;p=privoxy.git diff --git a/loaders.c b/loaders.c index 7752a97f..cf4e59fc 100644 --- a/loaders.c +++ b/loaders.c @@ -1,4 +1,4 @@ -const char loaders_rcs[] = "$Id: loaders.c,v 1.17 2001/06/29 13:31:51 oes Exp $"; +const char loaders_rcs[] = "$Id: loaders.c,v 1.23 2001/07/20 15:51:54 oes Exp $"; /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/loaders.c,v $ @@ -35,6 +35,27 @@ const char loaders_rcs[] = "$Id: loaders.c,v 1.17 2001/06/29 13:31:51 oes Exp $" * * Revisions : * $Log: loaders.c,v $ + * 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 + * as well + * + * Revision 1.21 2001/07/18 17:26:24 oes + * Changed to conform to new pcrs interface + * + * Revision 1.20 2001/07/17 13:07:01 oes + * Fixed segv when last line in config files + * lacked a terminating (\r)\n + * + * Revision 1.19 2001/07/13 14:01:54 oes + * Removed all #ifdef PCRS + * + * Revision 1.18 2001/06/29 21:45:41 oes + * Indentation, CRLF->LF, Tab-> Space + * * Revision 1.17 2001/06/29 13:31:51 oes * Various adaptions * @@ -181,13 +202,12 @@ 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 */ -#ifdef PCRS static struct file_list *current_re_filterfile = NULL; -#endif /* def PCRS */ + /********************************************************************* @@ -243,52 +263,61 @@ void sweep(void) ncsp->actions_list->active = 1; } -#ifdef PCRS - if (ncsp->rlist) /* perl re files */ + if (ncsp->rlist) /* pcrsjob files */ { ncsp->rlist->active = 1; } -#endif /* def PCRS */ -#ifdef TRUST_FILES +#ifdef FEATURE_TRUST if (ncsp->tlist) /* trust files */ { ncsp->tlist->active = 1; } -#endif /* def TRUST_FILES */ +#endif /* def FEATURE_TRUST */ } else + /* + * this client is not active, release its resources + * and the ones of all inactive clients that might + * follow it + */ { - /* this client one is not active, release its resources */ - csp->next = ncsp->next; - - freez(ncsp->ip_addr_str); - freez(ncsp->my_ip_addr_str); - freez(ncsp->my_hostname); - -#ifdef TRUST_FILES - freez(ncsp->referrer); -#endif /* def TRUST_FILES */ - freez(ncsp->x_forwarded); - freez(ncsp->iob->buf); - - free_http_request(ncsp->http); - - destroy_list(ncsp->headers); - destroy_list(ncsp->cookie_list); - - free_current_action(ncsp->action); - -#ifdef STATISTICS - urls_read++; - if (ncsp->rejected) + while( !ncsp->active ) { - urls_rejected++; + csp->next = ncsp->next; + + freez(ncsp->ip_addr_str); + freez(ncsp->my_ip_addr_str); + freez(ncsp->my_hostname); + +#ifdef FEATURE_TRUST + freez(ncsp->referrer); +#endif /* def FEATURE_TRUST */ + freez(ncsp->x_forwarded); + freez(ncsp->iob->buf); + + free_http_request(ncsp->http); + + destroy_list(ncsp->headers); + destroy_list(ncsp->cookie_list); + + free_current_action(ncsp->action); + +#ifdef FEATURE_STATISTICS + urls_read++; + if (ncsp->rejected) + { + urls_rejected++; + } +#endif /* def FEATURE_STATISTICS */ + + freez(ncsp); + + /* are there any more in sequence after it? */ + if( !(ncsp = csp->next) ) + break; } -#endif /* def STATISTICS */ - - freez(ncsp); } } @@ -300,10 +329,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); @@ -485,10 +510,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 @@ -535,21 +557,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;
@@ -587,24 +594,15 @@ 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) { *p = '\0'; } + else + { + p = linebuf + strlen(linebuf); + } /* Line continuation? Trim escape and set flag. */ if ((p != linebuf) && (*--p == '\\')) @@ -657,7 +655,7 @@ char *read_config_line(char *buf, int buflen, FILE *fp, struct file_list *fs) } -#ifdef TRUST_FILES +#ifdef FEATURE_TRUST /********************************************************************* * * Function : unload_trustfile @@ -795,13 +793,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) { @@ -825,10 +816,9 @@ load_trustfile_error: return(-1); } -#endif /* def TRUST_FILES */ +#endif /* def FEATURE_TRUST */ -#ifdef PCRS /********************************************************************* * * Function : unload_re_filterfile @@ -911,7 +901,7 @@ int load_re_filterfile(struct client_state *csp) enlist( bl->patterns, buf ); /* We have a meaningful line -> make it a job */ - if ((dummy = pcrs_compile(buf, &error)) == NULL) + if ((dummy = pcrs_compile_command(buf, &error)) == NULL) { log_error(LOG_LEVEL_RE_FILTER, "Adding re_filter job %s failed with error %d.", buf, error); @@ -927,13 +917,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 ) { @@ -957,7 +940,6 @@ load_re_filterfile_error: return(-1); } -#endif /* def PCRS */ /*********************************************************************