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
Jump to navigation
Jump to search
DarthGandalf (talk | contribs) →Internal: DH parameters in --makepem |
DarthGandalf (talk | contribs) No edit summary |
||
(16 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{ChangeLog}} | |||
== New == | == New == | ||
* Switch versioning scheme to <major>.<minor>.<patch>. | * 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. | * 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. | * Validate SSL certificates. | ||
* Allow clients to specify an ID as part of username (user[@identifier][/network]). Currently not used, but modules can use it. | * 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. | * 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]]. | * 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, | * Support X-Forwarded-For HTTP header, used with new TrustedProxy setting. | ||
* Add URIPrefix option for HTTP listeners, | * 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. | * 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. | * Add DisableChan command to *status, it was available only in [[webadmin]] before. | ||
Line 21: | Line 15: | ||
* Support IRCv3.2 batches, used for buffer playbacks. | * Support IRCv3.2 batches, used for buffer playbacks. | ||
* Support IRCv3.2 self-message. | * Support IRCv3.2 self-message. | ||
* Remove [[awaynick]] module. It's considered | * 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. | * 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 | * Make Detach, EnableChan and DisableChan commands of *status accept multiple channels. | ||
* znc-buildmod: Build output to the current working directory. | * znc-buildmod: Build output to the current working directory. | ||
* Wrap long lines in tables (e.g. in Help or ListAvailMods commands). | * Wrap long lines in tables (e.g. in Help or ListAvailMods commands). | ||
* Support ECDHE if available in OpenSSL. | * Support ECDHE if available in OpenSSL. | ||
* Bump compiler requirements to support C++11. This means GCC 4.7+, Clang . | * 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 == | == Fixes == | ||
Line 44: | Line 39: | ||
* Fix memory leak in gzip compression in HTTP server. | * Fix memory leak in gzip compression in HTTP server. | ||
* Use random DNS result instead of choosing the same one every time. | * 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 == | == Modules == | ||
* [[autoattach]]: Make it also a network module. | * [[autoattach]]: | ||
* [[autoreply]]: Use NOTICE instead of PRIVMSG. | ** Make it also a network module. | ||
* [[autoop]]: Add support for multiple hostmasks per user. | * [[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. | |||
* Store CTCP ACTIONs too. | * [[buffextras]]: | ||
* Reset timer and return from away when a client does a CTCP ACTION. | ** Make it also a network module. | ||
* Allows use of strftime formatting in away messages. | * [[chansaver]]: | ||
** Fix saving channel keys. | |||
** Add support for loading as a global module. | |||
* Fix quotes in file names. | * [[controlpanel]]: | ||
* Fix check for "Connected" state. | ** 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. | |||
* Fix saving channel keys. | ** Allow wildcards for GetChan and SetChan. | ||
* Add support for loading as a global module. | * [[flooddetach]]: | ||
** Show current value in Lines and Secs commands. | |||
** Add Silent [yes|no] command, similar to [[route_replies]]. | |||
* Add AddChan, DelChan commands, useful for admins to edit other users' channels, was available only in [[webadmin]] before. | * [[listsockets]]: | ||
* Check if adding a new channel succeeded. | ** Show traffic stats. | ||
* Revise Help output. | * [[log]]: | ||
* Allow wildcards for GetChan and SetChan. | ** 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> | |||
* Show current value in Lines and Secs commands. | ** 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]. | ||
* Add Silent [yes|no] command, similar to [[route_replies]]. | * [[modperl]]: | ||
** Fix some int_t types. | |||
* [[modpython]]: | |||
* Use only lower case characters in log filenames. | ** Fix calling overloaded methods with parameter CString&. | ||
* Use directories and YYYY-MM-DD filename by default. | ** Support CZNC::GetUserMap(). | ||
* Add support for logging rules. E.g. <code>/msg *log setrules #znc !#*</code> | ** 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. | |||
* Fix calling overloaded methods with parameter CString&. | ** Enable default arguments feature of SWIG 3.0.4. No functionality change, it just makes generated code a bit more beautiful. | ||
* Support CZNC::GetUserMap(). | * [[nickserv]]: | ||
* Set has_args and args_help_text from module. | ** Support tddirc.net. | ||
* Release python/swig ownership when adding object created in python to ZNC container. | ** Remove commands Ghost, Recover, Release, Group. The same functionality is available via new [[alias]] module. | ||
* Fix some int_t types. | * [[q]]: | ||
** Add JoinOnInvite, JoinAfterCloaked options. | |||
** Don't cloak host on first module load if already connected to IRC. | |||
* Support tddirc.net. | ** Add web configuration. | ||
* Remove commands Ghost, Recover, Release, Group. The same functionality is available via new [[alias]] module. | ** Use HMAC-SHA-256 instead of HMAC-MD5. | ||
* [[route_replies]]: | |||
** Handle numerics 307 and 379 in /whois reply. Handle IRCv3.2 METADATA numerics. | |||
* Do not skip channels with AutoClearChanBuffer=true. | * [[sample]]: | ||
* Handle empty password in SetPass the same way as during startup. | ** 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]]: | ||
* Don't | ** 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]]: | |||
* Combine "List Users" and "Add User". | ** Don't join channels when not connected. | ||
* Module argument autocomplete="off", for [[nickserv]] module, which contains password in argument before first save. | * [[watch]]: | ||
* For every module show in which other levels that module is loaded (global/user/network). | ** Add support for detached-only clients, and detached-only channels. | ||
* Open links to wiki pages about modules in separate window/tab. | * [[webadmin]]: | ||
* Support renaming a network. | ** Combine "List Users" and "Add User". | ||
* Add missing page title on Traffic page. | ** Module argument autocomplete="off", for [[nickserv]] module, which contains password in argument before first save. | ||
* Improve navigation: "Save and continue". | ** 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 == | == Internal == | ||
* Move Csocket to git submodule. | |||
* Unit tests, via GTest. | * Unit tests, via GTest. | ||
* Allow lambdas for module command callbacks. | * Allow lambdas for module command callbacks. | ||
Line 122: | Line 125: | ||
* Add methods to CString: StartsWith, EndsWith, Join, Find, Contains, and Convert. | * Add methods to CString: StartsWith, EndsWith, Join, Find, Contains, and Convert. | ||
* Add limited support for using threads in modules: CModuleJob class. | * 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 CZNC::CreateInstance to make porting ZNC to MSVC a bit easier. | ||
* Add CUtils::Get/SetMessageTags(). | * Add CUtils::Get/SetMessageTags(). | ||
Line 143: | Line 147: | ||
* Modules: use public API. | * Modules: use public API. | ||
* Modules: use AddCommand(). | * Modules: use AddCommand(). | ||
* Add ChangeLog. | * Add ChangeLog.md. | ||
Latest revision as of 09:57, 2 April 2017
← 1.4 | ZNC 1.6.0 | 1.6.1 → |
This is an old ZNC version. If you still use it, please consider upgrading to 1.9.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.