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)