--- ircd-hybrid/trunk/NEWS 2013/06/04 18:30:12 2196 +++ ircd-hybrid/trunk/NEWS 2020/12/10 21:47:11 9811 @@ -1,273 +1,962 @@ --- ircd-hybrid-8.1.1 Release Notes -######################################################################## -o) IMPORTANT: moved disable_remote_command configuration directive from - general{} block to serverhide{] block -######################################################################## -o) Fixed bug where opers could see LOCOPS messages even if they don't have - the +l mode set -o) Fixed bug where non-SSL clients could join +S channels on non-SSL servers -o) "STATS T" shows configured MOTD files -o) Implemented motd{} configuration blocks. See doc/reference.conf for more - information - - --- ircd-hybrid-8.1.0 Release Notes -o) Minor code cleanups/performance improvements - - --- ircd-hybrid-8.1.0rc1 Release Notes -o) Fixed broken spoofs - - --- ircd-hybrid-8.1.0beta5 Release Notes -o) Removed 'remote', and 'global_kill' oper flags, and added 'connect', - 'squit', and 'kill' flags for better fine-tuning instead. Whether or - not a specific action is allowed on a remote server can be controlled - by appending the ':remote' flag. For example: 'kill' allows only local - clients to be killed, whereas 'kill:remote' allows to issue a KILL for - remote clients -o) Added 'locops' and 'wallops' to irc-operator flags -o) Improve/cleanup HELP system - - --- ircd-hybrid-8.1.0beta4 Release Notes -o) Implemented channel mode +M. Clients that haven't identified their - name with NickServ may not speak in a channel that has this mode set -o) Fixed weird idletimes shown in /trace -o) Added 'nononreg' (+R) to general::oper_umodes -o) Added user mode +F (can see remote client connect/exit notices) - - --- ircd-hybrid-8.1.0beta3 Release Notes -o) PCRE support has been dropped -o) "STATS o" now shows how many times an oper{} block has been used. - Similar to STATS x|q" -o) Implemented channel mode +c. Known from other ircds, this mode basically - prevents users from sending messages including control codes to a channel - that has this mode set -o) Fixed bug where bans were not checked against non-channel members when - sending messages to a channel -o) Removed channel::quiet_on_ban configuration option. This feature is - now enabled by default - - --- ircd-hybrid-8.1.0beta2 Release Notes -o) Fixed broken compile with libGeoIP disabled -o) Code cleanups; working towards stabilization and improved performance -o) Removed operflag 'nick_changes'. Operators can now set +n at will -o) Fixed shared{} blocks not working as expected -o) Fixed spoofs not working as expected - - --- ircd-hybrid-8.1.0beta1 Release Notes -######################################################################## -o) IMPORTANT: name/channel entries can't be stacked any longer within - a single resv{} block. Each entry now requires its own resv{} block. - Read doc/reference.conf for more details -####################################################################### -o) Added resv::exempt configuration option. Exempt can be either a - ISO 3166 alpha-2 two letter country code, or a nick!user@host mask. - CIDR is supported -o) Removed channel::restrict_channels configuration option -o) Preliminary libGeoIP support. Currently only used for exempt entries - in resv{} blocks -o) Improved WEBIRC authentication; added 'webirc' to auth::flags. - A "webirc." spoof is now no longer required -o) Implemented new memory pool allocator which basically is based upon Tor's - mempool allocator for Tor cells -o) Major code cleanups -o) Implemented new binary database storage for X-,D-,K-,G-Lines and RESVs. - Temporary bans are now stored as well and will persist after a reboot -o) Channel based resv{} blocks may now contain wildcards -o) NICK/JOIN now shows the actual reason of reserved nick-/channelnames -o) contrib/ and its content has been removed from the tree -o) Added serverhide::hide_services configuration option -o) Added 'nononreg' (+R) to oper::umodes and general::oper_only_modes -o) Added support for "away-notify" client capability - - --- ircd-hybrid-8.0.9 Release Notes -o) Fixed bug where ircd would sometimes drop a services link because - of a missing argument to the SVSMODE command -o) Fixed weird idletimes shown in /trace - - --- ircd-hybrid-8.0.8 Release Notes -o) "STATS s" now shows configured services{} blocks as well -o) Fixed compile warnings, minor code cleanups and optimizations -o) Increased nickname history length to 32768 -o) Unidentified/unregistered nicks may not speak in +R channels - - --- ircd-hybrid-8.0.7 Release Notes -o) Services may now set a channel topic without joining the channel first -o) Fixed bug where /whois would send empty sockhost information on TS5 - servers -o) Remote server connection and split notices now go to new usermode +e. - These previously used usermode +x. -o) Services may now change the host of a specific user - via "SVSMODE +x " - - --- ircd-hybrid-8.0.6 Release Notes -o) Fix bug where idle time sometimes is 0 even if the client didn't - send any private message -o) Fixed possible core in try_parse_v4_netmask() - - --- ircd-hybrid-8.0.5 Release Notes -######################################################################## -o) IMPORTANT: nick and topic lengths are now configurable via ircd.conf. - A max_nick_length, as well as a max_topic_length configuration option - can now be found in the serverinfo{} block -######################################################################## -o) Fixed build on GNU/Hurd as reported by Dominic Hargreaves -o) Fixed log files not getting reopened after /rehash -o) Improved logging of configuration file issues -o) ircd.pid has been accidentally saved in /var instead of /var/run -o) Linux RT signal support for notification of socket events has been dropped -o) Fixed "STATS Y|y" sometimes sending weird sendq/recvq values -o) INFO now also shows configured values of 'disable_fake_channels', - and 'stats_e_disabled' -o) m_webirc.c is now officially supported, and has been moved from contrib/ - to modules/ -o) /whois, /stats p, and /trace may now show fake idle times depending on - how the new class::min_idle and class::max_idle configuration directives - have been configured. This feature basically works in the same - way as it does in csircd -o) The configuration parser now does support 'year' and 'month' units - - --- ircd-hybrid-8.0.4 Release Notes -o) Fixed possible core on USERHOST/ISON with optimization enabled -o) Fixed bug where can_flood sometimes didn't work as expected - - --- ircd-hybrid-8.0.3 Release Notes -o) Fixed core on UNDLINE -o) XLINE/KLINE/RESV/DLINE/SQUIT and KILL now have the same default reason - if a reason hasn't been specified - - --- ircd-hybrid-8.0.2 Release Notes -o) Minor updates to the build system -o) Fixed broken --enable-assert configure switch -o) Fixed bug where timed events stopped from working if the system's - clock is running backwards -o) STATS q|Q now shows how many times a resv{} block has been matched -o) Fixed contributed WEBIRC module -o) IRC operators may now again see server generated nick rejection notices - - --- ircd-hybrid-8.0.1 Release Notes -o) Fixed broken CIDR support for CHALLENGE based irc operator logins -o) Fixed class limits not properly applying to oper{} blocks -o) Fixed possible TBURST desynchronization with services -o) Fixed TBURST sending server's name to clients if it's a hidden server - - --- ircd-hybrid-8.0.0 Release Notes -o) Fixed possible TBURST desynchronization with services -o) Fixed TBURST sending server's name to clients if it's a hidden server - --- ircd-hybrid-8.0.0 Release Notes -o) Fixed an off-by-one with spoofs. Spoofs are now also checked for - invalid characters -o) Removed general::use_whois_actually configuration directive. This is - now enabled by default -o) Minor SQUIT handling fixes -o) Fixed bancache not being updated on CHGHOST/CHGIDENT - - --- ircd-hybrid-8rc1 Release Notes -o) Removed general::client_flood configuration option and added the - new 'recvq' configuration directive to class{} blocks. - The max size of a receive queue can be seen in "STATS Y" - for each class -o) Allow the '[' and ']' characters in server description - - --- ircd-hybrid-8beta3 Release Notes -o) Fixed wrong syntax in several language files -o) Removed &localchannels -o) PRIVMSG to opers@some.server is no longer supported -o) Fixed bug that could lead to topic desynchronization -o) Removed serverhide::disable_hidden configuration option -o) Dropped ircd-hybrid-6 GLINE compatibility mode -o) Removed use_invex, use_except and use_knock configuration options. - These features are now enabled by default - - --- ircd-hybrid-8beta2 Release Notes -o) channel::disable_fake_channels now also disables ascii 29 (mIRC italic) - when set to yes -o) Added channel::max_chans_per_oper configuration directive. The old way - was to let operators join three times the amount of max_chans_per_user -o) Replaced MODLOAD, MODUNLOAD, MODRELOAD, MODLIST and MODRESTART commands - with the new MODULE command which can be fed with the LOAD, UNLOAD, RELOAD - and LIST parameters. - MODRESTART has been entirely removed. Use "MODULE RELOAD *" to reload - all modules -o) Added back server notice when a client tries to obtain a reserved nick name -o) Removed OMOTD module -o) Added 'set' to operator privilege flags. Gives access to the "SET" command -o) Improved TS6 support -o) Channel keys/passwords are now case sensitive - - --- ircd-hybrid-8beta1 Release Notes -o) Implemented full services support, including but not limited to the - following changes: - - Added SVSNICK, and SVSMODE command handlers - - Added service stamps to NICK/UID messages - - Added SVS to server capabilities (CAPAB). SVS capable servers can - deal with extended NICK/UID messages that contain service IDs/stamps. - - Changed rejected client notices to go to new usermode +j. These - previously used usermode +r. - - Added usermode +r (registered nick) and channelmode +r (registered channel) - - Added usermode +R (only registered clients may send a private message) - - Added channelmode +R (only registered clients may join that channel) - - Various services shortcuts have been added (/NS, /CS, /NICKSERV, /CHANSERV, etc.) - - Added services{} block to ircd.conf - - Added services_name directive to general{} block - - Added GLOBOPS mainly for services compatibility, but can be used by operators, too -o) Removed RKLINE and RXLINE commands. Regular expression based bans should - only be added via ircd.conf -o) Added 'globops', 'restart', 'dline', 'undline' and 'module' operator - privilege flags. Read doc/reference.conf for further explanation of what - these flags control -o) Removed Idle-time klines -o) Cleaned up modules API. Old modules won't work anymore -o) Removed general::burst_away configuration directive. AWAY bursts are now - controlled via connect::flags explicitly -o) Introduced new logging subsystem including log rotation based on - file sizes. Log timestamp format is ISO8601 now -o) Added support for remote D-lines -o) Added usermode +H which is basically a replacement for the hidden_admin and - hidden_oper operator flags. With usermode +H, irc operator status can now - be hidden even on remote servers -o) Added CIDR support for operator{} blocks -o) Removed the servlink program. ircd-hybrid can now make use of - SSL/TLS for inter-server communication. - NOTE: compressed server links are of course still available, but a SSL/TLS - connection is required, as compression is now handled via OpenSSL -o) Removed 'ssl_server_protocol' configuration directive and - added 'ssl_client_method' and 'ssl_server_method' instead. - Both of these options can now be changed at runtime -o) Oper login IDs are no longer limited to NICKLEN*2 -o) Removed channel::burst_topicwho configuration option. Topicsetters are - now sent by default -o) "STATS Y|y" now reports CIDR limits as well -o) Added m_webirc.c to contrib/ -o) Overall code cleanup and speed improvements +-- Noteworthy changes in version 8.2.37 (202?-??-??) +* Implemented IRCv3 `CAP 302` +* Implemented IRCv3 `cap-notify` capability +* Implemented IRCv3.2 `echo-message` capability + + +-- Noteworthy changes in version 8.2.36 (2020-12-04) +* The old WATCH implementation has been replaced with IRCv3.2 MONITOR. For this, + the `general::max_watch` configuration directive has been renamed to + `general::max_monitor`. +* User mode `B` has been implemented. Clients with that mode set are marked as a + bot in both `WHOIS` and `WHO`. This mode can only be set by IRC operators (as + long as the `bot` directive is set in `general::oper_only_umodes`), servers, + and services. + This mode can for example be used to mark HOPM as official network bot. +* For a full list of all changes in this release, see + + +-- Noteworthy changes in version 8.2.35 (2020-11-14) +* Fixed issue where servers could propagate truncated ban masks during net-join +* For a full list of all changes in this release, see + + +-- Noteworthy changes in version 8.2.34 (2020-11-01) +* Re-implement backwards compatibility mode for old ircd-hybrid 8.2.23 and below. + Final removal is scheduled for early 2021. +* For consistency, the `general::network_desc` configuration directive has been + renamed to `general::network_description` +* Server notices that previously have been sent to user modes +f and +u are now + sent to user mode +j (reject notices) instead. Due to this change, `unauth` and + `full` have been removed from `general::oper_only_umodes`, `general::oper_umodes`, + and `operator::umodes`. +* User mode +b (bots) has been replaced with +f (flood). Spam/flood notices are now + sent to this user mode. For this, `bots` has been removed from + `general::oper_only_umodes`, `general::oper_umodes`, and `operator::umodes`. + `flood` has been added instead to these configuration directives. +* Stricten server/user ID validation. IDs have to be all uppercase everywhere now. +* For a full list of all changes in this release, see + + +-- Noteworthy changes in version 8.2.33 (2020-09-07) +* Added `client` option to `listener::flags` +* Added `defer` option to `listener::flags` +* IRC operators may now use CIDR notation in `WHO` +* For a full list of all changes in this release, see + + +-- Noteworthy changes in version 8.2.32 (2020-08-16) +* `RESV` couldn't be issued in case no reason has been supplied. This has been fixed. +* Fixed possible `RPL_WHOISCHANNELS` line truncation of remote replies +* Extban $t of type `matching` has been implemented. This extban allows matching + based on TLS protocol version and/or cipher suite +* Implemented channel mode `K`. `KNOCK` cannot be used on channels with that mode set +* `STATS ?` is now oper-only +* For a full list of all changes in this release, see + + +-- Noteworthy changes in version 8.2.31 (2020-05-03) +* macOS compatibility fixes +* Removed `spoof_notice` from `auth::flags`. With vhosts now this notice doesn't make + much sense anymore +* Fixed issue where ban masks might become malformed if set by remote clients/servers +* Fixed issue with channel mode +c where high ascii characters can be erroneously + detected as control characters +* For a full list of all changes in this release, see + + +-- Noteworthy changes in version 8.2.30 (2020-03-01) +* `QUOTE HELP extban` didn't work because the extban help file hasn't been + installed properly during `make install` +* Fixed broken libcrypto detection which caused the ircd not to work with + OpenSSL under certain circumstances +* Extban $n of type `acting` has been implemented. This extban prevents + matching users from changing their nick while in the channel. Users + with voice or above are not affected. +* Channel mode +N has been changed so channel members with +v can change + their nick name as well +* For a full list of all changes in this release, see + + +-- Noteworthy changes in version 8.2.29 (2020-02-19) +* Extbans have been implemented. Currently supported extbans: + + Matching: + + * `$a:` Matches users logged into a matching account. + * `$c:` Matches users that are on the given channel. An additional + prefix of either @, %, or + can be specified to test for + certain channel privileges. + * `$o:` Matches IRC operators that have joined a class + matching the mask. + * `$r:` Matches users with a matching realname. + * `$s:` Matches users that are connected to a server matching the mask. + * `$u:` Matches users having the specified user modes set or not set. + * `$z:` Matches users having the given TLS certificate fingerprint. + + Acting: + + * `$j:` Prevents matching users from joining the channel. + * `$m:` Blocks messages from matching users. Users with voice + or above are not affected. + + For more details, see `help/extban`. +* Added `channel::enable_extbans` configuration option. See `doc/reference.conf` + for more information. +* For a full list of all changes in this release, see + + +-- Noteworthy changes in version 8.2.28 (2020-01-26) +* Fixed issue with topics set by `TBURST` not being propagated properly to clients +* Allow IRC operators to search for real hosts in `WHO` +* Ban/exempt/invex masks are now also tested against realhosts to prevent clients + from bypassing channel bans by activating a fakehost +* For a full list of all changes in this release, see + + +-- Noteworthy changes in version 8.2.27 (2020-01-22) +* Experimental support for wolfSSL has been implemented. Minimum supported version is 4.3.0 +* The `--enable-openssl`, `--enable-gnutls` switches, and their disabling counterparts + `--disable-openssl` and `--disable-gnutls`, have been replaced with the `--with-tls` + switch which takes one of the following options: `openssl`, `wolfssl`, `gnutls`, + and `none`. + If nothing has been specified, configure tries to autodetect in the following order: + OpenSSL/LibreSSL -> GnuTLS -> wolfSSL. +* Fixed segfault with GnuTLS/libgmp in case there's no DH parameters file + defined in `serverinfo::ssl_dh_param_file` or if that file is missing +* The connection timeout for connect{} blocks can now be configured via + the `connect::timeout` configuration directive +* Minimum supported OpenSSL version is 1.1.1 now +* Minimum supported GnuTLS version is 3.6.5 now +* Supported TLSv1.3 cipher suites can now be configured explicitely via the + new `serverinfo::tls_cipher_suites` configuration directive +* In the serverinfo {} block, the following configuration directives have been renamed: + `ssl_certificate_file` -> `tls_certificate_file` + `ssl_dh_param_file` -> `tls_dh_param_file` + `ssl_dh_elliptic_curve` -> `tls_supported_groups` + `ssl_cipher_list` -> `tls_cipher_list` + `ssl_message_digest_algorithm` -> `tls_message_digest_algorithm` +* In the operator {} block, the following configuration directives have been renamed: + `ssl_certificate_fingerprint -> `tls_certificate_fingerprint` + `ssl_connection_required -> `tls_connection_required` +* In the connect {} block, the following configuration directives have been renamed: + `ssl_cipher_list -> `tls_cipher_list` + `ssl_certificate_fingerprint -> `tls_certificate_fingerprint` +* For a full list of all changes in this release, see + + +-- Noteworthy changes in version 8.2.26 (2019-05-31) +* The `general::tkline_expire_notices` configuration directive has been + replaced with user mode `X`. *LINE expiration notices are sent to IRC + operators with that mode set +* Fixed issue with `/rehash conf` creating duplicated class entries + instead of updating existing ones that are already in use +* For a full list of all changes in this release, see + + +-- Noteworthy changes in version 8.2.25 (2019-04-24) +* The `class::number_per_ip`, `class::max_local` and `class::max_global` + configuration directives have been replaced with just `class::number_per_ip_local` + and `class::number_per_ip_global`. The `class::max_local` basically was + redundant as it had the same functionality as `class::number_per_ip` +* Adding RESVs with wildcards no longer requires administrator privileges +* The `general::ignore_bogus_ts` configuration option has been deprecated +* TLSv1.1 and TLSv1.0 are no longer supported and have been disabled in + the OpenSSL and GnuTLS module +* Minimum supported OpenSSL version is 1.0.1f now +* Minimum supported GnuTLS version is 3.5.8 now +* The `serverinfo::vhost` and `serverinfo:vhost6` configuration directives have + been deprecated. If you need to bind() a specific address you can specify one + in the connect {} block +* The `connect::vhost` configuration directive has been renamed to `connect::bind` +* For a full list of all changes in this release, see + + +-- Noteworthy changes in version 8.2.24 (2018-04-05) +* Added `STATS s` to show configured pseudo {} blocks +* Implemented channel mode `N` which prevents users from changing their + nick while in a channel with that mode set +* Services clients are now shown with `is a Network Service` in `WHOIS` +* For a full list of all changes in this release, see + + +-- Noteworthy changes in version 8.2.23 (2018-03-26) +* IRC operators are now able to see a user's resolved hostname in `WHOWAS`, + and `WHOIS` even if the user has a fakehost/vhost +* `RPL_WELCOME` now does use the rfc2812 style nick!user@host format +* Removed rudimentary libgeoip support +* Added `--enable-efence` switch to allow easy linking with the + electric fence memory debugger library +* `JOIN 0` is no longer supported +* Fixed bug where ircd would not remove `RPL_WHOISOPERATOR` based svstags + when deoppering +* Fixed `unknown closes` statistic in `STATS t` showing invalid values sometimes +* For a full list of all changes in this release, see + + +-- Noteworthy changes in version 8.2.22 (2017-03-26) +* Implemented channel mode `L`. Channels with that mode set can make use of an + extended ban list size specified with the new `channel::max_bans_large` + configuraton option. This mode can be set only by IRC operators or servers. +* Implemented channel mode `u` which hides bmask (+b/+e/+I) lists and mode changes + to non-chanops everywhere +* Fixed an issue with `TRACE` where remote servers would reply with `RPL_TRACEUSER` + numerics containing UIDs +* `STATS z` now shows simple memory stats of servers linked to the network +* Added support for remote `ETRACE` +* For a full list of all changes in this release, see + + +-- Noteworthy changes in version 8.2.21 (2016-11-27) +* The `general::default_floodtime` configuration option has been added + along with the `SET FLOODTIME` command. These allow to fine-tune the + message throttling better +* Fixed an issue with `INVITE` not showing the list of channels the + sender is invited to +* For a full list of all changes in this release, see + + +-- Noteworthy changes in version 8.2.20 (2016-11-05) +* `INFO` now shows GnuTLS/OpenSSL library/header versions +* Added `channel::max_invites` configuration option. See `doc/reference.conf` + for more information. +* `INVITE` expirations have been implemented. Expire time can be adjusted with + the `channel::invite_expire_time` configuration directive +* `WHOIS` notices to IRC operators have been re-added. User mode +y is required + to see them +* The maximum line length for motd files has been increased to 320 bytes to + support multibyte encodings better +* For a full list of all changes in this release, see + + +-- Noteworthy changes in version 8.2.19 (2016-08-21) +* Fixed a possible server name leak in `WHO` with server hiding enabled +* `WHO` now allows IRC operators to search by IP address +* Admins no longer can see IP addresses in `STATS P` with + `serverhide::hide_server_ips` enabled +* User mode `n` now shows nick name changes from remote clients, too +* For a full list of all changes in this release, see + + +-- Noteworthy changes in version 8.2.18 (2016-06-22) +* Fixed an assert when a client sends invalid `LIST` options +* Fixed invalid memory stats of channel invites in `STATS z` +* For a full list of all changes in this release, see + + +-- Noteworthy changes in version 8.2.17 (2016-04-21) +* Fixed core on `REHASH CONF` with `general::whowas_history_length` + set to 0 +* Fixed possible core on `INVITE` with `channel::max_channels` set to 0 +* For a full list of all changes in this release, see + + +-- Noteworthy changes in version 8.2.16 (2016-03-20) +* Added `general::whowas_history_length` configuration option which + allows to define the maximum length of the `WHOWAS` nickname history +* Services are now allowed to override `general::min_nonwildcard`, + and `general::min_nonwildcard_simple` settings +* Minor updates to help files +* For a full list of all changes in this release, see + + +-- Noteworthy changes in version 8.2.15 (2016-02-24) +* Added proper support for Raspbian/ARM. Gracias to Beave/2600.net + for providing a box for testing purposes. +* Fixed an assert with empty `user = ""` directives in auth {} blocks +* `STATS z` now shows allocated listeners +* Fixed bug where `can_flood` auth {} flags did not work on channels +* For a full list of all changes in this release, see + + +-- Noteworthy changes in version 8.2.14 (2016-02-09) +* Fixed server clustering +* Major cleanups to the configuration subsystem +* Improvements to libGeoIP support: + - Works now with IPv6 addresses + - Added `libgeoip_database_options`, `libgeoip_ipv4_database_file`, + and `libgeoip_ipv6_database_file` configuration directives to the + serverinfo {} block +* Further improvements to GnuTLS support +* For a full list of all changes in this release, see + + +-- Noteworthy changes in version 8.2.13 (2016-02-02) +* Implemented support for GnuTLS. Currently ./configure's autodetection + intentionally prefers OpenSSL over GnuTLS, so OpenSSL detection needs + to be disabled explicitely by using the `--disable-openssl` switch. +* Minimum supported GnuTLS version is 3.3.8 now +* Minimum supported OpenSSL version is 1.0.1d now +* Added support for remote `REHASH`: `REHASH