elemental-ircd/libratbox
Jilles Tjoelker 98686f18e9 Fix kqueue sometimes dropping updates.
(ircd wouldn't read or write anymore to certain clients)
This happens because kqueue.c will often try to add
already closed file descriptors to the kqueue. The kernel
tries to report bad file descriptors in the eventlist; if
the eventlist has no space, processing of the changelist
is silently halted.
The fix:
1. allocate two kqlst things, one for what kqlst currently does
and one as output buffer
this ensures the kevent(2) call in rb_select_kqueue() never
drops updates
2. replace the kevent(2) call in kq_update_events() by a loop
that processes the updates one at a time
that doesn't happen much, and it's the only way to be sure
without also getting events out of the queue we cannot process
at that time
libratbox r25354 (jilles)
2008-05-12 18:54:20 +02:00
..
include patricia: remove ugly abuse of K&R style function declaration 2008-04-13 18:20:18 +02:00
src Fix kqueue sometimes dropping updates. 2008-05-12 18:54:20 +02:00
.indent.pro Pull in libratbox from ircd-ratbox-3.0.0beta1 and integrate into the build system. 2008-04-01 11:52:26 -05:00
COPYING Pull in libratbox from ircd-ratbox-3.0.0beta1 and integrate into the build system. 2008-04-01 11:52:26 -05:00
CREDITS Pull in libratbox from ircd-ratbox-3.0.0beta1 and integrate into the build system. 2008-04-01 11:52:26 -05:00
ChangeLog Pull in libratbox from ircd-ratbox-3.0.0beta1 and integrate into the build system. 2008-04-01 11:52:26 -05:00
INSTALL Pull in libratbox from ircd-ratbox-3.0.0beta1 and integrate into the build system. 2008-04-01 11:52:26 -05:00
Makefile.am Pull in libratbox from ircd-ratbox-3.0.0beta1 and integrate into the build system. 2008-04-01 11:52:26 -05:00
Makefile.in Run autoreconf. 2008-04-01 11:53:46 -05:00
README Pull in libratbox from ircd-ratbox-3.0.0beta1 and integrate into the build system. 2008-04-01 11:52:26 -05:00
TODO Pull in libratbox from ircd-ratbox-3.0.0beta1 and integrate into the build system. 2008-04-01 11:52:26 -05:00
acinclude.m4 Pull in libratbox from ircd-ratbox-3.0.0beta1 and integrate into the build system. 2008-04-01 11:52:26 -05:00
aclocal.m4 Run autoreconf. 2008-04-01 11:53:46 -05:00
config.guess Pull in libratbox from ircd-ratbox-3.0.0beta1 and integrate into the build system. 2008-04-01 11:52:26 -05:00
config.sub Pull in libratbox from ircd-ratbox-3.0.0beta1 and integrate into the build system. 2008-04-01 11:52:26 -05:00
configure Run autoreconf. 2008-04-01 11:53:46 -05:00
configure.ac Pull in libratbox from ircd-ratbox-3.0.0beta1 and integrate into the build system. 2008-04-01 11:52:26 -05:00
depcomp Pull in libratbox from ircd-ratbox-3.0.0beta1 and integrate into the build system. 2008-04-01 11:52:26 -05:00
install-sh Pull in libratbox from ircd-ratbox-3.0.0beta1 and integrate into the build system. 2008-04-01 11:52:26 -05:00
ltmain.sh Pull in libratbox from ircd-ratbox-3.0.0beta1 and integrate into the build system. 2008-04-01 11:52:26 -05:00
missing Pull in libratbox from ircd-ratbox-3.0.0beta1 and integrate into the build system. 2008-04-01 11:52:26 -05:00

README

This is libircd from ircd-ratbox.  A few notes about this library:

1. Most of this code isn't anywhere near threadsafe at this point.  Don't
   hold your breath on this either.
2. The linebuf code is designed to deal with pretty much 512 bytes per line
   and that is it.  Anything beyond that length unless in raw mode, gets
   discard.  For some non-irc purposes, this can be a problem, but for
   ircd stuff its fine.
3. The helper code when transmitting data between helpers, the same 512 byte
   limit applies there as we recycle the linebuf code for this.