Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

znc-0.204

ZNC 0.204
Changes since ZNC 0.202

This release fixes CVE-2012-0033.

Fixes:
* Fix a crash in bouncedcc module with DCC RESUME.
* Fix modperl compilation.
* Don't use mkdir during install.
* Fix compilation failures, which happened sometimes when an older ZNC was already installed.
* Check for the swig2.0 binary too, instead of only swig.

Minor stuff:
* Unload modules in reverse order.
* Don't send server redirects (numeric 010) to clients.
* Make it possible to filter the result of the help command.
* Drop @DEFS@ from the build system so that we don't force HAVE_CONFIG_H upon others.
* Move autocycle to extra.
* Handle raw 482 in route_replies.
* Improve identfile's debug messages.
* Send a MODE request when JOINing.
* Block raw 301 in antiidle.

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 3f24f28. (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

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.
Something went wrong with that request. Please try again.