Subject: (3.9) syslog message: ME cant accept RCreader |
---|
Situation: INN 1.4sec on ICS2.0 or Interactive Unix System V Release 3.2 or one of the many SVR4 Unix's. You get syslog messages like: Jul 14 12:07:44 isdn.IFNS.DE innd: ME cant accept RCreader No more Jul 14 12:07:44 isdn.IFNS.DE innd: ME cant accept RCreader Protocol error May 7 12:05:07 salyko.cube.net innd: ME cant accept RCreader Protocol errorwhen you connect to innd from a remote machine, but not from the local host. Problem: Well, that's just another bug in the SVR4 networking code. Chris Munonye <munonye@ifns.de> reports that this patch fixed the problem: *** RCS/rc.c Sun Jul 18 15:02:50 1993 --- rc.c Sun Jul 18 15:04:35 1993 *************** *** 173,178 **** --- 173,181 ---- /* Get the connection. */ size = sizeof remote; + if (SetNonBlocking(cp->fd, FALSE) < 0) + syslog(L_ERROR, "%s cant un-nonblock %d in RCreader(errno %d) %m :", + LogName, cp->fd, errno); if ((fd = accept(cp->fd, (struct sockaddr *)&remote, &size)) < 0) { syslog(L_ERROR, "%s cant accept RCreader %m", LogName); return;Under Solaris, when accept() fails and sets errno to EPROTO, it means the client has sent a TCP reset before the connection has been accepted by the server. Therefore, the syslog messages Inn produces: innd: ME cant accept RCreader Protocol errorcan be merely ignored under Solaris. Note that in 2.5.1 with the Internet Server Supplement and also in 2.6 the errno for this case has changed from EPROTO to ECONNABORTED. ------------------------------ [Last Changed: $Date: 1997/11/03 18:15:12 $ $Revision: 2.18 $] [Copyright: 1997 Heiko Rupp, portions by Tom Limoncelli, Rich Salz, et al.] |