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