From: haroon <haroon@users.sourceforge.net>
Date: Fri, 20 Jul 2001 15:16:17 +0000 (+0000)
Subject: - per Guy's suggestion, added a while loop in sweep() to catch not just
X-Git-Tag: v_2_9_9~220
X-Git-Url: http://www.privoxy.org/gitweb/@default-cgi@/faq/%22https:/static/coding.html?a=commitdiff_plain;h=ec8d97cb1d2c86c8ecff4e8e324edf9245bde568;p=privoxy.git

- 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
---

diff --git a/loaders.c b/loaders.c
index 4fb6e9fd..cadd1ff4 100644
--- a/loaders.c
+++ b/loaders.c
@@ -1,4 +1,4 @@
-const char loaders_rcs[] = "$Id: loaders.c,v 1.20 2001/07/17 13:07:01 oes Exp $";
+const char loaders_rcs[] = "$Id: loaders.c,v 1.21 2001/07/18 17:26:24 oes Exp $";
 /*********************************************************************
  *
  * File        :  $Source: /cvsroot/ijbswa/current/loaders.c,v $
@@ -35,6 +35,9 @@ const char loaders_rcs[] = "$Id: loaders.c,v 1.20 2001/07/17 13:07:01 oes Exp $"
  *
  * Revisions   :
  *    $Log: loaders.c,v $
+ *    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
@@ -266,36 +269,43 @@ void sweep(void)
 
       }
       else
+      /* this client is not active, release its resources */
       {
-         /* 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 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)
+            {
+               urls_rejected++;
+            }
+   #endif /* def STATISTICS */
+   
+            freez(ncsp);
+            
+            /* are there any more in sequence after it? */
+            if( !(ncsp = csp->next) )
+               break;
          }
-#endif /* def STATISTICS */
-
-         freez(ncsp);
       }
    }