]> jfr.im git - irc/znc/znc.git/tag
znc-1.7.0
object 4489b1b69474cb5ffa1b2d5c9b19b725e7e59e04
authorAlexey Sokolov <redacted>
Tue, 1 May 2018 21:22:45 +0000 (22:22 +0100)
ZNC 1.7.0

Changes since ZNC 1.6.6

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.
    * 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
* Implement IRCv3.2 capabilities `away-notify`, `account-notify`, `extended-join`
* Implement IRCv3.2 capabilities `echo-message`, `cap-notify` on the "client side"
* 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
* Increase accepted line length from 1024 to 2048 to give some space to message tags
* Separate buffer size settings for channels and queries
* Support separate `SSLKeyFile` and `SSLDHParamFile` configuration in addition to existing `SSLCertFile`
* Add "AuthOnlyViaModule" global/user setting
* Added pyeval module
* Added stripcontrols module
* Add new substitutions to ExpandString: `%empty%` and `%network%`.
* Stop defaulting real name to "Got ZNC?"
* Make the user aware that debug mode is enabled.
* Added `ClearAllBuffers` command
* Don't require CSRF token for POSTs if the request uses HTTP Basic auth.
* Set `HttpOnly` and `SameSite=strict` for session cookies
* Add SNI SSL client support
* Add support for CIDR notation in allowed hosts list and in trusted proxy list
* Add network-specific config for cert validation in addition to user-supplied fingerprints: `TrustAllCerts`, defaults to false, and `TrustPKI`, defaults to true.
* 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
* Build on macOS using ICU, Python, and OpenSSL from Homebrew, if available
* 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
* 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.
* 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
* Change default flood rates to match RFC1459, prevent excess flood problems
* Match channel names and hostmasks case-insensitively in autoattach, autocycle, autoop, autovoice, log, watch modules
* Fix crash in shell module which happens if client disconnects at a wrong time
* Decrease CPU usage when joining channels during startup or reconnect, add config write delay setting
* Always send the users name in NOTICE when logging in.
* Don't try to quit multiple times
* Don't send PART to client which sent QUIT
* Send failed logins to NOTICE instead of PRIVMSG
* Stop creating files with odd permissions on Solaris
* Save channel key on JOIN even if user was not on the channel yet
* Stop buffering and echoing CTCP requests and responses to other clients with self-message, except for /me
* Support discovery of tcl 8.6 during `./configure`

Modules
=======

* adminlog:
    * Make path configurable
* alias:
    * Add `Dump` command to copy your config between users
* awaystore:
    * Add `-chans` option which records channel highlights
* blockmotd:
    * Add `GetMotd` command
* clearbufferonmsg:
    * Add options which events trigger clearation of buffers.
* controlpanel:
    * Add the `DelServer` command.
    * Add `$user` and `$network` aliases for `$me` and `$net` respectively
    * Allow reseting channel-specific `AutoClearChanBuffer` and `BufferSize` settings by setting them to `-`
    * Change type of values from "double" to "number", which is more obvious for non-programmers
* crypt:
    * Fix build with LibreSSL
    * Cover notices, actions and topics
    * Don't use the same or overlapping NickPrefix as StatusPrefix
    * Add DH1080 key exchange
    * Add Get/SetNickPrefix commands, hide the internal keyword from ListKeys
* cyrusauth:
    * Improve UI
* fail2ban:
    * Make timeout and attempts configurable, add BAN, UNBAN and LIST commands
* flooddetach:
    * Detach on nick floods
* keepnick:
    * Improve behaviour by listening to ircd-side numeric errors
* log:
    * Add `-timestamp` option
    * Add options to hide joins, quits and nick changes.
    * Stop forcing username and network name to be lower case in filenames
    * Log user quit messages
* missingmotd:
    * Include nick in IRC numeric 422 command, reduce client confusion
* modperl:
    * Provide `operator ""` for `ZNC::String`
    * Honor `PERL5LIB` env var
    * Fix functions like `HasPerm()` which accept `char`
    * 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.
    * Support `CQuery` and `CServer`
* nickserv:
    * Use `/nickserv identify` by default instead of `/msg nickserv`.
    * Support messages from X3 services
* notify_connect:
    * Show client identification
* sasl:
    * Add web interface
    * Enable all known mechanisms by default
    * Make the first requirement for SET actually mandatory, return information about settings if no input for SET
* schat:
    * Require explicit path to certificate.
* simple_away:
    * Use ExpandString for away reason, rename old `%s` to `%awaytime%`
    * Add `MinClients` option
* stickychan:
    * Save registry on every stick/unstick action, auto-save if channel key changes
    * Stop checking so often, increase delay to once every 3 minutes
* webadmin:
    * Make server editor and CTCP replies editor more fancy, when JS is enabled
    * Make tables sortable.
    * Allow reseting chan buffer size by entering an empty value
    * Show per-network traffic info
    * Make the traffic info page visible for non-admins, non-admins can see only their traffic

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.
* Add an integration test
* Various HTML changes
* Introduce a CMessage class and its subclasses
* 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
* `CString::WildCmp()`: add an optional case-sensitivity argument
* Do not call `OnAddUser()` hook during ZNC startup
* Allow modules to override CSRF protection.
* Rehash now reloads only global settings
* 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
* 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
* Make chan modes and permissions to be char instead of unsigned char.

Cosmetic
========

* Alphabetically sort the modules we compile using autoconf/Makefile
* Alphabetically sort output of `znc --help`
* Change output during startup to be more compact
* Show new server name when reconnecting to a different server with `/znc jump`
* Hide passwords in listservers output
* Filter out ZNC passwords in output of `znc -D`
* Switch znc.in URLs to https
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEE1YI8rLR3GRysAHVVWuQgzAIJmJ4FAlro220ACgkQWuQgzAIJ
mJ4ghBAAz3137KbVl7soG7odDSyvWwOQgAsbGNcYhBFYRx7MX0A4aY6+318u5pHF
Z+9dRubhEV779vNVGE8SQTXiT/N2k/zakqSUTD7B5lVIWxMzAYYct3H5yJFuoGXO
aoPC8+KgEbiImLN7V087BHjKoIxNjfEyZiADz0lZsiSgu/KIO/eOqLw40eivRA9G
sid0b6j07eI0QpBTVeQ9PHsoKR+d+y+Au59HRF7LFFUILAU/rNUMU/WquY48z7zO
bcikl9trP2ruDNk5fokcilAtEq/4uZxi086VkoDqRYe78L41hBfeukjK8qlWDZHv
IgZDJTpFLs7kXrgBY+89SVtVqK9kXIODoN79aEsxkAol9pIDsya5IELwuuUA0Qym
8NLeGSvajCA7x7WPRW9OTvOPrWgEkzSyvtmWuItnEAO06tPG23haPDxyAgKV5QxT
291pJjliFsru8KmDzKZKOx0CbRPjQxW5l5TdFsjkzlcGHx8q7y57DyzCValvJEDb
jBuUnVji7I5Zct2Exv4MAGWsPO+kl+3DU/7zjMqTPNm4s4HZRZIrnOR2XcihljxY
PIquO+acLaK+IzVhyCYq5qIbaWUAPwaEq03qRrDJeGfaGp87Ff6nBEZ1b9xw0VYs
6DcnFD1oC+siTuDiGuoPzu3zbiQP5l1/wyyCg0YCWbYfHMwbjwk=
=4Doj
-----END PGP SIGNATURE-----