-const char loaders_rcs[] = "$Id: loaders.c,v 1.29 2001/10/23 21:38:53 jongfoster Exp $";
+const char loaders_rcs[] = "$Id: loaders.c,v 1.32 2001/11/07 00:02:13 steudten Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/loaders.c,v $
*
* Revisions :
* $Log: loaders.c,v $
+ * Revision 1.32 2001/11/07 00:02:13 steudten
+ * Add line number in error output for lineparsing for
+ * actionsfile and configfile.
+ * Special handling for CLF added.
+ *
+ * Revision 1.31 2001/10/26 17:39:01 oes
+ * Removed csp->referrer
+ * Moved ijb_isspace and ijb_tolower to project.h
+ *
+ * Revision 1.30 2001/10/25 03:40:48 david__schmidt
+ * Change in porting tactics: OS/2's EMX porting layer doesn't allow multiple
+ * threads to call select() simultaneously. So, it's time to do a real, live,
+ * native OS/2 port. See defines for __EMX__ (the porting layer) vs. __OS2__
+ * (native). Both versions will work, but using __OS2__ offers multi-threading.
+ *
* Revision 1.29 2001/10/23 21:38:53 jongfoster
* Adding error-checking to create_url_spec()
*
#include <stdlib.h>
#include <sys/types.h>
#include <string.h>
-#include <malloc.h>
#include <errno.h>
#include <sys/stat.h>
#include <ctype.h>
const char loaders_h_rcs[] = LOADERS_H_VERSION;
-/* Fix a problem with Solaris. There should be no effect on other
- * platforms.
- * Solaris's isspace() is a macro which uses it's argument directly
- * as an array index. Therefore we need to make sure that high-bit
- * characters generate +ve values, and ideally we also want to make
- * the argument match the declared parameter type of "int".
- */
-#define ijb_isspace(__X) isspace((int)(unsigned char)(__X))
-
-
/*
* Currently active files.
* These are also entered in the main linked list of files.
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);
* 1 : buf = Buffer to use.
* 2 : buflen = Size of buffer in bytes.
* 3 : fp = File to read from
+ * 4 : linenum = linenumber in file
*
* Returns : NULL on EOF or error
* Otherwise, returns buf.
*
*********************************************************************/
-char *read_config_line(char *buf, int buflen, FILE *fp)
+char *read_config_line(char *buf, int buflen, FILE *fp, unsigned long *linenum)
{
char *p;
char *src;
while (fgets(linebuf, sizeof(linebuf), fp))
{
+ (*linenum)++;
/* Trim off newline */
if ((p = strpbrk(linebuf, "\r\n")) != NULL)
{
char buf[BUFFER_SIZE], *p, *q;
int reject, trusted;
struct file_list *fs;
+ unsigned long linenum = 0;
if (!check_file_changed(current_trustfile, csp->config->trustfile, &fs))
{
tl = csp->config->trust_list;
- while (read_config_line(buf, sizeof(buf), fp) != NULL)
+ while (read_config_line(buf, sizeof(buf), fp, &linenum) != NULL)
{
trusted = 0;
reject = 1;
char buf[BUFFER_SIZE];
int error;
+ unsigned long linenum = 0;
pcrs_job *dummy;
if (!check_file_changed(current_re_filterfile, csp->config->re_filterfile, &fs))
}
/* Read line by line */
- while (read_config_line(buf, sizeof(buf), fp) != NULL)
+ while (read_config_line(buf, sizeof(buf), fp, &linenum) != NULL)
{
enlist( bl->patterns, buf );
Local Variables:
tab-width: 3
end:
-*/
\ No newline at end of file
+*/