This is ircd-seven 1.1, Copyright (c) 2005-2010 Stephen Bennett and the Charybdis team. See LICENSE for licensing details (GPL v2). -- ircd-seven-1.1.0 oper - User mode +O, as well as +o, is now exempted from the effects of +g/+R. config - Flood control is now configurable. misc - The burst_klines extension has been removed; charybdis-3.3's propagating bans make it redundant. - All changes and new functionality from charybdis 3.2, 3.3 and early 3.4 development have been brought in. Relative to ircd-seven-1.0, this means CERTFP, bandb, and everything changed in charybdis-3.3.0. -- charybdis-3.4.0 server protocol - SSL client certificates can now be used as linking credentials user - ERR_TOOMANYCHANNELS is now sent for every channel join that failed, instead of only the first one. - Two new client capabilities are available: ACCOUNT-NOTIFY and EXTENDED-JOIN. These allow clients to track account names of other clients which share a channel. config - The disable_local_channels configuration option has been ported from ircd-seven. - SHA-256 and SHA-512 hashes may now be used for passwords. DES is no longer supported. -- charybdis-3.3.0 server protocol - Add new BAN command, for propagated network-wide bans (K/X:lines and RESVs). These will burst to new servers as they are introduced, and will stay in sync across the whole network (new BAN capab). - Add new MLOCK command, to implement ircd-side channel mode locks. This allows services to send out a list of mode letters for a given channel which may not be changed, preventing mode fights between services and client bots (new MLOCK capab). user - New RPL_QUIETLIST(728) and RPL_ENDOFQUIETLIST(729) numerics are used for the quiet (+q) list, instead of overloading the ban list numerics. - Users may no longer change the topic of a -t channel if they cannot send to it. - Add help for EXTBAN, describing the syntax of extended bans in general, as well as the most common types. - Changed AWAY messages are now propagated to other servers. Previously, AWAY was only propagated when the user was not already away. - Channel mode +c (and other places that disallow colour codes) now also strip ASCII 29 (mIRC 7 italics). - Add auto-accept for user mode +g (callerid): Messaging a user while set +g will automatically add them to your accept list. - Add target change for channels. It applies to unopped, unvoiced and unopered users. This has the effect of stopping spambots which join, message and part many channels at a time. - Show RPL_WHOISLOGGEDIN in /whowas as well as in /whois entries. This adds at most an additional 0.5MB of memory usage. oper config - Add general::use_propagated_bans to switch the new BAN system on or off. - Add general::default_ident_timeout, to control the timeout for identd (auth) connections. - Add channel::channel_target_change to switch the new channel target change limits on or off. - Fix class::number_per_ident so that it also applies to connections without identd. - Change the example sslport option to 6697, which is more standard than 9999. misc - The custom channel mode API has been rewritten, allowing these modules to work correctly when reloaded, or loaded from the config file. - The EFNet RBL is now recommended, instead of DroneBL. - Remove the unsupported modules directory. - Numerous bug fixes and code cleanups. - In mkpasswd, default to MD5 crypt instead of insecure DES. -- ircd-seven-1.0.0 ircd-seven-1.0.0 is based on the charybdis-3.2 development tree. It contains many, but not all, of the changes mentioned for 3.2.0. Notable omissions are bandb and CERTFP. server protocol - New REMOVE command and capability (see below, in 'user'). - TOPIC is always accepted from remote users. Previously +o/+t checks were done on all users, local or remote. user - User mode +i (invisible) also now hides the user's channel list from WHOIS, in line with traditional freenode/hyperion behaviour. - Add REMOVE command. The semantics of this are exactly as for KICK, but it will be sent to clients as ':victim PART #channel :requested by op: "reason"'. - User-provided PART messages are quoted, to prevent spoofing REMOVEs. - Add forwarding bans. Appending '$#channel' to any ban mask will cause matching users to be forwarded (in the same manner as channel mode +f) to #channel when they attempt to join. Conditions for setting these are the same as for mode +f. - $ is no longer allowed in channel names, to remove ambiguities when forwarding bans and extended bans are combined. - Add IDENTIFY-MSG client capability. This will prepend all PRIVMSG and NOTICE text with + or -, depending upon whether the source user is logged in to an account which owns the nickname they are currently using. - New channel mode +C will block channel-wide CTCP requests, other than ACTION. - KILLs by services clients are no longer displayed as such to users; the client will appear to quit with the message 'Disconnected by services'. The KILL source and message will still be displayed to the user exiting, and to opers via server notices. oper - The operator privilege flags have been completely rearranged relative to charybdis. - New umode +O, or 'helper'. This denotes an IRC Operator with none of the privilege usually granted by user mode +o. Oper-only commands except for OPERWALL will not be available even if the appropriate privilege flags are granted. This is intended to work with the operwall and helpop privileges only. - New umode +h, to appear in /stats p. This now only shows users with the +h umode set who are not AWAY. - Opername and privilege information is displayed in WHOIS output to those with appropriate privileges. - New umode +p, for oper-override. This allows the operator to join any channel, send to any channel they are in, and perform operator actions on any channel, regardless of channel modes and operator status. Any use of oper-override will cause network-wide server notices to be sent. This user mode will expire after a configurable time period. - New GRANT command, to grant or revoke operator privileges to a given user, without requiring O:line changes. - DIE, RESTART, and the MOD* commands may be used remotely, with the appropriate shared flags. - New DEHELPER command, to unset user mode +h on an idle operator. - New channel mode +M prevents IRC Operators from being kicked from the channel in question. This is completely invisible to non-opers. - Lots of server notices that were previously local are now global. - Real hostnames and IP addresses are shown to opers in WHOIS for all users, not only those with dynamic (services) spoofs. - New sno_channelcreate extension (snomask +l), to notify on new channel creation. - New sno_globalnickchange extension module, to make snomask +n include nick changes on all servers. config - Add general::hide_opers, to control whether IRC Operator status is visible to non-opers. - Add general::expire_override_time, to control the maximum duration that user mode +p may be active. - Remove channel::use_forward. It is unconditionally enabled. - Add channel::disable_local_channels, to do as its name suggests. - Bring in general::post_registration_delay from ratbox. This introduces a configurable delay between a client completing registration, and the server starting to parse commands from it. - New sasl_usercloak extension module. This allows including the user's SASL account name in an on-connect auth{} spoof. misc - Numerous extension modules have been removed, either because they no longer work or because they do not fit with the intended use of ircd-seven. - Add new burst_klines extension, to send all active K/D/X:lines and RESVs to a new server when linking. - The default mode for new channels is +ns, changed from +nt. -- charybdis-3.2.0 server protocol - Apply +z to messages blocked by +b and +q as well. (new EOPMOD capab) - Add new topic command ETB, allowing services to set topic+setter+ts always. (new EOPMOD capab) - The slash ('/') character is now allowed in spoofs. user - Add can_kick hook, based on the ircd-seven one. - Add cmode +C (no CTCP) from ircd-seven. - Flood checking has been reworked. - Fix op-moderate (cmode +z) for channel names with '@'. - Add CERTFP support, allowing users to connect with an SSL client certificate and propagating the certificate fingerprint to other servers. Services packages can use this to identify users based on client certificates. - Maintain the list of recently used targets (for the target change anti-spam system) in most-recently-used order, overwriting the least recently used target with a new one. This should be friendlier to users without giving spambots anything. - Do not require target change slots for replying to the last five users to send a private message, notice or invite. - Apply target change restrictions to /invite. - Apply umode +g/+R restrictions to /invite, with the difference that instead of sending " is messaging you" the invite is let through since that is just as noisy. oper - Add /rehash throttles to clear throttling. - Send all server notices resulting from a remote /rehash to the oper. - '\s' for space is now part of the matching, not a substitution at xline time, fixing various issues with it. - Display o:line "nickname" in oper-up server notices. - Fix sendq exceeded snotes for servers. - SCAN UMODES: default list-max to 500, like a global WHO. - Ignore directory names in MODRELOAD to avoid crashing if it is a core module and the path is incorrect. - Tweaks to spambot checks. config - Add channel::only_ascii_channels config option to restrict channel names to printable ascii only. - Add channel::resv_forcepart, forcibly parts local users on channel RESV, default enabled. misc - New mkpasswd from ircd-ratbox. - Check more system calls for errors and handle the errors. - Various ssld/libratbox bugfixes from ircd-ratbox. [some MERGED] - Fix fd passing on FreeBSD/amd64 and possibly Solaris/sparc. [MERGED] - Various documentation improvements. [some MERGED] - Fix some crash issues. [MERGED] - Add bandb from ircd-ratbox, which stores permanent dlines/klines/xlines/resvs in an sqlite database instead of a flatfile and does the storage in a helper process. Use bin/bantool -i to import your old bans into the database. -- charybdis-3.1.0 - Remove TS5 support. No TS5 servers are permitted in a network with charybdis 3.1.0 or newer, except jupes. - Replace oper flags by privilege sets (privsets). This adds an extra level of indirection between oper flags and operator blocks. /stats O (capital O) shows the configured privsets. - Update libratbox and ssld from upstream and use it better. - Add auth_user to auth{}. This allows specifying a username:password instead of just a password in PASS, so that a fixed user@host is not necessary for a specific auth{} block. - Add need_ssl to auth{} and operator{}. This makes these blocks reject the user if not connected via SSL. - Allow modules to provide simple channel modes without parameter. - Remove restrictions on CNAME in the resolver. - Make the resolver remember nonresponsive nameservers. - Move nick collision notices from +s to +k. - Add additional information to various server notices about server connections. - Show throttle information in /stats t. - Show rejectcache and throttle information in /testline. - Show oper reason in /testline. - Allow opers to see other users' umodes with /mode . - SCAN UMODES GLOBAL NO-LIST MASK is no longer an operspy command. - Also apply floodcount to messages to remote clients (except services). - Remove user@server messages to local users. Sending such messages to remote servers is still possible, for securely messaging pseudoservers whether service{}'ed or not. The special oper-only syntax opers@server remains as well. - Allow /list on a named +p channel. A full /list already included +p channels. - Add operspy /topic. - For remote rehashes, send error messages to the requesting oper as well. - Disable autoconnect for a server with excessive TS delta. - Disallow invites to juped channels. - Warn about certain duplicate and redundant auth blocks. - Make PRIVMSG/NOTICE behave as CPRIVMSG/CNOTICE automatically if possible. - Allow +z messages from outside if a channel is -n. - Allow coloured part reasons in -c channels. - Add ircu-like WHOX support. This allows requesting specific information in /who and allows obtaining services login name for all users in a channel. XChat/Conspire use WHOX to update away status more efficiently. - Allow opers and shide_exempt users to see hopcounts even if flatten_links is on. - Rework ip_cloaking. - Add the IP address to userlog, as in ircd-ratbox 3.0. - Split cidr_bitlen into cidr_ipv4_bitlen and cidr_ipv6_bitlen. - Allow using ziplinks with SSL connections. This is not as efficient as using OpenSSL's built in compression, but also works with older versions of OpenSSL. - Fix an off by one error with zipstats processing, which could overwrite a variable with NULL causing a crash on some systems. - Document some extensions in charybdis-oper-guide. - Add more server protocol documentation. - Add m_sendbans extension, SENDBANS command to propagate xlines and resvs manually. - Add chm_sslonly extension, cmode +S for SSL/TLS only channels. - Add chm_operonly extension, cmode +O for IRCop only channels. - Add chm_adminonly extension, cmode +A for server admin only channels. - Various code cleanups. -- charybdis-3.0.4 - Fix a crash on certain recent versions of Ubuntu. - Allow 127.x.y.z for DNSBL replies instead of just 127.0.0.x. - Various documentation improvements. -- charybdis-3.0.3 - Fix IPv6 D:lines - Fix rejectcache and unknown_count. - Fix genssl.sh. - Fix ident for SSL/TLS connections. - Fix SSL/TLS bugs for servers with more than about 100 connections. - Small bugfixes. -- charybdis-3.0.2 - Improve OLIST extension error messages. - Improve some kline error checking. - Avoid timing out clients if we are still waiting for a DNSBL lookup. - Fix resolver hangs with epoll. - Fix compilation without zlib. -- charybdis-3.0.1 - Fix occasional hung clients with kqueue. - Fix a rare ssld crash. - Fix a bug that could cause incorrect connect failure reasons to be reported. - Make the IRCd work on MacOS X again. -- charybdis-3.0.0 - Port the IRCd to libratbox, which has improved our portability and allows us to reuse low-level code instead of maintaining our own. - Change configuration of maximum number of clients to ircd-ratbox 3 way. - Add adminwall from ircd-ratbox, as an extension. - Add client and server-to-server SSL, read example.conf for setup. - Replace servlink with ssld (also for ziplinks). - A new extban, $z, has been added for ssl users (extensions/extb_ssl.so). - A new compatibility channel mode, +R, has been added, it sets +q/-q $~a (extensions/chm_operonly_compat.so). This is similar to the +R seen in ircd-seven. - A new compatibility channel mode, +S, has been added, it sets +b/-b $~z (extensions/chm_sslonly_compat.so). - A new compatibility channel mode, +O, has been added, it sets +iI/-iI $o (extensions/chm_operonly_compat.so). - Add remote D:lines. Note that these are not enabled by default. - Remove EFnet-style G:lines. Noone appears to use these. - Remove idle time checking (auto disconnecting users idle too long). - Display a notice to clients when the IRCd is shut down using SIGTERM. - Some error messages have been clarified to enhance usability. - Close the link to servers that send invalid nicks (e.g. nicklen mismatches). Formerly the users were killed from the network. - Enable topicburst by default in connect{}. - Fix a potential desync which can happen with oper override. - Remove "deopped" flag (TS5 legacy). - Use 127.0.0.1 as nameserver if none can be found in /etc/resolv.conf. - Only accept 127.0.0.x as a dnsbl listing. - Change cloaking module (same as 2.2.1, different from 2.2.0). - Make some more server notices about failed remote connect attempts network wide. - Make some server notices about flooders and TS delta network wide. - Remove redundant " had been connected for