-------- Original-Nachricht --------
> Datum: Thu, 23 Jul 2009 10:07:49 -0700
> Von: "Michael Watkins" <[email protected]>
> An: [email protected]
> Betreff: Re: [Dspam-user] dbspam_train
> On Thu, July 23, 2009 09:56, Steve wrote:
> > But since you have the signature there is no
> > real need to force a training. Calling DSPAM with "--class=spam" and
> > "--source=error" should be enough.
>
> That should work, indeed used to work, but since moving from 3.8 to the
> current Alpha (as of July 17) --source=error fails for me. Am using
> hashdrv.
>
> For example if I process a single message (working as root):
>
> cat themailmessage | dspam --user global --class=spam --source=error
> --deliver=summary --process --stdout
>
> Results in zero output at the client; maillog contains:
>
> Jul 20 09:12:15 bean dspam[44722]: Unable to read from file:
> /var/db/dspam/data/global/global.sig/4a64767266215213795745.sig: No such
> file or directory
> Jul 20 09:12:15 bean dspam[44722]: Signature retrieval for
> '4a64767266215213795745' failed
> Jul 20 09:12:15 bean dspam[44722]: Unable to find a valid signature.
> Aborting.
> Jul 20 09:12:15 bean dspam[44722]: process_message returned error -5.
> dropping message.
>
> Note the first error message, and note that there should be no reason why
> dspam cannot open the file given the path does indeed exist and file
> permissions (and the user running dspam per the above) allow for access:
>
> ls -al /var/db/dspam/data/global/global.sig/4a64767266215213795745.sig
> -rw-rw---- 1 root mail 5916 Jul 20 06:51
> /var/db/dspam/data/global/global.sig/4a64767266215213795745.sig
>
> Ideas?
>
Hmm... I remember seen patches to the hash driver in GIT regarding that issue.
Let me look.
Okay. I think this here is the problem (function _ds_get_signature in
src/hash_drv.c):
if (fread(SIG->data, statbuf.st_size, 1, file) != statbuf.st_size) {
LOG(LOG_ERR, ERR_IO_FILE_READ, filename, strerror(errno));
return EFAILURE;
}
That should be:
if (fread(SIG->data, statbuf.st_size, 1, file) != 1) {
LOG(LOG_ERR, ERR_IO_FILE_READ, filename, strerror(errno));
return EFAILURE;
}
Or:
if (fread(SIG->data, 1, statbuf.st_size, file) != statbuf.st_size) {
LOG(LOG_ERR, ERR_IO_FILE_READ, filename, strerror(errno));
return EFAILURE;
}
Can you change the source and check if that fixes your issue?
> Thanks and regards
> Michael
>
// Steve
--
Jetzt kostenlos herunterladen: Internet Explorer 8 und Mozilla Firefox 3 -
sicherer, schneller und einfacher! http://portal.gmx.net/de/go/chbrowser
------------------------------------------------------------------------------
_______________________________________________
Dspam-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dspam-user