-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 $
*
* 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
*
* 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 */
+
/*********************************************************************
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);
}
}
(nfl->unloader)(nfl->f);
-#ifndef SPLIT_PROXY_ARGS
- freez(nfl->proxy_args);
-#endif /* ndef SPLIT_PROXY_ARGS */
-
freez(nfl->filename);
freez(nfl);
* 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
return 1;
}
-#ifndef SPLIT_PROXY_ARGS
- if (!suppress_blocklists)
- {
- char * p = html_encode(filename);
- if (p)
- {
- fs->proxy_args = strsav(fs->proxy_args, "<h2>The file `");
- fs->proxy_args = strsav(fs->proxy_args, p);
- fs->proxy_args = strsav(fs->proxy_args,
- "' contains the following patterns</h2>\n");
- freez(p);
- }
- fs->proxy_args = strsav(fs->proxy_args, "<pre>");
- }
-#endif /* ndef SPLIT_PROXY_ARGS */
*newfl = fs;
return 1;
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, "<br>");
- }
-#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 == '\\'))
}
-#ifdef TRUST_FILES
+#ifdef FEATURE_TRUST
/*********************************************************************
*
* Function : unload_trustfile
fclose(fp);
-#ifndef SPLIT_PROXY_ARGS
- if (!suppress_blocklists)
- {
- fs->proxy_args = strsav(fs->proxy_args, "</pre>");
- }
-#endif /* ndef SPLIT_PROXY_ARGS */
-
/* the old one is now obsolete */
if (current_trustfile)
{
return(-1);
}
-#endif /* def TRUST_FILES */
+#endif /* def FEATURE_TRUST */
-#ifdef PCRS
/*********************************************************************
*
* Function : unload_re_filterfile
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);
fclose(fp);
-#ifndef SPLIT_PROXY_ARGS
- if (!suppress_blocklists)
- {
- fs->proxy_args = strsav(fs->proxy_args, "</pre>");
- }
-#endif /* ndef SPLIT_PROXY_ARGS */
-
/* the old one is now obsolete */
if ( NULL != current_re_filterfile )
{
return(-1);
}
-#endif /* def PCRS */
/*********************************************************************