1-- Noteworthy changes in version 8.2.39 (2021-08-14) 2* `hidechans` and `hideidle` may now be set in `general::oper_only_umodes` 3* OpenSSL 3.0 compatibility improvements 4* Fixed crashing issue in the mkpasswd tool with older glibc 5* Fixed issue where the ircd wouldn't listen on both IPv4 and IPv6 ports in 6 case only a port but no address has been specified in a listen {} block 7* Fixed a `STATS P` displaying issue with compressed ipv6 loopback/inaddr_any 8 9 10-- Noteworthy changes in version 8.2.38 (2021-01-17) 11* Backwards compatibility mode for ircd-hybrid 8.2.22 and below has been removed 12* Minimum supported version of the Anope IRC services is now 2.0.8 13* Fixed displaying issue with channel `MODE` messages 14* Characters valid for user names (ident) for local clients are now `[A-Za-z0-9._-]`. 15 Special characters like ``}|{`^]\[$``, that were allowed previously, are no longer 16 valid. Also user names may not begin with `.`, `_`, or `-`. 17* The `general::dots_in_ident` configuration directive has been renamed to 18 `general::specials_in_ident` and now covers the `-` and `_` characters in 19 addition to `.` 20* Fixed issue with clients connected from IPv6 localhost that, depending on the 21 system's `getaddrinfo` implementation, could lead to a crash of remote servers 22* For a full list of all changes in this release, see <https://git.io/Jts3u> 23 24 25-- Noteworthy changes in version 8.2.37 (2020-12-26) 26* Implemented IRCv3 `CAP 302` 27* Implemented IRCv3 `cap-notify` capability 28* In case a client sends multiple `PASS` messages, ircd only accepts the password 29 sent in the first `PASS` message instead of the last one 30* Missing help file for `MONITOR` has been added 31* Fixed slightly off memory count for motds in `STATS z` 32* For a full list of all changes in this release, see <https://git.io/JtkgJ> 33 34 35-- Noteworthy changes in version 8.2.36 (2020-12-04) 36* The old WATCH implementation has been replaced with IRCv3.2 MONITOR. For this, 37 the `general::max_watch` configuration directive has been renamed to 38 `general::max_monitor`. 39* User mode `B` has been implemented. Clients with that mode set are marked as a 40 bot in both `WHOIS` and `WHO`. This mode can only be set by IRC operators (as 41 long as the `bot` directive is set in `general::oper_only_umodes`), servers, 42 and services. 43 This mode can for example be used to mark HOPM as official network bot. 44* For a full list of all changes in this release, see <https://git.io/JLMnJ> 45 46 47-- Noteworthy changes in version 8.2.35 (2020-11-14) 48* Fixed issue where servers could propagate truncated ban masks during net-join 49* For a full list of all changes in this release, see <https://git.io/JIUa6> 50 51 52-- Noteworthy changes in version 8.2.34 (2020-11-01) 53* Re-implement backwards compatibility mode for old ircd-hybrid 8.2.23 and below. 54 Final removal is scheduled for early 2021. 55* For consistency, the `general::network_desc` configuration directive has been 56 renamed to `general::network_description` 57* Server notices that previously have been sent to user modes +f and +u are now 58 sent to user mode +j (reject notices) instead. Due to this change, `unauth` and 59 `full` have been removed from `general::oper_only_umodes`, `general::oper_umodes`, 60 and `operator::umodes`. 61* User mode +b (bots) has been replaced with +f (flood). Spam/flood notices are now 62 sent to this user mode. For this, `bots` has been removed from 63 `general::oper_only_umodes`, `general::oper_umodes`, and `operator::umodes`. 64 `flood` has been added instead to these configuration directives. 65* Stricten server/user ID validation. IDs have to be all uppercase everywhere now. 66* For a full list of all changes in this release, see <https://git.io/JkeID> 67 68 69-- Noteworthy changes in version 8.2.33 (2020-09-07) 70* Added `client` option to `listener::flags` 71* Added `defer` option to `listener::flags` 72* IRC operators may now use CIDR notation in `WHO` 73* For a full list of all changes in this release, see <https://git.io/JTftW> 74 75 76-- Noteworthy changes in version 8.2.32 (2020-08-16) 77* `RESV` couldn't be issued in case no reason has been supplied. This has been fixed. 78* Fixed possible `RPL_WHOISCHANNELS` line truncation of remote replies 79* Extban $t of type `matching` has been implemented. This extban allows matching 80 based on TLS protocol version and/or cipher suite 81* Implemented channel mode `K`. `KNOCK` cannot be used on channels with that mode set 82* `STATS ?` is now oper-only 83* For a full list of all changes in this release, see <https://git.io/JUZa1> 84 85 86-- Noteworthy changes in version 8.2.31 (2020-05-03) 87* macOS compatibility fixes 88* Removed `spoof_notice` from `auth::flags`. With vhosts now this notice doesn't make 89 much sense anymore 90* Fixed issue where ban masks might become malformed if set by remote clients/servers 91* Fixed issue with channel mode +c where high ascii characters can be erroneously 92 detected as control characters 93* For a full list of all changes in this release, see <https://git.io/JUZa6> 94 95 96-- Noteworthy changes in version 8.2.30 (2020-03-01) 97* `QUOTE HELP extban` didn't work because the extban help file hasn't been 98 installed properly during `make install` 99* Fixed broken libcrypto detection which caused the ircd not to work with 100 OpenSSL under certain circumstances 101* Extban $n of type `acting` has been implemented. This extban prevents 102 matching users from changing their nick while in the channel. Users 103 with voice or above are not affected. 104* Channel mode +N has been changed so channel members with +v can change 105 their nick name as well 106* For a full list of all changes in this release, see <https://git.io/JfOyF> 107 108 109-- Noteworthy changes in version 8.2.29 (2020-02-19) 110* Extbans have been implemented. Currently supported extbans: 111 112 Matching: 113 114 * `$a:<account>` Matches users logged into a matching account. 115 * `$c:<channel>` Matches users that are on the given channel. An additional 116 prefix of either @, %, or + can be specified to test for 117 certain channel privileges. 118 * `$o:<class>` Matches IRC operators that have joined a class 119 matching the mask. 120 * `$r:<realname>` Matches users with a matching realname. 121 * `$s:<server>` Matches users that are connected to a server matching the mask. 122 * `$u:<modes>` Matches users having the specified user modes set or not set. 123 * `$z:<certfp>` Matches users having the given TLS certificate fingerprint. 124 125 Acting: 126 127 * `$j:<banmask>` Prevents matching users from joining the channel. 128 * `$m:<banmask>` Blocks messages from matching users. Users with voice 129 or above are not affected. 130 131 For more details, see `help/extban`. 132* Added `channel::enable_extbans` configuration option. See `doc/reference.conf` 133 for more information. 134* For a full list of all changes in this release, see <https://git.io/JvgAL> 135 136 137-- Noteworthy changes in version 8.2.28 (2020-01-26) 138* Fixed issue with topics set by `TBURST` not being propagated properly to clients 139* Allow IRC operators to search for real hosts in `WHO` 140* Ban/exempt/invex masks are now also tested against realhosts to prevent clients 141 from bypassing channel bans by activating a fakehost 142* For a full list of all changes in this release, see <https://git.io/Jv37M> 143 144 145-- Noteworthy changes in version 8.2.27 (2020-01-22) 146* Experimental support for wolfSSL has been implemented. Minimum supported version is 4.3.0 147* The `--enable-openssl`, `--enable-gnutls` switches, and their disabling counterparts 148 `--disable-openssl` and `--disable-gnutls`, have been replaced with the `--with-tls` 149 switch which takes one of the following options: `openssl`, `wolfssl`, `gnutls`, 150 and `none`. 151 If nothing has been specified, configure tries to autodetect in the following order: 152 OpenSSL/LibreSSL -> GnuTLS -> wolfSSL. 153* Fixed segfault with GnuTLS/libgmp in case there's no DH parameters file 154 defined in `serverinfo::ssl_dh_param_file` or if that file is missing 155* The connection timeout for connect {} blocks can now be configured via 156 the `connect::timeout` configuration directive 157* Minimum supported OpenSSL version is 1.1.1 now 158* Minimum supported GnuTLS version is 3.6.5 now 159* Supported TLSv1.3 cipher suites can now be configured explicitely via the 160 new `serverinfo::tls_cipher_suites` configuration directive 161* In the serverinfo {} block, the following configuration directives have been renamed: 162 `ssl_certificate_file` -> `tls_certificate_file` 163 `ssl_dh_param_file` -> `tls_dh_param_file` 164 `ssl_dh_elliptic_curve` -> `tls_supported_groups` 165 `ssl_cipher_list` -> `tls_cipher_list` 166 `ssl_message_digest_algorithm` -> `tls_message_digest_algorithm` 167* In the operator {} block, the following configuration directives have been renamed: 168 `ssl_certificate_fingerprint -> `tls_certificate_fingerprint` 169 `ssl_connection_required -> `tls_connection_required` 170* In the connect {} block, the following configuration directives have been renamed: 171 `ssl_cipher_list -> `tls_cipher_list` 172 `ssl_certificate_fingerprint -> `tls_certificate_fingerprint` 173* For a full list of all changes in this release, see <https://git.io/Jvq9g> 174 175 176-- Noteworthy changes in version 8.2.26 (2019-05-31) 177* The `general::tkline_expire_notices` configuration directive has been 178 replaced with user mode `X`. *LINE expiration notices are sent to IRC 179 operators with that mode set 180* Fixed issue with `/rehash conf` creating duplicated class entries 181 instead of updating existing ones that are already in use 182* For a full list of all changes in this release, see <https://git.io/fjEbq> 183 184 185-- Noteworthy changes in version 8.2.25 (2019-04-24) 186* The `class::number_per_ip`, `class::max_local` and `class::max_global` 187 configuration directives have been replaced with just `class::number_per_ip_local` 188 and `class::number_per_ip_global`. The `class::max_local` basically was 189 redundant as it had the same functionality as `class::number_per_ip` 190* Adding RESVs with wildcards no longer requires administrator privileges 191* The `general::ignore_bogus_ts` configuration option has been deprecated 192* TLSv1.1 and TLSv1.0 are no longer supported and have been disabled in 193 the OpenSSL and GnuTLS module 194* Minimum supported OpenSSL version is 1.0.1f now 195* Minimum supported GnuTLS version is 3.5.8 now 196* The `serverinfo::vhost` and `serverinfo:vhost6` configuration directives have 197 been deprecated. If you need to bind a specific address you can specify one 198 in the connect {} block 199* The `connect::vhost` configuration directive has been renamed to `connect::bind` 200* For a full list of all changes in this release, see <https://git.io/fjRVk> 201 202 203-- Noteworthy changes in version 8.2.24 (2018-04-05) 204* Added `STATS s` to show configured pseudo {} blocks 205* Implemented channel mode `N` which prevents users from changing their 206 nick while in a channel with that mode set 207* Services clients are now shown with `is a Network Service` in `WHOIS` 208* For a full list of all changes in this release, see <https://git.io/fjRVt> 209 210 211-- Noteworthy changes in version 8.2.23 (2018-03-26) 212* IRC operators are now able to see a user's resolved hostname in `WHOWAS`, 213 and `WHOIS` even if the user has a fakehost/vhost 214* `RPL_WELCOME` now does use the rfc2812 style nick!user@host format 215* Removed rudimentary libgeoip support 216* Added `--enable-efence` switch to allow easy linking with the 217 electric fence memory debugger library 218* `JOIN 0` is no longer supported 219* Fixed bug where ircd would not remove `RPL_WHOISOPERATOR` based svstags 220 when deoppering 221* Fixed `unknown closes` statistic in `STATS t` showing invalid values sometimes 222* For a full list of all changes in this release, see <https://git.io/fjRVq> 223 224 225-- Noteworthy changes in version 8.2.22 (2017-03-26) 226* Implemented channel mode `L`. Channels with that mode set can make use of an 227 extended ban list size specified with the new `channel::max_bans_large` 228 configuraton option. This mode can be set only by IRC operators or servers. 229* Implemented channel mode `u` which hides bmask (+b/+e/+I) lists and mode changes 230 to non-chanops everywhere 231* Fixed an issue with `TRACE` where remote servers would reply with `RPL_TRACEUSER` 232 numerics containing UIDs 233* `STATS z` now shows simple memory stats of servers linked to the network 234* Added support for remote `ETRACE` 235* For a full list of all changes in this release, see <https://git.io/fjRVO> 236 237 238-- Noteworthy changes in version 8.2.21 (2016-11-27) 239* The `general::default_floodtime` configuration option has been added 240 along with the `SET FLOODTIME` command. These allow to fine-tune the 241 message throttling better 242* Fixed an issue with `INVITE` not showing the list of channels the 243 sender is invited to 244* For a full list of all changes in this release, see <https://git.io/fjRVG> 245 246 247-- Noteworthy changes in version 8.2.20 (2016-11-05) 248* `INFO` now shows GnuTLS/OpenSSL library/header versions 249* Added `channel::max_invites` configuration option. See `doc/reference.conf` 250 for more information. 251* `INVITE` expirations have been implemented. Expire time can be adjusted with 252 the `channel::invite_expire_time` configuration directive 253* `WHOIS` notices to IRC operators have been re-added. User mode +y is required 254 to see them 255* The maximum line length for motd files has been increased to 320 bytes to 256 support multibyte encodings better 257* For a full list of all changes in this release, see <https://git.io/fjRVZ> 258 259 260-- Noteworthy changes in version 8.2.19 (2016-08-21) 261* Fixed a possible server name leak in `WHO` with server hiding enabled 262* `WHO` now allows IRC operators to search by IP address 263* Admins no longer can see IP addresses in `STATS P` with 264 `serverhide::hide_server_ips` enabled 265* User mode `n` now shows nick name changes from remote clients, too 266* For a full list of all changes in this release, see <https://git.io/fjRVC> 267 268 269-- Noteworthy changes in version 8.2.18 (2016-06-22) 270* Fixed an assert when a client sends invalid `LIST` options 271* Fixed invalid memory stats of channel invites in `STATS z` 272* For a full list of all changes in this release, see <https://git.io/fjRSx> 273 274 275-- Noteworthy changes in version 8.2.17 (2016-04-21) 276* Fixed core on `REHASH CONF` with `general::whowas_history_length` 277 set to 0 278* Fixed possible core on `INVITE` with `channel::max_channels` set to 0 279* For a full list of all changes in this release, see <https://git.io/fjRSp> 280 281 282-- Noteworthy changes in version 8.2.16 (2016-03-20) 283* Added `general::whowas_history_length` configuration option which 284 allows to define the maximum length of the `WHOWAS` nickname history 285* Services are now allowed to override `general::min_nonwildcard`, 286 and `general::min_nonwildcard_simple` settings 287* Minor updates to help files 288* For a full list of all changes in this release, see <https://git.io/fjRSj> 289 290 291-- Noteworthy changes in version 8.2.15 (2016-02-24) 292* Added proper support for Raspbian/ARM. Gracias to Beave/2600.net 293 for providing a box for testing purposes. 294* Fixed an assert with empty `user = ""` directives in auth {} blocks 295* `STATS z` now shows allocated listeners 296* Fixed bug where `can_flood` auth {} flags did not work on channels 297* For a full list of all changes in this release, see <https://git.io/fjR9v> 298 299 300-- Noteworthy changes in version 8.2.14 (2016-02-09) 301* Fixed server clustering 302* Major cleanups to the configuration subsystem 303* Improvements to libGeoIP support: 304 - Works now with IPv6 addresses 305 - Added `libgeoip_database_options`, `libgeoip_ipv4_database_file`, 306 and `libgeoip_ipv6_database_file` configuration directives to the 307 serverinfo {} block 308* Further improvements to GnuTLS support 309* For a full list of all changes in this release, see <https://git.io/fjR9f> 310 311 312-- Noteworthy changes in version 8.2.13 (2016-02-02) 313* Implemented support for GnuTLS. Currently ./configure's autodetection 314 intentionally prefers OpenSSL over GnuTLS, so OpenSSL detection needs 315 to be disabled explicitely by using the `--disable-openssl` switch. 316* Minimum supported GnuTLS version is 3.3.8 now 317* Minimum supported OpenSSL version is 1.0.1d now 318* Added support for remote `REHASH`: `REHASH <server> <option>` 319* Added `rehash:remote` IRC operator privilege flag 320* Added `rehash` type to shared {} blocks 321* Fixed minor memory leak with shared {} and cluster {} blocks 322* For a full list of all changes in this release, see <https://git.io/fjR9J> 323 324 325-- Noteworthy changes in version 8.2.12 (2016-01-05) 326* **IMPORTANT:** Character case mapping is `ascii` now. It is recommended 327 to update all servers on the network to prevent possible channel 328 desynchronizations and nick name collision kills 329* Added channel mode `T` which forbids `NOTICE` to be sent to a channel 330* Fixed minor `SVSTAG` memory leak 331* Fixed broken `PART` message blocking mechanism 332* ircd now makes use of up to 8 name servers that are specified in 333 `/etc/resolv.conf` 334* The `-klinefile`, `-dlinefile`, etc. switches didn't work at all 335* Fixed possible core on ident lookups if ircd is out of file descriptors 336* Far client exit notices (+F) now show IP addresses, too 337* Made idle time look nicer in `STATS v|p` by using a formatted time string 338* `general::ts_warn_delta`, and `general::ts_max_delta` can be set to 0 now 339* For a full list of all changes in this release, see <https://git.io/JvLtj> 340 341 342-- Noteworthy changes in version 8.2.11 (2015-11-19) 343* Implemented IRCv3.2 `invite-notify` extension 344* Implemented IRCv3.2 `chghost` extension 345* Added `channel::invite_delay_channel` configuration option 346* For a full list of all changes in this release, see <https://git.io/JvLqe> 347 348 349-- Noteworthy changes in version 8.2.10 (2015-11-06) 350* **IMPORTANT:** renamed `serverhide::links_delay` configuration directive 351 to `serverhide::flatten_links_delay` 352* Added `serverhide::flatten_links_file` configuration option 353* Fixed bug where changing `serverhide::flatten_links_delay` on runtime 354 would not have any effect 355* mkpasswd (tools): fixed broken bcrypt support on *BSD in conjunction with 356 the `-s` and `-l` switches. Dropped MD5, DES and Extended DES support. 357* Removed `CHALLENGE` in favor of ssl certificate fingerprint enabled 358 operator {} blocks 359* RSA keys with less than 2048 bits are no longer supported; same applies 360 to the DH param file 361* Added missing IRC operator privilege flags to `STATS o`. For a full list 362 of flags see `doc/reference.conf` 363* For a full list of all changes in this release, see <https://git.io/JvLqJ> 364 365 366-- Noteworthy changes in version 8.2.9 (2015-09-13) 367* **IMPORTANT:** database files and links.txt are now stored in `/var/lib` 368 instead of `/etc`, so make sure to move your k/d/x-line database files 369 to the new path before (re)starting the ircd 370* **IMPORTANT:** the splitmode logic has been removed along with the 371 following channel {} block configuration directives: 372 `default_split_user_count`, `default_split_server_count`, 373 `no_create_on_split`, `no_join_on_split` 374* Added `xline_exempt` to auth {} block flags 375* `serverinfo::sid` is now optional. A unique SID is now automatically 376 generated based on the server's name and description 377* Various fixes to the mkpasswd tool 378* If supported by the compiler, ircd-hybrid now compiles with 379 `-fstack-protector-strong` instead of `-fstack-protector` 380* Services can now add RESVs (SQLINEs) that have wildcards in it 381* Channel name RESVs are now sanity checked for too broad masks 382* `class::connectfreq` now works properly with values lower than 300 seconds 383* Implemented IRCv3.1 `account-notify` extension 384* The `general::oper_pass_resv` configuration directive has been deprecated 385 in favor of the new `join:resv`, and `nick:resv` IRC operator flags. 386 See `doc/reference.conf` for more information. 387* Added `resv`, and `unresv` IRC operator flags. Previously, all 388 IRC operators were allowed to `RESV` and `UNRESV`, regardless of configured 389 privileges. 390* Added `close` to IRC operator flags 391* ircd is using ISO 8601 date and time notation in most places now 392* For a full list of all changes in this release, see <https://git.io/JvLqI> 393 394 395-- Noteworthy changes in version 8.2.8 (2015-05-10) 396* ircd now rejects remote k-line requests for user@host mask that don't 397 have at least `general::min_nonwildcard` non-wildcard characters in it 398* Configuration related server notices are now sent to admins only as 399 they potentially could leak passwords and other sensitive data to IRC 400 operators that don't have administrator privileges 401* The `GLINE`/`GUNGLINE` commands have been removed. `KLINE` in conjunction 402 with cluster {} and/or shared {} blocks is now the recommended 403 way to add global user@host mask based server bans 404* Added `dline_min_cidr`, `dline_min_cidr6`, `kline_min_cidr`, and 405 `kline_min_cidr6` configuration options to the general {} block 406* Fixed bug where a `REHASH` would clear all X-Lines and RESVs that have 407 been set with the `XLINE`/`RESV commands` 408* Fixed broken temporary remote XLINEs 409* The `general::havent_read_conf` configuration directive has been removed 410* For a full list of all changes in this release, see <https://git.io/JvLqq> 411 412 413-- Noteworthy changes in version 8.2.7 (2015-04-05) 414* Fixed a potential buffer overflow with the `BMASK` inter-server command 415* Fixed undefined behavior in the `HELP` command module which could 416 lead to stack corruption 417* Removed useless help files for inter-server commands 418* For a full list of all changes in this release, see <https://git.io/JfOyA> 419 420 421-- Noteworthy changes in version 8.2.6 (2015-03-29) 422* `INFO` now shows configured values of `max_watch` and `stats_m_oper_only` 423* `WHOWAS` now shows IP addresses to IRC operators 424* Fixed bug that would allow remote clients to bypass the hard 425 limit of max `WHOWAS` entries to be returned 426* For a full list of all changes in this release, see <https://git.io/JTTuf> 427 428 429-- Noteworthy changes in version 8.2.5 (2015-02-24) 430* Fixed core on Mac OSX 10.10 and possibly some other systems when parsing 431 the `ircd.conf` with configured pseudo {} blocks 432* For a full list of all changes in this release, see <https://git.io/JTTuI> 433 434 435-- Noteworthy changes in version 8.2.4 (2015-02-17) 436* Added `SVSTAG` command which services may use to add tags to users which can 437 be seen in `WHOIS` 438* Added `oper::whois` configuration option which allows to override the default 439 `RPL_WHOISOPERATOR` numeric string shown in `WHOIS` 440* IRC operators may now use +O on a channel even if they are only a half-op 441* Fixed bug where `TOPIC` messages were not n!u@h prefixed in case of `TBURST` 442 issued by services clients 443* For a full list of all changes in this release, see <https://git.io/JTTut> 444 445 446-- Noteworthy changes in version 8.2.3 (2015-02-11) 447* **IMPORTANT:** the following configuration directives have been renamed: 448 `max_clients` -> `default_max_clients` 449 `join_flood_count` -> `default_join_flood_count` 450 `join_flood_time` -> `default_join_flood_time` 451* Fixed bug where `REHASH` would always reset the `MAX`, `JFLOODTIME`, and 452 `JFLOODCOUNT` values that have been changed from within IRC via the `SET` 453 command 454* Added channel mode `C` which prevents users from sending CTCPs to a channel 455* Fixes to the `NOTICE`/`PRIVMSG` anti-flood logic 456* Allow to disable the `NOTICE`/`PRIVMSG` anti-flood mechanism by setting the 457 `general::default_floodcount` configuration option to 0 458* Updated some help files 459* IRC operators may now see certificate fingerprints, user modes and hidden 460 channels via `WHOIS` as well. This used to be admin only. 461* For a full list of all changes in this release, see <https://git.io/JTQP3> 462 463 464-- Noteworthy changes in version 8.2.2 (2015-01-20) 465* Implemented IRCv3.1 `extended-join` extension 466* Channel half-ops can now use `INVITE` as well 467* Fixed broken `make install -jX` 468* `m_opme.c` has been added to `modules/extra`. Can be used on opless channels only. 469* Added `opme` to IRC operator flags 470* Updated several help files 471* The `general::hide_spoof_ips` configuration option has been deprecated 472* The `general::true_no_oper_flood` configuration option has been deprecated. 473 IRC operators still can have higher `flood` limits with `no_oper_flood = yes;` 474 hoewever, they are no longer allowed to bypass RecvQ limits. 475* Added `general::stats_m_oper_only` configuration option 476* Remote client connection notices (user mode +F) now do show IP addresses, too 477* For a full list of all changes in this release, see <https://git.io/JTQPG> 478 479 480-- Noteworthy changes in version 8.2.1 (2014-10-21) 481* Fixed bug where `UNDLINE remote.server IP` did not work as expected 482* Servers are now allowed to add/remove K-/D-/X-lines and RESVs 483* User mode +G now no longer allows to override +g 484* Due to potential weakness, TLS session caching and session tickets 485 have been disabled 486* Minor improvements to TS6 implementation 487* `WHOWAS` now shows the name of the services account a user was logged in 488* For a full list of all changes in this release, see <https://git.io/JTQP8> 489 490 491-- Noteworthy changes in version 8.2.0 (2014-08-24) 492* Successful IRC operator logins are now announced globally via `GLOBOPS` 493* Cleanups and improvements to the resolver code 494* Cleanups and improvements to the `poll` I/O event notification support 495* A topic mask can now be specified within the `LIST` options 496* All users may now see channel modes in the `LIST` reply 497* Fixed bug where `NOTICE +#somechan` did allow bypassing resv {} channels, 498 or channels that are set +c (no control codes) 499* pseudo {} blocks also known as service aliases have been implemented. 500 See `doc/reference.conf` for more information. 501* Removed `general::services_name` configuration option. This is now no 502 longer needed. 503* For a full list of all changes in this release, see <https://git.io/JTQPR> 504 505 506-- Noteworthy changes in version 8.2.0rc2 (2014-08-03) 507* Improved AWAY throttling to allow for better fine-tuning. See the 508 newly added `away_count` and `away_time` configuration directives 509 in the general {} block 510* Support for the `select` I/O event notification has been dropped 511* For a full list of all changes in this release, see <https://git.io/JkeIF> 512 513 514-- Noteworthy changes in version 8.2.0rc1 (2014-07-20) 515* Miscellaneous code cleanups and stabilization fixes 516* `./configure` now requires OpenSSL 0.9.8o or above in order 517 to enable TLS/SSL support 518* For a full list of all changes in this release, see <https://git.io/JkeLI> 519 520 521-- Noteworthy changes in version 8.2.0beta4 (2014-07-06) 522* **IMPORTANT:** channel halfops are now an integral part of ircd-hybrid 523 and can't be disabled anymore 524* Added flood control for the `INVITE` command. See channel {} block in `reference.conf` 525* Changed flood control logic for the `KNOCK` command. See channel {} block in `reference.conf` 526* `INVITE` without any parameters now shows a list of channels a client is invited to 527* The `OPERWALL` command has been removed. Use `GLOBOPS` instead 528* Added `max_channels` to class {} blocks 529* Added `throttle_count` configuration option to the general {} block 530* Added `ssl_message_digest_algorithm` configuration option to serverinfo {} block. 531 See `doc/reference.conf` for more information. 532* Added support for Elliptic Curve Diffie-Hellman (ECDH). Also an elliptic curve can be 533 specified via the `serverinfo::ssl_dh_elliptic_curve` configuration option. 534* Removed `ssl_server_method` and `ssl_client_method` configuration options. 535 ircd now only allows TLSv1, TLSv1.1 and TLSv1.2 protocols depending 536 on the OpenSSL version. SSLv3 is no longer supported. 537* For a full list of all changes in this release, see <https://git.io/JkeLO> 538 539 540-- Noteworthy changes in version 8.2.0beta3 (2014-05-26) 541* Code cleanups/performance improvements 542* For a full list of all changes in this release, see <https://git.io/JkeLW> 543 544 545-- Noteworthy changes in version 8.2.0beta2 (2014-05-15) 546* **IMPORTANT:** renamed `general::warn_no_nline` configuration directive to 547 `general::warn_no_connect_block` 548* Fixed bug with `WHOIS` not showing a list of channel names as expected 549* Added user mode +q which hides idle and signon time in `WHOIS` 550* Added user mode +p which hides channel list in `WHOIS` 551* For a full list of all changes in this release, see <https://git.io/JkeLB> 552 553 554-- Noteworthy changes in version 8.2.0beta1 (2014-04-29) 555* TS6 is now mandatory. ircd is no longer backwards compatible with TS5 556 and below. 557* `SVSJOIN` and `SVSPART` commands have been added 558* Major code cleanups and refactoring. Improved overall performance 559* `INFO` now also reports `MPATH` (path to main motd (Message of the Day) file) 560 and `SPATH` (Path to server executable) 561* Updated several help files 562 563 564-- Noteworthy changes in version 8.1.20 (2014-07-20) 565* Fixed `XLINE` not working as expected 566* Fixed build with LibreSSL which hasn't compression support 567* Miscellaneous stabilization and cosmetical fixes 568* EGD support has been dropped 569 570 571-- Noteworthy changes in version 8.1.19 (2014-07-05) 572* Fixed `EOB` logic for remote servers 573* Fixed bug where IRC operators that have the +g/+G/+R umodes set won't receive 574 server notices for remote CONNECT/KLINE/DLINE/XLINE/RESV attempts 575* Sending messages to user@server to local targets is now no longer possible, 576 as this was an easy way to bypass +R/+G/+g user modes. 577* Fixed splicode logic so `SPLITNUM` now works as expected 578* Fixed `UNDLINE` not to require the IP address to be prepended with *@ 579 580 581-- Noteworthy changes in version 8.1.18 (2014-06-09) 582* Fixed `CAP` issue for certain clients 583* Fixed bug where `STATS p` would show an invalid amount of IRC operators 584 in case there are any +H opers 585* IRC operators may now no longer set a channel +O if they are only halfops (%) 586* Channel halfops (%) may now no longer (de)halfop other channel members 587* Channel halfops (%) may now no longer `KICK` other channel halfops 588* Fixed compile warnings; code cleanups 589* Fixed bug where the configuration parser wouldn't truncate the network name 590 if `general::network_name` contains spaces 591 592 593-- Noteworthy changes in version 8.1.17 (2014-05-01) 594* Fixed possible `WATCH` core 595* Fixed bug where the configuration parser wouldn't take time units 596 into consideration for the `join_flood_time` and `throttle_time` 597 configuration options 598* Minor `LIST` optimization 599 600 601-- Noteworthy changes in version 8.1.16 (2014-04-20) 602* Fixed undefined behaviour with `crypt` returning `NULL` 603 since glibc2.17 in certain cases 604* Admins may now see all channel members via `WHO #channel` 605 regardless of channel mode +s 606* Fixed corrupted `STATS U` output 607 608 609-- Noteworthy changes in version 8.1.15 (2014-03-29) 610* **IMPORTANT:** ircd binary is now again placed into `bin/` instead of `sbin/` 611* mkpasswd in tools/ now defaults to MD5 instead of DES 612* The `USERS` command has been removed 613* Fixed issue with `SVSNICK` where clients self-collided when changing 614 just the case of the nick name, i.e. somenick -> SomeNicK 615 616 617-- Noteworthy changes in version 8.1.14 (2014-02-25) 618* WHOWAS now honors `serverhide::disable_remote_commands` 619* Improved TS6 inter-server communication 620* Added `unxline` IRC operator flag 621* Implemented IRCv3.2 `userhost-in-names` extension 622* ircd now allows private RSA keys larger than 2048 bits 623* Fixed bug where signals stopped from working after restarting 624 the ircd via SIGINT 625* Fixed bug where certain irc clients could not reconnect via TLS/SSL 626* Fixed long-standing bug where +p channels have been shown 627 in the `WHOIS` reply 628 629 630-- Noteworthy changes in version 8.1.13 (2014-01-07) 631* Fixed `EOB` not working for remote servers (resulted in fake direction notices) 632* Fixed remote client connection notices for servers that are 633 more than one hop away 634* Fixed bug where the ircd didn't timeout SSL connections that 635 haven't finished the SSL handshake 636* Fixed several bugs with server hiding 637* Updated/fixed help files 638* `WHOIS` no longer sends a notice to +y operators 639 640 641-- Noteworthy changes in version 8.1.12 (2013-12-22) 642* `RPL_WHOISMODES` now uses the 379 numeric 643* Serial number is now shown on start up 644* Fixed possible channel mode desynch with services 645* Fixed TS6 support with `LOCOPS` 646* Minor code cleanups 647* Fixed file descriptor leak with empty help files 648* Fixed issue with `WEBIRC` where hostnames were not validated 649 650 651-- Noteworthy changes in version 8.1.11 (2013-12-06) 652* Administrators may now see channel modes in `LIST` 653* Fixed compile error on BSD systems when building with `kqueue` 654 655 656-- Noteworthy changes in version 8.1.10 (2013-11-25) 657* Fixed bug with `kqueue` where it occasionally dropped updates 658* Changed `WHOIS` to show certificate fingerprint to administrators only 659* The `WHO` reply now shows if a nickname has been registered 660 with NickServ. (`r` status flag) 661* Fixed some flaws with server hiding 662* Fixed bug where `STATS P` would leak ip addresses to remotely connected 663 administrators, even if `serverhide::hide_server_ips` was set to `yes` 664* Added `SVSKILL` command 665 666 667-- Noteworthy changes in version 8.1.9 (2013-11-08) 668* Added user mode +W. Users connected via a webirc gateway get this 669 mode set by servers. 670* `WHOIS` now shows if a client is connected via a webirc gateway 671* Administrators may now see +s channels a user is in with `WHOIS`. 672 Secret channels are prepended with a tilde in the `WHOIS` reply. 673* Administrators are now able to see all the user modes a user has 674 set via `WHOIS` 675 676 677-- Noteworthy changes in version 8.1.8 (2013-10-25) 678* Fixed bug that could lead to a desynchronized nick database 679 throughout the entire network if using services enforced 680 nick names (`SVSNICK`) 681* Cleaned up/modernized build system 682* Add `-fstack-protector` to `CFLAGS` if available. Basically checks for 683 buffer overflows/stack-smashing attacks 684* When using anope 1.9/2.0 services, `WHOIS` now shows the account name 685 of a registered/identified client (numeric 330) 686* Administrators can now see +s channels in the `LIST` reply 687 688 689-- Noteworthy changes in version 8.1.7 (2013-08-18) 690* Fixed issue with channel mode +n having no functionality at all 691* Fixed SSL certificate fingerprint validation for outgoing server connects 692* Updated several documentation files 693 694 695-- Noteworthy changes in version 8.1.6 (2013-08-02) 696* Fixed possible core with empty motd files 697 698 699-- Noteworthy changes in version 8.1.5 (2013-07-16) 700* Fixed bug that would prevent servers from linking together 701 if `connect::aftype` isn't set 702 703 704-- Noteworthy changes in version 8.1.4 (2013-07-05) 705* Added `xline` and `resv` logging types. See `doc/reference.conf` 706 for more information 707* Fixed bug where remote `STATS` requests were not rate limited 708* Fixed core with empty `auth::spoof` entries 709* Increased oper/auth/connect password length limit from 20 to 128 710* Minor fixes to nickflood control code 711 712 713-- Noteworthy changes in version 8.1.3 (2013-06-23) 714* Fixed possible core on `STATS z` 715* Revised `doc/reference.conf` 716* Fixed broken `--disable-libgeoip` switch 717 718 719-- Noteworthy changes in version 8.1.2 (2013-06-20) 720* Added `general::cycle_on_host_change` configuration option 721* Added `general::stats_u_oper_only` configuration option 722* Added support for SHA-256 ssl certificate fingerprint based operator {} 723 and connect {} blocks. 724 In conjunction with Anope 1.9/2.0 IRC-services, clients are now also able 725 to automatically identify for their nick with ssl certificate 726 fingerprints 727* Added `operator::ssl_connection_required` configuration option. See 728 `doc/reference.conf` for more information 729* Added user mode +S (client is connected via SSL/TLS). Allows services 730 to keep track of what users are connected via SSL, and allows to see 731 ssl-status of remote clients in a `WHOIS` 732* Fixed a server name leak with server hiding enabled 733 734 735-- Noteworthy changes in version 8.1.1 (2013-06-06) 736* **IMPORTANT:** moved `disable_remote_command` configuration directive from 737 general {} block to serverhide {} block 738* Minor code cleanups/performance improvements 739* Fixed bug where IRC operators could see `LOCOPS` messages even if they don't 740 have the +l mode set 741* Fixed bug where non-SSL clients could join +S channels on non-SSL servers 742* Implemented motd {} configuration blocks. See `doc/reference.conf` for more 743 information 744* `STATS T` shows configured MOTD files 745 746 747-- Noteworthy changes in version 8.1.0 (2013-05-23) 748* Minor code cleanups/performance improvements 749 750 751-- Noteworthy changes in version 8.1.0rc1 (2013-05-19) 752* Fixed broken spoofs 753 754 755-- Noteworthy changes in version 8.1.0beta5 (2013-05-15) 756* Removed `remote`, and `global_kill` oper flags, and added `connect`, 757 `squit`, and `kill` flags for better fine-tuning instead. Whether or 758 not a specific action is allowed on a remote server can be controlled 759 by appending the `:remote` flag. For example: `kill` allows only local 760 clients to be killed, whereas `kill:remote` allows to issue a `KILL` for 761 remote clients 762* Added `locops` and `wallops` to IRC operator flags 763* Improve/cleanup `HELP` system 764 765 766-- Noteworthy changes in version 8.1.0beta4 (2013-05-09) 767* Implemented channel mode +M. Clients that haven't identified their 768 name with NickServ may not speak in a channel that has this mode set 769* Fixed weird idletimes shown in `TRACE` 770* Added `nononreg` (+R) to `general::oper_umodes` 771* Added user mode +F (can see remote client connect/exit notices) 772 773 774-- Noteworthy changes in version 8.1.0beta3 (2013-05-05) 775* PCRE support has been dropped 776* `STATS o` now shows how many times an operator {} block has been used. 777 Similar to `STATS x|q` 778* Implemented channel mode +c. Known from other ircds, this mode basically 779 prevents users from sending messages including control codes to a channel 780 that has this mode set 781* Fixed bug where bans were not checked against non-channel members when 782 sending messages to a channel 783* Removed `channel::quiet_on_ban` configuration option. This feature is 784 now enabled by default 785 786 787-- Noteworthy changes in version 8.1.0beta2 (2013-04-28) 788* Fixed broken compile with libGeoIP disabled 789* Code cleanups; working towards stabilization and improved performance 790* Removed oper flag `nick_changes`. IRC operators can now set +n at will 791* Fixed shared {} blocks not working as expected 792* Fixed spoofs not working as expected 793 794 795-- Noteworthy changes in version 8.1.0beta1 (2013-04-25) 796* **IMPORTANT:** name/channel entries can't be stacked any longer within a 797 single resv {} block. Each entry now requires its own resv {} block. 798 Read `doc/reference.conf` for more details 799* Added `resv::exempt` configuration option. Exempt can be either a 800 ISO 3166 alpha-2 two letter country code, or a nick!user@host mask. 801 CIDR is supported 802* Removed `channel::restrict_channels` configuration option 803* Preliminary libGeoIP support. Currently only used for exempt entries 804 in resv {} blocks 805* Improved WEBIRC authentication; added `webirc` to `auth::flags`. 806 A `webirc.` spoof is now no longer required 807* Implemented new memory pool allocator which basically is based upon Tor's 808 mempool allocator for Tor cells 809* Implemented new binary database storage for X-, D-, K-, G-Lines and RESVs. 810 Temporary bans are now stored as well and will persist after a reboot 811* Channel based resv {} blocks may now contain wildcards 812* NICK/JOIN now shows the actual reason of reserved nick-/channelnames 813* contrib/ and its content has been enirely removed from the tree 814* Added `serverhide::hide_services` configuration option 815* Added `nononreg` (+R) to `oper::umodes` and `general::oper_only_modes` 816* Implemented IRCv3.1 `away-notify` extension 817 818 819-- Noteworthy changes in version 8.0.9 (2013-05-16) 820* Fixed bug where ircd would sometimes drop a services link because 821 of a missing argument to the `SVSMODE` command 822* Fixed weird idletimes shown in `TRACE` 823 824 825-- Noteworthy changes in version 8.0.8 (2013-04-28) 826* `STATS s` now shows configured services {} blocks as well 827* Fixed compile warnings, minor code cleanups and optimizations 828* Increased nickname history length to 32768 829* Unidentified/unregistered nicks may not speak in +R channels 830 831 832-- Noteworthy changes in version 8.0.7 (2013-04-12) 833* Services may now set a channel topic without joining the channel first 834* Fixed bug where `WHOIS` would send empty sockhost information on TS5 servers 835* Remote server connection and split notices now go to new user mode +e. 836 These previously used user mode +x. 837* Services may now change the host of a specific user 838 via `SVSMODE <timestamp> <target> +x <hostname>` 839 840 841-- Noteworthy changes in version 8.0.6 (2013-01-28) 842* Fix bug where idle time sometimes is 0 even if the client didn't 843 send any private message 844* Fixed possible core in `try_parse_v4_netmask` 845 846 847-- Noteworthy changes in version 8.0.5 (2013-01-24) 848* **IMPORTANT:** nick and topic lengths are now configurable via `ircd.conf`. 849 A `max_nick_length`, as well as a `max_topic_length` configuration option 850 can now be found in the serverinfo {} block 851* Fixed build on GNU/Hurd 852* Fixed log files not getting reopened after `REHASH` 853* Improved logging of configuration file issues 854* `ircd.pid` has been accidentally saved in `/var` instead of `/var/run` 855* Linux RT signal support for notification of socket events has been dropped 856* Fixed `STATS Y|y` sometimes sending weird sendq/recvq values 857* `INFO` now also shows configured values of `disable_fake_channels`, 858 and `stats_e_disabled` 859* m_webirc.c is now officially supported, and has been moved from contrib/ 860 to modules/ 861* `WHOIS`, `STATS p`, and `TRACE` may now show fake idle times depending 862 on how the new `class::min_idle` and `class::max_idle` configuration 863 directives have been configured. This feature basically works in the 864 same way as it does in csircd 865* The configuration parser now does support `year` and `month` units 866 867 868-- Noteworthy changes in version 8.0.4 (2013-01-02) 869* Fixed possible core on `USERHOST`/`ISON` with optimization enabled 870* Fixed bug where `can_flood` sometimes didn't work as expected 871 872 873-- Noteworthy changes in version 8.0.3 (2012-12-24) 874* Fixed core on `UNDLINE` 875* `XLINE`, `KLINE`, `RESV`, `DLINE`, `SQUIT`, and `KILL` now have the 876 same default reason if no reason has been specified 877 878 879-- Noteworthy changes in version 8.0.2 (2012-12-20) 880* Minor updates to the build system 881* Fixed broken `--enable-assert` configure switch 882* Fixed bug where timed events stopped from working if the system's 883 clock is running backwards 884* `STATS q|Q` now shows how many times a resv {} block has been matched 885* Fixed contributed `WEBIRC` module 886* IRC operators may now again see server generated nick rejection notices 887 888 889-- Noteworthy changes in version 8.0.1 (2012-11-04) 890* Fixed broken CIDR support for `CHALLENGE` based IRC operator logins 891* Fixed class limits not properly applying to operator {} blocks 892* Fixed possible `TBURST` desynchronization with services 893* Fixed `TBURST` from leaking the server name if it's a hidden server 894 895 896-- Noteworthy changes in version 8.0.0 (2012-10-18) 897* Fixed an off-by-one with spoofs. Spoofs are now also checked for 898 invalid characters 899* Removed `general::use_whois_actually` configuration directive. 900 This is now enabled by default 901* Minor `SQUIT` handling fixes 902* Fixed bancache not being updated on `CHGHOST`/`CHGIDENT` 903 904 905-- Noteworthy changes in version 8.0.0rc1 (2012-09-28) 906* Removed `general::client_flood` configuration option and added the 907 new `recvq` configuration directive to class {} blocks. 908 The max size of a receive queue can be seen in `STATS Y` 909 for each class 910* Allow the `[` and `]` characters in server description 911 912 913-- Noteworthy changes in version 8.0.0beta3 (2012-08-24) 914* Fixed wrong syntax in several language files 915* Removed &localchannels 916* `PRIVMSG` to `opers@some.server` is no longer supported 917* Fixed bug that could lead to topic desynchronization 918* Removed `serverhide::disable_hidden` configuration option 919* Dropped ircd-hybrid-6 `GLINE` compatibility mode 920* Removed `use_invex`, `use_except` and `use_knock` configuration options. 921 These features are now enabled by default 922 923 924-- Noteworthy changes in version 8.0.0beta2 (2012-07-21) 925* `channel::disable_fake_channels` now also disables ascii 29 (mIRC italic) 926 when set to `yes` 927* Added `channel::max_chans_per_oper` configuration directive. The old way 928 was to let IRC operators join three times the amount of max_chans_per_user 929* Replaced `MODLOAD`, `MODUNLOAD`, `MODRELOAD`, `MODLIST` and `MODRESTART` 930 commands with the new `MODULE` command which can be fed with the `LOAD,` 931 `UNLOAD`, `RELOAD` and `LIST` parameters. 932 `MODRESTART` has been entirely removed. Use `MODULE RELOAD *` to reload 933 all modules 934* Added back server notice when a client tries to obtain a reserved nick name 935* Removed `OMOTD` module 936* Added `set` to IRC operator privilege flags. Gives access to the `SET` command 937* Improved TS6 support 938* Channel keys/passwords are now case sensitive 939 940 941-- Noteworthy changes in version 8.0.0beta1 (2012-05-28) 942* Implemented full services support, including but not limited to the 943 following changes: 944 - Added `SVSNICK`, and `SVSMODE` command handlers 945 - Added service stamps to `NICK`/`UID` messages 946 - Added SVS to server capabilities (`CAPAB`). SVS capable servers can 947 deal with extended `NICK`/`UID` messages that contain service IDs/stamps. 948 - Changed rejected client notices to go to new user mode +j. These 949 previously used user mode +r. 950 - Added user mode +r (registered nick) and channel mode +r (registered channel) 951 - Added user mode +R (only registered clients may send a private message) 952 - Added channel mode +R (only registered clients may join that channel) 953 - Various services shortcuts have been added (`NS`, `CS`, `NICKSERV`, `CHANSERV`, etc.) 954 - Added services {} block to `ircd.conf` 955 - Added services_name directive to general {} block 956 - Added `GLOBOPS` mainly for services compatibility, but can be used by IRC operators, too 957* Removed `RKLINE` and `RXLINE` commands. Regular expression based bans should 958 only be added via `ircd.conf` 959* Added `globops`, `restart`, `dline`, `undline` and `module` IRC operator privilege flags. 960 Read `doc/reference.conf` for further explanation of what these flags control 961* Removed Idle-time klines 962* Cleaned up modules API. Old modules won't work anymore 963* Removed `general::burst_away` configuration directive. `AWAY` bursts are now 964 controlled via `connect::flags` explicitly 965* Introduced new logging subsystem including log rotation based on 966 file sizes. Log timestamp format is ISO8601 now 967* Added support for remote D-lines 968* Added user mode +H which is basically a replacement for the hidden_admin and 969 `hidden_oper` operator flags. With user mode +H, IRC operator status can now 970 be hidden even on remote servers 971* Added CIDR support for operator {} blocks 972* Removed the servlink program. ircd-hybrid can now make use of 973 SSL/TLS for inter-server communication. 974 NOTE: compressed server links are of course still available, but a SSL/TLS 975 connection is required, as compression is now handled via OpenSSL 976* Removed `ssl_server_protocol` configuration directive and 977 added `ssl_client_method` and `ssl_server_method` instead. 978 Both of these options can now be changed at runtime 979* IRC operator login IDs are no longer limited to `NICKLEN*2` 980* Removed `channel::burst_topicwho` configuration option. This feature is now 981 enabled by default 982* `STATS Y|y` now reports CIDR limits as well 983* Added `m_webirc.c` to `contrib/` 984* Overall code cleanup and speed improvements 985 986-------------------------------------------------------------------------------- 987 988BUG REPORTS: If you run this code and encounter problems, you must report 989 the bug by EMAIL to bugs@ircd-hybrid.org 990 Please include a gdb backtrace and a copy of your config.h and 991 ircd.conf with any report (with passwords and other sensitive 992 information masked). 993 994DISCUSSION: There is a mailing list for discussion of hybrid issues, 995 including betas. To subscribe, use this link: 996 https://lists.ircd-hybrid.org/mailman/listinfo/hybrid 997 This is the proper place to discuss new features, bugs, etc. 998 999Questions/comments directed to bugs@ircd-hybrid.org 1000 1001Other files recommended for reading: README, INSTALL 1002 1003-------------------------------------------------------------------------------- 1004$Id: NEWS 10009 2021-08-14 07:52:14Z michael $ 1005