1 |
|
2 |
Whats changed in the codebase |
3 |
|
4 |
# $Id$ |
5 |
|
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. |