--- ircd-hybrid/trunk/NEWS 2020/10/11 11:04:11 9664 +++ ircd-hybrid/trunk/NEWS 2020/12/04 13:25:20 9783 @@ -1,3 +1,37 @@ +-- 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` @@ -29,7 +63,7 @@ * `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 + 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. @@ -42,25 +76,25 @@ * 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. - + + * `$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. + * `$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 @@ -81,7 +115,7 @@ 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. + 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 @@ -122,7 +156,7 @@ * 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 + 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 @@ -141,8 +175,8 @@ -- 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 +* 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 @@ -182,16 +216,16 @@ for more information. * `INVITE` expirations have been implemented. Expire time can be adjusted with the `channel::invite_expire_time` configuration directive -* `WHOIS` notices to operators have been re-added. User mode +y is required +* `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 +* 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 opers to search by IP address +* `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 @@ -258,7 +292,7 @@ * **IMPORTANT:** Character case mapping is `ascii` now. It is recommended to update all servers on the network to prevent possible channel desynchronizations and nick name collision kills -* Added channel mode +T which forbids `NOTICE` to be sent to a channel +* Added channel mode `T` which forbids `NOTICE` to be sent to a channel * Fixed minor `SVSTAG` memory leak * Fixed broken `PART` message blocking mechanism * ircd now makes use of up to 8 name servers that are specified in @@ -284,8 +318,8 @@ * Added `serverhide::flatten_links_file` configuration option * Fixed bug where changing `serverhide::flatten_links_delay` on runtime would not have any effect -* mkpasswd (tools): fixed broken bcrypt support on *BSD in conjunction - with the -s and -l switches. Dropped MD5, DES and Extended DES support. +* mkpasswd (tools): fixed broken bcrypt support on *BSD in conjunction with + the `-s` and `-l` switches. Dropped MD5, DES and Extended DES support. * Removed `CHALLENGE` in favor of ssl certificate fingerprint enabled operator {} blocks * RSA keys with less than 2048 bits are no longer supported; same applies @@ -328,7 +362,7 @@ * ircd now rejects remote k-line requests for user@host mask that don't have at least `general::min_nonwildcard` non-wildcard characters in it * Configuration related server notices are now sent to admins only as - they potentially could leak passwords and other sensitive data to irc + they potentially could leak passwords and other sensitive data to IRC operators that don't have administrator privileges * The `GLINE`/`GUNGLINE` commands have been removed. `KLINE` in conjunction with cluster {} and/or shared {} blocks is now the recommended @@ -352,14 +386,16 @@ -- Noteworthy changes in version 8.2.6 (2015-03-29) * `INFO` now shows configured values of `max_watch` and `stats_m_oper_only` -* `WHOWAS` now shows IP addresses to irc operators +* `WHOWAS` now shows IP addresses to IRC operators * Fixed bug that would allow remote clients to bypass the hard limit of max `WHOWAS` entries to be returned +* For a full list of all changes in this release, see -- Noteworthy changes in version 8.2.5 (2015-02-24) * Fixed core on Mac OSX 10.10 and possibly some other systems when parsing the `ircd.conf` with configured pseudo {} blocks +* For a full list of all changes in this release, see -- Noteworthy changes in version 8.2.4 (2015-02-17) @@ -370,23 +406,25 @@ * IRC operators may now use +O on a channel even if they are only a half-op * Fixed bug where `TOPIC` messages were not n!u@h prefixed in case of `TBURST` issued by services clients +* For a full list of all changes in this release, see -- Noteworthy changes in version 8.2.3 (2015-02-11) -* **IMPORTANT:** the following ircd.conf configuration directives have been renamed: +* **IMPORTANT:** the following configuration directives have been renamed: `max_clients` -> `default_max_clients` `join_flood_count` -> `default_join_flood_count` `join_flood_time` -> `default_join_flood_time` * Fixed bug where `REHASH` would always reset the `MAX`, `JFLOODTIME`, and `JFLOODCOUNT` values that have been changed from within IRC via the `SET` command -* Added channel mode +C which prevents users from sending CTCPs to a channel -* Fixes to the NOTICE/PRIVMSG anti-flood logic -* Allow to disable the NOTICE/PRIVMSG anti-flood mechanism by setting the +* Added channel mode `C` which prevents users from sending CTCPs to a channel +* Fixes to the `NOTICE`/`PRIVMSG` anti-flood logic +* Allow to disable the `NOTICE`/`PRIVMSG` anti-flood mechanism by setting the `general::default_floodcount` configuration option to 0 * Updated some help files -* Operators may now see certificate fingerprints, user modes and hidden +* IRC operators may now see certificate fingerprints, user modes and hidden channels via `WHOIS` as well. This used to be admin only. +* For a full list of all changes in this release, see -- Noteworthy changes in version 8.2.2 (2015-01-20) @@ -398,24 +436,26 @@ * Updated several help files * The `general::hide_spoof_ips` configuration option has been deprecated * The `general::true_no_oper_flood` configuration option has been deprecated. - Operators still can have higher `flood` limits with `no_oper_flood = yes;` + IRC operators still can have higher `flood` limits with `no_oper_flood = yes;` hoewever, they are no longer allowed to bypass RecvQ limits. * Added `general::stats_m_oper_only` configuration option * Remote client connection notices (user mode +F) now do show IP addresses, too +* For a full list of all changes in this release, see -- Noteworthy changes in version 8.2.1 (2014-10-21) * Fixed bug where `UNDLINE remote.server IP` did not work as expected * Servers are now allowed to add/remove K-/D-/X-lines and RESVs -* Usermode +G now no longer allows to override +g +* User mode +G now no longer allows to override +g * Due to potential weakness, TLS session caching and session tickets have been disabled * Minor improvements to TS6 implementation * `WHOWAS` now shows the name of the services account a user was logged in +* For a full list of all changes in this release, see -- Noteworthy changes in version 8.2.0 (2014-08-24) -* Successful operator logins are now announced globally via `GLOBOPS` +* Successful IRC operator logins are now announced globally via `GLOBOPS` * Cleanups and improvements to the resolver code * Cleanups and improvements to the poll() I/O event notification support * A topic mask can now be specified within the `LIST` options @@ -426,6 +466,7 @@ See `doc/reference.conf` for more information. * Removed `general::services_name` configuration option. This is now no longer needed. +* For a full list of all changes in this release, see -- Noteworthy changes in version 8.2.0rc2 (2014-08-03) @@ -433,19 +474,21 @@ newly added `away_count` and `away_time` configuration directives in the general {} block * Support for the select() I/O event notification has been dropped +* For a full list of all changes in this release, see -- Noteworthy changes in version 8.2.0rc1 (2014-07-20) * Miscellaneous code cleanups and stabilization fixes * `./configure` now requires OpenSSL 0.9.8o or above in order to enable TLS/SSL support +* For a full list of all changes in this release, see -- Noteworthy changes in version 8.2.0beta4 (2014-07-06) * **IMPORTANT:** channel halfops are now an integral part of ircd-hybrid and can't be disabled anymore -* Added flood control for the `INVITE` command. See channel {} block in reference.conf -* Changed flood control logic for the `KNOCK` command. See channel {} block in reference.conf +* Added flood control for the `INVITE` command. See channel {} block in `reference.conf` +* Changed flood control logic for the `KNOCK` command. See channel {} block in `reference.conf` * `INVITE` without any parameters now shows a list of channels a client is invited to * The `OPERWALL` command has been removed. Use `GLOBOPS` instead * Added `max_channels` to class {} blocks @@ -457,18 +500,21 @@ * Removed `ssl_server_method` and `ssl_client_method` configuration options. ircd now only allows TLSv1, TLSv1.1 and TLSv1.2 protocols depending on the OpenSSL version. SSLv3 is no longer supported. +* For a full list of all changes in this release, see -- Noteworthy changes in version 8.2.0beta3 (2014-05-26) * Code cleanups/performance improvements +* For a full list of all changes in this release, see -- Noteworthy changes in version 8.2.0beta2 (2014-05-15) * **IMPORTANT:** renamed `general::warn_no_nline` configuration directive to `general::warn_no_connect_block` * Fixed bug with `WHOIS` not showing a list of channel names as expected -* Added usermode +q which hides idle and signon time in `WHOIS` -* Added usermode +p which hides channel list in `WHOIS` +* Added user mode +q which hides idle and signon time in `WHOIS` +* Added user mode +p which hides channel list in `WHOIS` +* For a full list of all changes in this release, see -- Noteworthy changes in version 8.2.0beta1 (2014-04-29) @@ -490,8 +536,8 @@ -- Noteworthy changes in version 8.1.19 (2014-07-05) * Fixed `EOB` logic for remote servers -* Fixed bug where opers that have the +g/+G/+R umodes set won't receive server - notices for remote CONNECT/KLINE/DLINE/XLINE/RESV attempts +* Fixed bug where IRC operators that have the +g/+G/+R umodes set won't receive + server notices for remote CONNECT/KLINE/DLINE/XLINE/RESV attempts * Sending messages to user@server to local targets is now no longer possible, as this was an easy way to bypass +R/+G/+g user modes. * Fixed splicode logic so `SPLITNUM` now works as expected @@ -537,7 +583,7 @@ -- Noteworthy changes in version 8.1.14 (2014-02-25) * WHOWAS now honors `serverhide::disable_remote_commands` * Improved TS6 inter-server communication -* Added `unxline` oper flag +* Added `unxline` IRC operator flag * Implemented IRCv3.2 `userhost-in-names` extension * ircd now allows private RSA keys larger than 2048 bits * Fixed bug where signals stopped from working after restarting @@ -585,7 +631,7 @@ -- Noteworthy changes in version 8.1.9 (2013-11-08) -* Added usermode +W. Users connected via a webirc gateway get this +* Added user mode +W. Users connected via a webirc gateway get this mode set by servers. * `WHOIS` now shows if a client is connected via a webirc gateway * Administrators may now see +s channels a user is in with `WHOIS`. @@ -646,7 +692,7 @@ fingerprints * Added `operator::ssl_connection_required` configuration option. See `doc/reference.conf` for more information -* Added usermode +S (client is connected via SSL/TLS). Allows services +* Added user mode +S (client is connected via SSL/TLS). Allows services to keep track of what users are connected via SSL, and allows to see ssl-status of remote clients in a `WHOIS` * Fixed a server name leak with server hiding enabled @@ -656,8 +702,8 @@ * **IMPORTANT:** moved `disable_remote_command` configuration directive from general {} block to serverhide {} block * Minor code cleanups/performance improvements -* Fixed bug where opers could see `LOCOPS` messages even if they don't have - the +l mode set +* Fixed bug where IRC operators could see `LOCOPS` messages even if they don't + have the +l mode set * Fixed bug where non-SSL clients could join +S channels on non-SSL servers * Implemented motd {} configuration blocks. See `doc/reference.conf` for more information @@ -677,7 +723,7 @@ `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 + clients to be killed, whereas `kill:remote` allows to issue a `KILL` for remote clients * Added `locops` and `wallops` to IRC operator flags * Improve/cleanup `HELP` system @@ -707,7 +753,7 @@ -- Noteworthy changes in version 8.1.0beta2 (2013-04-28) * Fixed broken compile with libGeoIP disabled * Code cleanups; working towards stabilization and improved performance -* Removed operflag `nick_changes`. Operators can now set +n at will +* Removed oper flag `nick_changes`. IRC operators can now set +n at will * Fixed shared {} blocks not working as expected * Fixed spoofs not working as expected @@ -752,8 +798,8 @@ -- Noteworthy changes in version 8.0.7 (2013-04-12) * Services may now set a channel topic without joining the channel first * Fixed bug where `WHOIS` would send empty sockhost information on TS5 servers -* Remote server connection and split notices now go to new usermode +e. - These previously used usermode +x. +* Remote server connection and split notices now go to new user mode +e. + These previously used user mode +x. * Services may now change the host of a specific user via `SVSMODE +x ` @@ -765,7 +811,7 @@ -- Noteworthy changes in version 8.0.5 (2013-01-24) -* **IMPORTANT:** nick and topic lengths are now configurable via ircd.conf. +* **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 * Fixed build on GNU/Hurd @@ -807,7 +853,7 @@ -- Noteworthy changes in version 8.0.1 (2012-11-04) -* Fixed broken CIDR support for `CHALLENGE` based irc operator logins +* Fixed broken CIDR support for `CHALLENGE` based IRC operator logins * Fixed class limits not properly applying to operator {} blocks * Fixed possible `TBURST` desynchronization with services * Fixed `TBURST` from leaking the server name if it's a hidden server @@ -845,7 +891,7 @@ * `channel::disable_fake_channels` now also disables ascii 29 (mIRC italic) when set to yes * 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 + was to let IRC operators join three times the amount of max_chans_per_user * 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. @@ -853,7 +899,7 @@ all modules * Added back server notice when a client tries to obtain a reserved nick name * Removed `OMOTD` module -* Added `set` to operator privilege flags. Gives access to the `SET` command +* Added `set` to IRC operator privilege flags. Gives access to the `SET` command * Improved TS6 support * Channel keys/passwords are now case sensitive @@ -865,18 +911,18 @@ - 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) + - Changed rejected client notices to go to new user mode +j. These + previously used user mode +r. + - Added user mode +r (registered nick) and channel mode +r (registered channel) + - Added user mode +R (only registered clients may send a private message) + - Added channel mode +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 {} block to `ircd.conf` - Added services_name directive to general {} block - - Added `GLOBOPS` mainly for services compatibility, but can be used by operators, too + - Added `GLOBOPS` mainly for services compatibility, but can be used by IRC operators, too * Removed `RKLINE` and `RXLINE` commands. Regular expression based bans should - only be added via ircd.conf -* Added `globops`, `restart`, `dline`, `undline` and `module` operator privilege flags. + only be added via `ircd.conf` +* Added `globops`, `restart`, `dline`, `undline` and `module` IRC operator privilege flags. Read `doc/reference.conf` for further explanation of what these flags control * Removed Idle-time klines * Cleaned up modules API. Old modules won't work anymore @@ -885,8 +931,8 @@ * Introduced new logging subsystem including log rotation based on file sizes. Log timestamp format is ISO8601 now * Added support for remote D-lines -* 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 +* Added user mode +H which is basically a replacement for the hidden_admin and + `hidden_oper` operator flags. With user mode +H, IRC operator status can now be hidden even on remote servers * Added CIDR support for operator {} blocks * Removed the servlink program. ircd-hybrid can now make use of @@ -896,11 +942,11 @@ * 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 -* Oper login IDs are no longer limited to NICKLEN*2 +* IRC operator login IDs are no longer limited to NICKLEN*2 * Removed `channel::burst_topicwho` configuration option. This feature is now enabled by default * `STATS Y|y` now reports CIDR limits as well -* Added m_webirc.c to contrib/ +* Added `m_webirc.c` to `contrib/` * Overall code cleanup and speed improvements --------------------------------------------------------------------------------