diff options
author | Ian C <ianc@noddybox.co.uk> | 2003-12-04 01:54:55 +0000 |
---|---|---|
committer | Ian C <ianc@noddybox.co.uk> | 2003-12-04 01:54:55 +0000 |
commit | 8520befe602e9b90d455342068a623f2cf89f631 (patch) | |
tree | c180cccf55eac9870101cb564fc28eb8badd698e /src/kbs.c | |
parent | 7d304c66c4870344e9617eb665000183b4f84802 (diff) |
This commit was generated by cvs2svn to compensate for changes in r2,
which included commits to RCS files with non-trunk default branches.
Diffstat (limited to 'src/kbs.c')
-rw-r--r-- | src/kbs.c | 147 |
1 files changed, 147 insertions, 0 deletions
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 <stdlib.h> +#include <limits.h> +#include <stdio.h> +#include <string.h> +#include <stdarg.h> +#include <time.h> +#include <errno.h> + +#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 */ |