/*
* DSPAMINFO.C Dump the spam cache (for debugging)
*
* (c)Copyright 1997, Matthew Dillon, All Rights Reserved. Refer to
* the COPYRIGHT file in the base directory of this distribution
* for specific rights granted.
*/
#include "defs.h"
void
Usage(char *progname)
{
printf("Usage: %s [-B] [-C file] [-c n] [-D[n]] [-l] [-N] [-r] [-V]\n", progname);
printf(" where:\n");
printf("\t-B\tenable working on body filter\n");
printf("\t-C file\tset different diablo.config location\n");
printf("\t-c n\tclear a specific table entry (-1 clears all)\n");
printf("\t-D[n]\tenable and set debug level\n");
printf("\t-l\tdump contents of spam cache\n");
printf("\t-N\tenable working on nph filter\n");
printf("\t-r\talso show expired entries\n");
exit(1);
}
int
main(int ac, char **av)
{
int i;
int dumpCache = 0;
char *ptr;
int bodyCache = 1;
int postHostCache = 1;
int clearEntry = 0;
int clearVal = -1;
int raw = 0;
LoadDiabloConfig(ac, av);
for (i = 1; i < ac; ++i) {
ptr = av[i];
if (*ptr != '-')
Usage(av[0]);
ptr += 2;
switch(ptr[-1]) {
case 'B':
bodyCache = 1;
break;
case 'C': /* parsed by LoadDiabloConfig */
if (*ptr == 0)
++i;
break;
case 'c':
if (*ptr == 0)
ptr = av[++i];
if (ptr == NULL)
Usage(av[0]);
clearEntry = 1;
clearVal = strtol(ptr, NULL, 0);
case 'd':
DebugOpt = (*ptr) ? strtol(ptr, NULL, 0) : 1;
break;
case 'l':
dumpCache = 1;
break;
case 'N':
postHostCache = 1;
break;
case 'r':
raw = 1;
break;
case 'V':
PrintVersion();
break;
default:
Usage(av[0]);
}
}
if (!dumpCache && !clearEntry)
Usage(av[0]);
if (dumpCache) {
if (bodyCache == 0 && postHostCache == 0)
SetSpamFilterTrip(1, 1);
else
SetSpamFilterTrip(bodyCache, postHostCache);
InitSpamFilter();
DumpSpamFilterCache(stdout, raw);
}
if (clearEntry) {
if (!bodyCache && !postHostCache) {
fprintf(stderr, "Must specify which cache to clear (-B or -N)\n");
Usage(av[0]);
}
SetSpamFilterTrip(bodyCache, postHostCache);
InitSpamFilter();
if (bodyCache)
ClearSpamFilterEntry(1, clearVal);
if (postHostCache)
ClearSpamFilterEntry(2, clearVal);
TermSpamFilter();
}
return(0);
}
syntax highlighted by Code2HTML, v. 0.9.1