Thanks to Judd and Markus for your replies.
I just may add the snippet in there. A daily report
of who is bogging down our servers would let me
get them out of there instead of waiting a few days
for the things to time out or go away for whatever
reason they do.
I was talking with an admin who was wondering if we
were blocking his servers. I mentioned the problem
w/ the bare line feeds and he said he had installed a
patch to get rid of it. So at least I have something to
tell these people. "Patch your broken server...and
have you looked into qmail?" 8^)
Michael Boyiazis -----
[EMAIL PROTECTED]
NetZero
Mail/Sys/Network Admin
> -----Original Message-----
> From: Racer X [mailto:[EMAIL PROTECTED]]
> Sent: Friday, October 29, 1999 1:37 PM
> To: [EMAIL PROTECTED]
> Subject: Re: snoop and bare line feeds
>
>
> This is a known bug in the Microsoft SMTP server (the thing
> that comes with
> the NT Option Pack). It correctly interprets temporary
> errors as temporary
> and retries the message, but unfortunately it tries again
> IMMEDIATELY, which
> causes a lot of useless traffic.
>
> I can't advise as to what the problem is with that particular
> message; I've
> seen the problem pop up with various temporary errors, but
> it's always MS
> SMTP on the other end.
>
> The solution is to tell the remote to get a real mail server - this is
> pretty broken behavior. You can also, if you have the
> tarpitting patches
> installed, tarpit the remote server, which will at least slow
> it down until
> the remote administrator fixes it.
and:
> What I did was to patch qmail-smtpd.c to report stray newlines:
> There is a function called straynewline().
> To that function I've added:
> logerr("protoerror: "); logerrpid(); logerrf("error: stray
newlines\n");
> (before the _exit(1); :-)
> To make it work you also need the following code snippet:
> char strnum[FMT_ULONG];
> char sserrbuf[512];
> substdio sserr = SUBSTDIO_FDBUF(write,2,sserrbuf,sizeof(sserrbuf));
> void logerr(s) char *s; { if(substdio_puts(&sserr,s) == -1) _exit(1); }
> void logerrf(s) char *s; { if(substdio_puts(&sserr,s) == -1) _exit(1);
> if(substdio_flush(&sserr) == -1) _exit(1); }
> void logerrpid() { strnum[fmt_ulong(strnum,getpid())] = 0; logerr("pid ");
loger
> r(strnum); logerr(": ");}
> (this is only tested with qmail-1.01 but should also work finde with 1.03)
__________________________________________
NetZero - Defenders of the Free World
Get your FREE Internet Access and Email at
http://www.netzero.net/download/index.html