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.6.0: Difference between revisions

From ZNC
Jump to navigation Jump to search
Only editors of this page really need to know to what commit it was updated
No edit summary
 
(19 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<!-- The following is generated via this command:
{{ChangeLog}}
HEAD=$(git rev-parse master) ; echo "Last update at $HEAD" ; echo ; git log --format='* %s {{git|%h}}' --no-merges znc-0.098..$HEAD | cat
-->


<!-- Last update at 071801a65d0818af165bcd4f98989411e4020fb4 -->
== New ==
* Switch versioning scheme to <major>.<minor>.<patch>.
* Add settings for which SSL/TLS protocols to use (SSLProtocols), which ciphers to enable (SSLCiphers). By default TLSv1+ are enabled, SSLv2/3 are disabled. Default ciphers are [https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28default.29 what Mozilla advises].
* Validate SSL certificates.
* Allow clients to specify an ID as part of username (user[@identifier][/network]). Currently not used, but modules can use it.
* Add [[alias]] module for ZNC-side command interception and processing.
* Support [[charset|character encodings]] with separate settings for networks, and for clients. It replaces older [[charset/old|charset]] module, which didn't work well with [[webadmin]], [[log]] and other modules.
* Support X-Forwarded-For HTTP header, used with new TrustedProxy setting.
* Add URIPrefix option for HTTP listeners, used with reverse proxy.
* Store query buffers per query the same way it's done for channels, add new option AutoClearQueryBuffer.
* Add DisableChan command to *status, it was available only in [[webadmin]] before.
* Allow wildcards in arguments of Help commands of *status and various modules.
* Support IRCv3.2 batches, used for buffer playbacks.
* Support IRCv3.2 self-message.
* Remove [[awaynick]] module. It's considered bad etiquette.
* Add JoinDelay setting, which allows a delay between connection to server, and joining first channel. By default it joins immediately after connect.
* Make Detach, EnableChan and DisableChan commands of *status accept multiple channels.
* znc-buildmod: Build output to the current working directory.
* Wrap long lines in tables (e.g. in Help or ListAvailMods commands).
* Support ECDHE if available in OpenSSL.
* Report ZNC version more consistently, add HideVersion setting, which hides ZNC version from public.
* Bump compiler requirements to support C++11. This means GCC 4.7+, Clang 3.2+, SWIG 3.0.0+.


See https://github.com/znc/znc/compare/znc-{{ZNC-Version}}...master for a list of changes since {{ZNC-Version}} stable.
== Fixes ==
* Disable TLS compression.
* Disallow setting ConnectDelay to zero, don't hammer server with our failed connects.
* Simplify --makeconf.
* Fix logic to find an available nick when connecting to server.
* Fix handling of CTCP flood.
* Allow network specific quit messages.
* Make various text labels gender-neutral.
* Fix finding SWIG 3 on FreeBSD.
* Handle multi-receiver NOTICE and PRIVMSG.
* Make channels follow user-level settings when appropriate.
* Write disabled status to config for disabled channels.
* Fix double output in messages from modules.
* Fix memory leak in gzip compression in HTTP server.
* Use random DNS result instead of choosing the same one every time.
* Fix HTTP basic auth.
* Mention network in message shown if client didn't send PASS.


[[Category:ChangeLog]]
== Modules ==
* [[autoattach]]:
** Make it also a network module.
* [[autoreply]]:
** Use NOTICE instead of PRIVMSG.
* [[autoop]]:
** Add support for multiple hostmasks per user.
* [[awaystore]]:
** Store CTCP ACTIONs too.
** Reset timer and return from away when a client does a CTCP ACTION.
** Allows use of strftime formatting in away messages.
* [[bouncedcc]]:
** Fix quotes in file names.
** Fix check for "Connected" state.
* [[buffextras]]:
** Make it also a network module.
* [[chansaver]]:
** Fix saving channel keys.
** Add support for loading as a global module.
* [[controlpanel]]:
** Add AddChan, DelChan commands, useful for admins to edit other users' channels, was available only in [[webadmin]] before.
** Check if adding a new channel succeeded.
** Revise Help output.
** Allow wildcards for GetChan and SetChan.
* [[flooddetach]]:
** Show current value in Lines and Secs commands.
** Add Silent [yes|no] command, similar to [[route_replies]].
* [[listsockets]]:
** Show traffic stats.
* [[log]]:
** Use only lower case characters in log filenames.
** Use directories and YYYY-MM-DD filename by default.
** Add support for logging rules. E.g. <code>/msg *log setrules #znc !#*</code>
** If you want to convert your old logs to the new format, you can [https://github.com/ZacharyDuBois/Random-Scripts/blob/master/convert-znc-1.4-logs-to-1.6.sh try this user created script].
* [[modperl]]:
** Fix some int_t types.
* [[modpython]]:
** Fix calling overloaded methods with parameter CString&.
** Support CZNC::GetUserMap().
** Set has_args and args_help_text from module.
** Release python/swig ownership when adding object created in python to ZNC container.
** Fix some int_t types.
** Enable default arguments feature of SWIG 3.0.4. No functionality change, it just makes generated code a bit more beautiful.
* [[nickserv]]:
** Support tddirc.net.
** Remove commands Ghost, Recover, Release, Group. The same functionality is available via new [[alias]] module.
* [[q]]:
** Add JoinOnInvite, JoinAfterCloaked options.
** Don't cloak host on first module load if already connected to IRC.
** Add web configuration.
** Use HMAC-SHA-256 instead of HMAC-MD5.
* [[route_replies]]:
** Handle numerics 307 and 379 in /whois reply. Handle IRCv3.2 METADATA numerics.
* [[sample]]:
** Make it a network module, which are easier to write.
* [[sasl]]:
** [http://nullroute.eu.org/~grawity/irc-sasl-dh.html Remove] DH-BLOWFISH [http://kaniini.dereferenced.org/2014/12/26/do-not-use-DH-AES-or-DH-BLOWFISH.html and] DH-AES.
* [[savebuff]]:
** Do not skip channels with AutoClearChanBuffer=true.
** Handle empty password in SetPass the same way as during startup.
* [[simple_away]]:
** Apply auto-away on load if no user is connected.
* [[stickychan]]:
** Don't join channels when not connected.
* [[watch]]:
** Add support for detached-only clients, and detached-only channels.
* [[webadmin]]:
** Combine "List Users" and "Add User".
** Module argument autocomplete="off", for [[nickserv]] module, which contains password in argument before first save.
** For every module show in which other levels that module is loaded (global/user/network).
** Open links to wiki pages about modules in separate window/tab.
** Support renaming a network (it was already possible outside of webadmin, via <code>/znc MoveNetwork</code>). However, it doesn't support moving networks between users yet, for that use <code>/znc</code> command.
** Add missing page title on Traffic page.
** Improve navigation: "Save and continue".
** Clarify that timestamp format is useless with server-time.
 
== Internal ==
* Move Csocket to git submodule.
* Unit tests, via GTest.
* Allow lambdas for module command callbacks.
* New modules hooks: OnSendToClient, OnSendToIRC, OnJoining, OnMode2, OnChanBufferPlayLine2, OnPrivBufferPlayLine2.
* Add methods to CString: StartsWith, EndsWith, Join, Find, Contains, and Convert.
* Add limited support for using threads in modules: CModuleJob class.
* Inherit CClient and CIRCSock from a common class CIRCSocket.
* Add CZNC::CreateInstance to make porting ZNC to MSVC a bit easier.
* Add CUtils::Get/SetMessageTags().
* Add CIRCNetwork::FindChans().
* Add CChan::SendBuffer(client, buffer) overload.
* Add CIRCNetwork::LoadModule() helper.
* Add CClient::IsPlaybackActive().
* Web: Discard sessions in LRU order.
* Introduce CaseSensitivity enum class.
* Fix CNick::Parse().
* Remove redundant CWebSocket::GetModule().
* Switch from CSmartPtr to std::shared_ptr.
* Fix GetClients() const correctness.
* Make self-signed cert with SHA-256, provide DH parameters in --makepem.
* Use override keyword.
* Show username of every http request in -D output.
* Split CUserTimer into CIRCNetworkPingTimer and CIRCNetworkJoinTimer.
* Give a reason for disabled features during ./configure, where it makes sense.
* Use make-tarball.sh for nightlies too.
* Revise CChan::JoinUser() & AttachUser().
* Modules: use public API.
* Modules: use AddCommand().
* Add ChangeLog.md.

Latest revision as of 09:57, 2 April 2017

← 1.4 ZNC 1.6.0 1.6.1 →


New

  • Switch versioning scheme to <major>.<minor>.<patch>.
  • Add settings for which SSL/TLS protocols to use (SSLProtocols), which ciphers to enable (SSLCiphers). By default TLSv1+ are enabled, SSLv2/3 are disabled. Default ciphers are what Mozilla advises.
  • Validate SSL certificates.
  • Allow clients to specify an ID as part of username (user[@identifier][/network]). Currently not used, but modules can use it.
  • Add alias module for ZNC-side command interception and processing.
  • Support character encodings with separate settings for networks, and for clients. It replaces older charset module, which didn't work well with webadmin, log and other modules.
  • Support X-Forwarded-For HTTP header, used with new TrustedProxy setting.
  • Add URIPrefix option for HTTP listeners, used with reverse proxy.
  • Store query buffers per query the same way it's done for channels, add new option AutoClearQueryBuffer.
  • Add DisableChan command to *status, it was available only in webadmin before.
  • Allow wildcards in arguments of Help commands of *status and various modules.
  • Support IRCv3.2 batches, used for buffer playbacks.
  • Support IRCv3.2 self-message.
  • Remove awaynick module. It's considered bad etiquette.
  • Add JoinDelay setting, which allows a delay between connection to server, and joining first channel. By default it joins immediately after connect.
  • Make Detach, EnableChan and DisableChan commands of *status accept multiple channels.
  • znc-buildmod: Build output to the current working directory.
  • Wrap long lines in tables (e.g. in Help or ListAvailMods commands).
  • Support ECDHE if available in OpenSSL.
  • Report ZNC version more consistently, add HideVersion setting, which hides ZNC version from public.
  • Bump compiler requirements to support C++11. This means GCC 4.7+, Clang 3.2+, SWIG 3.0.0+.

Fixes

  • Disable TLS compression.
  • Disallow setting ConnectDelay to zero, don't hammer server with our failed connects.
  • Simplify --makeconf.
  • Fix logic to find an available nick when connecting to server.
  • Fix handling of CTCP flood.
  • Allow network specific quit messages.
  • Make various text labels gender-neutral.
  • Fix finding SWIG 3 on FreeBSD.
  • Handle multi-receiver NOTICE and PRIVMSG.
  • Make channels follow user-level settings when appropriate.
  • Write disabled status to config for disabled channels.
  • Fix double output in messages from modules.
  • Fix memory leak in gzip compression in HTTP server.
  • Use random DNS result instead of choosing the same one every time.
  • Fix HTTP basic auth.
  • Mention network in message shown if client didn't send PASS.

Modules

  • autoattach:
    • Make it also a network module.
  • autoreply:
    • Use NOTICE instead of PRIVMSG.
  • autoop:
    • Add support for multiple hostmasks per user.
  • awaystore:
    • Store CTCP ACTIONs too.
    • Reset timer and return from away when a client does a CTCP ACTION.
    • Allows use of strftime formatting in away messages.
  • bouncedcc:
    • Fix quotes in file names.
    • Fix check for "Connected" state.
  • buffextras:
    • Make it also a network module.
  • chansaver:
    • Fix saving channel keys.
    • Add support for loading as a global module.
  • controlpanel:
    • Add AddChan, DelChan commands, useful for admins to edit other users' channels, was available only in webadmin before.
    • Check if adding a new channel succeeded.
    • Revise Help output.
    • Allow wildcards for GetChan and SetChan.
  • flooddetach:
    • Show current value in Lines and Secs commands.
    • Add Silent [yes|no] command, similar to route_replies.
  • listsockets:
    • Show traffic stats.
  • log:
    • Use only lower case characters in log filenames.
    • Use directories and YYYY-MM-DD filename by default.
    • Add support for logging rules. E.g. /msg *log setrules #znc !#*
    • If you want to convert your old logs to the new format, you can try this user created script.
  • modperl:
    • Fix some int_t types.
  • modpython:
    • Fix calling overloaded methods with parameter CString&.
    • Support CZNC::GetUserMap().
    • Set has_args and args_help_text from module.
    • Release python/swig ownership when adding object created in python to ZNC container.
    • Fix some int_t types.
    • Enable default arguments feature of SWIG 3.0.4. No functionality change, it just makes generated code a bit more beautiful.
  • nickserv:
    • Support tddirc.net.
    • Remove commands Ghost, Recover, Release, Group. The same functionality is available via new alias module.
  • q:
    • Add JoinOnInvite, JoinAfterCloaked options.
    • Don't cloak host on first module load if already connected to IRC.
    • Add web configuration.
    • Use HMAC-SHA-256 instead of HMAC-MD5.
  • route_replies:
    • Handle numerics 307 and 379 in /whois reply. Handle IRCv3.2 METADATA numerics.
  • sample:
    • Make it a network module, which are easier to write.
  • sasl:
  • savebuff:
    • Do not skip channels with AutoClearChanBuffer=true.
    • Handle empty password in SetPass the same way as during startup.
  • simple_away:
    • Apply auto-away on load if no user is connected.
  • stickychan:
    • Don't join channels when not connected.
  • watch:
    • Add support for detached-only clients, and detached-only channels.
  • webadmin:
    • Combine "List Users" and "Add User".
    • Module argument autocomplete="off", for nickserv module, which contains password in argument before first save.
    • For every module show in which other levels that module is loaded (global/user/network).
    • Open links to wiki pages about modules in separate window/tab.
    • Support renaming a network (it was already possible outside of webadmin, via /znc MoveNetwork). However, it doesn't support moving networks between users yet, for that use /znc command.
    • Add missing page title on Traffic page.
    • Improve navigation: "Save and continue".
    • Clarify that timestamp format is useless with server-time.

Internal

  • Move Csocket to git submodule.
  • Unit tests, via GTest.
  • Allow lambdas for module command callbacks.
  • New modules hooks: OnSendToClient, OnSendToIRC, OnJoining, OnMode2, OnChanBufferPlayLine2, OnPrivBufferPlayLine2.
  • Add methods to CString: StartsWith, EndsWith, Join, Find, Contains, and Convert.
  • Add limited support for using threads in modules: CModuleJob class.
  • Inherit CClient and CIRCSock from a common class CIRCSocket.
  • Add CZNC::CreateInstance to make porting ZNC to MSVC a bit easier.
  • Add CUtils::Get/SetMessageTags().
  • Add CIRCNetwork::FindChans().
  • Add CChan::SendBuffer(client, buffer) overload.
  • Add CIRCNetwork::LoadModule() helper.
  • Add CClient::IsPlaybackActive().
  • Web: Discard sessions in LRU order.
  • Introduce CaseSensitivity enum class.
  • Fix CNick::Parse().
  • Remove redundant CWebSocket::GetModule().
  • Switch from CSmartPtr to std::shared_ptr.
  • Fix GetClients() const correctness.
  • Make self-signed cert with SHA-256, provide DH parameters in --makepem.
  • Use override keyword.
  • Show username of every http request in -D output.
  • Split CUserTimer into CIRCNetworkPingTimer and CIRCNetworkJoinTimer.
  • Give a reason for disabled features during ./configure, where it makes sense.
  • Use make-tarball.sh for nightlies too.
  • Revise CChan::JoinUser() & AttachUser().
  • Modules: use public API.
  • Modules: use AddCommand().
  • Add ChangeLog.md.