Why does smail3.1.21 not check queues in daemon mode ??
L. Hirschbiegel
lh at aega84.UUCP
Mon Jun 10 03:29:40 AEST 1991
Here is a question for all smail-3.1 gurus out there.
I'm running smail-3.1.21 on an ISC box (version 2.2.1). It (almost:-)runs
like a charm, but there still is a little problem I've noticed.
I start smail as "/usr/lib/sendmail -bd -q10m" for SMTP connections over
ethernet (TCP/IP v1.2 from ISC). This works fine, but smail refuses to
check the input queues after the specified time intervals.
Trying to track down the problem I have found daemon_mode() in file "modes.c".
Right before calling accept() [ for the smtp service port ] the alarm timer
is set up. I've checked the time value arg for the alarm timer - it is indeed
correct (10 minutes). As far as I have seen from my debug outputs, the
alarm service handler is never called! Amazing...
I'm pretty sure there is no other errno_return from accept when interrupted,
since
as = accept(ls, (struct sockaddr *)&from, &len);
if (as < 0 && errno != EINTR) {
write_log(LOG_PANIC, "accept failed: %s", strerrno());
continue;
}
should create an entry in my panic_log for everything else than EINTR
(which never happened).
Of course I could change the code to mark the socket as non-blocking and
check for EAGAIN, but I think this would increase system overhead notably.
Calling runq from cron is the way to go, but the original ISC sendmail (ugh!:-)
is doing it right when started in daemon mode.
So, is there a bug in ISC's accept() ??
Or do I miss something in my smail configuration (although there isn't much to
configure here)??
Does it work on someone elses ISC box??
--
------------------------------------------------------------------------
L. Hirschbiegel, AEG - A84, Frankfurt (Germany) / email: unido!aega84!lh
More information about the Comp.unix.questions
mailing list