Re: irc/ircd loopback problem with (scary) fix.

Colten Edwards (edwards@panasync.canuck.ca)
Fri, 15 Mar 1996 02:08:48 -0600 (CST)


On Wed, 13 Mar 1996, Joel Katz wrote:

>
> It seems the irc/ircd loopback problem with 1.3.64-1.3.73 has
> something to do with the socket options ircd likes to set. If you prevent
> ircd from setting any socket options, local irc/ircd works fine.
>
> In s_bsd.c, comment out all the code in set_sock_opts and
> irc/ircd loopback works. All this function does is set
> SO_REUSEADDR, possibly SO_USELOOPBACK, and possibly try to change the
> RCVBUF/SNDBUF to 8192 bytes.
>
This is much apprectiated. The actual problem looks like it's with the
setup of the SO_RCVBUF code. In other works I narrowed it down into
removing the following piece of code from s_bsd.c in ircd source.

#if 0
#ifdef SO_RCVBUF
opt = 8192;
if (setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &opt, sizeof(opt)) < 0)
report_error("setsockopt(SO_RCVBUF) %s:%s", cptr);
#endif
#endif

As soon as I removed this piece of code from ircd inet sockets started
working again. Looks like SO_SNDBUF works though as it set directly below
this piece of code. Someone familar with the internals of networking
should look into this. I spent the afternoon screwing around with patch
files and trying to narrow it down to a single piece of code... Waste of
time looks like.

Colten Edwards