X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Fdspam%2Fserv_dspam.c;h=7454634f780cd040d428ae9e9543fa9da0d41aa7;hb=b26e3e79fcb15dc1b46f4c7710a6bafdc6472950;hp=f027bea1a2c89a9e24700cbdb365c7c932b4d991;hpb=4d157f04e639af03e4a8dd6dd84de84ef1ffa490;p=citadel.git diff --git a/citadel/modules/dspam/serv_dspam.c b/citadel/modules/dspam/serv_dspam.c index f027bea1a..7454634f7 100644 --- a/citadel/modules/dspam/serv_dspam.c +++ b/citadel/modules/dspam/serv_dspam.c @@ -1,10 +1,22 @@ /* - * $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) 2012 by the citadel.org team + * + * This program is open source software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 3. + * + * + * + * 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. + * + * + * + * */ #include "sysdep.h" @@ -37,8 +49,6 @@ #include "citserver.h" #include "support.h" #include "config.h" -#include "room_ops.h" -#include "policy.h" #include "database.h" #include "msgbase.h" #include "internet_addressing.h" @@ -147,25 +157,29 @@ void dspam_do_msg(long msgnum, void *userdata) if (dspam_process (CTX, msgtext) != 0) { free(msgtext); - CtdlLogPrintf(CTDL_CRIT, "ERROR: dspam_process failed"); + syslog(LOG_CRIT, "ERROR: dspam_process failed"); return; } if (CTX->signature == NULL) { - CtdlLogPrintf(CTDL_CRIT,"No signature provided\n"); + syslog(LOG_CRIT,"No signature provided\n"); } else { /* Copy to a safe place */ + // TODO: len -> cm_fields? + msg->cm_fields[eErrorMsg] = malloc (CTX->signature->length * 2); + size_t len = CtdlEncodeBase64(msg->cm_fields[eErrorMsg], CTX->signature->data, CTX->signature->length, 0); - msg->cm_fields['G'] = malloc (CTX->signature->length * 2); - CtdlEncodeBase64(msg->cm_fields['G'], CTX->signature->data, CTX->signature->length, 0); + if (msg->cm_fields[eErrorMsg][len - 1] == '\n') { + msg->cm_fields[eErrorMsg][len - 1] = '\0'; + } } free(msgtext); SIG.length = CTX->signature->length; /* Print processing results */ - CtdlLogPrintf (CTDL_DEBUG, "Probability: %2.4f Confidence: %2.4f, Result: %s\n", + syslog(LOG_DEBUG, "Probability: %2.4f Confidence: %2.4f, Result: %s\n", CTX->probability, CTX->confidence, (CTX->result == DSR_ISSPAM) ? "Spam" : "Innocent"); @@ -204,7 +218,7 @@ int serv_dspam_room(struct ctdlroom *room) /// else -> todo: global user for public rooms etc. if (CTX == NULL) { - CtdlLogPrintf(CTDL_CRIT, "ERROR: dspam_init failed!\n"); + syslog(LOG_CRIT, "ERROR: dspam_init failed!\n"); return ERROR + INTERNAL_ERROR; } /* Use graham and robinson algorithms, graham's p-values */ @@ -228,7 +242,7 @@ void serv_dspam_shutdown (void) CTDL_MODULE_INIT(dspam) { - return "$Id$" "disabled."; + return "disabled."; if (!threading) { #ifdef HAVE_LIBDSPAM @@ -243,12 +257,12 @@ CTDL_MODULE_INIT(dspam) #else /* HAVE_LIBDSPAM */ - CtdlLogPrintf(CTDL_INFO, "This server is missing libdspam Spam filtering will be disabled.\n"); + syslog(LOG_INFO, "This server is missing libdspam Spam filtering will be disabled.\n"); #endif /* HAVE_LIBDSPAM */ } - /* return our Subversion id for the Log */ - return "$Id$"; + /* return our module name for the log */ + return "dspam"; }