1 This is charybdis 3.0.1, Copyright (c) 2005-2008 Charybdis team.
2 See LICENSE for licensing details (GPL v2).
6 - Fix occasional hung clients with kqueue.
7 - Fix a rare ssld crash.
8 - Fix a bug that could cause incorrect connect failure reasons to be
13 - Port the IRCd to libratbox, which has improved our portability and allows
14 us to reuse low-level code instead of maintaining our own.
15 - Change configuration of maximum number of clients to ircd-ratbox 3 way.
16 - Add adminwall from ircd-ratbox, as an extension.
17 - Add client and server-to-server SSL, read example.conf for setup.
18 - Replace servlink with ssld (also for ziplinks).
19 - A new extban, $z, has been added for ssl users (extensions/extb_ssl.so).
20 - A new compatibility channel mode, +R, has been added, it sets
21 +q/-q $~a (extensions/chm_operonly_compat.so). This is similar to
22 the +R seen in ircd-seven.
23 - A new compatibility channel mode, +S, has been added, it sets
24 +b/-b $~z (extensions/chm_sslonly_compat.so).
25 - A new compatibility channel mode, +O, has been added, it sets
26 +iI/-iI $o (extensions/chm_operonly_compat.so).
27 - Add remote D:lines. Note that these are not enabled by default.
28 - Remove EFnet-style G:lines. Noone appears to use these.
29 - Remove idle time checking (auto disconnecting users idle too long).
30 - Display a notice to clients when the IRCd is shut down using SIGTERM.
31 - Some error messages have been clarified to enhance usability.
32 - Close the link to servers that send invalid nicks (e.g. nicklen mismatches).
33 Formerly the users were killed from the network.
34 - Enable topicburst by default in connect{}.
35 - Fix a potential desync which can happen with oper override.
36 - Remove "deopped" flag (TS5 legacy).
37 - Use 127.0.0.1 as nameserver if none can be found in /etc/resolv.conf.
38 - Only accept 127.0.0.x as a dnsbl listing.
39 - Change cloaking module (same as 2.2.1, different from 2.2.0).
40 - Make some more server notices about failed remote connect attempts
42 - Make some server notices about flooders and TS delta network wide.
43 - Remove redundant "<server> had been connected for <time>" server notice.
44 - Add resv oper privilege to control /resv, /unresv and cmode +L and +P,
46 - Add mass_notice oper privilege to control global notices and /wallops,
48 - Rework unkline/undline/unxline/unresv so they show the exact item removed
49 and do not rehash bans.
50 - Show opers a list of recently (<24hrs) split servers in /map.
51 - Add /privs command, shows effective privileges of a client.
55 - The I/O code has been reworked, file descriptor metadata is stored in a
56 hashtable and the maximum number of clients can now be set in ircd.conf.
57 - Improve error checking and error messages for kline/dline/xline/resv files.
58 - Allow kline ipv6:address, unkline some.host and unkline ipv6:address
60 - Add accountability (wallops, log) to OKICK extension.
61 - Add opernick to OPME/OMODE/OJOIN log messages.
62 - Add use_forward option, allows disabling cmode +fFQ and umode +Q.
63 - Add keyword substitution to DNSBL reasons, making it possible to show
64 things like the user's IP address in the reason.
65 - Use sendto_one_notice() more.
66 - Server notices about kills now include the victim's nick!user@host instead
68 - Include real hostname in Closing Link message for unknown connections
69 that have sent USER, in particular banned users.
70 - Add some documentation about the SASL client protocol.
71 - Change spambot, flooder and jupe joiner notices from host to orighost.
72 - Remove the last remains of server hostmasking (this made it possible to
73 have multiple servers with similar names appear as a single server).
74 - Keep bitmasks of modularized umodes reserved forever to the letter,
75 avoiding problems when reloading umode modules in a different order.
77 - Update to the new revision (v8) of the TS6 spec, this fixes problems with
78 joins reversing certain mode changes crossing them. This interoperates
80 - Put "End of Channel Quiet List" at the end of +q lists.
81 - Fix invisible count getting desynched from reality if the act of opering
83 - Don't leak auth{} spoofed IP addresses in +f notices.
84 - Shorten quit/part/kick reasons to avoid quit reasons overflowing the
85 client exiting server notice (from TOPICLEN to 260).
86 - Fix some cases where 10 char usernames lose their final character.
87 - Move username check after xline and dnsbl checks, so it will not complain
88 to opers about clients who are xlined or blacklisted anyway (both of
89 which silently reject).
90 - Remove invite_ops_only config option, forcing it to YES.
91 - Allow /invite (but not invex) to override +r, +l, +j in addition to +i.
92 - Add several new extensions, such as createoperonly.
93 - Merge whois notice extensions into one and move it from snomask +y to +W.
97 - Fix bug that could cause all hostmangled users to be exempted when a
98 single ban exception existed on a channel.
99 - Tweak \s code a little.
100 - Add a minor clarification to the SGML docs.
101 - Avoid truncation in ip_cloaking (by removing components on the other side).
102 Note that this may cause channel +bqeI modes set on such very long hosts
107 - Search the shortest list (user's/channel's) when looking up channel
109 - Make the SID-collision notice look right under all conditions.
110 - Move kills from services from +s to +k snomask.
111 - When no_tilde is present on an auth{} block, check the non-tilde version
112 of the user@host against k:lines as well.
113 - Put full reason in the SQUIT reason when a server is rejected for
114 insufficient parameters being passed to a command.
115 - Don't redirect users to an existing domain, irc.fi.
116 - Improve communication of servlink-related error messages.
120 - Our official website is now http://www.ircd-charybdis.org/.
121 - Make RPL_ISUPPORT (005 numeric) modularizable.
122 - Also do forwarding if the channel limit (+l) is exceeded.
123 - Don't count opers on service{} servers in /lusers.
124 - Allow servers to send to @#chan and +#chan.
125 - Allow +S clients (services) to send to channels and @/+ channels always.
126 - Allow normal match() on IP address also in /masktrace.
127 - Add new testmask from ratbox 2.2. Allows matches on nick, ip and gecos
128 in addition to user and host, and is fully analogous to masktrace.
129 The numeric has changed from 724 to 727 and fields in it have changed.
130 - Show IP addresses to opers in /whowas.
131 - Add extb_extgecos extban option ($x:nick!user@host#gecos), from sorcery
133 - Add extb_canjoin extban option ($j:#channel), matches if the user is banned
134 from the other channel.
135 - Allow opers to /who based on realhost.
136 - Allow opers to /masktrace, /testmask based on realhost.
137 - Add general::operspy_dont_care_user_info, limits operspy accountability to
138 channel-related information.
139 - Make host mangling more reliable.
140 - Prevent ban evasion by enabling/disabling host mangling.
141 - Add EUID, sends real host and services account in the same command as other
143 - Make it possible to send CHGHOST without ENCAP (fixes problems with old
145 - Allow service{} servers to manipulate the nick delay table (for "nickserv
146 enforcement", aka SVSHOLD).
147 - Send server notices about connections initiated by remote opers network wide.
148 - Fix too early truncation of JOIN channel list.
149 - Make the newconf system available to modules.
150 - Add /stats s to the hurt module to list active hurts.
151 - Add general::servicestring, shown in /whois for opered services (+oS).
152 - Show real host/IP behind dynamic spoof in /whois to the user themselves
154 - Document option to disable nick delay.
155 - Improve logging of server connections.
156 - Clean up handling of hostnames in connect blocks.
157 - Remove support for resolving ip6.int, people should be using ip6.arpa.
158 - Unbreak --disable-balloc (useful for debugging with tools like valgrind).
159 - Make Solaris 10 I/O ports code compile.
160 - Add WEBIRC module to allow showing the real host/IP of CGI:IRC users.
161 - Comment out blacklist{} block in example confs, as AHBL requires
162 notification before use.
163 - Fix some bugs relating to the resolver.
167 - Replace ADNS with a new smaller resolver from ircu and hybrid.
168 - Make services shortcuts (/chanserv etc) configurable in ircd.conf.
169 - Add extban: extensible +bqeI matching via modules. Syntax is
170 $<type>[:<data>]. By default no modules are loaded.
171 - Add DNS blacklist checking.
172 - Change operator{} block user@host from host to orighost. This means that
173 services/+h spoofs do not work in operator{} blocks; auth{} spoofs still
174 work. Check your operator{} blocks!
175 - Split contrib/ into extensions/ and unsupported/.
176 - Change CHGHOST do show the change to all other clients on common channels
178 - Add /rehash nickdelay to clear out the nickdelay tables.
179 - Glines are now disabled in the example confs.
180 - Show more error messages on stderr.
181 - Add OMODE command to extensions/ for easier oper mode hacking.
182 - Add HURT system to extensions/; this shuns clients matching certain host/ip
183 unless and until they identify to services. Mainly intended for SorceryNet.
184 - Show SASL success and failure counts in /stats t.
185 - Allow more frequent autoconnects to servers.
186 - Messaging services by nickname no longer uses target change slots.
187 - Only accept SASL from servers in a service{} block.
188 - New auth{} flag need_sasl to reject users who haven't done SASL
190 - Expand blah.blah and blah:blah to *!*@... instead of ...!*@* for bans
191 - Don't allow opers to fake locops/operwall to +w.
192 - Documentation updates.
197 - Implement SAFELIST.
198 - Incorporate ircu's match() algorithm.
199 - Improve usermode modularization.
200 - Seperate server notices into a seperate snomask, freeing up many
201 usermodes to be used.
202 - Add support for SIGNON originating from Hyperion2.
203 - Modularize many server notices into seperate modules.
204 - Add hooks for can_join and can_create_channel.
205 - Add support for SASL authentication.
206 - Add introduce_user hook for adding new messages when a user is bursted.
207 - Move a large part of the ircd into libcharybdis.
208 - Don't complain "unknown user mode" if a user tries to unset
209 a mode they do not have access to.
210 - Update our challenge specification to the challenge implementation in
211 ratbox 2.2 for interoperability.
212 - Make +f notices network-wide (local host, global host,
213 global user@host, local class), other notices tied to +f remain local.
214 - Allow ENCAP REALHOST outside of netburst.
215 - Add general::global_snotices option to make server notices be
217 - Add sno_farconnect.c to contrib, provides farconnect support.
218 Could be useful for BOPM.
219 - Add sno_routing.c which displays information about netsplits, netjoins
220 and the clients affected by them.
221 - Add CHANTRACE and TRACEMASK commands from ratbox 3.0
222 - Use IsOperAdmin() instead of IsAdmin() when sending admin-only messages,
223 that way hidden admins get them too.
224 - Add m_error to core_module_table, somehow it was missing.
225 - Correct a format string bug that occurs when a read error is
227 - Add some logging in places where we drop servers and only notify
229 - Track hostmask limits based on a client's original host, if
231 - Move HIDE_SPOOF_IPS into the general {} block in ircd.conf
235 - Fix /invite UID leak. (Found by logiclrd@EFnet.)
236 - Incorporate ratbox bugfixes for the MONITOR system.
237 - Made show_ip() less braindead.
238 - Show real errno if we fail to connect to a server.
239 - Don't disclose server IP's when a connection fails.
240 - Do not show the channels a service is sitting in.
241 - Reverted the aline code from hybrid-7.2
242 - Make sure TS6 services are recognized properly if connected remotely.
243 - Tweak something in services support for cyrix boxes.
247 - Fix propagation of an empty SJOIN (permanant channels).
248 - Fix an exploit involving a malformed /trace request.
249 - Don't display a blank RPL_WHOISCHANNELS in a remote whois request.
250 - Allow modules to provide new usermodes.
251 - On a nickname collision, change the collided nick to their unique ID,
252 if general::collision_fnc is enabled in the config.
253 - Don't allow UID lookups in /monitor + and /monitor s
254 - Fix a garbage issue with channel mode +j.
255 - Apply proper capability flags to the proper server in me_gcap().
256 - Use find_named_person() instead of find_person() in a nick collision.
257 - Prevent UID disclosure in cmode setting.
258 - Prevent UID disclosure to remote clients in /kick.
259 - Do not allow users to query via /whois <server> <UID>.
260 - Don't allow local users to use UID's in local usermode changes.
261 - Propagate +q lists on netjunction.
262 - Clear +q lists on a lowerTS SJOIN.
263 - Ported a generic k/d/x-line parser from hybrid-7.2 which resulted in
264 duplicate code reduction.
265 - Fix linebuf raw code to not truncate lines longer than 512 bytes;
266 improves ziplink reliability on net junction.
267 - Use find_named_person() vs find_person() in services alias code.
268 - Fix issue where channel forwarding token can be lost on net junction.
269 - Fix empty channel desync issues involving +P.
270 - Remove unused non-ENCAP CHGHOST support.
271 - Use TS6 form for SQUIT wallops.
272 - Propagate nickname changes for remote clients in TS6 form if possible,
273 even if sent in TS5 format.
274 - Only clear oper_only_umodes for local clients on deoper.
278 - Display logged in status on non-local clients too.
279 - Documentation updates
280 - Fix a bug with forward target authorization.
281 - Fix a bug with mode propagation (+Q/+F).
282 - Change ERR_NOSUCHNICK to ERR_SERVICESOFFLINE in services aliases.
283 - Add remote rehashing.
284 - Document service { } blocks (u:lines on ircu).
285 - Document identify_service and identify_command in reference.conf.
288 - Implement channel mode +L for channel list limit exemptions.
289 - Implement channel mode +P primarily as a status mode, permanant
290 channel -- this is usually enforced via services registrations.
291 - Change behaviour of /stats p: now displays all staff members instead
293 - Make oper_list global, add local_oper_list for local traffic.
294 - Strip control codes from parts and quits.
295 - Add channel mode +c which strips control codes from messages sent to
297 - Add channel mode +g which enables free use of the /invite command.
298 - Add channel mode +z which sends rejected messages to channel ops.
299 Could be useful for Q&A sessions or other similar events.
300 - Add channel quietmasks. These are recommended over the use of channel
301 bans used to remove a user's ability to participate in the channel.
302 - Add channel join throttling mode, +j. Used to throttle channel join
303 traffic, i.e. join/part flood attacks. Syntax: +j <joins>:<timeslice>
304 - Improvements to channel_modes(), from shadowircd -- allows for
305 better construction of the mode string.
306 - Use the undernet throttle notice instead of bancache message when
307 dealing with rejected clients. (stolen from ircu2.10.12)
308 - Add channel forwarding, via channel mode +f, behaves similarly to
310 - Update example.conf to reflect AthemeNET changes. Original ratbox
311 config is now reference.conf.
312 - Services account names are now tracked globally.
313 - Add channel mode +Q which disables the effects of channel forwarding
314 on a temporary basis.
315 - Add channel mode +F which allows anybody to disable forwarding target
316 authorisation, voluntarily on their channels.
317 - Make wallops behave like normal wallops.
318 - Add services aliases: /ns, /cs, /os, /nickserv, /chanserv, /operserv.
319 - Add simple hack that enables use of server password for automatic
322 -- ircd-ratbox-2.1.5+datadrain
323 - fix a buffer overflow and an unterminated buffer when TS6 forces us
325 - fix potential junk SJOIN generation when splitting it into multiple
327 - make servlink check for an uncompressed ERROR
328 - change NICKLEN to 15.
329 - change TOPICLEN to 390.
330 - force services extensions to be enabled always
331 - change patchlevel.h to get it's information from 'configure'
332 - add m_chghost.c, ghetto rigged hostcloaking module, using elite ENCAP
336 - fix minor time bug which occurs on december 31st
337 - dont drop a servers link when we get a malformed WHOIS
338 - disallow commas in channel keys
339 - fix compile problem with abort_list
340 - fix build on darwin
341 - fix compilation with gcc4
342 - userhost was only allowing 4 targets instead of 5
343 - invalidate channel ban cache on nickchange
344 - add TARGMAX to 005, detailing maximum targets for messages
345 - fix counting of clients on accept list when adding users
346 - use ID instead of name when bursting SJOIN to TS6 servers
347 - lower id in struct User, which was one byte bigger than it needs to be
350 - removed sendq_eob as it just doesnt work on efnet
351 - dont allow MONITOR from an unregistered client
352 - add some uniqueness into the auth process for bopm
353 - fix resvs to check whether target server is us properly
354 - fix a core in cidr channel ban matching
355 - raise max temptime to a year
356 - fix cores when we receive extra params to NICK/UID
357 - remove no_oper_resvs, add resv_exempt auth flag
358 - fix flattened links
359 - clean up the accept code, and dont clear a users own list of accepted
360 clients on nickchange
362 - make services {}; blocks be displayed on stats U
363 - make services {}; blocks apply on rehash, you must now have only ONE
364 service {}; block, but you may have multiple name=""; entries within.
365 - only show services logged in info for local clients
368 - fix missing end comment tag in example confs
369 - fix display problem with unauthorised conn notice
370 - remove some unused defines from INFO
371 - fix tabs for spaces in some helpfiles
372 - add in missing links_delay conf option
373 - fix cores under amd64
374 - disallow bans beginning with ':' over BMASK
375 - disallow bans with a space in chm_ban()
376 - stop counting hidden opers in stats p count output
377 - match() params of remote unresv were inverted, causing it to never match
378 - fix possibility of clients setting blank keys
379 - fix UID problems with trace
380 - raise default topiclen to 160
381 - add in forced nick change for ratbox-services, when compiled with
385 - remove an 005 token to hack around the parser bug
386 - exempt users messaging themselves from target change
387 - disallow messaging towards UIDs
388 - add in doc/tgchange.txt
389 - move stats L back to RPL_STATSLINKINFO
390 - fix some minor auth problems
391 - properly store ipv6 ips when we're compiled for v4 only
392 - fix propagation of xline/resv
393 - sync remote kline reasons with form used for local klines
398 -- ircd-ratbox-2.1.0beta2
399 - fix a few compile warnings
400 - added multi-prefix clicap, for showing "@+" in NAMES/WHO replies
401 - remove split_delay, make split servers now work on how many servers have
402 issued EOB, rather than how many exist.
403 - server-side notify lists. See doc/monitor.txt
405 - remove an unwanted space from beginning of second 005
406 - fix a potential core with the patricia when removing classes
407 - when we're handling global NAMES, dont output channels whose users are all
410 -- ircd-ratbox-2.1.0beta1
411 - No release notes, see doc/whats-new-2.1.txt
413 --------------------------------------------------------------------------------
415 BUGS: Major bugs in this release are listed in BUGS
417 BUG REPORTS: If you run this code and encounter problems, you must report
418 via IRC to irc.atheme.org, #charybdis. For specific bugs you can use
419 http://bugs-meta.atheme.org/ (Charybdis project).
421 Please include a gdb backtrace and keep the core file, binaries and
422 modules in case the developers need them.
424 Other files recommended for reading: BUGS, README.FIRST, INSTALL
426 --------------------------------------------------------------------------------
427 $Id: NEWS 3496 2007-05-30 10:22:01Z jilles $