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
← 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 (only with CMake), add partial Russian translation. If you want to translate ZNC to your language, great! Please say. (#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.
  • Explain modperl that ZNC uses UTF-8 internally

modpython

  • Require encodings support in ZNC
  • 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