To create new wiki account, please join us on #znc at freenode and ask admins to create a wiki account for you. You can say thanks to spambots for this inconvenience.

Difference between revisions of "ChangeLog/1.7.0"

From ZNC
Jump to navigation Jump to search
(Restore 1.7.0 ChangeLog)
 
 
(32 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
{{ChangeLog}}
  
 
+
<!-- last commit: aab76567662f770ed763c6ae25be1cbe8d9fd3cf -->
// TODO: cleanup this list, reorder, recategorize, fix grammar
 
  
 
== New ==
 
== New ==
* Added pyeval module
+
* Add CMake build. Minimum supported CMake version is 3.1. For now ZNC can be built with either CMake or autoconf. In future autoconf is going to be removed.
* Added stripcontrols module {{GH|387}}
+
** Currently <code>znc-buildmod</code> requires python if CMake was used; if that's a concern for you, please open a bug.
* Added ClearAllBuffers command {{GH|852}}
+
* Increase minimum GCC version from 4.7 to 4.8. Minimum Clang version stays at 3.2.
* Build on macOS using ICU, Python, and OpenSSL from Homebrew, if available {{GH|894}}
+
* Make ZNC UI translateable to different languages (only with CMake), add partial Russian and German translations. {{GH|1237}} {{GH|1354}} {{GH|1462}}
* Support discovery of tcl 8.6 during ./configure
+
** If you want to translate ZNC to your language, please join https://crowdin.com/project/znc-bouncer
 
* Configs written before ZNC 0.206 can't be read anymore {{GH|929}}
 
* Configs written before ZNC 0.206 can't be read anymore {{GH|929}}
 +
* Implement IRCv3.2 capabilities <code>away-notify</code>, <code>account-notify</code>, <code>extended-join</code> {{GH|315}} {{GH|316}}
 +
* Implement IRCv3.2 capabilities <code>echo-message</code>, <code>cap-notify</code> on the "client side" {{GH|950}}
 +
* Update capability names as they are named in IRCv3.2: <code>znc.in/server-time-iso</code>→<code>server-time</code>, <code>znc.in/batch</code>→<code>batch</code>. Old names will continue working for a while, then will be removed in some future version.
 +
* Make ZNC request <code>server-time</code> from server when available {{GH|839}}
 +
* Increase accepted line length from 1024 to 2048 to give some space to message tags
 +
* Separate buffer size settings for channels and queries {{GH|967}}
 +
* Support separate <code>SSLKeyFile</code> and <code>SSLDHParamFile</code> configuration in addition to existing <code>SSLCertFile</code> {{GH|1192}}
 +
* Add "AuthOnlyViaModule" global/user setting {{GH|331}}
 +
* Added [[pyeval]] module
 +
* Added [[stripcontrols]] module {{GH|387}}
 +
* Add new substitutions to [[ExpandString]]: <code>%empty%</code> and <code>%network%</code>. {{GH|1049}} {{GH|1139}}
 +
* Stop defaulting real name to "Got ZNC?" {{GH|818}}
 +
* Make the user aware that debug mode is enabled. {{GH|1446}}
 +
* Added <code>ClearAllBuffers</code> command {{GH|852}}
 
* Don't require CSRF token for POSTs if the request uses HTTP Basic auth. {{GH|946}}
 
* Don't require CSRF token for POSTs if the request uses HTTP Basic auth. {{GH|946}}
* Implement IRCv3.2 echo-message capability on the "client side" {{GH|950}}
+
* Set <code>HttpOnly</code> and <code>SameSite=strict</code> for session cookies {{GH|1077}} {{GH|1450}}
* Implement IRCv3.2 cap-notify, away-notify, account-notify, extended-join {{GH|315) {{GH|316}}
 
* Update capability names as they are named in IRCv3.2: "znc.in/server-time-iso"→"server-time", "znc.in/batch"→"batch". Old names will continue working for a while, then will be removed in some future version.
 
* Make ZNC request server-time from server when available {{GH|839}}
 
* Bump accepted line length from 1024 to 2048 to give some space to message tags
 
* Add a setting to change ping timeout time, decrease the default values to fix issues when being behind NAT {{GH|979}}
 
* Separate chan and query buffer size settings {{GH|967}}
 
* Add an %empty% substitution in ExpandString that expands to the empty string. {{GH|1049}}
 
* Add %network% to ExpandString {{GH|1139}}
 
* Add /attach command for symmetry with /detach. Unlike /join it allows wildcards.
 
* Set HttpOnly for session cookies {{GH|1077}}
 
* Stop defaulting real name to "Got ZNC?" {{GH|818}}
 
* Change output during startup {{GH|1124}}
 
* show new server name when jumping server {{GH|1147}}
 
* support separate SSLKeyFile and SSLDHParamFile configuration {{GH|1192}}
 
 
* Add SNI SSL client support {{GH|1200}}
 
* Add SNI SSL client support {{GH|1200}}
 
* Add support for CIDR notation in allowed hosts list and in trusted proxy list {{GH|207}} {{GH|1219}}
 
* Add support for CIDR notation in allowed hosts list and in trusted proxy list {{GH|207}} {{GH|1219}}
* Add CMake build. Minimum supported CMake version is 3.1. For now ZNC can be built with either CMake or autoconf. In future autoconf is going to be removed.
+
* Add network-specific config for cert validation in addition to user-supplied fingerprints: <code>TrustAllCerts</code>, defaults to false, and <code>TrustPKI</code>, defaults to true. {{GH|866}}
* Make ZNC UI translateable to different languages, add Russian translation.
+
* Add <code>/attach</code> command for symmetry with <code>/detach</code>. Unlike <code>/join</code> it allows wildcards.
* Add network-specific config for cert validation in addition to user-supplied fingerprints: TrustAllCerts, defaults to false, and TrustPKI, defaults to true. {{GH|866}}
+
* [[Timestamps#Format|Timestamp format]] now supports sub-second precision with <code>%f</code>. Used in [[awaystore]], [[listsockets]], [[log]] modules and buffer playback when client doesn't support server-time {{GH|1455}}
* Hide passwords in listservers output {{GH|1320}}
+
* Build on macOS using ICU, Python, and OpenSSL from Homebrew, if available {{GH|894}}
 +
* Remove <code>--with-openssl=/path</code> option from ./configure. SSL is still supported and is still configurable
 +
 
 
== Fixes ==
 
== Fixes ==
 
* Revert tables to how they were in ZNC 1.4 {{GH|914}}
 
* Revert tables to how they were in ZNC 1.4 {{GH|914}}
* Remove flawed Add/Del/List/BindHost(s). SetBindHost still works. {{GH|983}}
+
* Remove flawed Add/Del/ListBindHost(s). They didn't correctly do what they were intended for, but users often confused them with the SetBindHost option. SetBindHost still works. {{GH|983}}
* Match channel names and hostmasks case-insensitively in several modules {{GH|822}}
+
* Fix disconnection issues when being behind NAT by decreasing the interval how often PING is sent and making it configurable via a setting to change ping timeout time {{GH|979}}
* Fix crash in shell module which happens if client disconnects at a wrong time {{GH|1248}}
+
* Change default flood rates to match RFC1459, prevent excess flood problems {{GH|1416}} {{GH|1418}}
* Don't rewrite config in a tight loop when joining channels, add config write delay setting {{GH|1250}}
+
* Match channel names and hostmasks case-insensitively in [[autoattach]], [[autocycle]], [[autoop]], [[autovoice]], [[log]], [[watch]] modules {{GH|822}}
* modperl: fix reloading of module which couldn't be loaded before
+
* Fix crash in [[shell]] module which happens if client disconnects at a wrong time {{GH|1248}}
* modperl: Explain modperl that ZNC uses UTF-8 internally
+
* Decrease CPU usage when joining channels during startup or reconnect, add config write delay setting {{GH|1250}}
 
* Always send the users name in NOTICE when logging in. {{GH|1282}}
 
* Always send the users name in NOTICE when logging in. {{GH|1282}}
 +
* Don't try to quit multiple times {{GH|1392}}
 +
* Don't send PART to client which sent QUIT
 +
* Send failed logins to NOTICE instead of PRIVMSG {{GH|1472}}
 +
* Stop creating files with odd permissions on Solaris {{GH|1492}}
 +
* Save channel key on JOIN even if user was not on the channel yet {{GH|1223}}
 +
* Stop buffering and echoing CTCP requests and responses to other clients with self-message, except for /me {{GH|1488}}
 +
* Support discovery of tcl 8.6 during <code>./configure</code>
 +
 
== Modules ==
 
== Modules ==
* adminlog: make path configurable {{GH|1001}}
+
=== adminlog ===
* alias: add DUMP command to copy your config between users {{GH|1114}}
+
* Make path configurable {{GH|1001}}
* awaystore: add -chans option which records channel highlights {{GH|851}}
+
=== alias ===
* blockmotd: add GetMotd command {{GH|783}}
+
* Add <code>Dump</code> command to copy your config between users {{GH|1114}}
* clearbufferonmsg: add options which events trigger clearation of buffers. {{GH|825}}
+
=== awaystore ===
* controlpanel: add the <code>DelServer</code> command. {{GH|810}}
+
* Add <code>-chans</code> option which records channel highlights {{GH|851}}
* controlpanel: add $user and $network aliases {{GH|847}}
+
=== blockmotd ===
* controlpanel: Allow reseting channel specific AutoClearChanBuffer and BufferSize settings by setting them to "-" {{GH|990}}
+
* Add <code>GetMotd</code> command {{GH|783}} {{GH|1361}}
* crypt: cover notices, actions and topics {{GH|813}}
+
=== clearbufferonmsg ===
* crypt: Don't use the same or overlapping NickPrefix as StatusPrefix {{GH|1377}}
+
* Add options which events trigger clearation of buffers. {{GH|825}}
* crypt: Add DH1080 key exchange {{GH|1378}}
+
=== controlpanel ===
* fail2ban: make timeout and attempts configurable, add BAN, UNBAN and LIST commands {{GH|534}}
+
* Add the <code>DelServer</code> command. {{GH|810}}
* flooddetach: detach on nick floods {{GH|941}}
+
* Add <code>$user</code> and <code>$network</code> aliases for <code>$me</code> and <code>$net</code> respectively {{GH|847}}
* keepnick: improve behaviour by listening to ircd-side numeric errors {{GH|945}}
+
* Allow reseting channel-specific <code>AutoClearChanBuffer</code> and <code>BufferSize</code> settings by setting them to <code>-</code> {{GH|990}}
* log: Add -timestamp option {{GH|978}}
+
* Change type of values from "double" to "number", which is more obvious for non-programmers {{GH|1468}}
* log: Add options to hide joins, quits and nick changes. {{GH|601}}
+
=== crypt ===
* log: stop forcing username and network name to be lower case in filenames {{GH|1171}}
+
* Fix build with LibreSSL {{GH|1439}}
* modperl: provide operator "" for ZNC::String
+
* Cover notices, actions and topics {{GH|813}}
* modpython: Disable legacy encoding mode when modpython is loaded. {{GH|1229}}
+
* Don't use the same or overlapping NickPrefix as StatusPrefix {{GH|1377}}
* nickserv: use <code>/nickserv identify</code> by default instead of <code>/msg nickserv</code>. {{GH|786}}
+
* Add DH1080 key exchange {{GH|1378}}
* nickserv: support messages from X3 services {{GH|1322}}
+
* Add Get/SetNickPrefix commands, hide the internal keyword from ListKeys {{GH|1382}}
* notify_connect: Show client identification {{GH|1195}}
+
=== cyrusauth ===
* sasl: add web interface {{GH|910}}
+
* Improve UI
* sasl: enable all known mechanisms by default {{GH|938}}
+
=== fail2ban ===
* sasl: Make the first requirement for SET actually mandatory, return information about settings if no input for SET {{GH|1338}}
+
* Make timeout and attempts configurable, add BAN, UNBAN and LIST commands {{GH|534}}
* simple_away: use ExpandString for away reason, rename old %s to %awaytime% {{GH|1149}}
+
=== flooddetach ===
* simple_away: Add MinClients option {{GH|1133}}
+
* Detach on nick floods {{GH|941}}
* stickychan: save registry on every stick/unstick action, auto-save if channel key changes {{GH|881}}
+
=== keepnick ===
* stickychan: stop checking so often, increase delay to once every 3 minutes {{GH|1333}}
+
* Improve behaviour by listening to ircd-side numeric errors {{GH|945}}
* webadmin: allow reseting chan buffer size by entering an empty value
+
=== log ===
* webadmin: make tables sortable. {{GH|40}}
+
* Add <code>-timestamp</code> option {{GH|978}}
* webadmin: Make server editor and CTCP replies editor more fancy, when JS is enabled {{GH|145}}
+
* Add options to hide joins, quits and nick changes. {{GH|601}}
* webadmin: show per-network traffic info {{GH|963}}
+
* Stop forcing username and network name to be lower case in filenames {{GH|1171}}
* webadmin: make the traffic info page visible for non-admins, non-admins can see only their traffic {{GH|1020}}
+
* Log user quit messages {{GH|1395}}
 +
=== missingmotd ===
 +
* Include nick in IRC numeric 422 command, reduce client confusion {{GH|1399}}
 +
=== modperl ===
 +
* Provide <code>operator ""</code> for <code>ZNC::String</code>
 +
* Honor <code>PERL5LIB</code> env var
 +
* Fix functions like <code>HasPerm()</code> which accept <code>char</code> {{GH|1486}}
 +
* When a broken module couldn't be loaded, it couldn't be loaded anymore even if it was fixed later.
 +
* Force strings to UTF-8 in modperl to fix double encoding during concatenation/interpolation.
 +
 
 +
=== modpython ===
 +
* Require ZNC to be built with encodings support
 +
* Disable legacy encoding mode when modpython is loaded. {{GH|1229}}
 +
* Support <code>CQuery</code> and <code>CServer</code> {{GH|1436}}
 +
 
 +
=== nickserv ===
 +
* Use <code>/nickserv identify</code> by default instead of <code>/msg nickserv</code>. {{GH|786}}
 +
* Support messages from X3 services {{GH|1322}}
 +
=== notify_connect ===
 +
* Show client identification {{GH|1195}}
 +
=== sasl ===
 +
* Add web interface {{GH|910}}
 +
* Enable all known mechanisms by default {{GH|938}}
 +
* Make the first requirement for SET actually mandatory, return information about settings if no input for SET {{GH|1338}}
 +
=== schat ===
 +
* Require explicit path to certificate.
 +
=== simple_away ===
 +
* Use [[ExpandString]] for away reason, rename old <code>%s</code> to <code>%awaytime%</code> {{GH|1149}}
 +
* Add <code>MinClients</code> option {{GH|1133}}
 +
=== stickychan ===
 +
* Save registry on every stick/unstick action, auto-save if channel key changes {{GH|881}}
 +
* Stop checking so often, increase delay to once every 3 minutes {{GH|1333}}
 +
=== webadmin ===
 +
* Make server editor and CTCP replies editor more fancy, when JS is enabled {{GH|145}}
 +
* Make tables sortable. {{GH|40}}
 +
* Allow reseting chan buffer size by entering an empty value
 +
* Show per-network traffic info {{GH|963}}
 +
* Make the traffic info page visible for non-admins, non-admins can see only their traffic {{GH|1020}}
 +
 
 
== Internal ==
 
== Internal ==
 
* Stop pretending that ZNC ABI is stable, when it's not. Make module version checks more strict and prevent crashes when loading a module which are built for the wrong ZNC version. {{GH|1353}}
 
* Stop pretending that ZNC ABI is stable, when it's not. Make module version checks more strict and prevent crashes when loading a module which are built for the wrong ZNC version. {{GH|1353}}
* Allow modules to override CSRF protection. {{GH|1180}}
+
* Add an integration test {{GH|772}}
 
* Various HTML changes {{GH|1308}}
 
* Various HTML changes {{GH|1308}}
 
* Introduce a CMessage class and its subclasses {{GH|506}}
 
* Introduce a CMessage class and its subclasses {{GH|506}}
 
* Add module callbacks which accept CMessage, deprecate old callbacks
 
* Add module callbacks which accept CMessage, deprecate old callbacks
 +
* Add <code>OnNumericMessage</code> module callback, which previously was possible only with <code>OnRaw</code>, which could give unexpected results if the message has IRCv3.2 tags.
 
* Modernize code to use more C++11 features
 
* Modernize code to use more C++11 features
 
* Various code cleanups
 
* Various code cleanups
* Fix CSS for _default_ for Fingerprints section
+
* Fix CSS of <code>_default_</code> skin for Fingerprints section
* Remove --with-openssl option from ./configure. SSL is still supported and is still configurable
+
* Add <code>OnUserQuitMessage()</code> module hook.
* Add OnUserQuitMessage()
+
* Add <code>OnPrivBufferStarting()</code> and <code>OnPrivBufferEnding()</code> hooks {{GH|1294}}
* Add OnPrivBufferStarting/Ending {{GH|1294}}
+
* <code>CString::WildCmp()</code>: add an optional case-sensitivity argument
* CString::WildCmp(): add an optional case-sensitivity argument
+
* Do not call <code>OnAddUser()</code> hook during ZNC startup {{GH|929}}
* do not call OnAddUser hook during ZNC startup {{GH|929}}
+
* Allow modules to override CSRF protection. {{GH|1180}}
* rehash now reloads only global settings {{GH|929}}
+
* Rehash now reloads only global settings {{GH|929}}
* Remove CAP CLEAR
+
* Remove <code>CAP CLEAR</code>
* CChan::GetNetwork()
+
* Add <code>CChan::GetNetwork()</code>
* CUser: add API for removing and clearing allowed hosts
+
* <code>CUser</code>: add API for removing and clearing allowed hosts
* CZNC: add missing SSL-related getters and setters
+
* <code>CZNC</code>: add missing SSL-related getters and setters
 
* Add a possibility (not an "option") to disable launch after --makeconf {{GH|257}}
 
* Add a possibility (not an "option") to disable launch after --makeconf {{GH|257}}
* Use termios instead of deprecated getpass().
 
* Add an integration test {{GH|772}}
 
 
* Move Unix signal processing to a dedicated thread.
 
* Move Unix signal processing to a dedicated thread.
 
* Add clang-format configuration, switch tabs to spaces.
 
* Add clang-format configuration, switch tabs to spaces.
* CString::StripControls: Strip background colors when we reset foreground {{GH|1261}}
+
* <code>CString::StripControls()</code>: Strip background colors when we reset foreground {{GH|1261}}
* Cosmetic
+
* Make chan modes and permissions to be char instead of unsigned char. {{GH|1486}}
* autoconf/makefile: alphabetically sort the modules we compile {{GH|1358}}
 
* Alphabetically sort output of znc --help {{GH|1367}}
 
  
[[Category:ChangeLog]]
+
== Cosmetic ==
 +
* Alphabetically sort the modules we compile using autoconf/Makefile {{GH|1358}}
 +
* Alphabetically sort output of <code>znc --help</code> {{GH|1367}}
 +
* Change output during startup to be more compact {{GH|1124}}
 +
* Show new server name when reconnecting to a different server with <code>/znc jump</code> {{GH|1147}}
 +
* Hide passwords in listservers output {{GH|1320}}
 +
* Filter out ZNC passwords in output of <code>znc -D</code> {{GH|1445}}
 +
* Switch znc.in URLs to https

Latest revision as of 19:51, 20 April 2018

← 1.6.6 ZNC 1.7.0 1.7.1 →


New[edit]

  • Add CMake build. Minimum supported CMake version is 3.1. For now ZNC can be built with either CMake or autoconf. In future autoconf is going to be removed.
    • Currently znc-buildmod requires python if CMake was used; if that's a concern for you, please open a bug.
  • Increase minimum GCC version from 4.7 to 4.8. Minimum Clang version stays at 3.2.
  • Make ZNC UI translateable to different languages (only with CMake), add partial Russian and German translations. (#1237) (#1354) (#1462)
  • Configs written before ZNC 0.206 can't be read anymore (#929)
  • Implement IRCv3.2 capabilities away-notify, account-notify, extended-join (#315) (#316)
  • Implement IRCv3.2 capabilities echo-message, cap-notify on the "client side" (#950)
  • Update capability names as they are named in IRCv3.2: znc.in/server-time-isoserver-time, znc.in/batchbatch. Old names will continue working for a while, then will be removed in some future version.
  • Make ZNC request server-time from server when available (#839)
  • Increase accepted line length from 1024 to 2048 to give some space to message tags
  • Separate buffer size settings for channels and queries (#967)
  • Support separate SSLKeyFile and SSLDHParamFile configuration in addition to existing SSLCertFile (#1192)
  • Add "AuthOnlyViaModule" global/user setting (#331)
  • Added pyeval module
  • Added stripcontrols module (#387)
  • Add new substitutions to ExpandString: %empty% and %network%. (#1049) (#1139)
  • Stop defaulting real name to "Got ZNC?" (#818)
  • Make the user aware that debug mode is enabled. (#1446)
  • Added ClearAllBuffers command (#852)
  • Don't require CSRF token for POSTs if the request uses HTTP Basic auth. (#946)
  • Set HttpOnly and SameSite=strict for session cookies (#1077) (#1450)
  • Add SNI SSL client support (#1200)
  • Add support for CIDR notation in allowed hosts list and in trusted proxy list (#207) (#1219)
  • Add network-specific config for cert validation in addition to user-supplied fingerprints: TrustAllCerts, defaults to false, and TrustPKI, defaults to true. (#866)
  • Add /attach command for symmetry with /detach. Unlike /join it allows wildcards.
  • Timestamp format now supports sub-second precision with %f. Used in awaystore, listsockets, log modules and buffer playback when client doesn't support server-time (#1455)
  • Build on macOS using ICU, Python, and OpenSSL from Homebrew, if available (#894)
  • Remove --with-openssl=/path option from ./configure. SSL is still supported and is still configurable

Fixes[edit]

  • Revert tables to how they were in ZNC 1.4 (#914)
  • Remove flawed Add/Del/ListBindHost(s). They didn't correctly do what they were intended for, but users often confused them with the SetBindHost option. SetBindHost still works. (#983)
  • Fix disconnection issues when being behind NAT by decreasing the interval how often PING is sent and making it configurable via a setting to change ping timeout time (#979)
  • Change default flood rates to match RFC1459, prevent excess flood problems (#1416) (#1418)
  • Match channel names and hostmasks case-insensitively in autoattach, autocycle, autoop, autovoice, log, watch modules (#822)
  • Fix crash in shell module which happens if client disconnects at a wrong time (#1248)
  • Decrease CPU usage when joining channels during startup or reconnect, add config write delay setting (#1250)
  • Always send the users name in NOTICE when logging in. (#1282)
  • Don't try to quit multiple times (#1392)
  • Don't send PART to client which sent QUIT
  • Send failed logins to NOTICE instead of PRIVMSG (#1472)
  • Stop creating files with odd permissions on Solaris (#1492)
  • Save channel key on JOIN even if user was not on the channel yet (#1223)
  • Stop buffering and echoing CTCP requests and responses to other clients with self-message, except for /me (#1488)
  • Support discovery of tcl 8.6 during ./configure

Modules[edit]

adminlog[edit]

  • Make path configurable (#1001)

alias[edit]

  • Add Dump command to copy your config between users (#1114)

awaystore[edit]

  • Add -chans option which records channel highlights (#851)

blockmotd[edit]

clearbufferonmsg[edit]

  • Add options which events trigger clearation of buffers. (#825)

controlpanel[edit]

  • Add the DelServer command. (#810)
  • Add $user and $network aliases for $me and $net respectively (#847)
  • Allow reseting channel-specific AutoClearChanBuffer and BufferSize settings by setting them to - (#990)
  • Change type of values from "double" to "number", which is more obvious for non-programmers (#1468)

crypt[edit]

  • Fix build with LibreSSL (#1439)
  • Cover notices, actions and topics (#813)
  • Don't use the same or overlapping NickPrefix as StatusPrefix (#1377)
  • Add DH1080 key exchange (#1378)
  • Add Get/SetNickPrefix commands, hide the internal keyword from ListKeys (#1382)

cyrusauth[edit]

  • Improve UI

fail2ban[edit]

  • Make timeout and attempts configurable, add BAN, UNBAN and LIST commands (#534)

flooddetach[edit]

  • Detach on nick floods (#941)

keepnick[edit]

  • Improve behaviour by listening to ircd-side numeric errors (#945)

log[edit]

  • Add -timestamp option (#978)
  • Add options to hide joins, quits and nick changes. (#601)
  • Stop forcing username and network name to be lower case in filenames (#1171)
  • Log user quit messages (#1395)

missingmotd[edit]

  • Include nick in IRC numeric 422 command, reduce client confusion (#1399)

modperl[edit]

  • Provide operator "" for ZNC::String
  • Honor PERL5LIB env var
  • Fix functions like HasPerm() which accept char (#1486)
  • When a broken module couldn't be loaded, it couldn't be loaded anymore even if it was fixed later.
  • Force strings to UTF-8 in modperl to fix double encoding during concatenation/interpolation.

modpython[edit]

  • Require ZNC to be built with encodings support
  • Disable legacy encoding mode when modpython is loaded. (#1229)
  • Support CQuery and CServer (#1436)

nickserv[edit]

  • Use /nickserv identify by default instead of /msg nickserv. (#786)
  • Support messages from X3 services (#1322)

notify_connect[edit]

  • Show client identification (#1195)

sasl[edit]

  • Add web interface (#910)
  • Enable all known mechanisms by default (#938)
  • Make the first requirement for SET actually mandatory, return information about settings if no input for SET (#1338)

schat[edit]

  • Require explicit path to certificate.

simple_away[edit]

stickychan[edit]

  • Save registry on every stick/unstick action, auto-save if channel key changes (#881)
  • Stop checking so often, increase delay to once every 3 minutes (#1333)

webadmin[edit]

  • Make server editor and CTCP replies editor more fancy, when JS is enabled (#145)
  • Make tables sortable. (#40)
  • Allow reseting chan buffer size by entering an empty value
  • Show per-network traffic info (#963)
  • Make the traffic info page visible for non-admins, non-admins can see only their traffic (#1020)

Internal[edit]

  • Stop pretending that ZNC ABI is stable, when it's not. Make module version checks more strict and prevent crashes when loading a module which are built for the wrong ZNC version. (#1353)
  • Add an integration test (#772)
  • Various HTML changes (#1308)
  • Introduce a CMessage class and its subclasses (#506)
  • Add module callbacks which accept CMessage, deprecate old callbacks
  • Add OnNumericMessage module callback, which previously was possible only with OnRaw, which could give unexpected results if the message has IRCv3.2 tags.
  • Modernize code to use more C++11 features
  • Various code cleanups
  • Fix CSS of _default_ skin for Fingerprints section
  • Add OnUserQuitMessage() module hook.
  • Add OnPrivBufferStarting() and OnPrivBufferEnding() hooks (#1294)
  • CString::WildCmp(): add an optional case-sensitivity argument
  • Do not call OnAddUser() hook during ZNC startup (#929)
  • Allow modules to override CSRF protection. (#1180)
  • Rehash now reloads only global settings (#929)
  • Remove CAP CLEAR
  • Add CChan::GetNetwork()
  • CUser: add API for removing and clearing allowed hosts
  • CZNC: add missing SSL-related getters and setters
  • Add a possibility (not an "option") to disable launch after --makeconf (#257)
  • Move Unix signal processing to a dedicated thread.
  • Add clang-format configuration, switch tabs to spaces.
  • CString::StripControls(): Strip background colors when we reset foreground (#1261)
  • Make chan modes and permissions to be char instead of unsigned char. (#1486)

Cosmetic[edit]

  • Alphabetically sort the modules we compile using autoconf/Makefile (#1358)
  • Alphabetically sort output of znc --help (#1367)
  • Change output during startup to be more compact (#1124)
  • Show new server name when reconnecting to a different server with /znc jump (#1147)
  • Hide passwords in listservers output (#1320)
  • Filter out ZNC passwords in output of znc -D (#1445)
  • Switch znc.in URLs to https