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

From ZNC
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
← 1.6.6 ZNC 1.7.0 1.7.1 →


// TODO: cleanup this list, reorder, recategorize, fix grammar

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, add partial Russian translation. If you want to translate ZNC to your language, great! Please say.
  • Configs written before ZNC 0.206 can't be read anymore (#929)
  • Implement IRCv3.2 capability echo-message on the "client side" (#950)
  • Implement IRCv3.2 capabilities cap-notify, away-notify, account-notify, extended-join (#315) (#316)
  • 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)
  • 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. (#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: add GetMotd command (#783) (#1361)
  • clearbufferonmsg: add options which events trigger clearation of buffers. (#825)
  • controlpanel: add the DelServer command. (#810)
  • controlpanel: add $user and $network aliases (#847)
  • controlpanel: Allow reseting channel specific AutoClearChanBuffer and BufferSize settings by setting them to "-" (#990)
  • controlpanel: Change "double" to "number" (#1468)
  • crypt: cover notices, actions and topics (#813)
  • crypt: Don't use the same or overlapping NickPrefix as StatusPrefix (#1377)
  • crypt: Add DH1080 key exchange (#1378)
  • crypt: Add Get/SetNickPrefix commands, Hide the internal keyword from ListKeys (#1382)
  • crypt: fix build with LibreSSL (#1439)
  • 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)
  • log: Add options to hide joins, quits and nick changes. (#601)
  • log: stop forcing username and network name to be lower case in filenames (#1171)
  • log: Log user quit messages (#1395)
  • missingmotd: Include nick in IRC numeric command, reduce client confusion (#1399)
  • modperl: provide operator "" for ZNC::String
  • modperl: Honor PERL5LIB env var
  • modperl: fix functions like HasPerm() which accept char (#1486)
  • modpython: Disable legacy encoding mode when modpython is loaded. (#1229)
  • modpython: Support CQuery and CServer (#1436)
  • nickserv: use /nickserv identify by default instead of /msg nickserv. (#786)
  • nickserv: support messages from X3 services (#1322)
  • notify_connect: Show client identification (#1195)
  • sasl: add web interface (#910)
  • sasl: enable all known mechanisms by default (#938)
  • sasl: 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)
  • simple_away: Add MinClients option (#1133)
  • stickychan: save registry on every stick/unstick action, auto-save if channel key changes (#881)
  • stickychan: stop checking so often, increase delay to once every 3 minutes (#1333)
  • webadmin: allow reseting chan buffer size by entering an empty value
  • webadmin: make tables sortable. (#40)
  • webadmin: Make server editor and CTCP replies editor more fancy, when JS is enabled (#145)
  • webadmin: show per-network traffic info (#963)
  • webadmin: 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