1# ZNC 1.8.2 (2020-07-07) 2 3## New 4* Polish translation 5* List names of translators in TRANSLATORS.md file in source, as this contribution isn't directly reflected in git log 6* During --makeconf warn about listening on port 6697 too, not only about 6667 7 8## Fixes 9* webadmin: When confirming deletion of a network and selecting No, redirect to the edituser page instead of listusers page 10* Make more client command results translateable, which were missed before 11 12 13 14# ZNC 1.8.1 (2020-05-07) 15 16Fixed bug introduced in ZNC 1.8.0: 17 18Authenticated users can trigger an application crash (with a NULL pointer dereference) if echo-message is not enabled and there is no network. CVE-2020-13775 19 20 21 22# ZNC 1.8.0 (2020-05-01) 23 24## New 25* Output of various commands (e.g. `/znc help`) was switched from a table to a list 26* Support IP while verifying SSL certificates 27* Make it more visible that admins have lots of privileges 28 29## Fixes 30* Fix parsing of channel modes when the last parameter starts with a colon, improving compatibility with InspIRCd v3 31* Fix null dereference on startup when reading invalid config 32* Don't show server passwords on ZNC startup 33* Fix build with newer OpenSSL 34* Fix in-source CMake build 35* Fix echo-message for `status` 36 37## Modules 38* controlpanel: Add already supported NoTrafficTimeout User variable to help output 39* modpython: 40 * Use FindPython3 in addition to pkg-config in CMake to simplify builds on Gentoo when not using emerge 41 * Support python 3.9 42* modtcl: Added GetNetworkName 43* partyline: Module is removed 44* q: Module is removed 45* route_replies: Handle more numerics 46* sasl: Fix sending of long authentication information 47* shell: Unblock signals when spawning child processes 48* simple_away: Convert to UTC time 49* watch: Better support multiple clients 50* webadmin: Better wording for TrustPKI setting 51 52## Internal 53* Refactor the way how SSL certificate is checked to simplify future socket-related refactors 54* Build integration test and ZNC itself with the same compiler (https://bugs.gentoo.org/699258) 55* Various improvements for translation CI 56* Normalize variable name sUserName/sUsername 57* Make de-escaping less lenient 58 59 60 61# ZNC 1.7.5 (2019-09-23) 62 63* modpython: Add support for Python 3.8 64* modtcl: install .tcl files when building with CMake 65* nickserv: report success of Clear commands 66* Update translations, add Italian, Bulgarian, fix name of Dutch 67* Update error messages to be clearer 68* Add a deprecation warning to ./configure to use CMake instead in addition to an already existing warning in README 69 70 71 72# ZNC 1.7.4 (2019-06-19) 73 74## Fixes 75* This is a security release to fix CVE-2019-12816 (remote code execution by existing non-admin users). Thanks to Jeriko One for the bugreport. 76* Send "Connected!" messages to client to the correct nick. 77 78# Internal 79* Increase znc-buildmod timeout in the test. 80 81 82 83# ZNC 1.7.3 (2019-03-30) 84 85## Fixes 86This is a security release to fix CVE-2019-9917. Thanks to LunarBNC for the bugreport. 87 88## New 89Docker only: the znc image now supports --user option of docker run. 90 91 92 93# ZNC 1.7.2 (2019-01-19) 94 95## New 96* Add French translation 97* Update translations 98 99## Fixes 100* Fix compilation without deprecated APIs in OpenSSL 101* Distinguish Channel CTCP Requests and Replies 102* admindebug: Enforce need of TTY to turn on debug mode 103* controlpanel: Add missing return to ListNetMods 104* webadmin: Fix adding the last allowed network 105 106## Internal 107* Add more details to DNS error logs 108 109 110 111# ZNC 1.7.1 (2018-07-17) 112 113## Security critical fixes 114* CVE-2018-14055: non-admin user could gain admin privileges and shell access by injecting values into znc.conf. 115* CVE-2018-14056: path traversal in HTTP handler via ../ in a web skin name. 116 117## Core 118* Fix znc-buildmod to not hardcode the compiler used to build ZNC anymore in CMake build 119* Fix language selector. Russian and German were both not selectable. 120* Fix build without SSL support 121* Fix several broken strings 122* Stop spamming users about debug mode. This feature was added in 1.7.0, now reverted. 123 124## New 125* Add partial Spanish, Indonesian, and Dutch translations 126 127## Modules 128* adminlog: Log the error message again (regression of 1.7.0) 129* admindebug: New module, which allows admins to turn on/off --debug in runtime 130* flooddetach: Fix description of commands 131* modperl: Fix memory leak in NV handling 132* modperl: Fix functions which return VCString 133* modpython: Fix functions which return VCString 134* webadmin: Fix fancy CTCP replies editor for Firefox. It was showing the plain version even when JS is enabled 135 136## Internal 137* Deprecate one of the overloads of CMessage::GetParams(), rename it to CMessage::GetParamsColon() 138* Don't throw from destructor in the integration test 139* Fix a warning with integration test / gmake / znc-buildmod interaction. 140 141 142 143# ZNC 1.7.0 (2018-05-01) 144 145## New 146* 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. 147 * Currently `znc-buildmod` requires python if CMake was used; if that's a concern for you, please open a bug. 148* Increase minimum GCC version from 4.7 to 4.8. Minimum Clang version stays at 3.2. 149* Make ZNC UI translateable to different languages (only with CMake), add partial Russian and German translations. 150 * If you want to translate ZNC to your language, please join https://crowdin.com/project/znc-bouncer 151* Configs written before ZNC 0.206 can't be read anymore 152* Implement IRCv3.2 capabilities `away-notify`, `account-notify`, `extended-join` 153* Implement IRCv3.2 capabilities `echo-message`, `cap-notify` on the "client side" 154* 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. 155* Make ZNC request `server-time` from server when available 156* Increase accepted line length from 1024 to 2048 to give some space to message tags 157* Separate buffer size settings for channels and queries 158* Support separate `SSLKeyFile` and `SSLDHParamFile` configuration in addition to existing `SSLCertFile` 159* Add "AuthOnlyViaModule" global/user setting 160* Added pyeval module 161* Added stripcontrols module 162* Add new substitutions to ExpandString: `%empty%` and `%network%`. 163* Stop defaulting real name to "Got ZNC?" 164* Make the user aware that debug mode is enabled. 165* Added `ClearAllBuffers` command 166* Don't require CSRF token for POSTs if the request uses HTTP Basic auth. 167* Set `HttpOnly` and `SameSite=strict` for session cookies 168* Add SNI SSL client support 169* Add support for CIDR notation in allowed hosts list and in trusted proxy list 170* Add network-specific config for cert validation in addition to user-supplied fingerprints: `TrustAllCerts`, defaults to false, and `TrustPKI`, defaults to true. 171* Add `/attach` command for symmetry with `/detach`. Unlike `/join` it allows wildcards. 172* 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 173* Build on macOS using ICU, Python, and OpenSSL from Homebrew, if available 174* Remove `--with-openssl=/path` option from ./configure. SSL is still supported and is still configurable 175 176## Fixes 177* Revert tables to how they were in ZNC 1.4 178* 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. 179* 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 180* Change default flood rates to match RFC1459, prevent excess flood problems 181* Match channel names and hostmasks case-insensitively in autoattach, autocycle, autoop, autovoice, log, watch modules 182* Fix crash in shell module which happens if client disconnects at a wrong time 183* Decrease CPU usage when joining channels during startup or reconnect, add config write delay setting 184* Always send the users name in NOTICE when logging in. 185* Don't try to quit multiple times 186* Don't send PART to client which sent QUIT 187* Send failed logins to NOTICE instead of PRIVMSG 188* Stop creating files with odd permissions on Solaris 189* Save channel key on JOIN even if user was not on the channel yet 190* Stop buffering and echoing CTCP requests and responses to other clients with self-message, except for /me 191* Support discovery of tcl 8.6 during `./configure` 192 193## Modules 194* adminlog: 195 * Make path configurable 196* alias: 197 * Add `Dump` command to copy your config between users 198* awaystore: 199 * Add `-chans` option which records channel highlights 200* blockmotd: 201 * Add `GetMotd` command 202* clearbufferonmsg: 203 * Add options which events trigger clearation of buffers. 204* controlpanel: 205 * Add the `DelServer` command. 206 * Add `$user` and `$network` aliases for `$me` and `$net` respectively 207 * Allow reseting channel-specific `AutoClearChanBuffer` and `BufferSize` settings by setting them to `-` 208 * Change type of values from "double" to "number", which is more obvious for non-programmers 209* crypt: 210 * Fix build with LibreSSL 211 * Cover notices, actions and topics 212 * Don't use the same or overlapping NickPrefix as StatusPrefix 213 * Add DH1080 key exchange 214 * Add Get/SetNickPrefix commands, hide the internal keyword from ListKeys 215* cyrusauth: 216 * Improve UI 217* fail2ban: 218 * Make timeout and attempts configurable, add BAN, UNBAN and LIST commands 219* flooddetach: 220 * Detach on nick floods 221* keepnick: 222 * Improve behaviour by listening to ircd-side numeric errors 223* log: 224 * Add `-timestamp` option 225 * Add options to hide joins, quits and nick changes. 226 * Stop forcing username and network name to be lower case in filenames 227 * Log user quit messages 228* missingmotd: 229 * Include nick in IRC numeric 422 command, reduce client confusion 230* modperl: 231 * Provide `operator ""` for `ZNC::String` 232 * Honor `PERL5LIB` env var 233 * Fix functions like `HasPerm()` which accept `char` 234 * When a broken module couldn't be loaded, it couldn't be loaded anymore even if it was fixed later. 235 * Force strings to UTF-8 in modperl to fix double encoding during concatenation/interpolation. 236* modpython: 237 * Require ZNC to be built with encodings support 238 * Disable legacy encoding mode when modpython is loaded. 239 * Support `CQuery` and `CServer` 240* nickserv: 241 * Use `/nickserv identify` by default instead of `/msg nickserv`. 242 * Support messages from X3 services 243* notify_connect: 244 * Show client identification 245* sasl: 246 * Add web interface 247 * Enable all known mechanisms by default 248 * Make the first requirement for SET actually mandatory, return information about settings if no input for SET 249* schat: 250 * Require explicit path to certificate. 251* simple_away: 252 * Use ExpandString for away reason, rename old `%s` to `%awaytime%` 253 * Add `MinClients` option 254* stickychan: 255 * Save registry on every stick/unstick action, auto-save if channel key changes 256 * Stop checking so often, increase delay to once every 3 minutes 257* webadmin: 258 * Make server editor and CTCP replies editor more fancy, when JS is enabled 259 * Make tables sortable. 260 * Allow reseting chan buffer size by entering an empty value 261 * Show per-network traffic info 262 * Make the traffic info page visible for non-admins, non-admins can see only their traffic 263 264## Internal 265* 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. 266* Add an integration test 267* Various HTML changes 268* Introduce a CMessage class and its subclasses 269* Add module callbacks which accept CMessage, deprecate old callbacks 270* Add `OnNumericMessage` module callback, which previously was possible only with `OnRaw`, which could give unexpected results if the message has IRCv3.2 tags. 271* Modernize code to use more C++11 features 272* Various code cleanups 273* Fix CSS of `_default_` skin for Fingerprints section 274* Add `OnUserQuitMessage()` module hook. 275* Add `OnPrivBufferStarting()` and `OnPrivBufferEnding()` hooks 276* `CString::WildCmp()`: add an optional case-sensitivity argument 277* Do not call `OnAddUser()` hook during ZNC startup 278* Allow modules to override CSRF protection. 279* Rehash now reloads only global settings 280* Remove `CAP CLEAR` 281* Add `CChan::GetNetwork()` 282* `CUser`: add API for removing and clearing allowed hosts 283* `CZNC`: add missing SSL-related getters and setters 284* Add a possibility (not an "option") to disable launch after --makeconf 285* Move Unix signal processing to a dedicated thread. 286* Add clang-format configuration, switch tabs to spaces. 287* `CString::StripControls()`: Strip background colors when we reset foreground 288* Make chan modes and permissions to be char instead of unsigned char. 289 290## Cosmetic 291* Alphabetically sort the modules we compile using autoconf/Makefile 292* Alphabetically sort output of `znc --help` 293* Change output during startup to be more compact 294* Show new server name when reconnecting to a different server with `/znc jump` 295* Hide passwords in listservers output 296* Filter out ZNC passwords in output of `znc -D` 297* Switch znc.in URLs to https 298 299 300 301# ZNC 1.6.6 (2018-03-05) 302 303* Fix use-after-free in `znc --makepem`. It was broken for a long time, but 304 started segfaulting only now. This is a useability fix, not a security fix, 305 because self-signed (or signed by a CA) certificates can be created 306 without using `--makepem`, and then combined into znc.pem. 307* Fix build on Cygwin. 308 309 310 311# ZNC 1.6.5 (2017-03-12) 312 313## Fixes 314 315* Fixed a regression of 1.6.4 which caused a crash in modperl/modpython. 316* Fixed the behavior of `verbose` command in the sasl module. 317 318 319 320# ZNC 1.6.4 (2016-12-10) 321 322## Fixes 323 324* Fixed build with OpenSSL 1.1. 325* Fixed build on Cygwin. 326* Fixed a segfault after cloning a user. The bug was introduced in ZNC 1.6.0. 327* Fixed a segfault when deleting a user or network which is waiting for DNS 328 during connection. The bug was introduced in ZNC 1.0. 329* Fixed a segfault which could be triggered using alias module. 330* Fixed an error in controlpanel module when setting the bindhost of another user. 331* Fixed route_replies to not cause client to disconnect by timeout. 332* Fixed compatibility with the Gitter IRC bridge. 333 334## Internal 335* Fixed `OnInvite` for modpython and modperl. 336* Fixed external location of GoogleTest for `make test`. 337 338 339 340# ZNC 1.6.3 (2016-02-23) 341 342## Core 343* New character encoding is now applied immediately, without reconnect. 344* Fixed build with LibreSSL. 345* Fixed error 404 when accessing the web UI with the configured URI prefix, 346 but without the `/` in the end. 347* `znc-buildmod` now exits with non-zero exit code when the .cpp file is not found. 348* Fixed `znc-buildmod` on Cygwin. 349* ExpandString got expanded. It now expands `%znc%` to 350 `ZNC <version> - http://znc.in`, honoring the global "Hide version" setting. 351* Default quit message is switched from `ZNC <version> - http://znc.in` to `%znc%`, 352 which is the same, but "automatically" changes the shown version when ZNC gets upgraded. 353 Before, the old version was recorded in the user's quit message, and stayed the same 354 regardless of the current version of ZNC. 355 356## Modules 357* modperl: 358 * Fixed a memory leak. 359* sasl: 360 * Added an option to show which mechanisms failed or succeeded. 361* webadmin: 362 * Fixed an error message on invalid user settings to say what exactly was invalid. 363 * No more autocomplete password in user settings. It led to an error when ZNC 364 thought the user is going to change a password, but the passwords didn't match. 365 366 367 368# ZNC 1.6.2 (2015-11-15) 369 370## Fixes 371 372* Fixed a use-after-delete in webadmin. It was already partially fixed in ZNC 1.4; since 1.4 it has been still possible to trigger, but much harder. 373* Fixed a startup failure when awaynick and simple_away were both loaded, and simple_away had arguments. 374* Fixed a build failure when using an ancient OpenSSL version. 375* Fixed a build failure when using OpenSSL which was built without SSLv3 support. 376* Bindhost was sometimes used as ident. 377* `CAP :END` wasn't parsed correctly, causing timeout during login for some clients. 378* Fixed channel keys if client joined several channels in single command. 379* Fixed memory leak when reading an invalid config. 380 381## Modules 382 383* autovoice: 384 * Check for autovoices when we are opped. 385* controlpanel: 386 * Fixed `DelCTCPReply` case-insensitivity. 387* dcc: 388 * Add missing return statement. It was harmless. 389* modpython: 390 * Fixed a memory leak. 391* modules_online: 392 * Wrong ident was used before. 393* stickychan: 394 * Fixed to unstick inaccessible channels to avoid infinite join loops. 395 396## Internal 397 398* Fixed the nick passed to `CModule::OnChanMsg()` so it has channel permissions set. 399* Fixed noisy `-Winconsistent-missing-override` compilation warnings. 400* Initialized some fields in constructors of modules before `OnLoad()`. 401 402## Cosmetic 403 404* Various modules had commands with empty descriptions. 405* perform: 406 * Say "number" instead of "nr". 407* route_replies: 408 * Make the timeout error message more clear. 409 410 411 412# ZNC 1.6.1 (2015-08-04) 413 414## Fixes 415 416* Fixed the problem that channels were no longer removed from the config despite of chansaver being loaded. 417* Fixed query buffer size for users who have the default channel buffer size set to 0. 418* Fixed a startup failure when simple_away was loaded after awaynick. 419* Fixed channel matching commands, such as DETACH, to be case insensitive. 420* Specified the required compiler versions in the configure script. 421* Fixed a rare conflict of HTTP-Basic auth and cookies. 422* Hid local IP address from the 404 page. 423* Fixed a build failure for users who have `-Werror=missing-declarations` in their `CXXFLAGS`. 424* Fixed `CXXFLAGS=-DVERSION_EXTRA="foo"` which is used by some distros to package ZNC. 425* Fixed `znc-buildmod` on Cygwin. 426 427## Modules 428 429* chansaver: 430 * Fixed random loading behavior due to an uninitialized member variable. 431* modpython: 432 * Fixed access to `CUser::GetUserClients()` and `CUser::GetAllClients()`. 433* sasl: 434 * Improved help texts for the SET and REQUIREAUTH commands. 435* savebuff: 436 * Fixed periodical writes on the disk when the module is loaded after startup. 437* webadmin: 438 * Fixed module checkboxes not to claim that all networks/users have loaded a module when there are no networks/users. 439 * Added an explanation that ZNC was built without ICU support, when encoding settings are disabled for that reason. 440 * Improved the breadcrumbs. 441 * Mentioned ExpandString in CTCP replies. 442 * Added an explanation how to delete port which is used to access webadmin. 443 444## Internal 445 446* Fixed `CThreadPool` destructor to handle spurious wakeups. 447* Fixed `make distclean` to remove `zncconfig.h`. 448* Improved the error message about `--datadir`. 449* Fixed a compilation warning when `HAVE_LIBSSL` is not defined. 450* Fixed 'comparision' typos in CString documentation. 451* Added a non-minified version of the jQuery source code to make Linux distributions (Debian) happy, even though the jQuery license does not require this. 452 453 454 455# ZNC 1.6.0 (2015-02-12) 456 457## New 458 459* Switch versioning scheme to <major>.<minor>.<patch>. 460* 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 advices: https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28default.29 461* Validate SSL certificates. 462* Allow clients to specify an ID as part of username (user[@identifier][/network]). Currently not used, but modules can use it. 463* Add alias module for ZNC-side command interception and processing. 464* 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. 465* Support X-Forwarded-For HTTP header, used with new TrustedProxy setting. 466* Add URIPrefix option for HTTP listeners, used with reverse proxy. 467* Store query buffers per query the same way it's done for channels, add new option AutoClearQueryBuffer. 468* Add DisableChan command to *status, it was available only in webadmin before. 469* Allow wildcards in arguments of Help commands of *status and various modules. 470* Support IRCv3.2 batches, used for buffer playbacks. 471* Support IRCv3.2 self-message. 472* Remove awaynick module. It's considered bad etiquette. 473* Add JoinDelay setting, which allows a delay between connection to server, and joining first channel. By default it joins immediately after connect. 474* Make Detach, EnableChan and DisableChan commands of *status accept multiple channels. 475* znc-buildmod: Build output to the current working directory. 476* Wrap long lines in tables (e.g. in Help or ListAvailMods commands). 477* Support ECDHE if available in OpenSSL. 478* Report ZNC version more consistently, add HideVersion setting, which hides ZNC version from public. 479* Bump compiler requirements to support C++11. This means GCC 4.7+, Clang 3.2+, SWIG 3.0.0+. 480 481 482## Fixes 483 484* Disable TLS compression. 485* Disallow setting ConnectDelay to zero, don't hammer server with our failed connects. 486* Simplify --makeconf. 487* Fix logic to find an available nick when connecting to server. 488* Fix handling of CTCP flood. 489* Allow network specific quit messages. 490* Make various text labels gender-neutral. 491* Fix finding SWIG 3 on FreeBSD. 492* Handle multi-receiver NOTICE and PRIVMSG. 493* Make channels follow user-level settings when appropriate. 494* Write disabled status to config for disabled channels. 495* Fix double output in messages from modules. 496* Fix memory leak in gzip compression in HTTP server. 497* Use random DNS result instead of choosing the same one every time. 498* Fix HTTP basic auth. 499* Mention network in message shown if client didn't send PASS. 500 501 502## Modules 503 504* autoattach: 505 * Make it also a network module. 506* autoreply: 507 * Use NOTICE instead of PRIVMSG. 508* autoop: 509 * Add support for multiple hostmasks per user. 510* awaystore: 511 * Store CTCP ACTIONs too. 512 * Reset timer and return from away when a client does a CTCP ACTION. 513 * Allows use of strftime formatting in away messages. 514* bouncedcc: 515 * Fix quotes in file names. 516 * Fix check for "Connected" state. 517* buffextras: 518 * Make it also a network module. 519* chansaver: 520 * Fix saving channel keys. 521 * Add support for loading as a global module. 522* controlpanel: 523 * Add AddChan, DelChan commands, useful for admins to edit other users' channels, was available only in webadmin before. 524 * Check if adding a new channel succeeded. 525 * Revise Help output. 526 * Allow wildcards for GetChan and SetChan. 527* flooddetach: 528 * Show current value in Lines and Secs commands. 529 * Add Silent [yes|no] command, similar to route_replies. 530* listsockets: 531 * Show traffic stats. 532* log: 533 * Use only lower case characters in log filenames. 534 * Use directories and YYYY-MM-DD filename by default. 535 * Add support for logging rules. E.g. /msg *log setrules #znc !#* 536* modperl: 537 * Fix some int_t types. 538* modpython: 539 * Fix calling overloaded methods with parameter CString&. 540 * Support CZNC::GetUserMap(). 541 * Set has_args and args_help_text from module. 542 * Release python/swig ownership when adding object created in python to ZNC container. 543 * Fix some int_t types. 544 * Enable default arguments feature of SWIG 3.0.4. No functionality change, it just makes generated code a bit more beautiful. 545* nickserv: 546 * Support tddirc.net. 547 * Remove commands Ghost, Recover, Release, Group. The same functionality is available via new alias module. 548* q: 549 * Add JoinOnInvite, JoinAfterCloaked options. 550 * Don't cloak host on first module load if already connected to IRC. 551 * Add web configuration. 552 * Use HMAC-SHA-256 instead of HMAC-MD5. 553* route_replies: 554 * Handle numerics 307 and 379 in /whois reply. Handle IRCv3.2 METADATA numerics. 555* sample: 556 * Make it a network module, which are easier to write. 557* sasl: 558 * Remove DH-BLOWFISH and DH-AES. See http://nullroute.eu.org/~grawity/irc-sasl-dh.html and http://kaniini.dereferenced.org/2014/12/26/do-not-use-DH-AES-or-DH-BLOWFISH.html for details. 559* savebuff: 560 * Do not skip channels with AutoClearChanBuffer=true. 561 * Handle empty password in SetPass the same way as during startup. 562* simple_away: 563 * Apply auto-away on load if no user is connected. 564* stickychan: 565 * Don't join channels when not connected. 566* watch: 567 * Add support for detached-only clients, and detached-only channels. 568* webadmin: 569 * Combine "List Users" and "Add User". 570 * Module argument autocomplete="off", for nickserv module, which contains password in argument before first save. 571 * For every module show in which other levels that module is loaded (global/user/network). 572 * Open links to wiki pages about modules in separate window/tab. 573 * 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. 574 * Add missing page title on Traffic page. 575 * Improve navigation: "Save and continue". 576 * Clarify that timestamp format is useless with server-time. 577 578 579## Internal 580 581* Move Csocket to git submodule. 582* Unit tests, via GTest. 583* Allow lambdas for module command callbacks. 584* New modules hooks: OnSendToClient, OnSendToIRC, OnJoining, OnMode2, OnChanBufferPlayLine2, OnPrivBufferPlayLine2. 585* Add methods to CString: StartsWith, EndsWith, Join, Find, Contains, and Convert. 586* Add limited support for using threads in modules: CModuleJob class. 587* Inherit CClient and CIRCSock from a common class CIRCSocket. 588* Add CZNC::CreateInstance to make porting ZNC to MSVC a bit easier. 589* Add CUtils::Get/SetMessageTags(). 590* Add CIRCNetwork::FindChans(). 591* Add CChan::SendBuffer(client, buffer) overload. 592* Add CIRCNetwork::LoadModule() helper. 593* Add CClient::IsPlaybackActive(). 594* Web: Discard sessions in LRU order. 595* Introduce CaseSensitivity enum class. 596* Fix CNick::Parse(). 597* Remove redundant CWebSocket::GetModule(). 598* Switch from CSmartPtr to std::shared_ptr. 599* Fix GetClients() const correctness. 600* Make self-signed cert with SHA-256, provide DH parameters in --makepem. 601* Use override keyword. 602* Show username of every http request in -D output. 603* Split CUserTimer into CIRCNetworkPingTimer and CIRCNetworkJoinTimer. 604* Give a reason for disabled features during ./configure, where it makes sense. 605* Use make-tarball.sh for nightlies too. 606* Revise CChan::JoinUser() & AttachUser(). 607* Modules: use public API. 608* Modules: use AddCommand(). 609* Add ChangeLog.md. 610 611 612 613# ZNC 1.4 (2014-05-08) 614 615This release is done to fix a denial of service attack through webadmin. After authentication, users can crash ZNC through a use-after-delete. 616Additionally, a number of fixes and nice, low-risk additions from our development branch is included. 617 618In detail, these are: 619 620 621## New 622 623* Reduce users' confusion during --makeconf. 624* Warn people that making ZNC listen on port 6667 might cause problems with some web browsers. 625* Always generate a SSL certificate during --makeconf. 626* Stop asking for a bind host / listen host in --makeconf. People who don't want wildcard binds can configure this later. 627* Don't create ~/.znc/modules if it doesn't exist yet. 628 629 630## Fixes 631 632* Fix a use-after-delete in webadmin. CVE-2014-9403 633* Honor the BindHost whitelist when configuring BindHosts in controlpanel module. 634* Ignore trailing whitespace in /znc jump arguments. 635* Change formatting of startup messages so that we never overwrite part of a message when printing the result of an action. 636* Fix configure on non-bash shells. 637* Send the correct error for invalid CAP subcommands. 638* Make sure znc-buildmod includes zncconfig.h at the beginning of module code. 639 640 641## Modules 642 643* Make awaystore automatically call the Ping command when the Back command is used. 644* Add SSL information and port number to servers in network list in webadmin. 645* Disable password autocompletion when editing users in webadmin. 646* Make nickserv module work on StarChat.net and ircline.org. 647* Remove accidental timeout for run commands in shell module. 648* certauth now uses a case insensitive comparison on hexadecimal fingerprints. 649 650### controlpanel 651 652* Correct double output. 653* Add support for the MaxNetworks global setting. 654* Add support for the BindHost per-network setting. 655 656### modperl and modpython 657 658* Make OnAddNetwork and OnDeleteNetwork module hooks work. 659* Don't create .pyc files during compilation. 660* Fix modperl on MacOS X. Twice. 661* Require at least SWIG 2.0.12 on MacOS X. 662 663 664## Internal 665 666* Don't redefine _FORTIFY_SOURCE if compiler already defines it. 667* Cache list of available timezones instead of re-reading it whenever it is needed. 668* Improve const-correctness. 669* Fix various low-priority compiler warnings. 670* Change in-memory storage format for ServerThrottle. 671* Use native API on Win32 to replace a file with another file. 672* Add src/version.cpp to .gitignore. 673 674 675 676# ZNC 1.2 (2013-11-04) 677 678## New 679 680* ZNC has been relicensed to Apache 2.0 681* Show password block in --makepass in new format 682* Return MaxJoins setting, it helps against server sending ZNC too many lines 683 at once and disconnecting with "Max SendQ exceeded" 684* Make /znc detach case insensitive, allow "/detach #chan1,#chan2" syntax 685* No longer store 381 in the buffer 686 687 688## Fixes 689 690* CModule::OnMode(): Fix a stupid NULL pointer dereference 691* Fix NULL pointer dereference in webadmin. 692* Fix a crash when you delete a user with more than one attached client 693* Fix a random crash with module hooks 694* Revert "Rewrite the JOIN channel logic, dropping MaxJoins" 695* Fix build on some systems 696* Fix build of shallow git clone 697* Fix build of git tags 698* Fix OOT builds with swig files in source dir 699* Don't send NAMES and TOPIC for detached channels when a client connects 700* Fix memory leak 701* Consistency between Del* and Rem* in command names 702* Fix changing client nick when client connects. 703* Timezone GMT+N is really GMT+N now. It behaved like -N before. 704* Escape special characters in debug output (znc --debug) 705* Don't disconnect networkless users without PINGing them first. 706* Don't lose dlerror() message. 707* Fix use-after-free which may happen during shutdown 708* Fix "Error: Success" message in SSL 709* Fixed double forward slashes and incorrect active module highlighting. 710* make clean: Only delete files that can be regenerated 711* Don't make backup of znc.conf readable by everyone. 712* makepem: create pem only rw for the user, on non-win32 713* Don't ever try to overwrite /usr/bin/git 714* Fix user modes 715* Request secure cookie transmission for HTTPS 716* "make clean" removes .depend/ 717* Fix support for /msg @#chan :hi 718* Fix saving config on some cygwin installations 719* Fix error message for invalid network name 720 721 722## Modules 723 724* Return old fakeonline module (accidentally removed in 1.0) as modules_online 725* autoattach: add string searching 726* autocycle: Convert to a network module 727* chansaver: Fix chansaver to not rewrite the config each time a user joins a 728 channel on startup 729* cert: Make default type of cert mod to be network. 730* watch: Don't handle multiple matching patterns for each target 731* route_replies: Add some WHOIS numerics 732* block_motd: Allow block_motd to be loaded per-network and globally 733* notify_connect: Fixed syntax on attach/detach messages to be more consistent 734* cyrusauth: Fix user creation 735 736### controlpanel 737 738* Support network module manipulation 739* Increases general verbosity of command results. 740* Fix bug for "Disconnect" help 741* Standardize error wordings 742 743### webadmin 744 745* Allow loading webadmin as user module. 746* Show instructions on how to use networks in Add Network too 747* clarify that + is SSL 748* Show example timezone in webadmin 749* Enable embedding network modules. 750* Enable embedding modules to network pages. 751* Change save network to show the network and not redirect user 752 753### sasl 754 755* Implement DH-AES encrypted password scheme. 756* Add missing length check 757* Description line for DH-BLOWFISH 758* Fixing unaligned accesses 759 760### awaystore 761 762* Fix loading old configs which referred to "away" module 763* Fix displaying IPv6 addresses 764 765### crypt 766 767* Add time stamp to buffered messages 768* Use ASCII for nick prefix and make it configurable 769 770### nickserv 771 772* Make NickServ nickname configurable. 773* Add support for NickServ on wenet.ru and Azzurra 774* nickserv: don't confuse people so much 775 776### log 777 778* Add -sanitize option to log module. 779* Convert / and \ character to - in nicks for filenames. 780* Create files with the same permissions as the whole log directory. 781 782### charset 783 784* Don't try to build charset module if iconv is not found 785* Fix: Converted raw string include NULL character in charset module 786 787### modperl 788 789* A bit more debug output on modperl 790* Fix perl modules being shown incorrectly in the webadmin 791 792### partyline 793 794* Fix PartyLine so that forced channels may not be left at all - users will be 795rejoined at once. 796* Fix partyline rejoin on user deletion 797 798 799## Internal 800 801* Require SWIG 2.0.8 for modperl/modpython (removes hacks to make older SWIG 802 work) 803* Web interface now supports gzip compression 804* Update server-time to new specs with ISO 8601 805* Add a generic threads abstraction 806* Add CString::StripControls to strip controls (Colors, C0) from strings 807* Change PutModule to handle multiple lines 808* Debug output: Only print queued lines if they are really just queued 809* Add initial unit tests, runnable by "make test" 810* Add nick comparison function CNick::NickEquals 811* Force including zncconfig.h at the beginning of every .cpp 812* Add OnAddNetwork, OnDeleteNetwork module hooks 813 814# ZNC 1.0 (2012-11-07) 815 816## The Big News 817Multiple networks per user 818Think about new users as "user groups", while new networks are similar to old users. 819 820To login to ZNC, use user/network:password as password, or user/network as username. Also, you can switch between different networks on the fly using the /znc JumpNetwork command. 821 822When you first run ZNC 1.0, it will automatically convert your config and create a network called "default" for each user. Settings from each user are moved into these "default" networks. When you log into ZNC without setting a network, the "default" network will automatically be chosen for you. 823 824Users can create new networks up to an admin-configurable limit. By default, this limit is one network per user. 825 826Existing user-per-network setups can be migrated to the new multinetwork setup using the /znc MoveNetwork command. 827 828You can see a list of networks via /znc ListNetworks and /znc ListAllUserNetworks. 829 830## Timezones 831Timezone can now be configured by name, e.g. "GMT-9", or "Europe/Madrid". Old TimezoneOffset setting (which was the number of hours between the server's timezone and the user's timezone) is deprecated and should not be used anymore. Its old value is lost. The reason for this change is that the old TimezoneOffset was not trivial to count and often broke during switches to/from daylight savings time. 832 833So if you previously used the TimezoneOffset option, you now have to configure your timezone again (via the webadmin or controlpanel module). 834 835## No more ZNC-Extra 836Most modules from ZNC-Extra are now enabled in the usual installation. It was pointless to have them shipped in the tarball, but requiring user to add some weird flags to ./configure. 837 838Antiidle, fakeonline and motdfile modules are dropped. 839 840Away module is renamed to awaystore to better explain its meaning. 841 842## Fixes 843* Don't try IPv6 servers when IPv6 isn't available. Use threads for non-blocking DNS instead of c-ares. 844* Fix debug output of identfile. 845* Don't forward WHO replies with multi-prefix to clients which don't support multi-prefix 846* Send nick changes to clients before we call the OnNick module hook 847* Don't connect to SSLed IRC servers when ZNC is compiled without SSL support 848* Fix check for visibility support in the compiler 849* Fix compilation on cygwin again, including modperl and modpython 850* Support parting several channels at once 851* Fix a crash in admin (now controlpanel) module 852* Fix webadmin to deny setting a bindhost that is not on the global list of allowed bindhosts. 853* Fix using empty value for defaults in user page in webadmin. 854 855## Minor Stuff 856* Rename admin module to controlpanel to make it clearer that it's not the same as admin flag of a user. 857* Add protection from flood. If you send multiple lines at once, they will be slowed down, so that the server will not disconnect ZNC due to flood. It can be configured and can be completely turned off. Default settings are: 1 line per second, first 4 lines are sent at once. 858* Modules can support several types now: a module can be loaded as a user module, as a network module and as a global module, if the module supports these types. 859* Rename (non-)KeepBuffer to AutoClearChanBuffer 860* Process starttls numeric 861* Improvements to modperl, modpython, modtcl. 862* Add timestamps to znc --debug 863* Listeners editor in webadmin 864* Add sasl module which uses SASL to authenticate to NickServ. 865* Rename saslauth to cyrusauth, to make it clearer that it's not needed to do SASL authentication to NickServ. 866* Modules get a way to describe their arguments. 867* webadmin: allow editing of the bindhost without global list. 868* Don't send our password required notice until after CAP negotiation 869* Rewrite the JOIN channel logic, dropping MaxJoins 870* Support messages directed to specific user prefixes (like /msg @#channel Hello) 871* Show link to http://znc.in/ from web as a link. It was plain text before. 872* Webadmin: use HTML5 numeric inputs for numbers. 873* Add SSL/IPv6/DNS info to znc --version 874* Clarify that only admins can load the shell module. 875* cyrusauth: Allow creating new users on first login 876* Clear channel buffers when keep buffer is disabled if we're online 877* send_raw: Add a command to send a line to the current client 878* webadmin: Implement clone user 879* autoreply: Honor RFC 2812. 880* Add 381 to the buffer ("You are now an IRC Operator") 881* identfile: Pause the connection queue while we have a locked file 882* Add ShowBindHost command 883* autoop: Check for autoops when we get op status 884* Improvements and fixes to the partyline module 885* partyline Drop support for fixed channels 886* Check that there're modules available on startup. Check if ZNC is installed or not. 887* Modified description field for bouncedcc module to explain what the module actually does. 888* nickserv: add support for nickserv requests on wenet.ru and rusnet. 889* send 422 event if MOTD buffer is empty 890* route_replies: Handle much more replies 891* Clear text colors before appending timestamps to buffer lines, add space before AppendTimestamp for colorless lines. 892* Don't replace our motd with a different servers motd 893* webadmin: Add a "Disabled" checkbox for channels 894* Send a 464 ERR_PASSWDMISMATCH to clients that did not supply a password 895* Separate compilation and linking for modules. 896* Trim spaces from end of commands to autoattach. 897* nickserv: add ghost, recover and release 898* Warn if config was saved in a newer ZNC version. 899* Backup znc.conf when upgrading ZNC. 900 901## Internal Stuff 902* #include <znc/...h> instead of #include "...h" 903* Add string formatting function with named params. 904* Python, perl: support global, user, network modules. 905* Csock: able use non-int number of secs for timer. 906* CString("off").ToBool() shouldn't be true 907* Python: Override __eq__ to allow comparison of strings 908* python: Allow iterating over CModules 909* Add methods to CModule to get the web path 910* Rework modperl to better integrate with perl. 911* Store all 005 values in a map. 912* Python: Use znc.Socket if no socket class is specified in CreateSocket() 913* CZNC::WriteConfig(): Better --debug output 914* Slight refactor of CBuffer & CBufLine. 915* Implemented an OnInvite hook 916* Allow a client to become "away" 917* Create a connection queue 918* Set default TrimPrefix to ":" 919* Add a config writer 920* Wrap MODULECALL macros in a do-while 921* Don't require CTimer's label to be unique if its empty 922* Allow loading python modules with modpython (ex. modname/__init__.py) 923* bNoChange in On{,De}{Op,Voice} wast incorrect 924* Drop znc-config, change znc-buildmod so it doesn't need znc-config 925 926# ZNC 0.206 (2012-04-05) 927 928## Fixes 929* Identfile: don't crash when ZNC is shutting down. 930* CTCPReplies setting with empty value now blocks those CTCP requests to the client. 931* Show more sane error messages instead of "Error: Success". 932* Imapauth: Follow RFC more closely. 933* "No" is a false value too. 934 935## Minor stuff 936* Add Show command to identfile, which should help you understand what's going on, if identfile is blocking every connection attempt for some reason. 937* Make TLS certs valid for 10 years. 938* Ask for port > 1024 in --makeconf. 939* Reset JoinTries counter when we enable a channel. 940 941# ZNC 0.204 (2012-01-22) 942 943This release fixes CVE-2012-0033, 944http://www.openwall.com/lists/oss-security/2012/01/08/2 945https://bugs.gentoo.org/show_bug.cgi?id=CVE-2012-0033 946https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2012-0033 947 948## Fixes 949* Fix a crash in bouncedcc module with DCC RESUME. 950* Fix modperl compilation. 951* Don't use mkdir during install. 952* Fix compilation failures, which happened sometimes when an older ZNC was already installed. 953* Check for the swig2.0 binary too, instead of only swig. 954 955## Minor stuff 956* Unload modules in reverse order. 957* Don't send server redirects (numeric 010) to clients. 958* Make it possible to filter the result of the help command. 959* Drop @DEFS@ from the build system so that we don't force HAVE_CONFIG_H upon others. 960* Move autocycle to extra. 961* Handle raw 482 in route_replies. 962* Improve identfile's debug messages. 963* Send a MODE request when JOINing. 964* Block raw 301 in antiidle. 965 966# ZNC 0.202 (2011-09-21) 967 968This is a bugfix-mostly release. 969 970## Fixes 971* Fix a crash when a user changes the buffer size of a channel. 972* Fix a NULL pointer dereference in buffer-related module hooks. 973* Fix the autocycle module to not fight with ChanServ. 974* Fix the getchan command in the admin module. 975* Don't timeout bouncedcc connections so that idling DCC chats are possible. 976* Fix build error when compiling against uclibc(++). 977 978## Minor stuff 979* Improve the timeout message in the route_replies module. 980* Add the -r parameter to the man page of ZNC. 981* Install .py files along with .pyc. 982 983# ZNC 0.200 (2011-08-20) 984 985## The Big News 986* Move ident spoofing from ZNC core into new identfile module. 987* Move dcc handling from ZNC core into new modules bouncedcc and dcc. 988* Remove the obsolete fixfreenode module. 989* New module: cert 990* Move away into ZNC-Extra. 991 992## Fixes 993* In ZNC 0.098 there was a memleak whenever someone JOINs a channel. 994* Compile even when OpenSSL was built with no-ssl2. 995* Correctly handle excessive web sessions. 996* Correctly save non-ASCII characters to the NV. 997* Fix znc-buildmod when ZNC was compiled out of tree. 998* Don't always use IPv6 when verifying the listener in --makeconf. 999 1000## Minor Things 1001* Remove a pointless MODE request which ZNC sent on every JOIN. 1002* Raise ZNC's timeouts. 1003* Log's logging path becomes configurable. 1004* Add a replay command to away. 1005* Add a get command to notes. 1006* Add -disableNotesOnLogin argument to notes. 1007* Add hostmask handling to autoattach. 1008* Make it possible for modules to provide additional info, e.g. providing a homepage URL. 1009* Various improvements to modpython. 1010* Hardcode a default entry for the CN in znc --makepem. 1011* Work around Mac OS' and Solaris' brokenness. 1012* Make ZNC compile without getopt_long(). This fixes compilation on e.g. Solaris 9 and hopefully Irix. 1013* Check for errors like "no space left on disk" while writing the config file. 1014* Improve the error handling when reading the config. 1015* Move module data files to own directory in the source and in installation prefix. 1016* Handle Listeners after SSLCertFile during startup. 1017* Check for required SWIG version in ./configure. 1018* Make it possible to use ExpandString-stuff in QuitMsg. 1019* znc-buildmod: Print ZNC's version number. 1020* Add config option ProtectWebSessions which makes it possible to disable the IP check for web sessions. 1021 1022## Internal Stuff 1023* Build modules with hidden symbol visibility. 1024* Clean up includes. This might break external modules. 1025* New CModCommand for simplifiying module commands. 1026* Add the OnIRCConnectionError(CIRCSock *pIRCSock) module hook 1027* Remove config-related module hooks. 1028* Fix CString::Escape_n() 1029* Make the CUser::IsIRCConnected method check if ZNC already successfully logged in to IRC. 1030* and more... 1031 1032# ZNC 0.098 (2011-03-28) 1033 1034 1035## New stuff 1036* Add a list of features to the output of /znc version. (cce5824) 1037* Add modpython. (a564e2) (88c84ef) (1854e1) (9745dcb) (644632) (4c6d52c) (b7700fe) (0f2265c) 1038* Verify during --makeconf that the specified listener works. (11ffe9d) 1039* Add TimestampFormat and StatusPrefix settings to admin. (853ddc5) 1040* Add DCCBindHost, channel keys and some more to webadmin. (570fab6) (eb26386) (1e0585c) 1041* Add a web interface to listsockets. (144cdf) 1042* Add a web interface to perform. (c8910c) (89edf703) (ba183e46) 1043* Don't reply to CTCP floods. (142eeb) 1044* Accept wildcards for /znc DetachChan, EnableChan, ClearBuffer and SetBuffer. (e66b24) 1045* Added reconnect and disconnect commands to admin. (65ae83) 1046* Moved from SourceForge to GitHub. (daa610) (ed17804) (86c0e97) (e6bff0c) (087f01) 1047* Don't force --foreground when compiling with --enable-debug. (778449) (fbd8d6) 1048* Add functions for managing CTCPReplies to admin. (3f0e200) 1049* Allow omitting user names with some commands in admin. (4faad67) 1050* Some fixed with ISpoofFile and SSLCertFile paths which use "~". (cd7822) (f69aeff) (ce10cee) 1051 1052## Fixes 1053* Send more than a single channel per JOIN command. (3327a97) (6a1d27) 1054* Properly unload perl modules so that their code is reread on next load. (ce45917) 1055* Make certauth remember its module list across restarts again. (451b7e32) 1056* Ignore dereferenced sockets in listsockets. (50b57b) 1057* Fix a cross-compilation problem in configure. (d9b4ba1) 1058* Bind web sessions to IP addresses. (577a097) (4556cc) 1059* Limit the number of web sessions per IP. (913a3c8) (bf6dc45) 1060* Build on cygwin again. (37b70a) 1061* Allow admins to ignore MaxBufferSize in webadmin. (b37e23) 1062* Fix some compiler warning generated by clang. (c7c12f0) 1063* Call modules for mode-changes done by not-in-channel nicks. (a53306) 1064* Fix installation with checkinstall and the permissions of some static data. (4c7808) (3d3235) 1065 1066## Minor stuff 1067* Properly report errors in admin's addserver command. (ed924cb) 1068* Improvements of modperl. (1baa019) (12b1cf6) (7237b9) (ece2c88) 1069* Check for modperl that we have at least Perl 5.10. (0bc606) 1070* Verify in configure that tcl actually works. (89bd527) 1071* Add a warning header to znc.conf that warns about editing the file. (2472ea) (8cadb6) 1072* Improve the ISpoof debug output. (128af8e) 1073* Improve HTTP client-side caching for static files. (9ef41ae) (4e5f9e8) 1074* Removed all generated/copied scripts from the repo. (fde73c60) (9574d6) (e2ce2cf) (5a6a7b) 1075* Only allow admins to use email. (81c864) 1076* Make clearbufferonmsg clear the buffer a little less often. (ddd302fbf) 1077* Make the output from /znc help smaller. (0d928c) 1078* Add a web interface to send_raw. (d8b181) (a93a586) 1079 1080## Internal stuff 1081* Some optimizations with lots of users and channels. (b359f) (5e070e) 1082* Various changes to the Makefiles. (33e1ccc) (0ad5cf) (df3409) (e17348c) (936b43) (18234a) (0cc8beb) (d21a1be) (517307b) (40632f) (afa16df) (4be0572) (452e3f) (9fec8f) (f76f1e7) (6b396f) 1083* Added a third argument to the OnPart module hook. (a0c0b7) (1d10335) (e4b48d5) 1084* Added vim modelines to some files. (dc8a39) 1085* Added an auto-generated zncconfig.h (8a1c2a4) (aeeb1eb3) (f4927709) (40a1bb) (3ecbf13) (87037f) (b6c8e1) 1086* Update to latest Csocket. (cc552f) 1087* Handle paths like "~/foo" in CFile. (cb2e50a) 1088* Add some generic interface for module commands. (ebd7e53) (8e59fb9) (31bbffa) 1089* CUser::m_sUserName was made const. (d44e590) 1090 1091# ZNC 0.096 (2010-11-06) 1092 1093## New stuff 1094* Added a new module: clearbufferonmsg. (r2107) (r2151) 1095* Added an optional server name argument to /znc jump. (r2109) 1096* Big overhaul for modperl. (r2119) (r2120) (r2122) (r2123) (r2125) (r2127) (r2133) (r2136) (r2138) (r2140) (r2142) (r2143) (r2144) (r2146) (r2147) (r2156) (r2160) 1097* Modules can now directly influence other modules' web pages. (r2128) (r2129) (r2130) (r2131) (r2132) (r2134) (r2135) 1098 1099## Fixes 1100* The route_replies module now handles "354" who replies. (r2112) 1101* Fixed a bogus "invalid password" error during login with some clients. (r2117) 1102* Reject long input lines on incoming connections. (r2124) 1103* The lastseen module should only link to webadmin if the latter is loaded. (r2126) 1104* Fixed cases where HTTP requests were incorrectly dropped. (r2148) (r2149) 1105* Fixed partyline to work with servers that don't send a 005 CHANTYPES. (r2162) 1106* Fixed error message from configure if dlopen() isn't found. (r2166) 1107 1108## Minor stuff 1109* Renamed "vhost" to "bindhost" to better describe what the option does. (r2113) 1110* Honor timezone offset in the simple_away module. (r2114) 1111* Load global modules as soon as their config line is read. (r2118) 1112* Use poll() instead of select() by default. (r2153) (r2165) 1113* Ignore the channel key "*" in the chansaver module. (r2155) 1114 1115## Internal stuff 1116* Fixed some function prototypes. (r2108) 1117* Rearranged ZNC's CAP handling to IRCds. (r2137) 1118* Added more doxygen comments. (r2139) (r2145) (r2150) (r2152) (r2154) (r2157) 1119* Removed some useless typedefs. (r2158) 1120* Clean up the lastseen module. (r2163) (r2164) 1121 1122# ZNC 0.094 (2010-08-20) 1123 1124## New stuff 1125* Add new global setting MaxBufferSize instead of hardcoding a value. (r2020) (r2025) 1126* Support CAP. (r2022) (r2024) (r2027) (r2041) (r2048) (r2070) (r2071) (r2097) (r2098) (r2099) (r2100) 1127* Add new module certauth which works similar to certfp. (r2029) 1128* route_replies now also supports routing channel ban lists, ban exemptions and invite exceptions. (r2035) 1129* Add a -nostore flag to the away module. (r2044) 1130* Add a new config option SSLCertFile. (r2086) (r2088) 1131 1132## Fixes 1133* Fix configure to automatically disable modperl if perl is not found. (r2017) 1134* Include the port number in cookie names to make them unique across different znc instances on the same box. (r2030) 1135* Make sure that we have at least c-ares 1.5.0. (r2055) 1136* Make znc work on solaris. (r2064) (r2065) (r2067) (r2068) 1137* Improve configure's and make's output. (r2079) (r2080) (r2094) (r2101) 1138* Complain about truncated config files. (r2083) 1139* Fix some std::out_of_range error triggerable by people with a valid login. (r2087) (r2093) (r2095) 1140* Make fakeonline behave while we are not connected to an IRC server. (r2091) 1141* Always attach to channels when joining them. (r2092) 1142* Fix a NULL pointer dereference in route_replies. (r2102) (r2103) 1143 1144## Minor stuff 1145* Allow leading and trailing spaces in config entries. (r2010) 1146* Various minor changes. (r2012) (r2014) (r2021) 1147* Use pkg-config for finding openssl, if it's available. We still fall back to the old code if this fails. (r2018) 1148* znc no longer accepts an alternative file name for znc.conf as its argument. (r2037) 1149* Generate correct HTTP status codes in webmods and make sure this doesn't happen again. (r2039) (r2040) 1150* Rewrite our PING/PONG handling. (r2043) 1151* Raise the size of the query buffer to 250. (r2089) 1152* Update to latest Csocket. (r2096) 1153 1154## Internal stuff 1155* Remove the fake module usage in WebMods. (r2011) 1156* Remove fake modules completely. (r2012) (r2015) 1157* Make CTable more robust. (r2031) 1158* Move the OnKick() module call so it is issued when the nick still is visible in the channel. (r2038) 1159* Remove CZNC::GetUser() since CZNC::FindUser() does the same. (r2046) 1160* Minor changes to webmod skins. (r2061) (r2062) 1161* Add new macros GLOBALMODULECALL and ALLMODULECALL. (r2074) (r2075) (r2076) 1162* Remove a bogus CClient* argument from some module calls. (r2077) 1163* Mark some functions as const. (r2081) (r2082) (r2084) (r2085) 1164 1165# ZNC 0.092 (2010-07-03) 1166 1167This is a bugfix-only release, mainly for fixing CVE-2010-2488. 1168 1169## Fixes 1170* ZNC wrongly counted outgoing connections towards the AnonIPLimit config option. (r2050) 1171* The traffic stats caused a NULL pointer dereference if there were any unauthenticated connections. CVE-2010-2488 (r2051) 1172* Csocket had a bug where a wrong error message was generated and one that caused busy loops with c-ares. (r2053) 1173 1174# ZNC 0.090 (2010-06-06) 1175 1176## Upgrading from previous versions 1177 1178## Errors during start-up 1179The shell, email and imapauth modules have been moved from the regular module set to the "extra" set, you have to use --enable-extra with ./configure to compile them. 1180 1181So, to fix these errors, edit the znc.conf file in ~/.znc/configs and don't load those modules, or recompile znc with extra. 1182 1183### WebMods 1184While previously only the "webadmin" provided an HTTP server/interface, the HTTP server is now integrated into ZNC's core. This means that all modules (not only webadmin) can now provide web pages. Examples shipping with ZNC are lastseen, stickychan and notes. Old-style module arguments to webadmin will be automatically converted to the new syntax. 1185 1186Please note that the WebMods interface uses session cookies instead of 'Basic' HTTP authentication. 1187 1188All URLs to webadmin's settings pages have changed. Please adjust your scripts etc. if necessary. 1189 1190### Running without installing 1191If you want to run ZNC without doing make install, i.e. if you want to run it from the source dir, you will have to add --enable-run-from-source as an argument to ./configure. You do not have to care about this if you use a --prefix= or if you install ZNC system-wide. 1192 1193### I upgraded and WebAdmin/WebMods is acting weird, Log Out does not work. 1194Starting with 0.090, ZNC uses cookies instead of HTTP Basic authentication. If your browser is still sending the Basic credentials to ZNC, e.g. because you have saved them in a bookmark, or password manager, or simply haven't restarted your browser in a while, those will continue to work, even after you click the Log Out button. 1195 1196To fix this, remove any user:pass@host portions from your bookmarks, remove all entries for ZNC's web interface from your password manager, and restart your browser. 1197 1198## New stuff 1199* Webmods - Every module can now provide its own webpages. (r1784) (r1785) (r1787) (r1788) (r1789) (r1790) (r1791) (r1792) (r1793) (r1795) (r1796) (r1797) (r1800) (r1801) (r1802) (r1804) (r1805) (r1806) (r1824) (r1825) (r1826) (r1827) (r1843) (r1844) (r1868) (r1886) (r1888) (r1915) (r1916) (r1931) (r1934) (r1870) (r1871) (r1872) (r1873) (r1874) (r1875) (r1876) (r1879) (r1887) (r1891) (r1967) (r1982) (r1984) (r1996) (r1997) (r2000) (r2002) (r2003) 1200* Webmods and thus webadmin now use cookies for managing sessions instead of HTTP authentication. (r1799) (r1819) (r1823) (r1839) (r1840) (r1857) (r1858) (r1859) (r1861) (r1862) 1201* WebMod-enabled lastseen, stickychan modules. (r1880) (r1881) (r1889) (r1918) 1202* Partyline now also handles notices, /me and CTCP. (r1758) 1203* Partyline now saves channel topics across restarts. (r1898) (r1901) 1204* Added a "number of channels" column to /znc listusers. (r1769) 1205* Added an optional user name argument to /znc listchans. (r1770) 1206* Support for the general CAP protocol and the multi-prefix and userhost-in-names caps on connections to the IRC server. (r1812) 1207* ZNC can now listen on IPv4-only, IPv6-only or on both-IP sockets. Renamed "Listen" config option to "Listener". (r1816) (r1817) (r1977) 1208* Added LoadModule, UnLoadModule, ListMods commands to the Admin module. (r1845) (r1864) 1209* Added ability to set/get TimezoneOffset to the Admin module. (r1906) 1210* Added "Connect to IRC + automatically re-connect" checkbox to webadmin. (r1851) 1211* Remember "automatically connect + reconnect" flag across restarts by writing it to the config file. (r1852) 1212* Added AddPort, DelPort, ListPorts command to *status. (r1899) (r1913) 1213* Added optional quit message argument to disconnect command. (r1926) 1214* Added new charset module to extra. (r1942) (r1947) (r1977) (r1985) (r1994) 1215* Added a traffic info page to webadmin. (r1958) (r1959) 1216 1217## Fixes 1218* Don't let ZNC connect to itself. (r1760) 1219* Added a missing error message to /znc updatemod. (r1772) 1220* Generate cryptographically stronger certificates in --makepem. (r1774) 1221* Autoattach now triggers on channel actions. (r1778) 1222* --disable-tcl now really disables TCL instead of enabling it. (r1782) 1223* User name comparison in blockuser is now case-sensitive. (r1786) 1224* Fixed /names when route_replies is loaded. (r1811) 1225* autoreply now ignores messages from self. (r1828) 1226* Don't forward our own QUIT messages to clients. (r1860) 1227* Do not create empty directories if one does ./znc --datadir=NON_EXISTING_DIR. (r1878) 1228* Query to Raw send the command to IRC instead of to the client. (r1892) 1229* Fixed desync in Partyline after addfixchan or delfixchan. (r1904) 1230* Save passwords for Nickserv module as NV instead of keeping them as arguments. (r1914) 1231* CSRF Protection. (r1932) (r1933) (r1935) (r1936) (r1938) (r1940) (r1944) 1232* Fixed a rare configure failure with modperl. (r1946) 1233* disconkick now only sends kicks for channels the client actually joined. (r1952) 1234* More sanity checks while rewriting znc.conf. (r1962) 1235* Fixed static compilation with libcrypto which needs libdl by checking for libdl earlier. (r1969) 1236* Fixed modtcl with newer tcl versions. (r1970) 1237* Better error message if pkg-config is not found. (r1983) 1238* Fixed a possible race condition in autoop which could cause bogous "invalid password" messages. (r1998) 1239 1240## Minor stuff 1241* Fixed a memory leak and some coding style thanks to cppcheck. (r1761) (r1762) (r1763) (r1764) (r1776) (r1777) 1242* Updated to latest Csocket. (r1766) (r1767) (r1814) (r1905) (r1930) 1243* Cleanup to /znc help. (r1771) 1244* Removed --disable-modules. Modules are now always enabled. (r1794) (r1829) 1245* saslauth: Error out "better" on invalid module arguments. (r1809) 1246* Changed the default ConnectDelay from 30s to 5s. (r1822) 1247* Misc style/skin fixes to webadmin/webmods. (r1853) (r1854) (r1856) (r1883) (r1884) (r1885) (r1890) (r1900) (r1907) (r1908) (r1909) (r1911) (r1912) (r1917) (r1945) (r2005) 1248* Do not expose ZNC's version number through the web interface unless there's an active user session. (r1877) 1249* Updated AUTHORS file. (r1902) (r1910) (r1999) 1250* Moved some modules into/out of extra. (r1919) (r1922) (r1923) 1251* Added ./configure --enable-run-from-script, without it ZNC will no longer look for modules in ./modules/. (r1927) (r1928) (r2001) 1252* Made a dedicated page to confirm user deletion in webadmin. (r1937) (r1939) (r1941) (r1943) 1253* Use spaces for separating ip addresses from ports. (r1955) 1254* ZNC's built-in MOTD now goes through ExpandString. (r1956) 1255* Check for root before generating a new config file. (r1988) 1256* Added a flag for adding irc-only / http-only ports via /znc addport. (r1990) (r1992) 1257 1258## Internal stuff 1259* Minor cleanup to various places. (r1757) (r1759) (r1846) (r1847) (r1863) (r1865) (r1920) (r1921) (r2004) 1260* Changes in configure. (r1893) (r1894) (r1895) (r1896) (r1897) 1261* Flakes messed with the version number. (r1768) 1262* CString::Split() now Trim()s values before pushing them if bTrimWhiteSpace is true. (r1798) 1263* Added new module hooks for config entries. (r1803) (r1848) (r1849) (r1850) 1264* New module hook OnAddUser(). (r1820) (r1821) 1265* Cleanup to ISUPPORT parser. (r1807) 1266* Use Split() instead of Token() where possible. (r1808) 1267* Modularize CIRCSock::ForwardRaw353(). (r1810) 1268* Use a better seed for srand(). (r1813) 1269* Changes to debug output. (r1815) (r1836) (r1837) (r1855) (r1882) 1270* Support for delayed HTTP request processing. (r1830) (r1833) (r1834) (r1835) (r1838) (r1841) (r1842) 1271* Fixed CSmartPtr's operator==. (r1818) 1272* Better port/listener management exposed through CZNC. (r1866) (r1867) 1273* Move CListener and CRealListener into their own files. (r1924) 1274* Move the HTTP/IRC switching to CIncomingConnection. (r1925) 1275* Add IsIRCAway() to CUser. (r1903) 1276* Move some common pid file code into new InitPidFile(). (r1929) 1277* Templates can now sort loops based on a key. (r1948) (r1949) (r1951) (r1953) (r1954) 1278* A lot of work went into this release, we would like to thank everyone who contributed code, helped testing or provided feedback. 1279 1280# ZNC 0.080 (2010-02-18) 1281 1282## New stuff 1283* Update to latest Csocket. (r1682) (r1727) (r1735) (r1751) (r1752) (r1753) 1284* Only allow admins to load modtcl unless -DMOD_MODTCL_ALLOW_EVERYONE is used. (r1684) 1285* Include /me's in the query buffer. (r1687) 1286* Some tweaks to savebuff to differentiate it more from buffextras. (r1691) (r1692) 1287* send_raw can now also send to clients. (r1697) 1288* Move the "Another client authenticated as you"-message into new module clientnotify. (r1698) 1289* Imported block_motd module into extra. (r1700) 1290* Imported flooddetach into extra. (r1701) (r1717) 1291* Added new setting ServerThrottle which sets a timeout between connections to the same server. (r1702) (r1705) 1292* Only ask for the more common modules in --makeconf. (r1706) 1293* Use UTF-8 as default charset for webadmin. (r1716) 1294* Revamped default webadmin skin. It's very grayish, but looks way more like 2010 than the old default skin does. (r1720) 1295* New font style for the "ice" webadmin skin. (r1721) 1296* Added a summary line to /znc listchans. (r1729) 1297* The admin module can now handle more settings and got some missing permission checks added. (r1743) (r1744) (r1745) (r1746) (r1747) 1298 1299## Fixes 1300* Apply new ConnectDelay settings immediately after a rehash. (r1679) 1301* Do a clean shutdown just before a restart. (r1681) 1302* Fix a theoretical crash in modtcl. (r1685) 1303* Users should use the correct save and download path after Clone(). (r1686) 1304* Several improvements to znc-buildmod. (r1688) (r1689) (r1690) (r1695) 1305* Fix a crash with modperl by loading modules differently. (r1714) 1306* Fix HTTP Cache-Control headers for static files served by webadmin. (r1719) 1307* Send the nicklist to a user who is being force-rejoined in partyline. (r1731) 1308* Set the issuer name in CUtils::GenerateCert(). (r1732) 1309* Fixed some inconsistency with /znc reloadmod. (r1749) 1310* Added a work-around for SSL connections which incorrectly errored out during handshake. (r1750) 1311 1312## Minor stuff 1313* Don't try to catch SIGILL, SIGBUS or SIGSEGV, the default action will do fine. (r1680) 1314* Added IP-address to messages from notify_connect. (r1699) 1315* Switched to Csocket's own c-ares code. (r1704) (r1707) (r1708) (r1709) (r1710) (r1712) (r1713) 1316* Add more doxygen comments. (r1715) (r1718) (r1737) 1317* Removed useless "add your current ip" checkbox from webadmin's edit user page. (r1722) 1318* Don't try to request a MOTD if there is none. (r1728) 1319 1320## Internal stuff 1321* It's 2010, where's my hoverboard? (r1693) 1322* Got rid of Timers.h. (r1696) 1323* Added a Clone() method to CNick. (r1711) 1324* Call OnChanAction() after OnChanCTCP(). (r1730) 1325* Random cleanups to CFile::Delete(). (r1694) 1326* Other random cleanups. (r1723) (r1724) (r1725) (r1726) (r1736) 1327* Move the implementation of CSocket to Socket.cpp/h. (r1733) 1328 1329# ZNC 0.078 (2009-12-18) 1330 1331## New stuff 1332* Add a DCCVHost config option which specifies the VHost (IP only!) for DCC bouncing. (r1647) 1333* Users cloned via the admin module no longer automatically connect to IRC. (r1653) 1334* Inform new clients about their /away status. (r1655) 1335* The "BUG" messages from route_replies can now be turned off via /msg *route_replies silent yes. (r1660) 1336* Rewrite znc.conf on SIGUSR1. (r1666) 1337* ISpoofFormat now supports ExpandString. (r1670) 1338 1339## Fixes 1340* Allow specifing port and password for delserver. (r1640) 1341* Write the config file on restart and shutdown. (r1641) 1342* Disable c-ares if it is not found unless --enable-c-ares was used. (r1644) (r1645) 1343* blockuser was missing an admin check. (r1648) 1344* Sometimes, removing a server caused znc to lose track of which server it is connected to. (r1659) 1345* Include a more portable header for uint32_t in SHA256.h. (r1665) 1346* Fixed cases where ZNC didn't properly block PONG replies to its own PINGs. (r1668) 1347* Fixed a possible crash if a client disconnected before an auth module was able to verify the login. (r1669) 1348* Away allowed to accidentally execute IRC commands. (r1672) 1349* Correctly bind to named hosts if c-ares is enabled. (r1673) 1350* Don't accept only spaces as QuitMsg because this would cause an invalid config to be written out. (r1675) 1351 1352## Minor stuff 1353* Comment out some weird code in Client.cpp. (r1646) 1354* Remove connect_throttle since it's obsoleted by fail2ban. (r1649) 1355* Remove outdated sample znc.conf. (r1654) 1356* route_replies now got a higher timeout before it generates a "BUG" message. (r1657) 1357* Documented the signals on which znc reacts better. (r1667) 1358 1359## Internal stuff 1360* New module hook OnIRCConnecting(). (r1638) 1361* Remove obsolete CUtils::GetHashPass(). (r1642) 1362* A module's GetDescription() now returns a C-String. (r1661) (r1662) 1363* When opening a module, check the version number first and don't do anything on a mismatch. (r1663) 1364 1365# ZNC 0.076 (2009-09-24) 1366 1367## New stuff 1368* Add a make uninstall Makefile target. (r1580) 1369* Imported modules from znc-extra: fixfreenode, buffextras, autoreply, route_replies, adminlog. (r1591) (r1592) (r1593) (r1594) (r1595) 1370* Imported the rest of znc-extra under modules/extra hidden behind configure's --enable-extra. (r1605) (r1606) (r1608) (r1609) (r1610) 1371* ZNC now uses SHA-256 instead of MD5 for hashing passwords. MD5 hashes still work correctly. (r1618) 1372 1373## Fixes 1374* Don't cache duplicate raw 005 (e.g. due to /version). (r1579) 1375* Send a MODE removing all user modes to clients when we lose the irc connection. (r1583) 1376* Use a nickmask instead of a nick as the source for ZNC-generated MODE commands. (r1584) 1377* Use the right error codes if startup fails. (r1585) 1378* Fix a NULL pointer dereference in some of the ares-specific code. (r1586) 1379* VHost and Motd input boxes in graphiX and dark-clouds in webadmin didn't insert newlines. (r1588) 1380* Generate proper error messages when loading modules. This was broken since znc 0.070. (r1596) 1381* Allow unloading of removed modules. This was broken since znc 0.070. (r1597) 1382* Fix savebuff with KeepBuffer = false. (r1616) 1383* Fix accidental low buffer size for webadmin sockets. (r1617) 1384* AltNicks are no longer truncated to 9 characters. (r1620) 1385* Webadmin can now successfully add new admin users and have them load the shell module. (r1625) 1386* Webadmin no longer includes the znc version in the auth realm. (r1627) 1387* CUser::Clone now handles modules after all other settings, making it work with shell. (r1628) 1388* Some CSS selectors in webadmin's dark-clouds and graphiX skins were wrong. (r1631) 1389* The help of admin was improved. (r1632) (r1633) 1390 1391## Minor stuff 1392* make distclean now also removes the pkg-config files. (r1581) 1393* Add the autoconf check for large file support. (r1587) 1394* Generic "not enough arguments" support for route_replies and some fix for /lusers. (r1598) (r1600) 1395* ZNC now tries to join channels in random order. (r1601) (r1602) (r1603) 1396* route_replies now handles "No such channel" for /names. (r1614) 1397* Fixes a theoretical crash on shutdown. (r1624) 1398* saslauth was moved to znc-extra. (r1626) 1399 1400## Internal stuff 1401* Now using autoconf 2.64. (r1604) 1402* Removed unused classes CNoCopy and CSafePtr. (r1607) 1403* Moved CZNC::FindModPath() to CModules. (r1611) 1404* Added CModules::GetModDirs() as a central place for finding module dirs. (r1612) (r1629) 1405* Added CModules::GetModPathInfo() which works like GetModInfo() but which takes the full path to the module. (r1613) 1406* Updated to latest Csocket which adds openssl 1.0 compatibility and fixes some minor bug. (r1615) (r1621) 1407* Merged the internal join and ping timers. (r1622) (r1623) 1408 1409# ZNC 0.074 (2009-07-23) 1410 1411## Fixes 1412* Fix a regression due to (r1569): Webadmin was broken if the skins were accessed through an absolute path (=almost always). (r1574) 1413* Fix a possible crash if users are deleted while they have active DCC sockets. (r1575) 1414 1415Sorry for breaking your webadmin experience guys. :( 1416 1417# ZNC 0.072 (2009-07-21) 1418 1419All webadmin skins are broken in this release due to a bug in webadmin itself. This is fixed in the next release. 1420 1421High-impact security bugs 1422There was a path traversal bug in ZNC which allowed attackers write access to any place to which ZNC has write access. The attacker only needed a user account (with BounceDCCs enabled). Details are in the commit message. (r1570) 1423 1424This is CVE-2009-2658. 1425 1426Affected versions 1427All ZNC versions since ZNC 0.022 (Initial import in SVN) are affected. 1428 1429## New stuff 1430* /msg *status uptime is now accessible to everyone. (r1526) 1431* ZNC can now optionally use c-ares for asynchronous DNS resolving. (r1548) (r1549) (r1550) (r1551) (r1552) (r1553) (r1556) (r1565) (r1566) 1432* The new config option AnonIPLimit limits the number of unidentified connections per IP. (r1561) (r1563) (r1567) 1433 1434## Fixes 1435* znc --no-color --makeconf still used some color codes. (r1519) 1436* Webadmin favicons were broken since (r1481). (r1524) 1437* znc.pc was installed to the wrong directory in multilib systems. (r1530) 1438* Handle flags like e.g. --allow-root for /msg *status restart. (r1531) (r1533) 1439* Fix channel user mode tracking. (r1574) 1440* Fix a possible crash if users are deleted while they are connecting to IRC. (r1557) 1441* Limit HTTP POST data to 1 MiB. (r1559) 1442* OnStatusCommand() wasn't called for commands executed via /znc. (r1562) 1443* On systems where sizeof(off_t) is 4, all ZNC-originated DCCs failed with "File too large (>4 GiB)". (r1568) 1444* ZNC didn't properly verify paths when checking for directory traversal attacks (Low impact). (r1569) 1445 1446## Minor stuff 1447* Minor speed optimizations. (r1527) (r1532) 1448* stickychan now accepts a channel list as module arguments. (r1534) 1449* Added a clear command to nickserv. (r1554) 1450* Added an execute command to perform. (r1558) 1451* Added a swap command to perform. (r1560) 1452* fail2ban clears all bans on rehash. (r1564) 1453 1454## Internal stuff 1455* The API for traffic stats changed. (r1521) (r1523) 1456* Some optimizations to CSmartPtr. (r1522) 1457* CString now accepts an optional precision for converting floating point numbers. (r1525) 1458* Made home dir optional in CDir::ChangeDir(). (r1536) 1459* Stuff. (r1537) (r1550) 1460* EMFILE in CSockets is handled by closing the socket. (r1544) 1461* Special thanks to cnu and flakes! 1462 1463# ZNC 0.070 (2009-05-23) 1464 1465## New stuff 1466* Add a CloneUser command to admin. (r1477) 1467* Make webadmin work better with browser caches in conjunction with changing skins. (r1481) (r1482) 1468* Better error messages if binding a listening port fails. (r1483) 1469* admin module now supports per-channel settings. (r1484) 1470* Fix the KICK that partyline generates when a user is deleted. (r1486) 1471* fail2ban now allows a couple of login attempts before an IP is banned. (r1489) 1472* Fixed a crash bug in stickychan. (r1500) 1473* Install a pkg-config .pc file. (r1503) 1474* Auto-detect globalness in re/un/loadmod commands. (r1505) 1475 1476## Fixes 1477* Fix a bug where ZNC lost its lock on the config file. (r1457) 1478* Limit DCC transfers to files smaller than 4 GiB. (r1461) 1479* Make znc -D actually work. (r1466) 1480* Make znc --datadir ./meh --makeconf work. The restart used to fail. (r1468) 1481* Fix a crash bug if CNick::GetPermStr() was called on CNick objects from module calls. (r1491) 1482* Some fixes for solaris. (r1496) (r1497) (r1498) 1483* nickserv module now also works on OFTC. (r1502) 1484* Make sure the "Invalid password" message is sent before a client socket is closed. (r1506) 1485* Fix a bug where ZNC would reply with stale cached MODEs for a "MODE #chan" request. (r1507) 1486 1487## Minor stuff 1488* Man page updates. (r1467) 1489* Make CFile::Close() check close()'s return values if --debug is used. (r1476) 1490* Update to latest Csocket. (r1490) 1491* Improve the error messages generated by /msg *status loadmod. (r1493) 1492* Remove broken znc --encrypt-pem. (r1495) 1493 1494## Internal stuff 1495* cout and endl are included in Utils.h, not main.h. (r1449) 1496* CFile::Get*Time() now return a time_t. (r1453) (r1479) 1497* Switched some more CFile members to more appropriate return types. (r1454) (r1471) 1498* CFile::Seek() now takes an off_t as its argument. (r1458) 1499* Turn TCacheMap into more of a map. (r1487) (r1488) 1500* Updates to latest Csocket. (r1509) 1501* API breakage: CAuthBase now wants a Csock* instead of just the remote ip. (r1511) (r1512) 1502* New Module hooks (r1494) 1503 * OnChanBufferStarting() 1504 * OnChanBufferPlayLine() 1505 * OnChanBufferEnding() 1506 * OnPrivBufferPlayLine() 1507 1508# ZNC 0.068 (2009-03-29) 1509 1510## New stuff 1511* watch now uses ExpandString on the patterns. (r1402) 1512* A user is now always notified for failed logins to his account. This now also works with auth modules like imapauth. (r1415) (r1416) 1513* Added /msg *status UpdateModule <mod> which reloads an user module on all users. (r1418) (r1419) 1514* A module whose version doesn't match the current ZNC version is now marked as such in ListAvailModules and friends. (r1420) 1515* Added a Set password command to admin. (r1423) (r1424) 1516* ZNC no longer uses znc.conf-backup. (r1432) 1517* Two new command line options were added to ZNC: 1518* ZNC --foreground and znc -f stop ZNC from forking into the background. (r1441) 1519* ZNC --debug and znc -D produce output as if ZNC was compiled with --enable-debug. (r1442) (r1443) 1520 1521## Fixes 1522* cd in shell works again. (r1401) 1523* Make WALLOPS properly honour KeepBuffer. Before this, they were always added to the replay buffer. (r1405) 1524* ZNC now handles raw 432 Illegal Nickname when trying to login to IRC and sends its AltNick. (r1425) 1525* Fix a crash with recursion in module calls. (r1438) 1526* Fixed some compiler warnings with -Wmissing-declarations. (r1439) 1527 1528## Minor stuff 1529* Allow a leading colon on client's PASS commands. (r1403) 1530* CFile::IsDir() failed on "/". (r1404) 1531* CZNC::AddUser() now always returns a useful error description. (r1406) 1532* Some micro-optimizations. (r1408) (r1409) 1533* The new default for JoinTries is 10. This should help some excess flood problems. (r1411) 1534* All webadmin skins must now reside inside the webadmin skins dir or they are rejected. (r1412) 1535* Watch now saves its module settings as soon as possible, to prevent data loss on unclean shutdown. (r1413) (r1414) 1536* Regenerated configure with autoconf 2.63. (r1426) 1537* Some dead code elimination. (r1435) 1538* Clean up znc -n output a little. (r1437) 1539 1540## Internal stuff 1541* CString::Base64Decode() now strips newlines. (r1410) 1542* Remove CModInfo::IsSystem() since it was almost unused and quite useless. (r1417) 1543* Some minor changes to CSmartPtr. (r1421) (r1422) 1544* Added CFile::Sync(), a fsync() wrapper. (r1431) 1545 1546# ZNC 0.066 (2009-02-24) 1547 1548There was a privilege escalation bug in webadmin which could allow all ZNC users to write to znc.conf. They could gain shell access through this. (r1395) (r1396) 1549 1550This is CVE-2009-0759. 1551 1552## Affected versions 1553This bug affects all versions of ZNC which include the webadmin module. Let's just say this affects every ZNC version, ok? ;) 1554 1555## Who can use this bug? 1556First, ZNC must have the webadmin module loaded and accessible to the outside. Now any user who already has a valid login can exploit this bug. 1557 1558An admin must help (unknowingly) to trigger this bug by reloading the config. 1559 1560## Impact 1561Through this bug users can write arbitrary strings to the znc.conf file. 1562 1563Unprivileged ZNC users can make themselves admin and load the shell module to gain shell access. 1564Unprivileged ZNC users can temporarily overwrite any file ZNC has write access to via ISpoof. This can be used to overwrite ~/.ssh/authorized_keys and gain shell access. 1565Unprivileged ZNC users can permanently truncate any file to which ZNC has write access via ISpoof. ZNC never saves more than 1kB for restoring the ISpoofFile. 1566 1567## How can I protect myself? 1568Upgrade to ZNC 0.066 or newer or unload webadmin. 1569 1570## What happens? 1571Webadmin doesn't properly validate user input. If you send a manipulated POST request to webadmin's edit user page which includes newlines in e.g. the QuitMessage field, this field will be written unmodified to the config. This way you can add new lines to znc.conf. The new lines will not be parsed until the next rehash or restart. 1572 1573This can be done with nearly all input fields in webadmin. Because every user can modify himself via webadmin, every user can exploit this bug. 1574 1575## Thanks 1576Thanks to cnu for finding and reporting this bug. 1577 1578## New stuff 1579* Added the admin module. (r1379) (r1386) 1580* savebuff and away no longer ask for a password on startup. (r1388) 1581* Added the fail2ban module. (r1390) 1582 1583## Fixes 1584* savebuff now also works with KeepBuffer turned off. (r1384) 1585* webadmin did not properly escape module description which could allow XSS attacks. (r1391) 1586* Fix some "use of uninitialized variable" warnings. (r1392) 1587* Check the return value of strftime(). This allowed reading stack memory. (r1394) 1588 1589## Minor stuff 1590* Some dead code elimination. (r1381) 1591* Don't have two places where the version number is defined. (r1382) 1592 1593## Internal stuff 1594* Removed some useless and unused CFile members. (r1383) 1595* Removed the DEBUG_ONLY define. (r1385) 1596* OnFailedLogin() is now called for all failed logins, not only failed IRC ones. This changes CAuthBase API. (r1389) 1597 1598# ZNC 0.064 (2009-02-16) 1599 1600## New stuff 1601* schat now prints a message if a client connects and there are still some active schats. (r1282) 1602* awaynick: Set awaynick on connect, not after some time. (r1291) 1603* Allow adding new servers through /msg *status addserver even if a server with the same name but e.g. a different port is already added. (r1295) (r1296) 1604* Show the current server in /msg *status listservers with a star. (r1308) 1605* /msg *status listmods now displays the module's arguments instead of its description. Use listavailmods for the description. (r1310) 1606* ZNC now updates the channel buffers for detached channels and thus gives a buffer replay when you reattach. (r1325) 1607* watch now adds timestamps to messages it adds to the playback buffers. (r1333) 1608* ZNC should now work on cygwin out of the box (use --disable-ipv6). (r1351) 1609* Webadmin will handle all HTTP requests on the irc ports. (r1368) (r1375) 1610 1611## Fixes 1612* Handle read errors in CFile::Copy() instead of going into an endless loop. (r1280) (r1287) 1613* Make schat work properly again and clean it up a little. (r1281) (r1303) 1614* Removed all calls to getcwd(). We now no longer depend on PATH_MAX. (r1286) 1615* stickychan: Don't try to join channels if we are not connected to IRC. (r1298) 1616* watch now saved its settings. (r1304) 1617* Don't forward PONG replies that we requested to the user. (r1309) 1618* awaynick evaluated the awaynick multiple times and thus didn't set the nick back. (r1313) 1619* znc-config --version said '@VERSION@' instead of the actual version number. (r1319) 1620* Handle JOIN redirects due to +L. (r1327) 1621* Remove the length restrictions on webadmin's password fields which led to silent password truncation. (r1330) 1622* Webadmin now reloads global modules if you change their arguments. (r1331) 1623* The main binary is no longer built with position independent code. (r1338) 1624* ZNC failed to bounce DCCs if its own ip started with a value above 127. (r1340) 1625* Savebuff no longer reloads old channel buffers if you did /msg *status clearbuffer. (r1345) 1626* Some work has been done to make ZNC work with mingw (It doesn't work out of the box yet). (r1339) (r1341) (r1342) (r1343) (r1344) (r1354) (r1355) (r1356) (r1358) (r1359) 1627* modperl used huge amounts of memory after some time. This is now fixed. (r1357) 1628* shell now generates error messages if e.g. fork() fails. (r1369) 1629* If the allowed buffer size is lowered, the buffer is now automatically shrunk. (r1371) 1630* webadmin now refuses to transfer files bigger than 16 MiB, because it would block ZNC. (r1374) 1631 1632## Minor stuff 1633* Only reply to /mode requests if we actually know the answer. (r1290) 1634* Lowered some timeouts. (r1297) 1635* Memory usage optimizations. (r1300) (r1301) (r1302) 1636* Allow custom compiler flags in znc-buildmod via the $CXXFLAGS and $LIBS environment flags. (r1312) 1637* Show the client's IP in debug output if no username is available yet. (r1315) 1638* Allow /msg *status setbuffer for channels we are currently not on. (r1323) 1639* Updated the README. (r1326) 1640* Use @includedir@ instead of @prefix@/include in the Makefile. (r1328) 1641* Use RTLD_NOW for loading modules instead of RTLD_LAZY which could take down the bouncer. (r1332) 1642* Use stat() instead of lstat() if the later one isn't available. (r1339) 1643* CExecSock now generates an error message if execvp() fails. (r1362) 1644* Improved some error messages. (r1367) 1645 1646## Internal stuff 1647* Add traffic tracking support to CSocket. Every module that uses CSocket now automatically gets the traffic it causes tracked. (r1283) 1648* Add VERSION_MINOR and VERSION_MAJOR defines. (r1284) (r1285) 1649* Rework CZNC::Get*Path() a little. (r1289) (r1292) (r1299) 1650* Remove the IPv6 stuff from CServer. It wasn't used at all. (r1294) 1651* Make email use CSocket instead of Csock. (r1305) 1652* Cleaned up and improved CFile::ReadLine() and CChan::AddNicks() a little. (r1306) (r1307) 1653* Replaced most calls to strtoul() and atoi() with calls to the appropriate CString members. (r1320) 1654* Moved the SetArgs() call before the OnLoad() call so that modules can overwrite there arguments in OnLoad(). (r1329) 1655* Let CZNC::AddUser() check if the user name is still free. (r1346) 1656* API stuff 1657 * Added CModule::IsGlobal(). (r1283) 1658 * Added CModule::BeginTimers(), EndTimers(), BeginSockets() and EndSockets(). (r1293) 1659 * Added CModule::ClearNV(). (r1304) 1660 * Removed ReadFile(), WriteFile(), ReadLine() (Use CFile instead), Lower(), Upper() (Use CString::AsUpper(), ::ToUpper(), ::*Lower() instead) and added CFile::ReadFile() (r1311) 1661 * Added CModules::OnUnknownUserRaw(). (r1314) 1662 * Added CUtils::SaltedHash() for computing the salted MD5 hashes ZNC uses. (r1324) 1663 * Removed CLockFile and made CFile take over its job. (r1337) (r1352) (r1353) 1664 * Change the return type to CUtils::GetPass() to CString. (r1343) 1665 * Added a DEBUG(f) define that expands to DEBUG_ONLY(cout << f << endl). (r1348) (r1349) 1666 * Removed some unused functions and definitions. (r1360) (r1361) 1667 1668# ZNC 0.062 (2008-12-06) 1669 1670## New stuff 1671* Add --disable-optimization to configure. (r1206) 1672* New webadmin skin dark-clouds by bigpresh. (r1210) 1673* Added the q module as a replacement for QAuth. (r1217) (r1218) 1674* Added an enhanced /znc command: (r1228) 1675* /znc jump is equal to /msg *status jump 1676* /znc *shell pwd is equal to /msg *shell pwd 1677* Webadmin should generate less traffic, because it now uses client-side caching for static data (images, style sheets, ...). (r1248) 1678* Changes to the vhost interface from *status: (r1256) 1679* New commands: AddVHost, RemVHost and ListVHosts. 1680* SetVHost now only accepts vhosts from the ListVHosts list, if it is non-empty. 1681* ZNC now should compile and work fine on Mac OS. (r1258) 1682* IPv6 is now enabled by default unless you disable it with --disable-ipv6. (r1270) 1683 1684## Fixes 1685* Make keepnick usable. (r1203) (r1209) 1686* Don't display 'Your message to .. got lost' for our own nick. (r1211) 1687* Fix compile error with GCC 4.3.1 if ssl is disabled. Thanks to sebastinas. (r1212) 1688* Limit the maximum buffer space each socket may use to prevent DoS attacks. (r1233) 1689* Properly clean the cached perms when you are kicked from a channel. (r1236) 1690* Due to changes in rev 1155-1158, modperl crashed on load on some machines. (r1237) (r1239) 1691* Stickychan didn't work with disabled channels. (r1238) 1692* Catch a throw UNLOAD in the OnBoot module hook. (r1249) 1693* Webadmin now accepts symlinks in the skin dir. (r1252) 1694* Fix for partyline if a force-joined user is deleted. (r1263) (r1264) 1695* Revert change from (r1125) so that we compile on fbsd 4 again. (r1273) 1696 1697## Minor stuff 1698* Recompile everything if configure is run again. (r1205) 1699* Improved the readability of ListMods und ListAvailMods. (r1216) 1700* Accept "y" and "n" as answers to yes/no questions in --makeconf. (r1244) 1701* --makeconf now also generates a ssl certificate if a ssl listening port is configured. (r1246) 1702* Improved and cleaned up the simple_away module. (r1247) 1703* The nickserv module automatically saves the password and never displays it anymore. (r1250) 1704* Use relative instead of absolute URLs in all webadmin skins. (r1253) (r1254) 1705* Add znc-config --cxx and use it in znc-buildmod. (r1255) 1706* Support out-of-tree-builds. (r1257) 1707* Make schat's showsocks command admin-only. (r1260) 1708* Fix compilation with GCC 4.4. (r1269) 1709* Use AC_PATH_PROG instead of which to find the perl binary. (r1274) 1710* New AUTHORS file format. (r1275) 1711 1712## Internal stuff 1713* Removed redundant checks for NULL pointers (r1220) (r1227) 1714* Renamed String.h and String.cpp to ZNCString. (r1202) 1715* Print a warning in CTable if an unknown column is SetCell()'d (r1223) 1716* Update to latest Csocket (r1225) 1717* Remove CSocket::m_sLabel and its accessor functions. Use the socket name Csocket provides instead. (r1229) 1718* modules Makefile: Small cleanup, one defines less and no compiler flags passed multiple times. (r1235) 1719* Webadmin now uses CSocket instead of using Csock and keeping a list of sockets itself. (r1240) 1720* Mark some global and static variables as const. (r1241) 1721* Cleanup perform, no feature changes. (r1242) 1722* Some tweaking to configure.in. Among other things, we now honour CPPFLAGS and don't check for a C compiler anymore. (r1251) 1723* On rare occasions webadmin generated weird error messages. (r1259) 1724* OnStatusCommand now doesn't have the const attribute on its argument. (r1262) 1725* Some new functions: 1726 * some CString constructors (e.g. CString(true) results in "true") (r1243) (r1245) 1727 * CString::TrimPrefix() and CString::TrimSuffix() (r1224) (r1226) 1728 * CString::Equals() (r1232) (r1234) 1729 * CTable::Clear() (r1230) 1730 * CClient::PutStatus(const CTable&) (r1222) 1731 * CGlobalModule::OnClientConnect() (r1266) (r1268) 1732 * CModule::OnIRCRegistration() (r1271) 1733 * CModule::OnTimerAutoJoin() (r1272) 1734* Renames: 1735 * CModule::OnUserAttached() is now known as CModules::OnClientLogin(). (r1266) 1736 * CModule::OnUserDetached() is now known as CModules::OnClientDisconnect(). (r1266) 1737 1738# ZNC 0.060 (2008-09-13) 1739 1740* Print a message when SIGHUP is caught. (r1197) 1741* Moved autocycle into a module. (r1191) (r1192) 1742* New module call OnMode(). (r1189) 1743* Added MaxJoins and JoinTries to webadmin. (r1187) 1744* Fix channel keyword (+k) related mess up on Quakenet (RFC, anyone?). (r1186) (r1190) 1745* Added new module call OnUserTopicRequest(). (r1185) 1746* Also add traffic generated by modules to the traffic stats. (r1183) 1747* Don't use znc.com but znc.in everywhere (hostname of *status etc). (r1181) (r1195) 1748* Close the listening port if we ran out of free FDs. (r1180) 1749* Add a config option MaxJoins which limits the number of joins ZNC sends in one burst. (r1177) 1750* Bug fix where WriteToDisk() didn't made sure a fail was empty. (r1176) 1751* Add ShowMOTD and reorder the HELP output of *status. (r1175) 1752* Add /msg *status restart . Thanks to kroimon. (r1174) 1753* Make --makeconf more userfriendly. Thanks to kroimon. (r1173) 1754* Don't start a new znc process after --makeconf. Thanks to kroimon. (r1171) 1755* Add CModule::PutModule(const CTable&). (r1168) (r1169) 1756* Unify some preprocessor macros in Modules.cpp. (r1166) 1757* Catch a throw UNLOAD from CModule::OnLoad(). (r1164) 1758* A couple of bugs with OnModCTCP(), OnModCommand() and OnModNotice() where fixed. (r1162) 1759* Quicker connects and reconnects to IRC. (r1161) 1760* Speedup the CTable class. (r1160) 1761* Update our bundled Csocket. (r1159) 1762* Some fixes to modperl for hppa. 1763* Move keepnick into a module. (r1151) (r1152) (r1153) 1764* Split up some big functions and files. (r1148) (r1149) (r1150) 1765* modperl now fails to load if it can't find modperl.pm. (r1147) 1766* Handle nick prefixes and such stuff from clients correctly. (r1144) (r1145) 1767* Simplify the code connecting users a little. (r1143) 1768* Fix partyline for users who are not connected to IRC. (r1141) 1769* We are in a channel when we receive a join for it, not an 'end of /names'. (r1140) 1770* Enable some more debug flags with --enable-debug. (r1138) 1771* Don't ever throw exceptions in CModules::LoadModule(). (r1137) 1772* Don't give any stdin to commands executed from the shell module. (r1136) 1773* Fix some over-the-end iterator dereference on parting empty channels. (r1133) 1774* Replace usage of getresuid() with getuid() and geteuid(). (r1132) 1775* Use salted hashes for increased security. (r1127) (r1139) 1776* Don't mention any libraries in znc-config. (r1126) 1777* Don't define __GNU_LIBRARY__ for FreeBSD. (r1125) 1778 1779# ZNC 0.058 (2008-07-10) 1780 1781* Fix a crash with NAMESX-enabled IRC servers. (r1118) 1782* Fix a privilege escalation bug in webadmin if auth modules are used. (r1113) 1783* Remove -D_GNU_SOURCE from our CXXFLAGS. (r1110) 1784* CUtils::GetInput() now kills the process if reading from stdin fails. (r1109) 1785* Properly include limits.h for PATH_MAX. (r1108) 1786* Don't allow running ZNC as root unless --allow-root is given. (r1102) 1787* Add more possibilities for ExpandString(). (r1101) 1788* Autoattach doesn't allow you adding an entry twice now. (r1100) 1789* Print a warning if PATH_MAX is undefined. (r1099) 1790* Use ExpandString() for CTCPReply. (r1096) 1791* Add Uptime command to *status. (r1095) (r1107) 1792* Make --makeconf clearer. (r1093) 1793* Add man pages for znc, znc-buildmod and znc-config. (r1091) 1794* Perl modules are no longer installed with executable bit set. (r1090) 1795* Crypt now forwards messages to other connected clients. (r1088) 1796* Fix a theoretical crash bug in the DNS resolving code. (r1087) 1797* Modules now get their module name as ident, not 'znc'. (r1084) 1798* Handle channel CTCPs the same way private CTCPs are handled. (r1082) 1799* Webadmin: Add support for timezone offset. (r1079) 1800* Webadmin: Remove the *.de webadmin skins. (r1078) 1801* Webadmin: Don't reset all channel settings when a user page is saved. (r1074) 1802* Fix a possible crash when rehashing failed to open the config file. (r1073) 1803* The instructions at the end of makeconf showed a wrong port. (r1072) 1804* Throttle DCC transfers to the speed of the sending side. (r1069) 1805* De-bashify znc-buildmod. (r1068) 1806* Time out unauthed clients after 60 secs. (r1067) 1807* Don't fail with conspire as IRC client. (r1066) 1808* Replace CString::Token() with a much faster version. (r1065) 1809* DenyLoadMod users no longer can use ListAvailMods. (r1063) 1810* Add a VERSION_EXTRA define which can be influenced via CXXFLAGS and which is appended to ZNC's version number. (r1062) 1811 1812# ZNC 0.056 (2008-05-24) 1813 1814* Rehashing also handles channel settings. (r1058) 1815* Make znc-buildmod work with prefixes. (r1054) 1816* Greatly speed up CUser::GetIRCSock(). Thanks to w00t. (r1053) 1817* Don't link the ZNC binary against libsasl2. (r1050) 1818* Make CString::RandomString() produce a more random string (this is used for autoop and increases its security). (r1047) 1819* Remove OnRehashDone() and add OnPreRehash() and OnPostRehash(). (r1046) 1820* Show traffic stats in a readable unit instead of lots of bytes. (r1038) 1821* Fixed a bug were nick changes where silently dropped if we are in no channels. (r1037) 1822* Remove the /watch command from watch. (r1035) 1823* znc-buildmod now reports errors via exit code. (r1034) 1824* Display a better error message if znc.conf cannot be opened. (r1033) 1825* Print a warning from *status if some message or notice is lost because we are not connected to IRC. (r1032) 1826* Make ./configure --bindir=DIR work. (r1031) 1827* Always track header dependencies. This means we require a compile supporting -MMD and -MF. (r1026) 1828* Improve some error messages if we can't connect to IRC. (r1023) 1829* Use \n instead of \r\n for znc.conf. (r1022) 1830* Fix some invalid replies from the shell module. (r1021) 1831* Support chans other than #chan and &chan. (r1019) 1832* Make chansaver add all channels to the config on load. (r1018) 1833* Reply to PINGs if we are not connected to a server. (r1016) 1834* Fix some bugs with Csocket, one caused segfaults when connecting to special SSL hosts. (r1015) 1835* Use MODFLAGS instead of CXXFLAGS for modules. Do MODFLAGS=something ./configure if you want a flag that is used only by modules. (r1012) 1836* Add OnTopic() module call. (r1011) 1837* Don't create empty .registry files for modules. See find ~/.znc -iname ".registry" -size 0 for a list of files you can delete. (r1010) 1838* Only allow admins to load the shell module. (r1007) 1839* Fix CModule::DelNV()'s return value. (r1006) 1840* Fix CUser::Clone() to handle all the settings. (r1005) 1841* Mark all our FDs as close-on-exec. (r1004) 1842 1843# ZNC 0.054 (2008-04-01) 1844 1845* Forward /names replies for unknown channels. 1846* Global modules can no longer hook into every config line, but only those prefixed with 'GM:'. 1847* Don't forward topic changes for detached channels. 1848* Remove ~/.znc/configs/backups and instead only keep one backup under znc.conf-backup. 1849* Update /msg *status help. 1850* Add --datadir to znc-config. 1851* Update bundled Csocket to the latest version. This fixes some bugs (e.g. not closing SSL connections properly). 1852* Use $HOME if possible to get the user's home (No need to read /etc/passwd anymore). 1853* Use -Wshadow and fix all those warnings. 1854* Add /msg *status ListAvailMods. Thanks to SilverLeo. 1855* Add OnRehashDone() module call. 1856* Add rehashing (SIGHUP and /msg *status rehash). 1857* Also write a pid file if we are compiled with --enable-debug. Thanks to SilverLeo. 1858* Add ClearVHost and 'fix' SetVHost. Thanks to SilverLeo. 1859* Increase the connect timeout for IRC connections to 2 mins. 1860* Add a user's vhost to the list on the user page in webadmin. 1861* Add --no-color switch and only use colors if we are on a terminal. 1862* Add DenySetVHost config option. Thanks to Veit Wahlich aka cru. 1863* Change --makeconf's default for KeepNick and KeepBuffer to false. 1864* Add simple_away module. This sets you away some time after you disconnect from ZNC. 1865* Don't write unneeded settings to the <Chan> section. Thanks to SilverLeo. 1866* Remove OnFinishedConfig() module call. Use OnBoot() instead. 1867* Fix some GCC 4.3 warnings. Thanks to darix again. 1868* Move the static data (webadmin's skins) to /usr/share/znc per default. Thanks to Marcus Rueckert aka darix. 1869* New znc-buildmod which works on shells other than bash. 1870* Add ClearAllChannelBuffers to *status. 1871* Handle CTCPs to *status. 1872* autoattach now saves and reloads its settings. 1873* Let webadmin use the user's defaults for new chans. Thanks to SilverLeo. 1874 1875# ZNC 0.052 (2007-12-02) 1876 1877* Added saslauth module. 1878* Add del command to autoattach. 1879* Make awaynick save its settings and restore them when it is loaded again. 1880* Added disconnect and connect commands to *status. 1881* CTCPReply = VERSION now ignores ctcp version requests (as long as no client is attached). This works for every CTCP request. 1882* Add -W to our default CXXFLAGS. 1883* Remove save command from perform, it wasn't needed. 1884* Add list command to stickychan. 1885* --with-module-prefix=x now really uses x and not x/znc (Inspired by CNU :) ). 1886* Use a dynamic select timeout (sleep until next cron runs). This should save some CPU time. 1887* Fix NAMESX / UHNAMES, round two (multi-client breakage). 1888* Module API change (without any breakage): OnLoad gets sMessage instead of sErrorMsg. 1889* Fix a mem-leak. 1890* Disable auto-rejoin on kick and add module kickrejoin. 1891* Respect $CXXFLAGS env var in configure. 1892* Removed some executable bits on graphiX' images. 1893* Added README file and removed docs/. 1894* Removed the antiidle module. 1895* Fixes for GCC 4.3 (Debian bug #417793). 1896* Some dead code / code duplications removed. 1897* Rewrote Makefile.ins and don't strip binaries anymore by default. 1898 1899# ZNC 0.050 (2007-08-11) 1900 1901* fixed UHNAMES bug (ident was messed up, wrong joins were sent) 1902* fixed /lusers bug (line was cached more than once) 1903* added disabled chans to the core 1904* send out a notice asking for the server password if client doesn't send one 1905* added ConnectDelay config option 1906* added timestamps on the backlog 1907* added some module calls 1908* added basic traffic stats 1909* added usermodes support 1910* API breakage (CModule::OnLoad got an extra param) 1911* added fixed channels to the partyline module 1912* fixed partyline bugs introduced by last item 1913* fixed a NULL pointer dereference if /nick command was received from a client while not connected to IRC 1914* added a JoinTries per-user config option which specifies how often we try to rejoin a channel (default: 0 -> unlimited) 1915* make configure fail if it can't find openssl (or perl, ...) 1916* new modules: antiidle, nickserv 1917 1918# ZNC 0.047 (2007-05-15) 1919 1920* NULL pointer dereference when a user uses webadmin while not on irc 1921* A logged in user could access any file with /msg *status send/get 1922* znc --makeconf now restarts znc correctly 1923* New webadmin skin (+ german translations) 1924* Updated to new Csocket version 1925* Allow @ and . in user names which now can also be longer 1926* Added crox and psychon to AUTHORS 1927* Relay messages to other clients of the current user (for the crypt module) 1928* Added chansaver Module 1929* Moved awaynick functionality into a module 1930* Added perform module from psychon 1931* fixed bug when compiling without module support 1932* Added a configurable Timer to the away module 1933* Added support for Topics in the partyline module 1934* Added support for reloading global modules 1935* Added a timer to ping inactive clients 1936* Migrated away from CString::ToString() in favor of explicit constructors 1937* IMAP Authentication Module added 1938* Fixed issues with gcc 4.1 1939* Added concept of default channels that a user is automatically joined to every time they attach 1940* Added SetVHost command 1941* Added error reporting and quit msgs as *status output 1942* Added a server ping for idle connections - Thanks zparta 1943* added -ldl fix for openssl crypto package. fixes static lib link requirement 1944* Explicitly set RTLD_LOCAL, some systems require it - thanks x-x 1945* Added SendBuffer and ClearBuffer client commands 1946* Added support for to talk unencrypted 1947* added with-modules-prefix and moved modules by default to PREFIX/libexec 1948* Added license and contact info 1949* remove compression initialization until standard has normalized a bit 1950 1951# ZNC 0.045 (2006-02-20) 1952 1953* Added +o/v -o/v for when users attach/detach - partyline module 1954* Changed internal naming of CUserSock to CClient for consistency 1955* Fixed some issues with older bsd boxes 1956* Added ListenHost for binding to a specific ip instead of inaddr_any 1957* Allow - and _ as valid username chars 1958* respect compiler, we don't force you to use g++ anymore, don't include system includes for deps 1959* Added Replace_n() and fixed internal loop bug in Replace() (thanks psycho for finding it) 1960* Don't allow .. in GET 1961* Added autoop module 1962* Added support for buffering of /me actions 1963* Added Template support in webadmin now you can write your own skins easily :) 1964* Added ipv6 support 1965* Support for multiple Listen Ports (note the config option "ListenPort" changed to "Listen") 1966 1967# ZNC 0.044 (2005-10-14) 1968 1969* Fixed issue where pipe between client and irc sockets would get out of sync, this was introduced in 0.043 1970* Added *status commands to list users and clients connected 1971 1972# ZNC 0.043 (2005-10-13) 1973 1974* Added Multi-Client support 1975* Added Global partyline module 1976* Added MOTD config option 1977* Added Admin permission 1978* Added SaveConfig admin-only *status command 1979* Added Broadcast admin-only *status command 1980 1981# ZNC 0.041 (2005-09-08) 1982 1983* This release fixes some issues with 64bit systems. 1984 1985# ZNC 0.040 (2005-09-07) 1986 1987This release contains a lot of features/bugfixes and a great new global module called admin.cpp which will allow you to add/remove/edit users and settings on the fly via a web browser. 1988 1989# ZNC 0.039 (2005-09-07) 1990 1991This release contains a lot of features/bugfixes and a great new global module called admin.cpp which will allow you to add/remove/edit users and settings on the fly via a web browser. 1992 1993# ZNC 0.038 (2005-09-07) 1994 1995This release contains a lot of bugfixes and a great new global module called admin.cpp which will allow you to add/remove/edit users and settings on the fly via a web browser. 1996 1997# ZNC 0.037 (2005-05-22) 1998 1999# ZNC 0.036 (2005-05-15) 2000 2001# ZNC 0.035 (2005-05-14) 2002 2003# ZNC 0.034 (2005-05-01) 2004 2005# ZNC 0.033 (2005-04-26) 2006 2007# ZNC 0.030 (2005-04-21) 2008 2009# ZNC 0.029 (2005-04-12) 2010 2011# ZNC 0.028 (2005-04-04) 2012 2013# ZNC 0.027 (2005-04-04) 2014 2015# ZNC 0.025 (2005-04-03) 2016 2017# ZNC 0.023 (2005-03-10) 2018