$Id: Changes1.8,v 1.84 2014/10/08 20:08:27 thommey Exp $ Eggdrop Changes (since version 1.8.0) _____________________________________________________________________ 1.8.0 (CVS): - Throw error when writing to read-only variables in server module. Patch by: chrfle / Found by: thommey - Add a config warning to tell users they are in the source directory. Patch by: Pixelz - Fix description for share-unlinks in the config. Patch by: chrfle - Remove length limit of info line. Patch by: chrfle / Found by: Kiril - Fix stripcodes modifying the Tcl object in-place. Patch by: thommey / Found by: speechles - Only permanent owners can delete owners. Patch by: chrfle / Found by: pseudo - Add Tcl8.6 and /usr/lib/x86_64-linux-gnu to Tcl search paths. - Ran autotools. Patch by: Freeder - Changed IRCnet's max-bans/max-modes to 64. Patch by: ente - Fix error messages of the Tcl commands (un)stick(exempt/invite). - Add an alias for (un)stickban to correspond to them. Found by: Domino / Patch by: thommey - Fix a potentially endless loop when looking up bot hostnames. Patch by: thommey / Found by: Kiril - We only support Tcl >= 8.2 now. Deal with it. - Remove servlimit variables, unused these days Patch by: guppy - New evnt bind type - preinit-server - to allow CAP implementation in Tcl Patch by: grawity - Better documentation of bind cron/time - New evnt bind type - fail-server - which triggers on failed connection attempts to a server. - Share flags documentation update Patch by: Freeder - Master can no longer .-user another master. Found by: pseudo / Patch by: Freeder - Correct and add missing flags for .help strip, [strip] and [stripcodes] Patch by: Robby - Fixed a typo in the html documentation. Found by: Johannes13 / Patch by: pseudo - Fixed the .match command help. Fixes Trac Bug #85 "dcc match command documentation" Found by: jack3 / Patch by: pseudo - Against all odds we survived unixtime 999999999. Patch by: thommey / Found by: Robby - Fix a special char issue in dccwhois.tcl Patch by: thommey / Found by: dupondje - Make sure match_cidr returns NOMATCH if address families mismatch. Patch by: Robby - Fix match_cidr to always return MATCH if the prefix is 0. Patch by: thommey / Found by: Robby - Export the tcl_result* functions to modules. They're required because access to interp->result will be removed from Tcl. Patch by: thommey / Found by: Nocty - Clarify documentation of mask matching in bind notc. Patch by: Pixelz - Added a [stripcodes] flag to remove mIRC's italics (ascii 29). - Refactored code to clarify 'o' means "ordinary". Patch by: thommey / Found by: speechles - Added a [stripcodes] flag to remove mIRC's CTRL+o (ascii 15) which terminates all bold, underline, color. Also added * to strip everything. Patch by: thommey / Found by: SpiKe, ealexp - Partially revert changes to vwait/update. They are back to only processing Tcl events for now (fileevent/after) as handling eggdrop events turned out to require careful examination of reentrance issues. Patch by: thommey - Call Tcl's bgerror on Eggdrop background errors. This allows custom code to react to errors (and output full $::errorInfo, for example). Patch by: thommey - Remove wrong truncation of ERR_YOUREBANNEDCREEP output to console. Found by: Edelstahl / Patch by: thommey - Fixed the format specifier for the Tcl [traffic] command. Found by: Vertigo / Patch by: thommey - Added missing read trace flag to the nick-len variable trace after being unset to make the trace be removed properly on unload. Found by: Dopsy / Patch by: pseudo - Fixed a bug in the mainloop for Tcl threads which is now also being used as vwait/update recursion mainloop. Patch by: thommey - Ran autotools. - Work around Tcl8.5.10 bug 3371644 (strings starting with # could crash in Tcl_ConvertElement()). TCL_DONT_QUOTE_HASH can be used to work around it, as long as the string is not passed to Tcl_Eval(). Found by: Austin - Use the autoconf macros AC_LANG_PROGRAM/AC_LANG_SOURCE for sourcecode to avoid warnings in autoconf >= 2.68. Patch by: thommey - Make sure to account for null termination when using Tcl_ScanElement to generate a string representation of a list using Tcl_ConvertElement. A behavioural change in Tcl8.5.10 revealed this bug. Found by: various / Patch by: thommey - Moved variable declarations to conform to C89 (beginning of blocks only). Found by: Anon-e-mouse / Patch by: thommey - Documented a .+ban/+exempt/+invite feature allowing to make the hostmask sticky by prefixing the comment with '*'. Found by: Robby / Patch by: pseudo - script listen sockets with the pub flag no longer perform ident lookups Found by: FireEgl / Patch by: thommey - Fixed a bug with connecting to numeric addresses when compiled with --disable-ipv6, reintroduced with a recent sync between branches. Found by: skydrome / Patch by: pseudo - Fixed statuslog documentation. Found by: ziplock / Patch by: pseudo - Fixed a bug with [channel get] returning types instead of values for udefs. Found by: Robby / Patch by: pseudo - Check for pending data on SSL sockets even when select() reports the descriptor's not readable. - Allow moving write buffers for SSL sockets. Patch by: pseudo - Added missing message for incoming telnet connections. Found by: Robby / Patch by: pseudo - Changed the prototype in module.h for check_tcl_event - bind evnt return value now ignored for non-signal events as documented Found by: Robby / Patch by: thommey - Reran autotools - Clarified --with-tcl* usage in configure and mentioned tcl-dev packages. - Fixed some section numbering in doc/COMPILE-GUIDE. Patch by: thommey - Added a little hack to send starttls before password exchange during the initial handshake. Patch by: pseudo - Fixed a problem with sharing causing starttls to fail. Found by: DarkReap1 - Moved STARTTLS early in the bot link process and synchronized the handshake. - Made it possible for ssl handshakes to complete even without data to be sent on the channel. - Fixed an ancient bug resulting in sending uninitialized strings when sharing bot addresses. - Enabled (user)file sending over ssl. Patch by: pseudo - Fixed a problem with resolving hostnames when compiled with IPv6 disabled. - Made server.mod report connection failures properly. Found by: Arkadietz / Patch by: pseudo - Fixed getudef() to return intptr_t instead of int to prevent crashes on 64-bit systems. Found by: izy` / Patch by: pseudo - Fixed a bug in (u)timers which could lead to invalid memory access. Found by: DarkReap1 / Patch by: thommey - Made it possible to specify ssl independently for telnet and user ports when modifying bot addresses. - Changed the syntax of .chaddr and .+bot to use space as a port separator instead of ':'. - Changed the syntax of server list entries to enclose IPv6 addresses in square brackets, instead of using a comma to separate the port. Patch by: pseudo - Fixed dcc_telnet_pass() to not use a constant string with fingerprint authentication, because strip_telnet() may attempt to write to it later. Found by: grawity / Patch by: pseudo - Modified tcl_channel_get to return a flat list of all channel settings and their values when called without a setting argument. - Added two new Tcl commands: [chansettype] returning setting types and [getudefs] listing user defined channel settings. Patch by: pseudo - Added optional count argument to Tcl timer and utimer to allow them run more than once. Patch by: pseudo - Renamed the vhost Tcl variable to vhost4 as it is in the documentation. Patch by: pseudo - Removed -mwin32 on Windows. It's no longer necessary and causes problems with Cygwin 1.7. Patch by: Kirben, pseudo - Removed few wire.mod leftovers. Removed IRC_FUNKICK. Patch by: pseudo - Performed some cleanup. Removed some obsolete config aliases. - Added missing parts of the documentation. Updated news and features for 1.8. Patch by: pseudo - Added -lcrypto when probing for -lssl in --with-ssllib Patch by: pseudo - Removed the never-give-up, sort-users and kick-fun/ban-fun variables. Sorting users shouldn't be a challenge for CPUs nowadays. The rest are rarely used and can be scripted. Patch by: guppy - Removed wire.mod and all references to it. Botnet and partyline encryption are now available using ssl. Patch by: guppy - Modified SIGQUIT handler to restart the bot by default. - Added support for evnt bind procs to cancel default signal actions. - Removed the die-on-sighup and die-on-sigterm variables. - Added a new bind type DIE triggered before a clean shutdown. - Changed the exit status on clean shutdown to 0. Patch by: pseudo - Clarified the OpenSSL version requirements. - Rewrote open_telnet() to make it more useful. - Replaced some calls to open_telnet_raw() with open_telnet(). Patch by: pseudo - Added few autoconf checks for ssl. - Added tls to tcl_status() Patch by: pseudo - Added full SSL support including Tcl commands. - Added support for certificate authentication. - Added support for botnet and partyline encryption using ssl. - Documented the new features and commands. - Fixed add_server() problems with IPv6 addresses in the server list. Patch by: pseudo - Fixed dns.mod on QNX6/Mac OS X/Solaris - Rewrote dns.mod's autoconf checks to detect the resolver library properly on Darwin/Solaris. - Added -lsocket to the list of libraries, searched for res_* functions, in order to support QNX6. Patch by: pseudo - Altered the permission check on the pls/mns ban/exempt/invite commands from USER_MASTER to USER_OP to allow global operators to set global bans. Patch by: pjb - Removed the unrecognized options warning when configuring modules. - Modified -v output and .status display configure options. Patch by: pseudo - Added the process and parent pids to .status output. Increased the precision of cpu time reporting. - Added a new Tcl command 'status' to provide access to cpu/memory/cache information now and some more in the future. Patch by: pseudo - Fixed some problems with IPv6 autodetection and system headers. Patch by: pseudo - Made some corrections to the contributors list, removed a duplicate entry. Patch by: pseudo - Fixed bind cron html documention to be in sync with non-html one. Found by: 64MAAMVDH / Patch by: thommey - Replaced most dns.mod preprocessor definitions with config variables. - Added support for user-specified dns servers and non-standard ports. This is most important for Cygwin 1.7, where the dns server list won't get initialized under some common conditions. - Added a trace to the new variable dns-servers, allowing scripts to get or set the current dns server list. - Added the servers list to the dns module information displayed by .status all Patch by: pseudo - Fixed a bug in setsockname() making it fail with IPv6 enabled due to a variable not being set. Found by: afterlife / Patch by: pseudo - Fix env(TZ) config setting to not contain a space. The space is just inserted in POSIX documentation to clarify, it must not be there. Found by: Digdilem / Patch by: thommey - Made dcc_telnet_new() allow non-latin characters in new handles like other handle validation functions. Patch by: pseudo - Modified src/compat/ replacements of gethostbyname2() and inet_ntop() to not compile when IPv6 is disabled. - Added a missing header preventing gethostbyname2() from compiling on FreeBSD. - Fixed few lines with wrong indentation. Patch by: pseudo - Reran autotools. - Added detection of Tcl_NotifierProcs members to ensure the notifier can be replaced. Fixes compilation against Tcl 8.2 and 8.3. Found by: AlIt0 / Patch by: thommey - Added full IPv6 support. New patch, nothing in common with older ones. - Changed a lot of functions and variables without breaking scripting compatibility. The list of changes is too long to include here. Patch by: pseudo - Updated documentation to reference 1.8 instead of 1.6. - Changed module dependencies to 1.8. - Changed default handlen to 32. - Changed default make type to 'debug' as it should be in CVS builds. Patch by: pseudo - Ran misc/runautotools for 1.8.0. Patch by: pseudo - Ran misc/newversion for 1.8.0. Patch by: pseudo - initial commit of old 1.6.20 source Commit by: simple # 1.8 tree started on July 26, 2010