Messages in this thread | | | Date | Fri, 15 Mar 1996 02:08:48 -0600 (CST) | From | Colten Edwards <> | Subject | Re: irc/ircd loopback problem with (scary) fix. |
| |
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
| |