[SA-exim] spamc -U /foo/bar
Richard Lithvall
richard at lithvall.se
Tue Dec 9 01:32:26 PST 2003
Richard Salts wrote:
> I was wondering if it is possible to have sa-exim pass arguments to spamc. I
> have spamd running on a Unix socket so wanted to run spamc -U /foo/bar so I
> changed SAspamcpath to that. However I get this as a result:
>
> 2003-12-02 19:21:20 1AR5mR-0003nE-7g SA: PANIC: Unexpected error on exec /usr/bi
> n/spamc -U /tmp/spamd (but message was accepted), file sa-exim.c, line 848: No s
> uch file or directory
>
> Yet it works fine when using spamc with no arguments.
Strange. Did you start spamd with the --socketpath option?
Here's my patch (that i sent Marc a while ago in hope that he would
adopt it) verified and working in my environment.
/Richard
diff -ur sa-exim-3.1/sa-exim.c sa-exim-3.1-rich/sa-exim.c
--- sa-exim-3.1/sa-exim.c Mon Aug 18 17:34:39 2003
+++ sa-exim-3.1-rich/sa-exim.c Wed Sep 24 16:16:36 2003
@@ -505,6 +505,7 @@
/* Options we read from /etc/mail/sa-exim.conf */
static char *SAspamcpath=SPAMC_LOCATION;
+ static char *SAspamcSockPath=NULL;
static char *SAEximRunCond="0";
static char *SAEximRejCond="1";
static int SAmaxbody=250*1024;
@@ -653,6 +654,7 @@
M_CHECKFORVAR(SAEximDebug, "%d");
M_CHECKFORSTR(SAspamcpath);
+ M_CHECKFORSTR(SAspamcSockPath);
M_CHECKFORSTR(SAEximRunCond);
M_CHECKFORSTR(SAEximRejCond);
M_CHECKFORVAR(SAmaxbody, "%d");
@@ -845,7 +847,11 @@
/* Ok, we cheat, spamc cares about how big the whole message is and
* we only know about the body size, so I'll give an extra 16K
* to account for any headers that can accompany the message */
- ret=execl(SAspamcpath, "spamc", "-s", string_sprintf("%d",
SAmaxbody+16384), NULL);
+ if(SAspamcSockPath){
+ ret=execl(SAspamcpath, "spamc", "-s", string_sprintf("%d",
SAmaxbody+16384), "-U", SAspamcSockPath, NULL);
+ } else {
+ ret=execl(SAspamcpath, "spamc", "-s", string_sprintf("%d",
SAmaxbody+16384), NULL);
+ }
CHECKERR(ret,string_sprintf("exec %s", SAspamcpath),__LINE__);
}
diff -ur sa-exim-3.1/sa-exim.conf sa-exim-3.1-rich/sa-exim.conf
--- sa-exim-3.1/sa-exim.conf Wed Aug 20 18:11:13 2003
+++ sa-exim-3.1-rich/sa-exim.conf Wed Sep 24 16:28:19 2003
@@ -25,7 +25,10 @@
# Default path is /usr/bin/spamc, but you can change it here
SAspamcpath: /usr/bin/spamc
-
+# If SAspamcSockPath is set spamc uses socket to connect to spamd,
+# use --socketpath pathname as argument to spamd (new in SA 2.60).
+# Leave it unset if you want spamc to connect(AF_INET) to spamd at
127.0.0.1 (this is the default).
+#SAspamcSockPath: /var/run/spamd.sock
# Exim configuration string to run before running SA against the message
# You should not put double quotes around the expression
More information about the SA-Exim
mailing list