]>
Commit | Line | Data |
---|---|---|
189935b1 | 1 | Hi fellow undernetters, |
2 | ||
3 | I forgot if it was requested on routing-com or here, but you won't see me | |
4 | cross posting, so I did choose 'wastelanders'. | |
5 | ||
6 | The request was to mail an overview of the changes 2.8 ==> u2.9, | |
7 | especially for the new Opers, but also as a reminder for others. | |
8 | ||
9 | The patch file from irc2.8.21.mu3.1 to ircu2.9.17.mu is 446652 bytes. | |
10 | So you will understand I can't cover every little change. | |
11 | ||
12 | New commands | |
13 | ------------ | |
14 | ||
15 | /UPING <server.to> [<port>] [<server.from>] [<number of packets>] | |
16 | ||
17 | Sends <number of packets> (default 5, max 20) size 1024 bytes, from (remote) | |
18 | server <server.from> (default local server) to <server.to>. The default | |
19 | port is 7007 and the same on all servers. If a server is down, you can | |
20 | still use port 7 (echo). Also 2.8 echo's, on port PORTNUM (config.h). | |
21 | UPING uses udp, you need CN lines (masks as server names are allowed) but | |
22 | the connection doesn't have to exist already. | |
23 | ||
24 | /RPING <server.to> [<server.from>] [<Optional remark>] | |
25 | ||
26 | Sends one 'RPING' message using the irc protocol over an existing link. | |
27 | It allows to measure the lag of remote links, respons is in ms accuracy. | |
28 | The <Optional remark> can be used to measure to total pingtime to your | |
29 | client (like the CTCP PING) or to add a serial number for automation. | |
30 | ||
31 | /MAP [server.mask] | |
32 | ||
33 | Shows a map in the layout as Router. | |
34 | ||
35 | /SETTIME | |
36 | ||
37 | Only for debugging, isn't needed. (Oper only). | |
38 | ||
39 | Changed commands | |
40 | ---------------- | |
41 | ||
42 | /CONNECT | |
43 | ||
44 | No doubt the biggest impact of 2.9 is on connecting: | |
45 | When the link is physically possible, your /connect ALWAYS succeeds | |
46 | except when an H: or L: line somewhere on the net forbids it, or when | |
47 | *after* your connect another connect is done that cause a loop. The only | |
48 | restriction is that you are not allowed to make deliberately a loop: | |
49 | you must first squit. Loops only happen when to connects are done | |
50 | simultaneously and the SERVER messages had not yet time to propagate | |
51 | over the whole net. | |
52 | When a connect (manual or automatically) is done for a link that used | |
53 | to get "server exists", with 2.9 the Ghost is squitted off the net, | |
54 | making it possible to recover faster from breaks caused by bad links. | |
55 | If on the other hand a loop occurs because two parts connect at two | |
56 | points, the servers that detect the server nick collision will squit | |
57 | the most logical link to break the loop, and only one link. This results | |
58 | thus in a connected net one way or the other (for this all 2.8 servers need | |
59 | to be off the net! Till that time the net will connect and then break | |
60 | at two places, giving more messages then right now with only 2.8). | |
61 | 2.9 servers also notify the Opers (or users with +s) about net.junctions | |
62 | and net.breaks. It does this even better then Router: A lot faster, always | |
63 | correct (REAL junctions), and independent of Router: You will also see | |
64 | them when Router is 'on the other side'. | |
65 | ||
66 | /TIME | |
67 | ||
68 | Has changed. Now also shows the system clock / TimeStamp clock offset. | |
69 | ||
70 | /MODE +b | |
71 | ||
72 | You only have to be joined, not be chan op anymore. | |
73 | ||
74 | /MODE <nick> +d | |
75 | ||
76 | Makes the user 'Deaf'. Needed for the channel registration service. | |
77 | Channel messages are not routed to a Deaf person decreasing bandwidth use. | |
78 | ||
79 | /LINKS | |
80 | ||
81 | Output also shows used protocol for that link. | |
82 | ||
83 | New numerics | |
84 | ------------ | |
85 | ||
86 | RPL_MAP, RPL_MAPMORE, RPL_MAPEND and RPL_TRACEPING. | |
87 | ||
88 | Bug fixes | |
89 | --------- | |
90 | ||
91 | - A handshaking link doesn't pingtime out; That can interfere with | |
92 | slow nameserver lookups. | |
93 | ||
94 | - U: lines (and K: lines) now active directly after a /rehash | |
95 | ||
96 | - Don't bind() a socket before connect(), thats useless on machines | |
97 | with just one ip number (like we all have), and can confuse | |
98 | some OS's I found out. | |
99 | ||
100 | Significant Patches | |
101 | ------------------- | |
102 | ||
103 | The following patches have been the objective. To realize them I needed to | |
104 | rewrite and change huge other parts of the code also, because lot of the code | |
105 | in 2.8 is under great tension of re-re-re-patches. | |
106 | ||
107 | - Rewrote m_server. Objective: | |
108 | = Allow ghosted servers to reconnect (solution "server exists"). | |
109 | To allow for this: | |
110 | - Added a timestamp to SQUIT, this timestamp functions as a label | |
111 | which matches the corresponding SERVER (connect). | |
112 | - Added a prefix for every message, absolutely necessary to keep track | |
113 | of the correct order (direction actually). | |
114 | ||
115 | - The oci has been added (oper sees invisibles on own server). | |
116 | ||
117 | - A new NOTE is added, many bugs removed and extremely speeded up due to | |
118 | a better interface with the rest of the code. | |
119 | ||
120 | - The TimeStamp clocks are now automatically synchronized, so a wrong | |
121 | system clock isn't a problem anymore. | |
122 | ||
123 | - Added a Protocol-version and detection. This allows protocol changes | |
124 | with a *MUCH* higher backwards compatibility. | |
125 | ||
126 | - Server now keeps track of the server map. This allowed for /MAP and | |
127 | a lot of speed ups (don't have to scan through all clients to find a | |
128 | server) but much more important: The disconnect burst could be brought | |
129 | back to ONE message (instead of a QUIT for ever single client). | |
130 | Apart from decreasing bandwidth use, this was necessary for other | |
131 | important protocol changes, and even more to allow important future | |
132 | changes that will reduce the connect.burst as well. The most important | |
133 | current impact is that it allows SQUIT to travel down stream AND up stream. | |
134 | Because directionless messages can loose the order, the timestamp on | |
135 | SQUIT was needed to check the validity. | |
136 | ||
137 | - In the client structure a pointer to the server structure is used | |
138 | rather then the full servername, using less memory AND speeding up | |
139 | several places because you don't need to lookup the servername | |
140 | anymore. | |
141 | ||
142 | - USER removed from the connect burst (now all in NICK). | |
143 | ||
144 | Other patches | |
145 | ------------- | |
146 | ||
147 | - exit_client() is rewritten. | |
148 | Added are exit_client_msg() and exit_new_server(). | |
149 | This has especially impact on the possibilities within the protocol. | |
150 | The old exit_client() was clumsy and therefor already used in an incorrect | |
151 | way at several places. The kludges around this part of the code made it | |
152 | impossible to make any changes without breaking something else. Only after | |
153 | the rewrite it was possible to make changes described else where. | |
154 | This also allowed to improve the error message handling to the point that | |
155 | Opers see *always* the error messages involved with routing (also those | |
156 | from remote /connects, delayed errors and squit reasons 'from the other | |
157 | side'). | |
158 | ||
159 | - send.c is more or less rewritten. varargs are fixed now and send.c is | |
160 | highly optimized for speed (possible because of new internal server map). | |
161 | ||
162 | - All useable dog3 code speed ups have been added. | |
163 | These include: | |
164 | - Added a head pointer in the dyn buffer. | |
165 | - several code optimisations | |
166 | - continious kill line checking removed (I added the check at | |
167 | the place where it belongs: after a /rehash). | |
168 | ||
169 | - Useable patches from dl: | |
170 | - Stop as much as possible flooding from unregistered connections. | |
171 | - VERSION and ADMIN available for unregistered users. | |
172 | - syslog (if defined) KILLs of local clients. | |
173 | ||
174 | - Many compile warnings have been removed. Also a special fix for DYNIX to | |
175 | make UPING/RPING also work there (needed gettimeofday()). | |
176 | ||
177 | Package changes | |
178 | --------------- | |
179 | ||
180 | - The irc client is removed from the package as are several old files with | |
181 | incorrect old useless info (Like 'WHATSNEW', ChangeLog that stopped at 1992). | |
182 | - A Makefile.dist is added. | |
183 | - Slighty changed doc/Manual | |
184 | - New doc/NOTE manual | |
185 | - NO_DEFAULT_INVISIBLE removed; users are always visible by default. | |
186 | - Last but not least: patchlevel.h is rewritten so any additional patch | |
187 | can do the version update itself, without interfering: No need to edit | |
188 | this by hand anymore. | |
189 | ||
190 | Summary | |
191 | ======= | |
192 | ||
193 | - Less memory usage | |
194 | - Speeded up code | |
195 | - Less bandwidth use, especially disconnect burst | |
196 | - "Server exists" solved | |
197 | - Error messages concerning (remote) /connects now always visible. | |
198 | - New tools to do (remote) link testing | |
199 | - Intelligent and improved SQUIT handling, should stop unwanted breaks. | |
200 | - squits comments visible everywhere. | |
201 | - net.junction and net.break notices | |
202 | - Overall protocol streamlining allowing for future improvements | |
203 | of the protocol. | |
204 | ||
205 | Run | |
206 |