Skip to content

Tags

Tags give the ability to mark specific points in history as being important
  • znc-0.202
    ZNC 0.202
    
    Changes since ZNC 0.200
    
    This is a bugfix-mostly release.
    
    Fixes:
    * Fix a crash when a user changes the buffer size of a channel.
    * Fix a NULL pointer dereference in buffer-related module hooks.
    * Fix the autocycle module to not fight with ChanServ.
    * Fix the getchan command in the admin module.
    * Don't timeout bouncedcc connections so that idling DCC chats are possible.
    * Fix build error when compiling against uclibc(++).
    
    Minor stuff:
    * Improve the timeout message in the route_replies module.
    * Add the -r parameter to the man page of ZNC.
    * Install .py files along with .pyc.
    
  • znc-0.200
    ZNC 0.200
    
    Changes since ZNC 0.098
    
    The Big News:
    * Move ident spoofing from ZNC core into new identfile module.
    * Move dcc handling from ZNC core into new modules bouncedcc and dcc.
    * Remove the obsolete fixfreenode module.
    * New module: cert
    * Move away into ZNC-Extra.
    
    Fixes:
    * In ZNC 0.098 there was a memleak whenever someone JOINs a channel.
    * Compile even when OpenSSL was built with 'no-ssl2'.
    * Correctly handle excessive web sessions.
    * Correctly save non-ASCII characters to the NV.
    * Fix znc-buildmod when ZNC was compiled out of tree.
    * Don't always use IPv6 when verifying the listener in '--makeconf'.
    
    Minor Things:
    * Remove a pointless MODE request which ZNC sent on every JOIN.
    * Raise ZNC's timeouts.
    * Log's logging path becomes configurable.
    * Add a 'replay' command to away.
    * Add a 'get' command to notes.
    * Add '-disableNotesOnLogin' argument to notes.
    * Add hostmask handling to autoattach.
    * Make it possible for modules to provide additional info, e.g. providing a homepage URL.
    * Various improvements to modpython.
    * Hardcode a default entry for the CN in 'znc --makepem'.
    * Work around Mac OS' and Solaris' brokenness.
    * Make ZNC compile without 'getopt_long()'. This fixes compilation on e.g. Solaris 9 and hopefully Irix.
    * Check for errors like "no space left on disk" while writing the config file.
    * Improve the error handling when reading the config.
    * Move module data files to own directory in the source and in installation prefix.
    * Handle Listeners after SSLCertFile during startup.
    * Check for required SWIG version in ./configure.
    * Make it possible to use ExpandString-stuff in QuitMsg.
    * znc-buildmod: Print ZNC's version number.
    * Add config option 'ProtectWebSessions' which makes it possible to disable the IP check for web sessions.
    
    Internal Stuff:
    * Build modules with hidden symbol visibility.
    * Clean up includes. This might break external modules.
    * New 'CModCommand' for simplifiying module commands.
    * Add the OnIRCConnectionError(CIRCSock *pIRCSock) module hook
    * Remove config-related module hooks.
    * Fix CString::Escape_n()
    * Make the CUser::IsIRCConnected method check if ZNC already successfully logged in to IRC.
    * and more...
    
    Git shortlog:
    * Load parameter for log module's path. (Git commit 563bce5)
    * away.cpp: implement 'replay' command. (Git commit acfc740)
    * away.cpp: add replay command to help message. (Git commit c39ebe3)
    * Upgrade the away module to the new CModCommand interface. (Git commit 0751361)
    * Update the perform command to use CModCommand. (Git commit 211bab0)
    * Use a CTable to list all the commands to be performed in the perform module. (Git commit 3c030c8)
    * Make the autoattach module use the new CModCommand API. (Git commit c9f5fc4)
    * Move module data files to own dir. (Git commit 3a838d1)
    * Remove a unnecessary check for sed inside znc-buildmod. (Git commit fa8463d)
    * Add a "Get" command to the notes module which allows you to lookup a note via the key. (Git commit 0537a6c)
    * Remove some pointless if statements. (Git commit d735e9d)
    * Increase the version number to 0.099. (Git commit bc67400)
    * Remove some evil trailing whitespaces. (Git commit 4473146)
    * Make znc.cpp to be compilable again. (Git commit 36ffa16)
    * Make znc compile without getopt_long. (Git commit fbe2b74)
    * Move m_sHomePath from CZNC to CFile. (Git commit f9ffe6f)
    * Don't try connecting users if the ISpoof is locked. (Git commit 000efa6)
    * Remove CreatePem.sh as this is no longer used. (Git commit 4819c9e)
    * Make lastseen use CUser::IsIRCConnected() instead of CUser::GetCurrentServer() to determine if the user is connected to a server. (Git commit 4f89834)
    * If we have not seen a user in *lastseen say we never seen them. (Git commit f566548)
    * Update the lastseen module to use the new CModCommand API. (Git commit 016fe49)
    * Fix modperl and modpython installations. (Git commit 6db2ac8)
    * Make the notes module use CModCommand. (Git commit 7188850)
    * Add a option to the notes module so that you can prevent it from sending you notes when you connect. (Git commit 4303278)
    * Add the OnIRCConnectionError(CIRCSock *pIRCSock) module hook. (Git commit 7162b01)
    * Remove ident spoof from znc core. (Git commit 703f2cd)
    * Create a identfile module, this replaces the old ident spoofing built into znc. (Git commit 51ac51a)
    * Update old znc config to work with the new identfile module. (Git commit 64b89a7)
    * Use pkg-config for modpython. (Git commit ba915eb)
    * modpython: move CPyRetString to own header. (Git commit b8043c3)
    * Fix recent commit of moving python to pkg-config. (Git commit 63250c2)
    * modpython: Make strings to be stringable. (Git commit 45209ec)
    * Remove config-related module hooks. (Git commit 23fb4df)
    * CFile: Add an error flag. (Git commit 70358ca)
    * CFile::TryExLock(): Use O_RDWR by default. (Git commit cc2d84d)
    * CZNC::WriteNewConfig() check for errors. (Git commit bff969f)
    * Check for errors while writing the config. (Git commit 7f3e55e)
    * Improve lock file error handling. (Git commit a4d388b)
    * Fix a stupid memleak. (Git commit ee9686e)
    * Add __str__ methods to CModule, CUser, CChan, and CNick in modpython. (Git commit 9db98d7)
    * Add __repr__ methods to CUser, CChan, CNick in modpython. (Git commit 1fc9aee)
    * Make znc.py follow pep8. (Git commit 14452a1)
    * Cleanup znc.py. (Git commit 233566e)
    * Overhaul the config parsing. (Git commit 70c7745)
    * Re-add the ISpoof{File,Format} handling which was lost. (Git commit 90fb9e8)
    * Config: Fix some errors in the comment handling. (Git commit 2003465)
    * Improve the handling of module load messages. (Git commit f0bf713)
    * Raise our IRC connection timeouts. (Git commit d2f3b8c)
    * Don't include znc.h in Listener.h. (Git commit ca36887)
    * Handle Listeners after SSLCertFile. (Git commit 3fa04f8)
    * Include less headers in WebModules.h. (Git commit ad442f4)
    * Don't include FileUtils.h in znc.h or Modules.h. (Git commit 8e59f75)
    * defines.h doesn't need main.h. (Git commit 0e0ab34)
    * Move DEBUG() from Utils.h into new ZNCDebug.h. (Git commit ac5c021)
    * Move CExecSock to ExecSock.h. (Git commit 1761fe7)
    * Stop including FileUtils.h in any header. (Git commit 3f24f28)
    * Fix compilation error introduced in 3f24f28736. (Git commit 3b671f0)
    * Parse new ExecSock.h and ZNCDebug.h with SWIG. (Git commit e746438)
    * Rearrange compiler/linker flags for modpython. (Git commit 299e1f1)
    * Don't use poll() on Mac OS. (Git commit 72c1fa0)
    * Include signal.h to make znc compile again. (Git commit 322c63c)
    * Add the cert module which allows you to use a SSL certificate on outgoing IRC connections. (Git commit 8ad2d90)
    * Remove a pointless status command provided by the shell module. (Git commit ea5ec84)
    * Fix ConfigTest.cpp and cert.cpp so they compile. (Git commit 5cf5775)
    * passwords >8chars on Solaris, nitpicky solaris LIBS. (Git commit 2c6a54b)
    * Added a global config option for IP-based session protection. (Git commit a9ba402)
    * Added myself to authors, in case this lands. (Git commit 5560b79)
    * Make ProtectWebSessions to be checkbox in webadmin. (Git commit b8b6563)
    * Csocket: Compile when SSLv2 is disabled in openssl. (Git commit e0c5c3b)
    * Allow log module to get no arguments. (Git commit 37e6bbd)
    * Show error for --makepem if compiled without SSL. (Git commit e127d44)
    * Don't confuse people with away module. (Git commit 5ece00f)
    * Update to latest Csocket. (Git commit 6e48f35)
    * Wiki-Links changed, ModPython added, small optical changes. (Git commit 9aa1df1)
    * Some fixes for README.md. (Git commit 54d8cd6)
    * Check SWIG version in configure. (Git commit 7d912d1)
    * Add bootstrap.sh as symlink to autogen.sh. (Git commit 7091937)
    * WebModules: Add some more debug output. (Git commit 55ba59d)
    * Warn if a *module message is ignored. (Git commit eb22965)
    * Make it possible to use ExpandString-stuff in QuitMsg. (Git commit 3034d1f)
    * Set errno in CListener::Listen(). (Git commit 3e591e7)
    * Correctly handle excessive web sessions. (Git commit 2985efb)
    * autoattach: Allow limiting by hostmask. (Git commit 6deae62)
    * Rename a variable from 'string' to 'str' because 'string' shadows a global declaration. (Git commit abed808)
    * Make certauth use the CModCommand API. (Git commit 66e2507)
    * Make certauth accept a optional argument of the key when you add a key. (Git commit 1c0edff)
    * Add a web interface to the certauth module. (Git commit 456dfde)
    * Add CChan::TrimBuffer and have SetBufferCount call it. (Git commit c3a15bf)
    * Rename "str" to "String" in the admin panel. (Git commit 611e086)
    * Remove OnDCCUserSend module hook. (Git commit 0b360c0)
    * Migrate dcc bouncing to its own module. (Git commit 8f508cb)
    * Move dcc file transfers to their own module. (Git commit 16047ea)
    * Use the module save path for dcc's, and remove DLPath since it is no longer used. (Git commit c635cae)
    * Make schat use DCCBindHost. (Git commit d71da02)
    * Do not include DCCSock in mod(perl|python). (Git commit e83e14a)
    * Add regex comment for CUser::IsValidUserName(). (Git commit 4a4104a)
    * Check what make should user use and ask user to do that. (Git commit 797b0a7)
    * Improve the debug messages from identfile module. (Git commit ea19e3f)
    * remove evil trailing white space. (Git commit 718d280)
    * Redo commands for send_raw modules. Also, use the new CModCommand stuff. (Git commit 3a16fe5)
    * CUser: remove some non-existant methods from the headers. (Git commit 98d8e5e)
    * tabs in newlines could be removed². (Git commit d772985)
    * Support compiling python modules in cwd. (Git commit 4dbd088)
    * remove some more of the evil trailing white spaces & tabs. (Git commit 708366d)
    * Check the for our minimum required autoconf version. (Git commit 5ca6291)
    * Change a way for modules to provide description. (Git commit ad9f1f8)
    * Add a way for module to customize additional info. (Git commit e6e3331)
    * Modules can now provide its wiki page name. (Git commit 0c840f9)
    * Add link to wiki page from any nonextra module. (Git commit 2622167)
    * Support wiki pages names for perl modules. (Git commit 79e7860)
    * Support wiki pages names in python modules. (Git commit f7c4f54)
    * Use references instead of pointers for CModInfo. (Git commit ca97dca)
    * Only export a single function from modules. (Git commit 25ce7de)
    * Fix a bug in MCString::Encode(). (Git commit 554429a)
    * Update to latest Csocket. (Git commit 88e7f09)
    * Remove fixfreenode module. (Git commit 7ea5e1f)
    * Don't fail to load if can't find fixfreenode. (Git commit 63e8d42)
    * znc-buildmod: Print znc's version number. (Git commit 00024b1)
    * WebMods: Set another cookie if the IP check fails. (Git commit 4fbca80)
    * Update to latest Csocket. (Git commit 789f1ff)
    * Fix znc-buildmod if znc was compiled out of tree. (Git commit efda366)
    * Hide every symbol except ZNCModInfo from modules. (Git commit ea58912)
    * Fix verifying listener in --makeconf. (Git commit 7951260)
    * Broadcast an error on EMFILE. (Git commit dd56a3c)
    * Don't send a MODE request when JOINing. (Git commit f1cb09b)
    * Fix a memleak in CChan::AddNick(). (Git commit 9685f16)
    * Make the CUser::IsIRCConnected method check if the IRC connection is authed because may of its callers expect this behaviour. (Git commit 90f741d)
    * Stop asking for the host name in --makepem. (Git commit dcf357b)
    * Include zncconfig.h in all headers. (Git commit 8d17f50)
    * Fix module data for extra/ modules. (Git commit cb6798d)
    * Fix CString::Escape_n() and add some tests for it. (Git commit da0ba75)
    * Fix module data for extra/ modules for real. (Git commit e86ff32)
    * Fix modp{erl,ython} installation. (Git commit 8f53d3f)
    * Fix uploading a certificate in the web interface for the cert module. (Git commit 74919a8)
    * cert module Allow \r\n to be inside a certificate when uploading with the web interface. (Git commit 6aa3168)
    
    
  • znc-0.098
    ZNC 0.098
    
    Changes since ZNC 0.096
    
    New stuff:
    * Add a list of features to the output of /znc version.
    * Add modpython.
    * Verify during --makeconf that the specified listener works.
    * Add TimestampFormat and StatusPrefix settings to the admin module.
    * Add DCCBindHost, channel keys and some more to webadmin.
    * Add a web interface for listsockets, perform and send_raw.
    * Don't reply to CTCP floods.
    * Accept wildcards for /znc DetachChan, EnableChan, ClearBuffer and SetBuffer.
    * Add reconnect and disconnect commands to the admin module.
    * Moved from SourceForge to GitHub.
    * Don't force --foreground when compiling with --enable-debug.
    * Add functions for managing CTCPReplies to the admin module.
    * Allow omitting user names with some commands in the admin module.
    * Some fixed with ISpoofFile and SSLCertFile paths which use "~".
    
    Fixes:
    * Send more than a single channel per JOIN command.
    * Properly unload perl modules so that their code is reread on next load.
    * Make certauth remember its certificate list across restarts again.
    * Ignore dereferenced sockets in listsockets.
    * Fix a cross-compilation problem in configure.
    * Bind web sessions to IP addresses.
    * Limit the number of web sessions per IP.
    * Build on cygwin again.
    * Allow admins to ignore MaxBufferSize in webadmin.
    * Fix some compiler warnings generated by clang.
    * Call modules for mode-changes done by not-in-channel nicks.
    * Fix installation with 'checkinstall' and the permissions of some static files.
    
    Minor stuff:
    * Properly report errors in the admin module's addserver command.
    * Improvements in modperl.
    * Check for Perl 5.10 or newer.
    * Verify in configure that tcl actually works.
    * Add a warning header to znc.conf that warns about editing the file.
    * Improve the ISpoof debug output.
    * Improve HTTP client-side caching for static files.
    * Removed all generated/copied scripts from the repo.
    * Only allow admins to use the email module.
    * Make clearbufferonmsg clear the buffer a little less often.
    * Make the output of /znc help smaller.
    
    Internal stuff:
    * Some optimizations with lots of users and channels.
    * Various changes to the Makefiles.
    * Add a third argument to the OnPart module hook.
    * Add vim modelines to some files.
    * Add an auto-generated zncconfig.h.
    * Update to latest Csocket.
    * Handle paths like "~/foo" in CFile.
    * Add an API for module commands.
    * CUser::m_sUserName was made 'const'.
    
  • znc-0.096
    ZNC 0.096
    
    Changes since ZNC 0.094
    
    New stuff:
    * Added a new module: clearbufferonmsg.
    * Added an optional server name argument to '/znc jump'.
    * Big overhaul for modperl.
    * Modules can now directly influence other modules' web pages.
    
    Fixes:
    * The route_replies module now handles "354" who replies.
    * Fixed a bogus "invalid password" error during login with some clients.
    * Reject long input lines on incoming connections.
    * The lastseen module should only link to webadmin if the latter is loaded.
    * Fixed cases where HTTP requests were incorrectly dropped.
    * Fixed partyline to work with servers that don't send a 005 CHANTYPES.
    * Fixed error message from configure if dlopen() isn't found.
    
    Minor stuff:
    * Renamed "vhost" to "bindhost" to better describe what the option does.
    * Honor timezone offset in the simple_away module.
    * Load global modules as soon as their config line is read.
    * Use poll() instead of select() by default.
    * Ignore the channel key "*" in the chansaver module.
    
    Internal stuff:
    * Fixed some function prototypes.
    * Rearranged ZNC's CAP handling to IRCds.
    * Added more doxygen comments.
    * Removed some useless typedefs.
    * Clean up the lastseen module.
  • znc-0.094
    ZNC 0.094
    
    Changes since ZNC 0.092:
    
    New stuff:
    * Add new global setting MaxBufferSize instead of hardcoding a value.
    * Support CAP.
    * Add new module certauth which works similar to certfp (http://www.oftc.net/oftc/NickServ/CertFP).
    * route_replies now also supports routing channel ban lists, ban exemptions and invite exceptions.
    * Add a -nostore flag to the away module.
    * Add a new config option SSLCertFile.
    
    Fixes:
    * Fix configure to automatically disable modperl if perl is not found.
    * Include the port number in cookie names to make them unique across different znc instances on the same box.
    * Make sure that we have at least c-ares 1.5.0.
    * Make znc work on solaris.
    * Improve configure's and make's output.
    * Complain about truncated config files.
    * Fix some std::out_of_range error triggerable by people with a valid login.
    * Make fakeonline behave while we are not connected to an IRC server.
    * Always attach to channels when joining them.
    * Fix a NULL pointer dereference in route_replies.
    
    Minor stuff:
    * Allow leading and trailing spaces in config entries.
    * Use pkg-config for finding openssl, if it's available. We still fall back to the old code if this fails.
    * znc no longer accepts an alternative file name for znc.conf as its argument.
    * Generate correct HTTP status codes in webmods and make sure this doesn't happen again.
    * Rewrite our PING/PONG handling.
    * Raise the size of the query buffer to 250.
    * Update to latest Csocket.
    
    Internal stuff:
    * Remove the fake module usage in WebMods.
    * Remove fake modules completely.
    * Make CTable more robust.
    * Move the OnKick() module call so it is issued when the nick still is visible in the channel.
    * Remove CZNC::GetUser() since CZNC::FindUser() does the same.
    * Minor changes to webmod skins.
    * Add new macros GLOBALMODULECALL and ALLMODULECALL.
    * Remove a bogus CClient* argument from some module calls.
    * Mark some functions as const.
  • znc-0.092
    74600649 · Tag znc 0.092 ·
    ZNC 0.092
    
    Changes since ZNC 0.090:
    
    This is a bugfix-only release, mainly for fixing CVE-2010-2488.
    
    Fixes:
    * ZNC wrongly counted outgoing connections towards
      the AnonIPLimit config option.
    * The traffic stats caused a NULL pointer dereference if there were any
      unauthenticated connections. (CVE-2010-2488)
    * Csocket had a bug where a wrong error message was generated
      and one that caused busy loops with c-ares.
  • znc-0.090
    ZNC 0.090
    
    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.
  • znc-0.080
    ZNC 0.080
    
    Changes since ZNC 0.078:
    
    New stuff:
    * Move the "Another client authenticated as you"-message into the new clientnotify module.
    * Update to latest Csocket.
    * Only allow admins to load modtcl unless -DMOD_MODTCL_ALLOW_EVERYONE is used.
    * Include /me's in the query buffer.
    * Some tweaks to savebuff to differentiate it more from buffextras.
    * send_raw can now also send to clients.
    * Imported the block_motd and flooddetach modules into extra.
    * Added new setting ServerThrottle which sets a timeout between connections to the same server.
    * Don't propose every single module in --makeconf.
    * Use UTF-8 as the default charset for webadmin.
    * Revamped the default webadmin skin.
    * New font style for the "ice" webadmin skin.
    * Added a summary line to /znc listchans.
    * The admin module can now handle more settings and got some missing permission checks added.
    
    Fixes:
    * Apply new ConnectDelay settings immediately after a rehash.
    * Do a clean shutdown just before a restart.
    * Fix a theoretical crash in modtcl.
    * CUser instances now use the correct save and download path after Clone().
    * Several improvements to znc-buildmod.
    * Fix a crash with modperl by loading modules differently.
    * Fix HTTP Cache-Control headers for static files served by webadmin.
    * Send the nicklist to a user who is being force-rejoined in partyline.
    * Set the issuer name in CUtils::GenerateCert().
    * Fixed some inconsistency with /znc reloadmod.
    * Added a workaround for SSL connections which incorrectly errored out during handshake.
    
    Minor stuff:
    * Don't try to catch SIGILL, SIGBUS or SIGSEGV, the default action will do fine.
    * Added IP-address to messages from notify_connect.
    * Switched to Csocket's own c-ares code.
    * Add more doxygen comments.
    * Removed useless "add your current ip" checkbox from webadmin's edit user page.
    * Don't try to request a MOTD if there is none.
    
    Internal stuff:
    * It's 2010, where's my hoverboard?
    * Got rid of Timers.h.
    * Added a Clone() method to CNick.
    * Call OnChanAction() after OnChanCTCP().
    * Random cleanups to CFile::Delete().
    * Other random cleanups.
    * Move the implementation of CSocket to Socket.cpp/h.
  • znc-0.078
    ZNC 0.078
    
    Changes sicne ZNC 0.076:
    
    New stuff:
    * Add a DCCVHost config option which specifies the VHost (IP only!) for DCC bouncing.
    * Users cloned via the admin module no longer automatically connect to IRC.
    * Inform new clients about their /away status.
    * The "BUG" messages from route_replies can now be turned off via <code>/msg *route_replies silent yes</code>.
    * Rewrite znc.conf on SIGUSR1.
    * ISpoofFormat now supports ExpandString.
    
    Fixes:
    * Allow specifing port and password for delserver.
    * Write the config file on restart and shutdown.
    * Disable c-ares if it is not found unless ''--enable-c-ares'' was used.
    * blockuser was missing an admin check.
    * Sometimes, removing a server caused znc to lose track of which server it is connected to.
    * Include a more portable header for uint32_t in SHA256.h.
    * Fixed cases where ZNC didn't properly block PONG replies to its own PINGs.
    * Fixed a possible crash if a client disconnected before an auth module was able to verify the login.
    * Away allowed to accidentally execute IRC commands.
    * Correctly bind to named hosts if c-ares is enabled.
    * Don't accept only spaces as QuitMsg because this would cause an invalid config to be written out.
    
    Minor stuff:
    * Comment out some weird code in Client.cpp.
    * Remove connect_throttle since it's obsoleted by fail2ban.
    * Remove outdated sample znc.conf.
    * route_replies now got a higher timeout before it generates a "BUG" message.
    * Documented the signals on which znc reacts better.
    
    Internal stuff:
    * New module hook OnIRCConnecting().
    * Remove obsolete CUtils::GetHashPass().
    * A module's GetDescription() now returns a C-String.
    * When opening a module, check the version number first and don't do '''anything''' on a mismatch.
  • znc-0.076
    ZNC 0.076
    
    Changes since ZNC 0.074:
    
    New stuff:
    * Add a "make uninstall" Makefile target.
    * Imported modules from znc-extra: fixfreenode, buffextras, autoreply, route_replies, adminlog.
    * Imported the rest of znc-extra under modules/extra hidden behind configure's --enable-extra.
    * ZNC now uses SHA-256 instead of MD5 for hashing passwords. MD5 hashes still work correctly.
    
    Fixes:
    * Don't cache duplicate raw 005 (e.g. due to /version).
    * Send a MODE removing all user modes to clients when we lose the irc connection.
    * Use a nickmask instead of a nick as the source for ZNC-generated MODE commands.
    * Use the right error codes if startup fails.
    * Fix a NULL pointer dereference in some of the ares-specific code.
    * VHost and Motd input boxes in graphiX and dark-clouds in webadmin didn't insert newlines.
    * Generate proper error messages when loading modules. This was broken since znc 0.070.
    * Allow unloading of removed modules. This was broken since znc 0.070.
    * Fix savebuff with KeepBuffer = false.
    * Fix accidental low buffer size for webadmin sockets.
    * AltNicks are no longer truncated to 9 characters.
    * Webadmin can now successfully add new admin users and have them load the shell module.
    * Webadmin no longer includes the znc version in the auth realm.
    * CUser::Clone now handles modules after all other settings, making it work with shell.
    * Some CSS selectors in webadmin's dark-clouds and graphiX skins were wrong.
    * The help output from the admin module was improved.
    
    Minor stuff:
    * make distclean now also removes the pkg-config files.
    * Add the autoconf check for large file support.
    * Generic "not enough arguments" support for route_replies and some fix for /lusers.
    * ZNC now tries to join channels in random order.
    * route_replies now handles "No such channel" for /names.
    * Fixes a theoretical crash on shutdown.
    * saslauth was moved to znc-extra.
    
    Internal stuff:
    * Now using autoconf 2.64.
    * Removed unused classes CNoCopy and CSafePtr.
    * Moved CZNC::FindModPath() to CModules.
    * Added CModules::GetModDirs() as a central place for finding module dirs.
    * Added CModules::GetModPathInfo() which works like GetModInfo() but which takes the full path to the module.
    * Updated to latest Csocket which adds openssl 1.0 compatibility and fixes some minor bug.
    * Merged the internal join and ping timers.
  • znc-0.074
    ZNC 0.074
    
    Changes since ZNC 0.072:
    
    Brown-paper-bag fixes:
    * Fix a regression due to r1569: Webadmin was broken if the skins were accessed
      through an absolute path (=almost always).
    
    "Standard" fixes:
    * Fix a possible crash if users are deleted while they have active DCC sockets.
    
    Sorry for breaking your webadmin experience guys. :(
  • znc-0.072
    ZNC 0.072
    
    Changes since ZNC 0.070:
    
    High-impact security bugs:
    There 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:
    http://znc.svn.sourceforge.net/viewvc/znc?view=rev&sortby=rev&sortdir=down&revision=1570
    
    All ZNC versions since ZNC 0.022 (Initial import in SVN) are affected.
    
    New stuff:
    * /msg *status uptime is now accessible to everyone.
    * ZNC can now optionally use c-ares for asynchronous DNS resolving.
    * The new config option AnonIPLimit limits the number of unidentified connections per IP.
    
    Fixes:
    * znc --no-color --makeconf still used some color codes.
    * Webadmin favicons were broken since r1481.
    * znc.pc was installed to the wrong directory in multilib systems.
    * Handle flags like e.g. --allow-root for /msg *status restart.
    * Fix channel user mode tracking.
    * Fix a possible crash if users are deleted while they are connecting to IRC.
    * Limit HTTP POST data to 1 MiB.
    * OnStatusCommand() wasn't called for commands executed via /znc.
    * On systems where sizeof(off_t) is 4, all ZNC-originated DCCs failed with
      "File too large (>4 GiB)".
    * ZNC didn't properly verify paths when checking for directory traversal attacks (Low impact).
    
    Minor stuff:
    * Minor speed optimizations.
    * stickychan now accepts a channel list as module arguments.
    * Added a clear command to nickserv.
    * Added an execute command to perform.
    * Added a swap command to perform.
    * fail2ban clears all bans on rehash.
    
    Internal stuff:
    * The API for traffic stats changed.
    * Some optimizations to CSmartPtr.
    * CString now accepts an optional precision for converting floating point numbers.
    * Made home dir optional in CDir::ChangeDir().
    * EMFILE in CSockets is handled by closing the socket.
    
    Special thanks to cnu and flakes for finding security issues!
  • znc-0.070
    ZNC 0.070
    
    Changes since ZNC 0.068:
    
    New stuff (aka the cool things):
    * Add a CloneUser command to admin.
    * Make webadmin work better with browser caches in conjunction with changing skins.
    * Better error messages if binding a listening port fails.
    * admin module now supports per-channel settings.
    * Fix the KICK that partyline generates when a user is deleted.
    * fail2ban now allows a couple of login attempts before an IP is banned.
    * Fixed a crash bug in stickychan.
    * Install a pkg-config .pc file.
    * Auto-detect globalness in re/un/loadmod commands.
    
    Fixes:
    * Fix a bug where ZNC lost its lock on the config file.
    * Limit DCC transfers to files smaller than 4 GiB.
    * Make znc -D actually work.
    * Make znc --datadir ./meh --makeconf work. The restart used to fail.
    * Fix a crash bug if CNick::GetPermStr() was called on CNick objects from module calls.
    * Some fixes for solaris.
    * nickserv module now also works on OFTC.
    * Make sure the "Invalid password" message is sent before a client socket is closed.
    * Fix a bug where ZNC would reply with stale cached MODEs for a "MODE #chan" request.
    
    Minor stuff:
    * Man page updates.
    * Make CFile::Close() check close()'s return values if --debug is used.
    * Update to latest Csocket.
    * Improve the error messages generated by /msg *status loadmod.
    * Remove broken znc --encrypt-pem.
    
    Internal stuff:
    * cout and endl are included in Utils.h, not main.h.
    * CFile::Get*Time() now return a time_t.
    * Switched some more CFile members to more appropriate return types.
    * CFile::Seek() now takes an off_t as its argument.
    * Turn TCacheMap into more of a map.
    * Updates to latest Csocket.
    * API breakage: CAuthBase now wants a Csock* instead of just the remote ip.
    * New Module hooks
    ** OnChanBufferStarting()
    ** OnChanBufferPlayLine()
    ** OnChanBufferEnding()
    ** OnPrivBufferPlayLine()
  • znc-0.068
    ZNC 0.068
    
    Changes since ZNC 0.066:
    
    New stuff (aka the cool things):
    * watch now uses ExpandString on its patterns.
    * A user is now always notified for failed logins to his account. This now also works with auth modules like imapauth.
    * Added /msg *status UpdateModule <mod> which reloads a user module on all users.
    * If a module's version doesn't match the current ZNC version, it is now marked as such in ListAvailModules and firends.
    * Added a Set password command to admin.
    * ZNC no longer uses znc.conf-backup.
    * Two new command line options were added to ZNC:
    ** znc --foreground and znc -f stop ZNC from forking into the background.
    ** znc --debug and znc -D produce output as if ZNC was compiled with --enable-debug.
    
    Fixes:
    * cd command in shell module works again.
    * Make WALLOPS properly honor KeepBuffer. Before this, they were always added to the replay buffer.
    * ZNC now handles raw 432 Illegal Nickname when trying to login to IRC and sends its AltNick.
    * Fix a crash with recursion in module calls.
    * Fixed some compiler warnings with -Wmissing-declarations.
    
    Minor stuff:
    * Allow a leading colon on client's PASS commands.
    * CFile::IsDir() failed on "/".
    * CZNC::AddUser() now always returns a useful error description.
    * Some micro-optimizations.
    * The new default for JoinTries is 10. This should help some excess flood problems.
    * All webadmin skins must now reside inside the webadmin skins dir or they are rejected.
    * Watch now saves its module settings as soon as possible, to prevent data loss on unclean shutdown.
    * Regenerated configure with autoconf 2.63.
    * Some dead code elimination.
    * Clean up znc -n output a little.
    
    Internal stuff:
    * CString::Base64Decode() now strips newlines.
    * Remove CModInfo::IsSystem() since it was almost unused and quite useless.
    * Some minor changes to CSmartPtr.
    * Added CFile::Sync(), an fsync() wrapper.
  • znc-0.066
    Tag znc 0.066
    
    Changes since ZNC-0.064
    
    Security critical fixes:
    There was a privilege escalation bug in webadmin which could allow all ZNC users to write to znc.conf. An attacker could gain shell access through this.
    
    * Affected versions:
    This bug affects all versions of ZNC which include the webadmin module.
    Let's just say this affects every ZNC version, ok? ;)
    
    * Who can use this bug?
    First, 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.
    
    An admin must help (unknowingly) to trigger this bug.
    
    * Impact:
    Through this bug users can write arbitrary strings to the znc.conf file.
    
    ** Unprivileged ZNC users can make themselves admin and load the shell module to
       gain shell access.
    ** Unprivileged 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.
    ** Unprivileged 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.
    
    * How can I protect myself?
    Upgrade to ZNC 0.066 or newer or unload webadmin.
    
    * What happens?
    Webadmin 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.
    
    This can be done with nearly all input fields in webadmin. Because every user
    can modify himself via webadmin, every user can exploit this bug.
    
    * Thanks
    Thanks to cnu for finding and reporting this bug.
    
    New stuff:
    * Added the admin module.
    * savebuff and away no longer ask for a password on startup.
    * Added the fail2ban module.
    
    Fixes:
    * savebuff now also works with KeepBuffer turned off.
    * webadmin did not properly escape module description which could allow XSS attacks.
    * Fix some "use of uninitialized variable" warnings.
    * Check the return value of strftime(). This allowed reading stack memory.
    
    Minor stuff:
    * Some dead code elimination.
    * Don't have two places where the version number is defined.
    
    Internal stuff:
    * Removed some useless and unused CFile members.
    * Removed the DEBUG_ONLY define.
    * OnFailedLogin() is now called for all failed logins, not only failed IRC ones. This changes CAuthBase API.
  • znc-0.064
    Changes since ZNC-0.062:
    
    New stuff:
    * schat now prints a message if a client connects and there are still some active schats.
    * awaynick: Set awaynick on connect, not after some time.
    * 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.
    * Show the current server in /msg *status listservers with a star.
    * /msg *status listmods now displays the module's arguments instead of its description. Use listavailmods for the description.
    * ZNC now updates the channel buffers for detached channels and thus gives a buffer replay when you reattach.
    * watch now adds timestamps to messages it adds to the playback buffers.
    * ZNC should now work on cygwin out of the box (use --disable-ipv6).
    * Webadmin will handle all HTTP requests on the irc ports. Use -noircport to disable this.
    
    Fixes:
    * Handle read errors in CFile::Copy() instead of going into an endless loop.
    * Make schat work properly again and clean it up a little.
    * Removed all calls to getcwd(). We now no longer depend on PATH_MAX.
    * stickychan: Don't try to join channels if we are not connected to IRC.
    * watch now saves its settings.
    * Don't forward PONG replies that we requested to the user.
    * awaynick evaluated the awaynick multiple times and thus didn't set the nick back.
    * znc-config --version said '@VERSION@' instead of the actual version number.
    * Handle JOIN redirects due to +L.
    * Remove the length restrictions on webadmin's password fields which led to silent password truncation.
    * Webadmin now reloads global modules if you change their arguments.
    * The main binary is no longer built with position independent code.
    * ZNC failed to bounce DCCs if its own ip started with a value above 127.
    * Savebuff no longer reloads old channel buffers if you do '/msg *status clearbuffer'.
    * Some work has been done to make ZNC work with mingw (It doesn't work out of the box yet).
    * modperl used huge amounts of memory after some time. This is now fixed.
    * shell now generates error messages if e.g. fork() fails.
    * If the allowed buffer size is lowered, the buffer is now automatically shrunk.
    * Webadmin now refuses to transfer files bigger than 16 MiB, because it would block ZNC.
    
    Minor stuff:
    * Only reply to /mode requests if we actually know the answer.
    * Lowered some timeouts.
    * Memory usage optimizations.
    * Allow custom compiler flags in znc-buildmod via the $CXXFLAGS and $LIBS environment flags.
    * Show the client's IP in debug output if no username is available yet.
    * Allow /msg *status setbuffer for channels we are currently not on.
    * Updated the README.
    * Use @includedir@ instead of @prefix@/include in the Makefile.
    * Use RTLD_NOW for loading modules instead of RTLD_LAZY which could take down the bouncer.
    * Use stat() instead of lstat() if the latter one isn't available.
    * CExecSock now generates an error message if execvp() fails.
    * Improved some error messages.
    
    Internal stuff:
    * Add traffic tracking support to CSocket. Every module that uses CSocket now automatically gets the traffic it causes tracked.
    * Add VERSION_MINOR and VERSION_MAJOR defines.
    * Rework CZNC::Get*Path() a little.
    * Remove the IPv6 stuff from CServer. It wasn't used at all.
    * Make email use CSocket instead of Csock.
    * Cleaned up and improved CFile::ReadLine() and CChan::AddNicks() a little.
    * Replaced most calls to strtoul() and atoi() with calls to the appropriate CString members.
    * Moved the SetArgs() call before the OnLoad() call so that modules can overwrite their arguments in OnLoad().
    * Let 'CZNC::AddUser()' check if the user name is still free.
    * API stuff:
    ** Added CModule::IsGlobal().
    ** Added CModule::BeginTimers(), EndTimers(), BeginSockets() and EndSockets().
    ** Added CModule::ClearNV().
    ** Removed ReadFile(), WriteFile(), ReadLine() (Use CFile instead), Lower(), Upper() (Use CString::AsUpper(), ::ToUpper(), ::*Lower() instead) and added CFile::ReadFile()
    ** Added CModules::OnUnknownUserRaw().
    ** Added CUtils::SaltedHash() for computing the salted MD5 hashes ZNC uses.
    ** Removed CLockFile and made CFile take over its job.
    ** Change the return type of CUtils::GetPass() to CString.
    ** Added a DEBUG(f) define that expands to DEBUG_ONLY(cout << f << endl).
    ** Removed some unused functions and definitions.
  • znc-0.062
    ZNC 0.062
    
    Changes since ZNC-0.060:
    
    New stuff:
    * Add --disable-optimization to configure.
    * New webadmin skin dark-clouds by bigpresh.
    * Added the q module as a replacement for QAuth.
    * Added an enhanced /znc command:
    	 - /znc jump is equal to /msg *status jump
    	 - /znc *shell pwd is equal to /msg *shell pwd
    * Webadmin should generate less traffic, because it now uses client-side caching for static data (images, style sheets, ...).
    * Changes to the vhost interface from *status:
    	 - New commands: AddVHost, RemVHost and ListVHosts.
    	 - SetVHost now only accepts vhosts from the ListVHosts list, if it is non-empty.
    * ZNC now should compile and work fine on Mac OS.
    * IPv6 is now enabled by default.
    
    Fixes:
    * Make keepnick usable.
    * Don't display 'Your message to .. got lost' for our own nick.
    * Fix compile error with GCC 4.3.1 if ssl is disabled. Thanks to sebastinas.
    * Limit the maximum buffer space each socket may use to prevent DoS attacks.
    * Properly clean the cached perms when you are kicked from a channel.
    * Due to changes in rev 1155-1158, modperl crashed on load on some machines.
    * Stickychan didn't work with disabled channels.
    * Catch a throw UNLOAD in the OnBoot module hook.
    * Webadmin now accepts symlinks in the skin dir.
    * Fix for partyline if a force-joined user is deleted.
    * Revert change from (r1125) so that we compile on fbsd 4 again.
    
    Minor stuff:
    * Recompile everything if configure is run again.
    * Improved the readability of ListMods und ListAvailMods.
    * Accept "y" and "n" as answers to yes/no questions in --makeconf.
    * --makeconf now also generates a ssl certificate if a ssl listening port is configured.
    * Improved and cleaned up the simple_away module.
    * The nickserv module automatically saves the password and never displays it anymore.
    * Use relative instead of absolute URLs in all webadmin skins.
    * Add znc-config --cxx and use it in znc-buildmod.
    * Support out-of-tree-builds.
    * Make schat's showsocks command admin-only.
    * Fix compilation with GCC 4.4.
    * Use AC_PATH_PROG instead of which to find perl.
    * New AUTHORS file format.
    
    Internal stuff:
    * Removed redundant checks for NULL pointers
    * Renamed String.h and String.cpp to ZNCString.
    * Print a warning in CTable if an unknown column is SetCell()'d
    * Update to latest Csocket
    * Remove CSocket::m_sLabel and its accessor functions. Use the socket name Csocket provides instead.
    * modules Makefile: Small cleanup, one defines less and no compiler flags passed multiple times.
    * Webadmin now uses CSocket instead of using Csock and keeping a list of sockets itself.
    * Mark some global and static variables as const.
    * Cleanup perform, no feature changes.
    * Some tweaking to configure.in. Among other things, we now honour CPPFLAGS and don't check for a C compiler anymore.
    * On rare occasions webadmin generated weird error messages.
    * OnStatusCommand now doesn't have the const attribute on its argument.
    * Some new functions:
    	 - some CString constructors (e.g. CString(true) results in "true")
    	 - CString::TrimPrefix() and CString::TrimSuffix()
    	 - CString::Equals()
    	 - CTable::Clear()
    	 - CClient::PutStatus(const CTable&)
    	 - CGlobalModule::OnClientConnect()
    	 - CModule::OnIRCRegistration()
    	 - CModule::OnTimerAutoJoin()
    * Renames:
    	 - CModule::OnUserAttached() is now known as CModules::OnClientLogin().
    	 - CModule::OnUserDetached() is now known as CModules::OnClientDisconnect().
  • znc-0.060
    ZNC 0.060
    
    Changes since ZNC-0.058:
    - Print a message when SIGHUP is caught.
    - Moved autocycle into a module.
    - New module call OnMode().
    - Added MaxJoins and JoinTries to webadmin.
    - Fix channel keyword (+k) related mess up on Quakene.
    - Added new module call OnUserTopicRequest().
    - Also add traffic generated by modules to the traffic stats.
    - Don't use znc.com but znc.in everywhere (hostname of *status etc).
    - Close the listening port if we ran out of free FDs.
    - Add a config option MaxJoins which limits the number of joins ZNC sends in one burst.
    - Bug fix where WriteToDisk() didn't made sure a fail was empty.
    - Add ShowMOTD and reorder the HELP output of *status.
    - Add /msg *status restart . Thanks to kroimon.
    - Make --makeconf more userfriendly. Thanks to kroimon.
    - Dont start a new znc process after --makeconf. Thanks to kroimon.
    - Add CModule::PutModule(const CTable&).
    - Unify some preprocessor macros in Modules.cpp.
    - Catch a throw UNLOAD from CModule::OnLoad().
    - A couple of bugs with OnModCTCP(), OnModCommand() and OnModNotice() where fixed.
    - Quicker connects and reconnects to IRC.
    - Speedup the CTable class.
    - Update our bundled Csocket.
    - Some fixes to modperl for hppa.
    - Move keepnick into a module.
    - Split up some big functions and files.
    - modperl now fails to load if it can't find modperl.pm.
    - Handle nick prefixes and such stuff from clients correctly.
    - Simplify the code connecting users a little.
    - Fix partyline for users who are not connected to IRC.
    - We are in a channel when we receive a join for it, not an 'end of /names'.
    - Enable some more debug flags with --enable-debug.
    - Don't ever throw exceptions in CModules::LoadModule().
    - Don't give any stdin to commands executed from the shell module.
    - Fix some over-the-end iterator dereference on parting empty channels.
    - Replace usage of getresuid() with getuid() and geteuid().
    - Use salted hashes for increased security.
    - Don't mention any libraries in znc-config.
    - Don't define __GNU_LIBRARY__ for FreeBSD.
  • znc-0.058
    ZNC 0.058
    
    Changes since ZNC-0.056:
    - Fix a crash with NAMESX-enabled IRC servers.
    - Fix a privilege escalation bug in webadmin if auth modules are used.
    - Remove -D_GNU_SOURCE from our CXXFLAGS.
    - CUtils::GetInput() now kills the process if reading from stdin fails.
    - Properly include limits.h for PATH_MAX.
    - Don't allow running ZNC as root unless --allow-root is given.
    - Add more possibilities for ExpandString().
    - Autoattach doesn't allow you adding an entry twice now.
    - Print a warning if PATH_MAX is undefined.
    - Use ExpandString() for CTCPReply.
    - Add Uptime command to *status.
    - Make --makeconf clearer.
    - Add man pages for znc, znc-buildmod and znc-config.
    - Perl modules are no longer installed with executable bit set.
    - Crypt now forwards messages to other connected clients.
    - Fix a theoretical crash bug in the DNS resolving code.
    - Modules now get their module name as ident, not 'znc'.
    - Handle channel CTCPs the same way private CTCPs are handled.
    - Webadmin: Add support for timezone offset.
    - Webadmin: Remove the *.de webadmin skins.
    - Webadmin: Don't reset all channel settings when a user page is saved.
    - Fix a possible crash when rehashing failed to open the config file.
    - The instructions at the end of makeconf showed a wrong port.
    - Throttle DCC transfers to the speed of the sending side.
    - De-bashify znc-buildmod.
    - Time out unauthed clients after 60 secs.
    - Don't fail with conspire as IRC client.
    - Replace CString::Token() with a much faster version.
    - DenyLoadMod users no longer can use ListAvailMods.
    - Add a VERSION_EXTRA define which can be influenced via CXXFLAGS and which is appended to ZNC's version number.
  • znc-0.056
    ZNC 0.056
    
    Changes since ZNC-0.054:
    - Rehashing also handles channel settings.
    - Make znc-buildmod work with prefixes.
    - Greatly speed up CUser::GetIRCSock(). Thanks to w00t.
    - Don't link the ZNC binary against libsasl2.
    - Make CString::RandomString() produce a more random string (this is used for autoop and increases its security).
    - Remove OnRehashDone() and add OnPreRehash() and OnPostRehash().
    - Show traffic stats in a readable unit instead of lots of bytes.
    - Fixed a bug were nick changes where silently dropped if we are in no channels.
    - Remove the /watch command from watch.
    - znc-buildmod now reports errors via exit code.
    - Display a better error message if znc.conf cannot be opened.
    - Print a warning from *status if some message or notice is lost because we are not connected to IRC.
    - Make ./configure --bindir=DIR work.
    - Always track header dependencies. This means we require a compile supporting -MMD and -MF.
    - Improve some error messages if we can't connect to IRC.
    - Use \n instead of \r\n for znc.conf.
    - Fix some invalid replies from the shell module.
    - Support chans other than #chan and &chan.
    - Make chansaver add all channels to the config on load.
    - Reply to PINGs if we are not connected to a server.
    - Fix some bugs with Csocket, one caused segfaults when connecting to special SSL hosts.
    - Use MODFLAGS instead of CXXFLAGS for modules. Do MODFLAGS=something ./configure if you want a flag that is used only by modules.
    - Add OnTopic() module call.
    - Don't create empty .registry files for modules. See find ~/.znc -iname ".registry" -size 0 for a list of files you can delete.
    - Only allow admins to load the shell module.
    - Fix CModule::DelNV()'s return value.
    - Fix CUser::Clone() to handle all the settings.
    - Mark all our FDs as close-on-exec.