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

ChangeLog/1.7.0: Difference between revisions

From ZNC
Jump to navigation Jump to search
No edit summary
 
(14 intermediate revisions by the same user not shown)
Line 2: Line 2:


<!-- last commit: aab76567662f770ed763c6ae25be1cbe8d9fd3cf -->
<!-- last commit: aab76567662f770ed763c6ae25be1cbe8d9fd3cf -->
// TODO: cleanup this list, reorder, recategorize, fix grammar


== New ==
== New ==
Line 9: Line 7:
** Currently <code>znc-buildmod</code> requires python if CMake was used; if that's a concern for you, please open a bug.
** Currently <code>znc-buildmod</code> 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.
* Increase minimum GCC version from 4.7 to 4.8. Minimum Clang version stays at 3.2.
* Make ZNC UI translateable to different languages, add partial Russian translation. If you want to translate ZNC to your language, great! Please say.
* Make ZNC UI translateable to different languages (only with CMake), add partial Russian and German translations. {{GH|1237}} {{GH|1354}} {{GH|1462}}
** 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 capability <code>echo-message</code> on the "client side" {{GH|950}}
* 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>cap-notify</code>, <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.
* 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}}
* Make ZNC request <code>server-time</code> from server when available {{GH|839}}
Line 43: Line 42:
* Fix crash in [[shell]] module which happens if client disconnects at a wrong time {{GH|1248}}
* Fix crash in [[shell]] module which happens if client disconnects at a wrong time {{GH|1248}}
* Decrease CPU usage when joining channels during startup or reconnect, add config write delay setting {{GH|1250}}
* Decrease CPU usage when joining channels during startup or reconnect, add config write delay setting {{GH|1250}}
* modperl: Fix reloading of module which couldn't be loaded before
* modperl: Explain modperl that ZNC uses UTF-8 internally
* 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 try to quit multiple times {{GH|1392}}
Line 55: Line 52:


== 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}} {{GH|1361}}
* 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}}
* controlpanel: Change "double" to "number" {{GH|1468}}
=== clearbufferonmsg ===
* crypt: cover notices, actions and topics {{GH|813}}
* Add options which events trigger clearation of buffers. {{GH|825}}
* crypt: Don't use the same or overlapping NickPrefix as StatusPrefix {{GH|1377}}
=== controlpanel ===
* crypt: Add DH1080 key exchange {{GH|1378}}
* Add the <code>DelServer</code> command. {{GH|810}}
* crypt: Add Get/SetNickPrefix commands, Hide the internal keyword from ListKeys {{GH|1382}}
* Add <code>$user</code> and <code>$network</code> aliases for <code>$me</code> and <code>$net</code> respectively {{GH|847}}
* crypt: fix build with LibreSSL {{GH|1439}}
* Allow reseting channel-specific <code>AutoClearChanBuffer</code> and <code>BufferSize</code> settings by setting them to <code>-</code> {{GH|990}}
* cyrusauth: improve UI
* Change type of values from "double" to "number", which is more obvious for non-programmers {{GH|1468}}
* fail2ban: make timeout and attempts configurable, add BAN, UNBAN and LIST commands {{GH|534}}
=== crypt ===
* flooddetach: detach on nick floods {{GH|941}}
* Fix build with LibreSSL {{GH|1439}}
* keepnick: improve behaviour by listening to ircd-side numeric errors {{GH|945}}
* Cover notices, actions and topics {{GH|813}}
* log: Add -timestamp option {{GH|978}}
* Don't use the same or overlapping NickPrefix as StatusPrefix {{GH|1377}}
* log: Add options to hide joins, quits and nick changes. {{GH|601}}
* Add DH1080 key exchange {{GH|1378}}
* log: stop forcing username and network name to be lower case in filenames {{GH|1171}}
* Add Get/SetNickPrefix commands, hide the internal keyword from ListKeys {{GH|1382}}
* log: Log user quit messages {{GH|1395}}
=== cyrusauth ===
* missingmotd: Include nick in IRC numeric command, reduce client confusion {{GH|1399}}
* Improve UI
* modperl: provide <code>operator ""</code> for <code>ZNC::String</code>
=== fail2ban ===
* modperl: Honor <code>PERL5LIB</code> env var
* Make timeout and attempts configurable, add BAN, UNBAN and LIST commands {{GH|534}}
* modperl: fix functions like HasPerm() which accept char {{GH|1486}}
=== flooddetach ===
* modpython: Disable legacy encoding mode when modpython is loaded. {{GH|1229}}
* Detach on nick floods {{GH|941}}
* modpython: Support <code>CQuery</code> and <code>CServer</code> {{GH|1436}}
=== keepnick ===
* nickserv: use <code>/nickserv identify</code> by default instead of <code>/msg nickserv</code>. {{GH|786}}
* Improve behaviour by listening to ircd-side numeric errors {{GH|945}}
* nickserv: support messages from X3 services {{GH|1322}}
=== log ===
* notify_connect: Show client identification {{GH|1195}}
* Add <code>-timestamp</code> option {{GH|978}}
* sasl: add web interface {{GH|910}}
* Add options to hide joins, quits and nick changes. {{GH|601}}
* sasl: enable all known mechanisms by default {{GH|938}}
* Stop forcing username and network name to be lower case in filenames {{GH|1171}}
* sasl: Make the first requirement for SET actually mandatory, return information about settings if no input for SET {{GH|1338}}
* Log user quit messages {{GH|1395}}
* schat: Require explicit path to certificate.
=== missingmotd ===
* simple_away: use ExpandString for away reason, rename old %s to %awaytime% {{GH|1149}}
* Include nick in IRC numeric 422 command, reduce client confusion {{GH|1399}}
* simple_away: Add MinClients option {{GH|1133}}
=== modperl ===
* stickychan: save registry on every stick/unstick action, auto-save if channel key changes {{GH|881}}
* Provide <code>operator ""</code> for <code>ZNC::String</code>
* stickychan: stop checking so often, increase delay to once every 3 minutes {{GH|1333}}
* Honor <code>PERL5LIB</code> env var
* webadmin: allow reseting chan buffer size by entering an empty value
* Fix functions like <code>HasPerm()</code> which accept <code>char</code> {{GH|1486}}
* webadmin: make tables sortable. {{GH|40}}
* When a broken module couldn't be loaded, it couldn't be loaded anymore even if it was fixed later.
* webadmin: Make server editor and CTCP replies editor more fancy, when JS is enabled {{GH|145}}
* Force strings to UTF-8 in modperl to fix double encoding during concatenation/interpolation.
* webadmin: show per-network traffic info {{GH|963}}
 
* webadmin: make the traffic info page visible for non-admins, non-admins can see only their traffic {{GH|1020}}
=== 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}}
* 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
Line 119: Line 145:
* <code>CZNC</code>: 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}}
* 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.

Latest revision as of 19:51, 20 April 2018

← 1.6.6 ZNC 1.7.0 1.7.1 →


New

  • 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

  • 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

adminlog

  • Make path configurable (#1001)

alias

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

awaystore

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

blockmotd

clearbufferonmsg

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

controlpanel

  • 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

  • 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

  • Improve UI

fail2ban

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

flooddetach

  • Detach on nick floods (#941)

keepnick

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

log

  • 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

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

modperl

  • 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

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

nickserv

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

notify_connect

  • Show client identification (#1195)

sasl

  • 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

  • Require explicit path to certificate.

simple_away

stickychan

  • 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

  • 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

  • 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

  • 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