| 1 |
adx |
30 |
|
| 2 |
|
|
Whats changed in the codebase |
| 3 |
|
|
|
| 4 |
knight |
31 |
# $Id$ |
| 5 |
adx |
30 |
|
| 6 |
|
|
First, please note one thing - a *LOT* has changed in hybrid-7. |
| 7 |
|
|
|
| 8 |
|
|
* Most of the file descriptor and network code has been rewritten. |
| 9 |
|
|
A lot of ideas were borrowed from squid, but they have been simplified |
| 10 |
|
|
in places and extended in others to cover the needs of hybrid-7. |
| 11 |
|
|
|
| 12 |
|
|
The core network routines now sit in src/s_bsd.c. There are some remnants |
| 13 |
|
|
of client/server specific functions which should really be moved. |
| 14 |
|
|
The actual network IO loop lives in src/s_bsd_${type}.c where ${type} |
| 15 |
|
|
is the type of network loop (poll, select, kqueue, etc.) |
| 16 |
|
|
You can select the type of network loop by passing --enable-${type} / |
| 17 |
|
|
--disable-${type} to configure. |
| 18 |
|
|
|
| 19 |
|
|
Note: the code hasn't been rearranged, its been rewritten. We think |
| 20 |
|
|
it is more efficient, but the split-list code in s_bsd_poll.c needs some |
| 21 |
|
|
further research. |
| 22 |
|
|
|
| 23 |
|
|
Please read the documentation available, which will go into more detail. |
| 24 |
|
|
|
| 25 |
|
|
* An event system has been added, again borrowed mainly from squid. This |
| 26 |
|
|
allows periodic events (channel cleanup, server connection retries, etc) |
| 27 |
|
|
to be scheduled without needing to add it to the main loop. |
| 28 |
|
|
|
| 29 |
|
|
* Server to server links are now handled by the 'servlink' program |
| 30 |
|
|
(located in the servlink/ directory). After negotiating a server<->server |
| 31 |
|
|
link, (CAPAB/SERVER/PASS or CAPAB/CRYPTSERV/CRYPTAUTH) hybrid-7 will |
| 32 |
|
|
fork, then exec a servlink process. ircd-hybrid communicates with the |
| 33 |
|
|
program using a control socket (turn on/off crypto/zip, etc), and |
| 34 |
|
|
a data socket (which looks to the rest of the code like a network socket |
| 35 |
|
|
connected to the remote server). The servlink process handles encryption |
| 36 |
|
|
and compression of server links, but is still compatable with ziplinks |
| 37 |
|
|
used in hybrid-6, and the hybrid-6 cryptlinks patch. |