42 lines
2.1 KiB
Text
42 lines
2.1 KiB
Text
|
|
Whats changed in the codebase
|
|
|
|
# $Id: whats-new-code.txt,v 1.2 2002/08/13 14:45:08 fishwaldo Exp $
|
|
|
|
First, please note one thing - a *LOT* has changed in hybrid-7.
|
|
|
|
* Most of the file descriptor and network code has been rewritten.
|
|
A lot of ideas were borrowed from squid, but they have been simplified
|
|
in places and extended in others to cover the needs of hybrid-7.
|
|
|
|
The core network routines now sit in src/s_bsd.c. There are some remnants
|
|
of client/server specific functions which should really be moved.
|
|
The actual network IO loop lives in src/s_bsd_${type}.c where ${type}
|
|
is the type of network loop (poll, select, kqueue, etc.)
|
|
You can select the type of network loop by passing --enable-${type} /
|
|
--disable-${type} to configure.
|
|
|
|
Note: the code hasn't been rearranged, its been rewritten. We think
|
|
it is more efficient, but the split-list code in s_bsd_poll.c needs some
|
|
further research.
|
|
|
|
Please read the documentation available, which will go into more detail.
|
|
|
|
* An event system has been added, again borrowed mainly from squid. This
|
|
allows periodic events (channel cleanup, server connection retries, etc)
|
|
to be scheduled without needing to add it to the main loop.
|
|
|
|
* The old dbuf code (send and receive buffering for clients/servers) has been
|
|
replaced by a new module - linebuf. The linebuf code breaks data into
|
|
"lines" which allows flood prevention and limiting to be performed before
|
|
sending the code to the main parser.
|
|
|
|
* Server to server links are now handled by the 'servlink' program
|
|
(located in the servlink/ directory). After negotiating a server<->server
|
|
link, (CAPAB/SERVER/PASS or CAPAB/CRYPTSERV/CRYPTAUTH) hybrid-7 will
|
|
fork, then exec a servlink process. ircd-hybrid communicates with the
|
|
program using a control socket (turn on/off crypto/zip, etc), and
|
|
a data socket (which looks to the rest of the code like a network socket
|
|
connected to the remote server). The servlink process handles encryption
|
|
and compression of server links, but is still compatable with ziplinks
|
|
used in hybrid-6, and the hybrid-6 cryptlinks patch.
|