X-Git-Url: http://www.privoxy.org/gitweb/?a=blobdiff_plain;f=loaders.c;h=577a653130de77d7d56cc1c5e8b75b6d86bd9efb;hb=3e5aa1e1d1a0e1c28619c2388be8c1a0ae4fbeb9;hp=312fc2aa37eff88fc11f7cc7964c150a4fc56739;hpb=12e6a789ba8d86ac88463cf38312c71b101a8b45;p=privoxy.git diff --git a/loaders.c b/loaders.c index 312fc2aa..577a6531 100644 --- a/loaders.c +++ b/loaders.c @@ -1,4 +1,4 @@ -const char loaders_rcs[] = "$Id: loaders.c,v 1.19 2001/07/13 14:01:54 oes Exp $"; +const char loaders_rcs[] = "$Id: loaders.c,v 1.22 2001/07/20 15:16:17 haroon Exp $"; /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/loaders.c,v $ @@ -35,6 +35,18 @@ const char loaders_rcs[] = "$Id: loaders.c,v 1.19 2001/07/13 14:01:54 oes Exp $" * * Revisions : * $Log: loaders.c,v $ + * 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 * @@ -262,36 +274,47 @@ void sweep(void) } 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); - + while( !ncsp->active ) + { + 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); + 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); - + 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) - { - urls_rejected++; - } + urls_read++; + if (ncsp->rejected) + { + urls_rejected++; + } #endif /* def STATISTICS */ - - freez(ncsp); + + freez(ncsp); + + /* are there any more in sequence after it? */ + if( !(ncsp = csp->next) ) + break; + } } } @@ -917,7 +940,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);