This is elemental-ircd 6.6.1, Copyright (c) 2014 elemental-ircd team. See LICENSE for licensing details (GPL v2). -- elemental-ircd 6.6.1 All code is now in the linux kernel coding style. Patches that do not follow this coding style are at risk of being rejected. It is suggested that your editor be set up to automatically style your code in the desired format. A vim resource file is provided in the repository root. additions - automatic code styling for vim - Dockerfile and nightly docker builds - show cloaked I:Line vhost IP address remotely bugfixes - all channel lists have their own limit instead of sharing one. 5ba9c76d224afac877d9500d6ac1eb8f2bddd076 - fix potential undefined behavior with m_away 7d3966bc9bd9e9ab7833b4ecb0751671bdd085e7 - fix Anope 2.0 protocol module 79a3bf79ae66c43470c4bed25c33053b13a032d1 -- elemental-ircd 6.6 additions - add OWNER=y to 005 - add autoconfigure script like unrealircd - add channel mode +u to hide banlists unless users have halfop or up - add modules for services packages - add quotes around PART reason - add umode +I to hide channels line from WHOIS - make end-user /OPER failures much more generic - make flooding SNOTEs global - show own modes in whois - show remote server IP addresses - update helpfiles to have much more up to date information bugfixes - don't strip unicode in strip_unprintable - fix extended-join for remote users - fix null reference in away-notify - make genssl.sh generate ten year certs - merge some upstream charybdis patches removals - remove away-notify - remove AHBL from default configs - remove m_post SNOTEs because of an upstream change The official channel for Elemental-IRCd is now #elemental-ircd on irc.yolo-swag.com. -- elemental-ircd 6.5.1 Rename to Elemental-IRCd -- ponychat-ircd 6.5 additions - Channel owner mode (+y) - away-notify, account-notify and extended-join client capabilities - DNSBL hit and m_post HTTP proxy rejection server notices are global - IPv6 DNSBL support - Away rate limiting added - Added snotes for failed SASL authentication attempts if need_sasl flag is set bugfixes - Reject nicks with '~' in them, rather than cutting at the '~' - Fix possible memory leak of certificate fingerprints - Printed error message on unreadable config file rather than just a log entry -- ponychat-ircd 6.3.4 bugfixes - Fix compilation with GCC 4.8 and above -- shadowircd 6.3.3 bugfixes - Fix compilation with Glibc-2.16 and newer - Fix extensions/ip_cloaking not telling linked servers about a changed hostname - Fix crash when a CAPAB with no parameters is sent - Fix bugs when shadowircd is run under OpenVZ or Virtuozzo -- shadowircd 6.3.2.1 bugfixes - Fix small buildsystem regressions introduced in shadowircd 6.3.2 -- shadowircd 6.3.2 bugfixes - Fix ACTIONs working on a channel when cmode +G (blockcaps) is set. other - Do some things the git was as we've switched to git as our VCS since 6.3.1. - Add support for proper system-wide installability. - Add a few simple helper scripts for irssi, WeeChat and XChat to add a /OHELP command which makes it far easier to view ShadowIRCd help on clients that use /HELP for their own uses. -- shadowircd 6.3.1 bugfixes - When setting/unsetting cmode +M, wallops are only sent once, globally, not for every server on the network where the mode change happens. - Don't allow +Z to be set by default_umodes. - Cope with OPENSSL_VERSION_NUMBER not being a long. This is the case on very new FreeBSD versions. - Disallow mIRC italics in channel names when disable_fake_channels is in use. - Allow kick_on_split_riding to protect channels with mlocked keys. -- shadowircd-6.3.0 new modes - channelmode 'N' has been moved to 'd' to allow for m_roleplay and specifically, compatibility with the charybdis m_roleplay. new modules - m_roleplay: New extension allowing many roleplay commands. Individual channels can disable this by setting channelmode +N on their channels. configuration - use auth::auth_user for SASL. It is no longer usable in PASS (though its use-case there is non-existant), but you can now set so if a user successfully authenticates to the accountname in auth_user with SASL, they will get the proper auth block privs. You can have multiple auth_users in one auth block. - you can now specify a SSL fingerprint that the remote server must have in order to link. opers - wallops are now sent upon setting or unsetting of +M or any other hidden channelmode. - /LIST now has operspy support. You can see all channels (including secret channels) with /LIST ! or /LIST !#target. OLIST still exists and can be used as well. OLIST will also show channelmodes whereas LIST will not. users - /LIST can now be constrained by topic TS and channel TS. code - native support for SHA256, SHA512 and Blowfish added everywhere. - many small improvements and bugfixes. -- shadowircd-6.2.0 configuration - add channel::hide_channel_below_users - Channels with a user count lower than the value of this option will not be shown by default in /LIST. - add channel::admin_on_channel_create - If enabled, gives users creating new channels +ao in that channel instead of just +o. - add channel::disabledmodes - This allows opers to disallow users from using certain channelmodes. This is only read on startup and your services and remote servers must be configured the same otherwise desyncs will occur. - add many services aliases for new Atheme services. opers - when users get hit by a DNSBL, this is now shown in the snotes. other - change kicknorejoin to not be a config option and be hardcoded to 2 seconds because a longer time is kind of pointless. - Many new features and improvements from charybdis 3.3.0. See below for information about all that. code - many bugfixes and various cleanups. -- 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. -- shadowircd-6.1.0 new configuration options - general::static_quit - Quit message to display for all users (not opers). - general::no_part_messages - If this option is set to no, the ircd will not display PART messages/reasons from users. - general::true_no_oper_flood - Turns off *ALL* flood protection for opers. Instead of command flooding being 4x what it is for a user with no_oper_flood, there is no limit at all. This option also allows opers to flood channels/users so if you do set it, be extremely careful. - serverinfo::helpchan and helpurl - These are 2 config options that tell users, when they do /quote help (with no extra parameters) the official network help channel and a special URL for help. If these options are disabled, the users will just get the help index and that's it on /quote help. - general::default_ident_timeout - Allows you to set the default ident timeout in the ircd.conf instead of it being hardcoded and only settable with /SET. new commands - CYCLE #channel - server-side CYCLE, also called HOP in some clients/servers. Parts the user from the given channel, then joins them to it immediately after. Enabled by loading extensions/m_cycle. opers - Override no longer alows overriding opers to talk through +q, +m, etc. If you need to talk through one of these modes, its recommended to remove the offending mode or give yourself voice/ops. - OLIST now shows channel modes so opers can easily see which channels are +s and see which channels have oper-only channel modes set. - RESTART and DIE now can be executed remotely. See the appropriate helpfiles for details. - All module management commands (MODLOAD, MODLIST, MODUNLOAD, MODRELOAD and MODRESTART) can be executed remotely. See the appropriate helpfile for details. - OMODE can now set and unset +ah. - OJOIN now works with !#channel and %#channel. - Staff channelmodes (+AO) now require chanops to set. - OPERHOST option added to SET. You can now use SET to change the default operhost that operators get upon opering up, though like the general::default_operhost config option it will not override the operator::vhost config option. other - Added a strip_unprintable function to make evasion of cmodes +G and +K less trivial. - Massive helpfile updates. - Added SVSJOIN s2s command. This allows things like atheme's ns_ajoin to work on shadowircd. - Added BAN stuff (propogated bans on burst) from charybdis trunk. This can be disabled and the old behavior can be used by setting the general::use_propogated_bans option to no. - The --enable-small-net configure option is now enabled by default. If you wish to disable small net mode, pass --disable-small-net to configure. - New channel mode adding API has been added from charybdis trunk. - NOTICE/PRIVMSG @#channel and +#channel now go to admin/halfop as well as chanop. -- shadowircd-6.0.0 new modes - Add umode +C (no CTCP). - Add umode +V, users with this mode set will never recieve channel invites from other users. - Add umode +B which identifies users as being bots in /whois. - Add umode +G which disallows users from messaging you unless you're both on at least one channel together. This can be "overridden" with /accept. - Add cmode +T which blocks all notices to the channel. - Add cmode +D which blocks all actions (/me's) from being sent to the channel. - Add cmode +E which disallows channel ops from kicking users. - Add cmode +N which disallows users from changing their nick while they're on a channel with this mode set. - Add cmode +K (norepeat) which will block repeated messages, regardless of who they're from. - Add cmode +G which blocks messages containing 50% or more capital letters from being sent to the channel. - Add cmode +J which disallows a kicked user from rejoining within 'X' seconds of them being kicked, where 'X' is the variable of the channel::kick_no_rejoin_time configuration option. - Add cmodes +a and +h (admin and halfop, respectively). There are 2 extra prefixes to more finely-grain the status of staff members in your channels. They can be enabled or disabled in the configuration file with the options channel::use_halfop and channel::use_admin. new configuration options - auth::autojoin - This option will specify what channels users in a matching auth {} block will automatically join on connect to your server/network. - auth::autojoin_opers - This option will specify what channels opers in a matching auth {} block will automatically join on oper up (/oper). - channel::cycle_host_change - This option defines whether or not users will cycle (part and rejoin) the channels they're in when their host changes. This can be annoying to some people, but disabling it can cause client desyncs. - channel::host_in_topic - This option defines whether or not a host setter's full host or just their nick will be shown on /TOPIC. - channel::use_local_channels - With this option, you can enable/disable support for local channels on your server/network. - channel::exemptchanops - This option defines what channel modes channel operators are exempt from, channel modes usable in this option are: cCDTNGK. - general::secret_channels_in_whois - This option defines whether or not opers can see secret channels that a user is in when whoising them. Secret channels will show up in the whois prefixed with *. If this option is disabled, opers will still be able to see secret channels a user is in with the /SPYWHOIS command. - Enabled a few popular extensions by default, added a few extensions to the example config files that were missing, add a few more services aliases by default, enable ip_cloaking by default and get rid of all the old ip_cloaking modules. opers - Users' umodes are shown when you whois them. - swhois support - Adds a mostly free-form line of text to opers' whois if one is set in their operator {} block. - custom operstring - Instead of showing the IRC operator or IRC administrator oper strings, you can customize what it shows in each oper's operator {} block. - host-on-oper - Give a vhost to operators upon oper up. Can be defined generally, then the general option may be overridden by each operator {} block. - operoverride - Oper override works very differently in ShadowIRCd compared to all other IRCd's which support oper override. In ShadowIRCd, to be able to override, you must have the oper:override privledge and you must then set umode +p on yourself. The p umode will automatically expire and un-set itself after a time set in the configuration option general::expire_override_time. - immune - Adds cmode +M. Opers can set this on a channel (even if they don't have ops) without the channel's ops or other users seeing (only opers see this mode at all.) It disallows anyone in the channel from kicking opers. - OACCEPT/callerid override - In ShadowIRCd 6, opers no longer can simply PM users that have umodes +g or +G set and the oper is not on their accept list. To allow opers to still be able to PM users in this situation, OACCEPT has been added. OACCEPT is a new extension that enables the command /oaccept which adds a piece of metadata to that use which will allow you to PM them. other - Changed default NICKLEN to 31 (from 15) to fit more closely with other IRCd's. - Rebrand many things from Charybdis to ShadowIRCd. - Move the m_force module to extensions. - Add a metadata framework. Currently used for swhois, custom operstring, OACCEPT, cmode +J, cmode +K. -- 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. -- 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