From 8520befe602e9b90d455342068a623f2cf89f631 Mon Sep 17 00:00:00 2001 From: Ian C Date: Thu, 4 Dec 2003 01:54:55 +0000 Subject: This commit was generated by cvs2svn to compensate for changes in r2, which included commits to RCS files with non-trunk default branches. --- src/kbs.c | 147 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 src/kbs.c (limited to 'src/kbs.c') diff --git a/src/kbs.c b/src/kbs.c new file mode 100644 index 0000000..25afe5f --- /dev/null +++ b/src/kbs.c @@ -0,0 +1,147 @@ +/* + + kbs - Simple, easily fooled, POP3 spam filter + + Copyright (C) 2003 Ian Cowburn (ianc@noddybox.demon.co.uk) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + ------------------------------------------------------------------------- + +*/ +static const char id[]="$Id$"; + +#include +#include +#include +#include +#include +#include +#include + +#include "global.h" +#include "config.h" +#include "pop3.h" +#include "dbase.h" +#include "util.h" + +/* ---------------------------------------- MACROS +*/ +#define LOG (logfp ? logfp:stderr) + + +/* ---------------------------------------- TYPES +*/ + + +/* ---------------------------------------- GLOBALS +*/ +static const char *name=NULL; +static FILE *logfp=NULL; + + +/* ---------------------------------------- PROTOS +*/ + + +/* ---------------------------------------- MAIN +*/ +int main(int argc, char *argv[]) +{ + POP3Message *msg; + + if (strchr(argv[0],'/')) + name=strchr(argv[0],'/')+1; + else + name=argv[0]; + + if (!ConfigLoad()) + { + fprintf(stderr,"%s\n",ConfigError()); + exit(EXIT_FAILURE); + } + + switch(POP3Connect(ConfigString(CONFIG_HOSTNAME), + ConfigInt(CONFIG_PORT), + ConfigString(CONFIG_USERNAME), + ConfigString(CONFIG_PASSWORD), + ConfigInt(CONFIG_TIMEOUT))) + { + case POP3_OK: + break; + + case POP3_COMMERROR: + fprintf(LOG,"Comms error (errno = %d)\n",errno); + exit(EXIT_FAILURE); + break; + + case POP3_NOCONNECT: + fprintf(LOG,"No connection to host (errno = %d)\n",errno); + exit(EXIT_FAILURE); + break; + + case POP3_BADUSER: + fprintf(LOG,"Bad username\n"); + exit(EXIT_FAILURE); + break; + + case POP3_BADPASSWD: + fprintf(LOG,"Bad password\n"); + exit(EXIT_FAILURE); + break; + + default: + break; + } + + if ((msg=POP3GetList())) + { + int f; + int tot=0; + int block=0; + + for(f=0;msg[f].to;f++) + { + tot++; + printf("Num %d\n",msg[f].id); + printf(" From : %s@%s\n",msg[f].from_uname,msg[f].from_domain); + printf(" Subject : %s\n",msg[f].subject); + + if (DBBlockMessage(msg+f)) + { + printf(" BLOCKED : YES\n\n"); + block++; + } + else + printf(" BLOCKED : NO\n\n"); + } + + printf("%d messages, %d blocked\n",tot,block); + + POP3FreeList(msg); + } + else + { + printf("No messages\n"); + } + + return EXIT_SUCCESS; +} + + +/* ---------------------------------------- UTIL +*/ + +/* END OF FILE */ -- cgit v1.2.3