Changes since ZNC 0.080: Upgrading from previous versions ================================ Errors during start-up ---------------------- The 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. So, to fix these errors, edit the znc.conf file in ~/.znc/configs and don't load those modules, or recompile znc with extra. WebMods ------- While 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. Please note that the WebMods interface uses session cookies instead of 'Basic' HTTP authentication. All URLs to webadmin's settings pages have changed. Please adjust your scripts etc. if necessary. Running without installing -------------------------- If 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. Detailed Changelog ================== New stuff * WebMods - Every module can now provide its own webpages. * Webmods and thus webadmin now use cookies for managing sessions instead of HTTP authentication. * WebMod-enabled lastseen, stickychan modules. * Partyline now also handles notices, /me and CTCP. * Partyline now saves channel topics across restarts. * Added a "number of channels" column to /znc listusers. * Added an optional user name argument to /znc listchans. * Support for the general CAP protocol and the multi-prefix and userhost-in-names caps on connections to the IRC server. * ZNC can now listen on IPv4-only, IPv6-only or on both-IP sockets. Renamed "Listen" config option to "Listener". * Added LoadModule, UnLoadModule, ListMods commands to the Admin module. * Added ability to set/get TimezoneOffset to the Admin module. * Added "Connect to IRC + automatically re-connect" checkbox to webadmin. * Remember "automatically connect + reconnect" flag across restarts by writing it to the config file. * Added AddPort, DelPort, ListPorts command to *status. * Added optional quit message argument to disconnect command. * Added new charset module to extra. * Added a traffic info page to webadmin. Fixes * Don't let ZNC connect to itself. * Added a missing error message to /znc updatemod. * Generate cryptographically stronger certificates in --makepem. * Autoattach now triggers on channel actions. * --disable-tcl now really disables TCL instead of enabling it. * User name comparison in blockuser is now case-sensitive. * Fixed /names when route_replies is loaded. * autoreply now ignores messages from self. * Don't forward QUIT messages to clients. * Do not create empty directories if one does ./znc --datadir=NON_EXISTING_DIR. * Query to Raw send the command to IRC instead of to the client. * Fixed desync in Partyline after addfixchan or delfixchan. * Save passwords for Nickserv module as NV instead of keeping them as arguments. * CSRF Protection. * Fixed a rare configure failure with modperl. * disconkick now only sends kicks for channels the client actually joined. * More sanity checks while rewriting znc.conf. * Fixed static compilation with libcrypto which needs libdl by checking for libdl earlier. * Fixed modtcl with newer tcl versions. * Better error message if pkg-config is not found. * Fixed a possible race condition in autoop which could cause bogous "invalid password" messages. Minor stuff * Fixed a memory leak and some coding style thanks to cppcheck (http://cppcheck.sf.net). * Updated to latest Csocket. * Cleanup to /znc help. * Removed --disable-modules. * saslauth: Error out "better" on invalid module arguments. * Changed the default ConnectDelay from 30s to 5s. * Misc style/skin fixes to webadmin/webmods. * Do not expose ZNC's version number through the web interface unless there's an active user session. * Updated AUTHORS file. * Moved some modules into/out of extra. * Added ./configure --enable-run-from-script, without it ZNC will no longer look for modules in ./modules/. * Made a dedicated page to confirm user deletion in webadmin. * Use spaces for seperating ip addresses from ports. * ZNC's built-in MOTD now goes through ExpandString. * Check for root before generating a new config file. * Added a flag for adding irc-only / http-only ports via /znc addport. Internal stuff * Minor cleanup to various places. * Changes in configure. * Flakes messed with the version number. * CString::Split() now Trim()s values before pushing them if bTrimWhiteSpace is true. * Added new module hooks for config entries. * New module hook OnAddUser(). * Cleanup to ISUPPORT parser. * Use Split() instead of Token() where possible. * Modularize CIRCSock::ForwardRaw353(). * Use a better seed for srand(). * Changes to debug output. * Support for delayed HTTP request processing. * Fixed CSmartPtr's operator==. * Better port/listener management exposed through CZNC. * Move CListener and CRealListener into their own files. * Move the HTTP/IRC switching to CIncomingConnection. * Add IsIRCAway() to CUser. * Move some common pid file code into new InitPidFile(). * Templates can now sort loops based on a key. A lot of work went into this release, we would like to thank everyone who contributed code, helped testing or provided feedback.