Sorry, Absolutely not. I am not putting in a knob for this If you're crazy enough to run an MTA on a non-standard port you know enough to recompile.
-Bob * Joachim Schipper <[EMAIL PROTECTED]> [2007-03-18 16:16]: > On Sun, Mar 18, 2007 at 08:57:32PM +0000, Stuart Henderson wrote: > > On 2007/03/18 16:35, Peter wrote: > > > On OpenBSD 4.0, how do I specify what port spamlogd should consider SMTP? > > > My > > > MTA is running on a non-standard port. > > > > edit /usr/src/libexec/spamlogd/spamlogd.c and recompile - > > it's hardcoded "ip and port 25 ..." > > Would something like the following not do the trick? > > (Warning to the original poster: please wait for a while for more > clueful people to tell me I screwed up before actually trying to run > with this diff - there is no obvious reason why it wouldn't work, but I > didn't test it, can not claim familiarity with this code, and still have > a lot to learn. Stuart seems to think the general idea would work, > though.) > > Another warning: this diff is against the version in my (-current) > source tree, which is rather recent. So it might not be the newest, but > it's certainly removed somewhat from the 4.0 spamlogd. > > Joachim > > Index: spamlogd.8 > =================================================================== > RCS file: /var/nfs/cvsync/src/libexec/spamlogd/spamlogd.8,v > retrieving revision 1.12 > diff -u -b -B -u -r1.12 spamlogd.8 > --- spamlogd.8 4 Mar 2007 09:58:22 -0000 1.12 > +++ spamlogd.8 18 Mar 2007 21:23:52 -0000 > @@ -37,7 +37,7 @@ > updates the > .Pa /var/db/spamd > whitelist entries whenever a connection > -to port 25 is logged to the > +to the specified port (port 25 by default) is logged to the > .Xr pflog 4 > interface. > The source addresses of inbound connections are whitelisted > @@ -77,6 +77,9 @@ > interface to listen for connection notifications. > The default is to watch for connections logged on > .Dq pflog0 . > +.It Fl p mailport > +port on which incoming mail will arrive. > +The default is to watch for connections to port 25. > .It Fl Y Ar synctarget > Add a target to receive synchronisation messages; see > .Sx SYNCHRONISATION > Index: spamlogd.c > =================================================================== > RCS file: /var/nfs/cvsync/src/libexec/spamlogd/spamlogd.c,v > retrieving revision 1.19 > diff -u -b -B -u -r1.19 spamlogd.c > --- spamlogd.c 5 Mar 2007 14:55:09 -0000 1.19 > +++ spamlogd.c 18 Mar 2007 21:21:52 -0000 > @@ -70,6 +70,7 @@ > u_int8_t flag_inbound = 0; > char *networkif = NULL; > char *pflogif = "pflog0"; > +int mailport = 25; > char errbuf[PCAP_ERRBUF_SIZE]; > pcap_t *hpcap = NULL; > struct syslog_data sdata = SYSLOG_DATA_INIT; > @@ -109,8 +110,9 @@ > init_pcap(void) > { > struct bpf_program bpfp; > - char filter[PCAPFSIZ] = "ip and port 25 and action pass " > - "and tcp[13]&0x12=0x2"; > + char filter[PCAPFSIZ]; > + > + snprintf(filter, sizeof(filter), "ip and port %d and action pass and > tcp[13]&0x12=0x2", mailport); > > if ((hpcap = pcap_open_live(pflogif, PCAPSNAP, 1, PCAPTIMO, > errbuf)) == NULL) { > @@ -299,6 +301,7 @@ > struct servent *ent; > char *sync_iface = NULL; > char *sync_baddr = NULL; > + const char *errstr; > > if ((ent = getservbyname("spamd-sync", "udp")) == NULL) > errx(1, "Can't find service \"spamd-sync\" in /etc/services"); > @@ -317,6 +320,11 @@ > break; > case 'l': > pflogif = optarg; > + break; > + case 'p': > + mailport = strtonum(optarg, 0, 65535, &errstr); > + if (errstr) > + errx(1, "The mail port is %s: %s", errstr, > optarg); > break; > case 'Y': > if (sync_addhost(optarg, sync_port) != 0) > -- #!/usr/bin/perl if ((not 0 && not 1) != (! 0 && ! 1)) { print "Larry and Tom must smoke some really primo stuff...\n"; }