Re: irc/ircd loopback problem -- Further details

Joel Katz (stimpson@stimpson.igc.net)
Thu, 14 Mar 1996 20:54:14 -0500 (EST)


It is the buffer changes that are causing the problem. IRCD
changes both the send and receive buffers to 8,192 bytes. Commenting out
the buffer size change code solves the problem. I haven't tried other
buffer sizes yet.

Since the error does not affect ircd->irc_client data flow but
only blocks irc_client->ircd flow, I would suspect it is the receive
buffer size change that is killing it. Perhaps some new code incorrectly
assumes the buffer size to be something other than what ircd changes it to.

I'll continue investigating.

Joel Katz

On Thu, 14 Mar 1996, Linus Torvalds 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.
> >
> > I hope this information helps those who need a quick workaround
> > and maybe also leads to a real fix.
>
> Thanks, this does indeed seem like it might be helpful. Could you try to narrow
> this down further to just one of the socket options, and if it's the
> SNDBUF/RCVBUF one maybe you could try to see what happens with different buffer
> values?
>
> Thanks,
> Linus
>