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
Jump to navigation
Jump to search
DarthGandalf (talk | contribs) No edit summary |
DarthGandalf (talk | contribs) No edit summary |
||
(25 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
<!-- last commit: aab76567662f770ed763c6ae25be1cbe8d9fd3cf --> | <!-- last commit: aab76567662f770ed763c6ae25be1cbe8d9fd3cf --> | ||
== New == | == 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. | * 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 <code>znc-buildmod</code> requires python if CMake was used; if that's a concern for you, please open a bug. | ||
* Make ZNC UI translateable to different languages, add partial Russian | * 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. {{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 | * 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: | * 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 server-time from server when available {{GH|839}} | * 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 | * 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 | * Add "AuthOnlyViaModule" global/user setting {{GH|331}} | ||
* | * Added [[pyeval]] module | ||
* Add / | * 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}} | * 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}} | |||
* Added ClearAllBuffers 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}} | ||
* Set HttpOnly and SameSite=strict for session cookies {{GH|1077}} {{GH|1450}} | * Set <code>HttpOnly</code> and <code>SameSite=strict</code> for session cookies {{GH|1077}} {{GH|1450}} | ||
* 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 network-specific config for cert validation in addition to user-supplied fingerprints: TrustAllCerts, defaults to false, and TrustPKI, defaults to true. {{GH|866}} | * 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}} | ||
* | * Add <code>/attach</code> command for symmetry with <code>/detach</code>. Unlike <code>/join</code> it allows wildcards. | ||
* | * [[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}} | ||
* Build on macOS using ICU, Python, and OpenSSL from Homebrew, if available {{GH|894}} | * 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/ | * 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}} | ||
* 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}} | |||
* Change default flood rates to match RFC1459, prevent excess flood problems {{GH|1416}} {{GH|1418}} | * Change default flood rates to match RFC1459, prevent excess flood problems {{GH|1416}} {{GH|1418}} | ||
* Match channel names and hostmasks case-insensitively in | * Match channel names and hostmasks case-insensitively in [[autoattach]], [[autocycle]], [[autoop]], [[autovoice]], [[log]], [[watch]] modules {{GH|822}} | ||
* 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}} | ||
* 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}} | ||
* Don't send PART to client which sent QUIT | * Don't send PART to client which sent QUIT | ||
* Send failed logins to NOTICE instead of PRIVMSG {{GH|1472}} | * Send failed logins to NOTICE instead of PRIVMSG {{GH|1472}} | ||
* Stop creating files with odd permissions on | * Stop creating files with odd permissions on Solaris {{GH|1492}} | ||
* Save channel key on | * 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}} | * 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}} | ||
* | === alias === | ||
* | * Add <code>Dump</code> command to copy your config between users {{GH|1114}} | ||
* | === awaystore === | ||
* | * Add <code>-chans</code> option which records channel highlights {{GH|851}} | ||
* | === blockmotd === | ||
* | * Add <code>GetMotd</code> command {{GH|783}} {{GH|1361}} | ||
* | === clearbufferonmsg === | ||
* | * Add options which events trigger clearation of buffers. {{GH|825}} | ||
* | === controlpanel === | ||
* | * Add the <code>DelServer</code> command. {{GH|810}} | ||
* | * Add <code>$user</code> and <code>$network</code> aliases for <code>$me</code> and <code>$net</code> respectively {{GH|847}} | ||
* Allow reseting channel-specific <code>AutoClearChanBuffer</code> and <code>BufferSize</code> settings by setting them to <code>-</code> {{GH|990}} | |||
* | * Change type of values from "double" to "number", which is more obvious for non-programmers {{GH|1468}} | ||
* | === crypt === | ||
* | * Fix build with LibreSSL {{GH|1439}} | ||
* | * Cover notices, actions and topics {{GH|813}} | ||
* | * Don't use the same or overlapping NickPrefix as StatusPrefix {{GH|1377}} | ||
* | * Add DH1080 key exchange {{GH|1378}} | ||
* | * Add Get/SetNickPrefix commands, hide the internal keyword from ListKeys {{GH|1382}} | ||
* | === cyrusauth === | ||
* | * Improve UI | ||
* | === fail2ban === | ||
* | * Make timeout and attempts configurable, add BAN, UNBAN and LIST commands {{GH|534}} | ||
* | === flooddetach === | ||
* modpython | * Detach on nick floods {{GH|941}} | ||
* | === keepnick === | ||
* Improve behaviour by listening to ircd-side numeric errors {{GH|945}} | |||
* | === log === | ||
* | * Add <code>-timestamp</code> option {{GH|978}} | ||
* | * Add options to hide joins, quits and nick changes. {{GH|601}} | ||
* | * Stop forcing username and network name to be lower case in filenames {{GH|1171}} | ||
* | * 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}} | ||
* | * 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 | * Fix CSS of <code>_default_</code> skin for Fingerprints section | ||
* Add <code>OnUserQuitMessage()</code> module hook. | |||
* Add OnUserQuitMessage() | * Add <code>OnPrivBufferStarting()</code> and <code>OnPrivBufferEnding()</code> hooks {{GH|1294}} | ||
* Add OnPrivBufferStarting/ | * <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}} | ||
* | * Allow modules to override CSRF protection. {{GH|1180}} | ||
* | * 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}} | ||
* 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}} | ||
* Make chan modes and permissions to be char instead of unsigned char. {{GH|1486}} | * Make chan modes and permissions to be char instead of unsigned char. {{GH|1486}} | ||
== Cosmetic == | == Cosmetic == | ||
* | * Alphabetically sort the modules we compile using autoconf/Makefile {{GH|1358}} | ||
* Alphabetically sort output of znc --help {{GH|1367}} | * 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 → |
This is an old ZNC version. If you still use it, please consider upgrading to 1.9.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.
- Currently
- 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)
- 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 (#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-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 (#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
andSSLDHParamFile
configuration in addition to existingSSLCertFile
(#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
andSameSite=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, andTrustPKI
, 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
andBufferSize
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 ""
forZNC::String
- Honor
PERL5LIB
env var - Fix functions like
HasPerm()
which acceptchar
(#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
andCServer
(#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
- Use ExpandString for away reason, rename old
%s
to%awaytime%
(#1149) - Add
MinClients
option (#1133)
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 withOnRaw
, 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()
andOnPrivBufferEnding()
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 hostsCZNC
: 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