X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Fdspam%2Fserv_dspam.c;h=cd96e61352ba4b56e39aa18a2e56a1fbc3c412f3;hb=8c47559cb5ae97ec0fa35660ee16fd61a9451c72;hp=0c3cefee5400ead4153f5b7084b5c04b67fc9716;hpb=a2fda4eafb51bbf58c04471522aa2d0f116c797e;p=citadel.git diff --git a/citadel/modules/dspam/serv_dspam.c b/citadel/modules/dspam/serv_dspam.c index 0c3cefee5..cd96e6135 100644 --- a/citadel/modules/dspam/serv_dspam.c +++ b/citadel/modules/dspam/serv_dspam.c @@ -1,10 +1,24 @@ /* - * $Id: serv_dspam.c 5876 2007-12-10 23:22:03Z dothebart $ + * $Id$ * * This module glues libDSpam to the Citadel server in order to implement * DSPAM Spamchecking * - * This code is released under the terms of the GNU General Public License. + * Copyright (c) 2009 by the citadel.org team + * + * 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 3 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 */ #include "sysdep.h" @@ -48,10 +62,13 @@ #ifdef HAVE_LIBDSPAM +#define CONFIG_DEFAULT file_dpsam_conf +#define LOGDIR file_dspam_log -#undef HAVE_CONFIG_H + +//#define HAVE_CONFIG_H #include -#define HAVE_CONFIG_H +//#define HAVE_CONFIG_H typedef struct stringlist stringlist; @@ -133,7 +150,7 @@ void dspam_do_msg(long msgnum, void *userdata) CC->redirect_buffer = malloc(SIZ); CC->redirect_len = 0; CC->redirect_alloc = SIZ; - CtdlOutputPreLoadedMsg(msg, MT_RFC822, HEADERS_ALL, 0, 1); + CtdlOutputPreLoadedMsg(msg, MT_RFC822, HEADERS_ALL, 0, 1, 0); msgtext = CC->redirect_buffer; // don't need? msglen = CC->redirect_len; CC->redirect_buffer = NULL; @@ -155,9 +172,8 @@ void dspam_do_msg(long msgnum, void *userdata) { /* Copy to a safe place */ - SIG.data = malloc (CTX->signature->length); - if (SIG.data != NULL) - memcpy (SIG.data, CTX->signature->data, CTX->signature->length); + msg->cm_fields['G'] = malloc (CTX->signature->length * 2); + CtdlEncodeBase64(msg->cm_fields['G'], CTX->signature->data, CTX->signature->length, 0); } free(msgtext); @@ -184,18 +200,21 @@ int serv_dspam_room(struct ctdlroom *room) // dspam_init (cc->username, NULL, ctdl_dspam_home, DSM_PROCESS, // DSF_SIGNATURE | DSF_NOISE); /// todo: if roomname = spam / ham -> learn! - if (room->QRflags & QR_PRIVATE) /* Are we sending to a private mailbox? */ + if ((room->QRflags & QR_PRIVATE) &&/* Are we sending to a private mailbox? */ + (strstr(room->QRname, ".Mail")!=NULL)) + { char User[64]; // maybe we should better get our realname here? snprintf(User, 64, "%ld", room->QRroomaide); - + extract_token(User, room->QRname, 0, '.', sizeof(User)); CTX = dspam_init(User, NULL, ctdl_dspam_dir, DSM_PROCESS, DSF_SIGNATURE | DSF_NOISE); } + else return 0;//// /// else -> todo: global user for public rooms etc. if (CTX == NULL) { @@ -223,7 +242,7 @@ void serv_dspam_shutdown (void) CTDL_MODULE_INIT(dspam) { - return "$Id: serv_dspam.c 5876 2007-12-10 23:22:03Z dothebart $" "disabled."; + return "$Id$" "disabled."; if (!threading) { #ifdef HAVE_LIBDSPAM @@ -244,6 +263,6 @@ CTDL_MODULE_INIT(dspam) } /* return our Subversion id for the Log */ - return "$Id: serv_dspam.c 5876 2007-12-10 23:22:03Z dothebart $"; + return "$Id$"; }