$Id: Changes1.0,v 1.1.1.1 2010/07/26 21:11:06 simple Exp $ Eggdrop Changes (since version 0.9) _____________________________________________________________________ 1.0t (June 8, 1998): # Released by: KingKurly - Added 'make install' to the 1.0 series. You can still use putegg if you insist, but make install is just too cool to pass up. - Fixed a few annoying little warnings at compile time. Doesn't change functionality at all. How exciting. - Fixed a spelling error or two in the config. Now this is PROOF that I'm bored. - If you already run a happy 1.0p fully patched, or a 1.0s, this is really an unneeded version. I only put it together in boredom. Note how the last two versions I put out were also products of the summer boredom. 1.0s (July 14, 1997): # Released by: KingKurly - Directory/file structure more like 1.1.x. - More tcl scripts loaded by default. 1.0r (July 13, 1997): # Released by: KingKurly [not public, unreleased due to unplugged security hole] - Fixed a small compilation time warning from main.c 1.0q (June 1997): # Released by: KingKurly [not public, internal testing] (basically just 1.0p+dk+pl6) - Added info to README and botchk on how to setup a cron without receiving emails from cron. - Added check for a userfile in botchk. Move the ~new or ~bak file over if one doesn't exist. - Fixed flag bindings for help files. - Added console wallops to log wallops sent to bot. Also added user def'd log levels 6-8. - Updated nets.list for RussianNet and The-Net. - Added action.fix.tcl to the standard tcl scripts. - Added tcl command topic that returns the topic of the channel given to it. Also .topic without arguments returns the console channel's topic. - Fixed nulluser from being shared out. - Added define for the default irc port to connect to in eggdrop.h - Fixed revenge bug of "Banning so and so now..." not setting a ban. - Made +ban be able to set channel specific bans. Also -ban will remove matching channel bans. - Made it so only owners can change a shared bot's password. - New telnet users can't use the bot's name as a username. - Ported beldin's NEWLINKS code from 1.1 - Made .nick be able to be used by any partyline users - Added feature that bot msgs users on channel and partyline that they have notes every hour. The time after the hour is set in the config file with set notify-users-at. - Added an extra * in front of the username in maskhost in case of users not running ident. - msg_ident returns if person tries to ident with bot's name. Could be used for detection. - msg_op requires a password to be set in order to op a user. Also, msg_op can take a channel as an arguement and only op the user in that channel instead of all the channels. - Fixed bug in tputs with logging an invalid socket. - Added setting timezone in config for scripting purposes to keep track of the bots timezone. - Added tcl command resetchan from julius+bel1. - Expanded tcl command dcclist to include bots, files receiving, files sending, and files send pending. - Fixed memory leak in userrec.c - Allowed channels with 8-bit characters in channels. - Undoes the fix in dk+pl4 for the broken file system. - Includes the corrected patch by poptix to change users going to the file system from parting to just being away. Fixes .whom bug. - Fix in altnick suggested by Wild - .whom bug fix for users going to a broken file system - Fix for notes coming in from 1.1 Eggies - Implementation of -user -host and chattr on shared bots for bot entries, but will not affect bots marked +s. - Added share-greet to config file. 0 means do not send out info change to shared bots, 1 do. - Fix for the telnet (dropping a relay) bug reported by DK. - Changes the structure of the "special" character handling code in the dcc_chat function in dcc.c to a for loop instead of a while loop. - Added the code for ESC characters from beldin4e. - Updated nets.list - Fix for new 1.1 partyline join/part stuff, 1.1 - 1.0 - 1.1 botnets now work properly. 1.0p (March 16, 1997): # Released by: Wade - Kickban reasons are now being included in the kick Patch by: ??? - Kickban will now let owner's kickban anyone, and masters can kickban ops Patch by: ??? - 437 numeric on DALnet/Undernet means you can't change your nickname because your nickname is banned, plus some buffer overflow fixes Patch by: cmwagner - 437 numeric (nickname/channel is juped) has been changed to reflect whether it is specfically the channel or the nickname, bot will not change nicknames if the channel is juped :) Found by: Ernst / Patch by: Robey - Botnet routing has been changed, no longer bothers sending out botnet commands to bots that don't exist Patch by: cmwagner - Added 'restart' command, this may cause some problems Patch by: cmwagner - Long nickname mask in whois command caused bot to crash Found by: Ernst / Patch by: cmwagner - Downlink can no longer unlink uplink and cause a nasty amount of noise on the botnet Found by: EraseMe / Patch by: cmwagner - Long filename in dcc send caused bot to crash Found by: Mike Hammarin / Patch by: cmwagner - Sharebots aborting xfers would cause the bot to kill off the wrong socket Patch by: cmwagner - Space before ctcp commands would be stripped off, could be used to detect eggdrop bots Patch by: cmwagner - When rehashing and the bot was using the alternate nickname it would result in the bot thinking the nickname was in use and changing it Found by: seth / Patch by: cmwagner - Party line wasn't being updated when attributes were being changed Found by: imoq / Patch by: cmwagner - Topic command was not letting users change the topic on a non +t channel when the bot was opless Found by: DeathHand / Patch by: cmwagner - Users were not being deopped when channel is set +revenge and they deop Found by: DeathHand / Patch by: cmwagner TO-DO: - Allow dynamic bans to be marked as "forced"? (ie, most bans are dynamic but some could be marked as permanently active) - Tcl commands for: move/copy a file make/remove a dir get/set a dir's required flags get # of downloads for a file - files '.mv' move directories Suggested by: Andrej - '.sort' to sort files - Remote sharing of directories (large project) - Channel-specific flags (large project, v1.1) - 'listen <"bot-only"|"all"|"user-only"> [nick-mask]' - 'listen script ' - 'listen off' BUG REPORTS: - dcc chat with firewalled bot doesn't seem to work (error 2) Reported by: Rajat Goel - Changing nicks every 60 seconds on the undernet (which eggdrop does when it can't get its nick) can be perceived as a flood; suggested fix is to use ISON to determine if the name is available Reported by: Troy Davis - killdcc "on a relay to another bot that was stuck (I had lost the connection to my ISP) and the bot went haywire ('Can't find user for relay!')" SUGGESTIONS: - Be able to leave a parting comment when doing '.quit' Suggested by: a person - Fix up help substitutions (%[ %] is pretty lame) - Quota for file system 1.0o (February 4, 1997): # Released by: Robey [Robey Pointer ] - Solaris sigaction thingy fixed Patch by: dunk - 'kick'/'kickban' won't kick other channel bots Suggested by: Mikael Hammarin - ctcp quoting removed (eggdrop was the only client that correctly did it according to the ctcp-1 spec -- the new ctcp-2 quoting will be introduced once the ctcp-2 draft is finalized in a month or so) Patch by: ButchBub - Server renaming was case sensitive and could sometimes cause a crash (fixed) - Small bug in DEBUG_TCL (fixed) Patch by: poptix - Other bots can't use msg 'ident' command TO-DO: - Allow dynamic bans to be marked as "forced"? (ie, most bans are dynamic but some could be marked as permanently active) - Tcl commands for: move/copy a file make/remove a dir get/set a dir's required flags get # of downloads for a file - files '.mv' move directories Suggested by: Andrej - '.sort' to sort files - Remote sharing of directories (large project) - Channel-specific flags (large project, v1.1) - 'listen <"bot-only"|"all"|"user-only"> [nick-mask]' - 'listen script ' - 'listen off' BUG REPORTS: - dcc chat with firewalled bot doesn't seem to work (error 2) Reported by: Rajat Goel - Changing nicks every 60 seconds on the undernet (which eggdrop does when it can't get its nick) can be perceived as a flood; suggested fix is to use ISON to determine if the name is available Reported by: Troy Davis - killdcc "on a relay to another bot that was stuck (I had lost the connection to my ISP) and the bot went haywire ('Can't find user for relay!')" SUGGESTIONS: - Be able to leave a parting comment when doing '.quit' Suggested by: a person - Fix up help substitutions (%[ %] is pretty lame) - Quota for file system 1.0n (Jauary 6, 1997): # Released by: Robey [Robey Pointer ] - Moved to GNU GPL licensing - ctcp extraction from privmsg improved Patch by: os2warp@invlogic.com - Nick flood was broken (fixed) Patch by: Mr. Wizard - mIRC ctcps and colors stripped from party-line chatter - ctcp behaves paranoidly by popular demand - Changing the nick of a directly-connected bot could befuddle the dcc tables (fixed) Found by: Beldin - Some servers apparently give broken pong replies (copes with it now) - Won't reverse -b modes if they weren't bot-protected bans - 'chnick' wouldn't let you change capitalization (fixed) Found by: Xerxes - '+bot' will not let spaces be part of the address any more Suggested by: vince@who.net - Turns control characters into '?' in a password - Was letting users change nicks to the bot's nick (fixed) Found by: Dan Anatol - 'init-server' is delayed until 001 numeric is received from the server Suggested by: Troy Davis - 'ispermban' Tcl command wasn't working (fixed) Found by: void - Wouldn't correctly finish the nick scroll when it couldn't get any nick (fixed) Found by: void - '.topic' was sometimes refusing to change the topic when the bot wasn't op'd, even if the channel was not +t (fixed) Found by: James Colton - +c common users were not able to use 'hello' msg command (code was all gibberish) (fixed) Found by: Aaron Zollman - GNU configure file updated to handle Tcl 8.0 Patch by: Tom Rini - +secret/-secret channel settings weren't listed in sample config file (fixed) - Remote 'who' requests to unknown bots are no longer broadcast Patch by: cmwagner - Initial ban checking would try to de-ban a number instead of a detested ban (fixed) Found by: Jesse Schachter - console.tcl will filter out c/x/r/o/d/1-5 console modes for non-masters - Console modes weren't removed when a user's +m flag was removed and he/she was still online (fixed) Found by: EraseMe - compile-time option to allow lowercase ctcps - Nick flood protection streamlined and no longer kicks the same user multiple times Patch by: Mike McLagan - Better checking of recently-placed bans (to avoid constantly refreshing a group of bans that are under a minute old and probably pending in the queue) Patch by: Mike McLagan - Some changes to support Cygnus Windows/NT environment Patch by: darkshde, garbanzo - ctcp flood sent directly to the bot wasn't getting completely ignored (fixed) Found by: Dejan Oklobdzija - Tcl 'dccsimul' no longer gives the user a temporary +n ('dccsimul' will now only let the user do commands he/she would normally be able to use) - Motd display could barf on long %C output (fixed) Found by: Seth Mattinen - Nick jupe on Euronet will get treated like "nickname in use" - Updated the README file TO-DO: - Allow dynamic bans to be marked as "forced"? (ie, most bans are dynamic but some could be marked as permanently active) - Tcl commands for: move/copy a file make/remove a dir get/set a dir's required flags get # of downloads for a file - files '.mv' move directories Suggested by: Andrej - '.sort' to sort files - Remote sharing of directories (large project) - Channel-specific flags (large project, v1.1) - 'listen <"bot-only"|"all"|"user-only"> [nick-mask]' - 'listen script ' - 'listen off' BUG REPORTS: - dcc chat with firewalled bot doesn't seem to work (error 2) Reported by: Rajat Goel - Changing nicks every 60 seconds on the undernet (which eggdrop does when it can't get its nick) can be perceived as a flood; suggested fix is to use ISON to determine if the name is available Reported by: Troy Davis - killdcc "on a relay to another bot that was stuck (I had lost the connection to my ISP) and the bot went haywire ('Can't find user for relay!')" SUGGESTIONS: - Be able to leave a parting comment when doing '.quit' Suggested by: a person - Fix up help substitutions (%[ %] is pretty lame) - Quota for file system 1.0m (December 4, 1996): # Released by: Robey [Robey Pointer ] - '.kick' was broken (that's what i get for meddling) (fixed) Found by: tuvix - Since undernet uses 484 ("restricted connection") to mean "you can't kick or deop the channel server", bots that attempted to do this would think they were i-lined (a concept that does not exist on undernet) and jump -- now uses umode +r to detect Found by: Emmanuel Marty - 'banner' could send blank message (fixed) Found by: EraseMe - 'adduser' existed for limbo bots (fixed) Found by: EraseMe - Access check removed from filedb (not all OS's understand it) - Bogus bans/channel keys weren't queueing correctly (could cause inadvertant flood) (fixed) Found by: coolio - 'die' Tcl command added - MSGM bindings checked even if a MSG binding matches Suggested by: bingony - Nick flood protection was horribly broken (fixed) Found by: Dejan Oklobdzija - Console masktype buffer could overflow (fixed) Found by: nitemoon - Won't deop on a ban unless the channel member was op'd (prevents sharebots from sending a slew of deops all at once, most of the time) - dcc transfers will display acked amount in the home stretch - ^C not counted as avalanche material any more - Euronet 437 (nick has been juped) now understood and (sort of) treated Suggested by: genady - Typo on ques3 (fixed) - Mode changes by non-ops will be reversed (apparently on some nets, a desync makes it appear that non-ops are doing mode changes) Suggested by: xerox@foonet.net - whom info wouldn't get updated on a Tcl 'setchan' (fixed) Patch by: Beldin TO-DO: - Allow dynamic bans to be marked as "forced"? (ie, most bans are dynamic but some could be marked as permanently active) - Tcl commands for: move/copy a file make/remove a dir get/set a dir's required flags get # of downloads for a file - files '.mv' move directories Suggested by: Andrej - '.sort' to sort files - Remote sharing of directories (large project) - Channel-specific flags (large project, v1.1) - 'listen <"bot-only"|"all"|"user-only"> [nick-mask]' - 'listen script ' - 'listen off' BUG REPORTS: - dcc chat with firewalled bot doesn't seem to work (error 2) Reported by: Rajat Goel - Changing nicks every 60 seconds on the undernet (which eggdrop does when it can't get its nick) can be perceived as a flood; suggested fix is to use ISON to determine if the name is available Reported by: Troy Davis - killdcc "on a relay to another bot that was stuck (I had lost the connection to my ISP) and the bot went haywire ('Can't find user for relay!')" SUGGESTIONS: - Be able to leave a parting comment when doing '.quit' Suggested by: a person - Fix up help substitutions (%[ %] is pretty lame) - Quota for file system 1.0l (November 11, 1996): # Released by: Robey [Robey Pointer ] - Typo in ques3 (fixed) Found by: Gord- - Limbo bot had compilation error (fixed) Found by: imoq - When using filedb-path, sometimes filenames would get spurious trailing dots added (fixed) Found by: Trond Refsnes - NCSA telnet was causing eggdrop to think two linefeeds happened instead of one (fixed, i think) Found by: pepsi@gear.torque.net - Mass deop detection was broken with respect to +o-o+o-o etc on nets that allow huge numbers of modes per line (fixed) Found by: Sean T. - ctcp flood to channel wasn't causing kick (fixed) Found by: Dejan Oklobdzija - configure was checking for 'awk' and it didn't need to (fixed) - 'whom' info wasn't updated on boots (fixed) Found by: imoq - 'whom' info wasn't updated on dcc floods (fixed) Found by: Beldin - Fixed some weirdness with read-only vars - Version shown in DEBUG output - No longer immediately enforces bans that are placed by a server - Channel ops/bans aren't reversed for other bots (try to prevent two bots from fighting) - Channel ops are no longer exempt from revenge (but friends still are) - Tcl 'getinfo' was stripping off the leading @ on an info line if it was locked (fixed) Found by: Gord- - dcc 'kick' command follows 'kickban'-style checking now Suggested by: Bert Bohla - 'die' will wait a little longer for the server to catch up Suggested by: Bruce Gingery - ctcp avalanche detection couldn't be turned off (fixed, now can be turned off by setting flood-ctcp to 0) Found by: edmiester - Remote boot was getting logged incorrectly (fixed) Found by: Gord- - Display of ban in 'match' is better looking now - Hostmask redundancy checking was being done on the ban and ignore list too (causing sometimes mysterious disappearance of bans or ignores) (fixed) - 'bans ' wasn't checking the hostmask correctly (fixed) Found by: iceman - 'match ' would only show the first ban that matched, not subsequeent ones - Matching ignores are now displayed in 'match' - 'ignores' can take an argument: a mask for matching only certain ignores Suggested by: Xerxes - Ban list would prematurely end if there were no global bans (wouldn't show channel-specific bans) (fixed) - Better handling of IPs (doesn't depend on size of long) - Ignored users still get flood checked Suggested by: Neale Pickett - Compile-time option to let ignored users still trigger many bindings Suggested by: Neale Pickett - Channel-specific bans wouldn't get expired if there were no global bans (fixed) Found by: Gaven Cohen - Warning about permbans given to ops/masters made more specific Suggested by: Nick_ - Would take revenge on itself for deop'ing itself (fixed) Found by: cuentero - Streamlined putlog to try to save CPU and memory - ctcps from channels with '.' in the name weren't triggering bindings (fixed) Found by: Gaven Cohen - File descriptors could get lost in help system (fixed) - filedb checks ctime when updating too - Note bindings won't be triggered by notices from other bots Found by: EraseMe - Wasn't echoing successfully sent notes that got trapped by bindings (fixed) Found by: EraseMe - Tcl 'killchanban' was using wrong args for sending the deban (fixed) Found by: darkshde - Mysteriously vanishing half of a relay could cause infinite loop -- the recovery is cleaner now, though still choppy (this should not happen) - Nick flood protection wasn't passing the whole hostmask, so the bot might sometimes fail to recognize itself, and would punish itself for nick floods (fixed) Found by: Nicholas J. Dear - Random number generator wasn't seeded until after config file (and any scripts that load on startup) were loaded (fixed) Found by: Troy Davis - '+host'/'-host' accepted incomplete parameters (fixed) Found by: rawdon - refresh_ban_kick() was mangling the kick reason (fixed) Found by: Gaven Cohen - Better i-line detection TO-DO: - Allow dynamic bans to be marked as "forced"? (ie, most bans are dynamic but some could be marked as permanently active) - Tcl commands for: move/copy a file make/remove a dir get/set a dir's required flags get # of downloads for a file - files '.mv' move directories Suggested by: Andrej - '.sort' to sort files - Remote sharing of directories (large project) - Channel-specific flags (large project, v1.1) - 'listen <"bot-only"|"all"|"user-only"> [nick-mask]' - 'listen script ' - 'listen off' BUG REPORTS: - dcc chat with firewalled bot doesn't seem to work (error 2) Reported by: Rajat Goel - Changing nicks every 60 seconds on the undernet (which eggdrop does when it can't get its nick) can be perceived as a flood; suggested fix is to use ISON to determine if the name is available Reported by: Troy Davis - Some people say their bot thinks it's i-lined when it's not, but i can't duplicate it, and those people won't send me logs or info SUGGESTIONS: - Be able to leave a parting comment when doing '.quit' Suggested by: a person - Fix up help substitutions (%[ %] is pretty lame) - Quota for file system 1.0k (October 17, 1996): # Released by: Robey [Robey Pointer ] - Spelling fixes - Whom signoff notice was mangled when relaying off the bot (fixed) Found by: Gord- - If expired dynamic bans weren't removed quickly enough by the server, the bot would obsessively deban once a minute until the server reacted (fixed) Found by: Bruce S. - expire-time for bans and ignores was displayed weird (fixed) - When kicked from a channel, queue the join to avoid excess flood Found by: xerox@foonet.net - Changing nicks on the party line wouldn't update whom info on other bots (fixed) Found by: Michele - First word of ban comment was stripped off in the kick comment (fixed) Found by: Gaven Cohen - Idle time was always 15 mins for remote users in whom right after a connect (fixed) - +autoop will make the bot op a user after he/she idents or is .adduser'd (if they're +o) Suggested by: Jesse Schachter - New Tcl command 'whom' Suggested by: Gord- - Fake connections trapped by net module now (was causing failed connects to look like successful connects that got immediately dropped) - Debugging console mode - Better version handling (patches can identify themselves more easily, to the user and to scripts) - Wasn't adding hostmasks correctly for bots when they were on the channel (fixed) Found by: dorgan - Access to help files wasn't following chattr changes (fixed) Found by: Stephen Hunter - People with only +p can now ask for help on specific items - New Tcl commands 'dumpfile' and 'dccdumpfile' Suggested by: goo - 'whom' away info would get mixed up when people left the party line (fixed) Found by: dorgan - Keep track of time connected to a server Patch by: cmwagner - bind 'act' wasn't trapping local actions (fixed) Found by: genady - Long password entry to dcc would overflow blowfish ("ircle bug") (fixed) - Some machines would infinite loop and create huge filedb's if an entry in the file system was removed (fixed) - Filedb will be updated (checked against the actual directory contents) if it's been more than 12 hours since the last update, even if the directory modification time hasn't changed (some changes in the directory, like file-size changes, won't change the directory modification time) Suggested by: Andrej - Bots will pass idle-time hints on connect burst - Tcl 'newchanban' wasn't coping with permanent bans correctly (fixed) Found by: stephenc - Better idle-time display in 'whom' and 'who' - Made read-only variables (can only be changed during rehash): owner, userfile, version (version can't be changed ever) - When keeping all logs, no renaming is done (the log changes names automatically at midnight) Suggested by: genady - When restructuring botnet to get to a +sh bot, if the direct uplink is not +sh, this bot will disconnect from the uplink instead of asking the remote +sh to unlink Suggested by: Gord-, genady - Sharebots will share hostmasks & addresses for bots (and ONLY that info) - tbuf status is shown in 'status' - weed will expire old bans and ignores if you want it to - 'setlaston' will take an optional timestamp argument Suggested by: Gord- - Added 'flush' command to flush resync buffers TO-DO: - Allow dynamic bans to be marked as "forced"? (ie, most bans are dynamic but some could be marked as permanently active) - Tcl commands for: move/copy a file make/remove a dir get/set a dir's required flags get # of downloads for a file - files '.mv' move directories Suggested by: Andrej - '.sort' to sort files - Remote sharing of directories (large project) - Channel-specific flags (large project, v1.1) - 'listen <"bot-only"|"all"|"user-only"> [nick-mask]' - 'listen script ' - 'listen off' BUG REPORTS: - dcc chat with firewalled bot doesn't seem to work (error 2) Reported by: Rajat Goel - Changing nicks every 60 seconds on the undernet (which eggdrop does when it can't get its nick) can be perceived as a flood; suggested fix is to use ISON to determine if the name is available Reported by: Troy Davis - Some people say their bot thinks it's i-lined when it's not, but i can't duplicate it, and those people won't send me logs or info SUGGESTIONS: - Be able to leave a parting comment when doing '.quit' Suggested by: a person - Fix up help substitutions (%[ %] is pretty lame) - Quota for file system 1.0j (October 8, 1996): # Released by: Robey [Robey Pointer ] - Bug in limbo bots (wouldn't compile) (fixed) - ctcp clientinfo now returns error messages like epic - 'whoz' shows the idle time in minutes now Suggested by: LSC - Blank line (just return) was being interpreted in dcc chat as the user saying something (a blank line) (fixed) Found by: LSC - ctcp clientinfo for 'action' was incorrect (fixed) Patch by: peace - Possible assoc overflow (fixed) Patch by: cmwagner - New Tcl commands: 'getdccaway', 'setdccaway' - Note sent to a local user from the bot was displayed incorrectly (fixed) - Tcl 'chhandle' would let you create null handles (fixed) Found by: Stephen P. Clouse - Ban code would attempt to kick even after avoiding a desync re-ban (fixed) Patch by: Hue Truong - Changed i-line detection algorithm slightly, although it probably makes no difference Suggested by: Hue Truong - Blowfish would run out of boxes because it wasn't checking timestamps correctly (fixed) Patch by: cmwagner - New 'note' binding to have the bot do special actions when a note is received for a particular (possibly non-existant) user - Don't set console default to '*' for dcc users on a limbo bot when there are channels defined Found by: ledpighp - '.channel' display format looks better now Suggested by: ledpighp - Channels can have +secret/-secret now to keep them from being advertised on the botnet Patch by: cmwagner - whom info wasn't updated to the botnet after a 'killdcc' (fixed) Found by: Xerxes - Put strong connections back cos some people claimed it made a difference - whois accepted null argument (fixed) Patch by: tartarus - Debug output writing streamlined Patch by: tartarus - Banned users were only getting kicked on join if +enforcebans was set (fixed) Found by: Bert Bohla - Failed userfile transfers would sometimes cause a resync buffer to start up (fixed) Found by: danny - Checking for +v after -o wasn't queued (fixed) Found by: xerox@foonet.net - Tcl 'sendnote' has more extensive return codes - Added 'connect' Tcl command to create outgoing idx connections - New binding 'act' to catch party-line actions - msg 'go' command gives a specific channel now Suggested by: cmwagner - Fixed sunos/solaris detection in configure Found by: Joe Morris - Think i finally fixed the problem with IPs getting sent out in reverse byte order over IRC - Matching bans show up when doing '.match' Suggested by: Nicholas J. Dear - When masking user@hosts, quoting ? or * in username could overflow buffer (fixed) Patch by: Gilles d'Andrea, cmwagner - Made lots of dangerous and slightly incompatable changes to the way bans are stored and created - New team of Tcl commands to add/remove bans (more flexible) - List returned by Tcl 'banlist' contains extra element: creator of the ban - Similar dangerous and incompatable changes to the ignore list (a comment and timestamp are now stored) - New Tcl 'ignorelist' similar to 'banlist' - Sharelink was overflowing buffer sometimes (fixed) Found by: cmwagner - +sa bots were getting remotely unlinked (fixed) Found by: genady - Spelling error in "incompatible" (fixed) Found by: dvlsadvct TO-DO: - Allow dynamic bans to be marked as "forced"? (ie, most bans are dynamic but some could be marked as permanently active) - Tcl commands for: move/copy a file make/remove a dir get/set a dir's required flags - '.sort' to sort files - Remote sharing of directories (large project) - Channel-specific flags (large project, v1.1) BUG REPORTS: - +a bots are not getting linked if +h bots are down Reported by: genady - dcc chat with firewalled bot doesn't seem to work (error 2) Reported by: Rajat Goel - Changing nicks every 60 seconds on the undernet (which eggdrop does when it can't get its nick) can be perceived as a flood; suggested fix is to use ISON to determine if the name is available Reported by: Troy Davis - Some people say their bot thinks it's i-lined when it's not, but i can't duplicate it, and those people won't send me logs or info - Occasional explosions of .filedb for no reason SUGGESTIONS: - Be able to leave a parting comment when doing '.quit' Suggested by: a person - Fix up help substitutions (%[ %] is pretty lame) - Fix weed for bans & ignores 1.0i (September 10, 1996): # Released by: Robey [Robey Pointer ] - New Tcl commands 'encrypt' and 'decrypt' to interface blowfish - Alarms weren't being trapped (fixed) - +f (friends) don't get flood triggered now - Server notices are logged with server (+s) stuff now, not msgs - '+ignore' could overflow (fixed) Patch by: cmwagner - Keeps 3 "boxes" buffers for blowfish to prevent Tcl encryption from running up the CPU time (prevents excessive re-computation of keys that were recently used) - Support for irc 2.9 mode +q (quiet; only servers can speak; useless) - Tries to use 'clock' (ANSI C) if 'getrusage' isn't there Suggested by: ayman - Slightly better algorithm to stack outgoing mode changes Suggested by: Mr. Wizard - Changing telnet port on the fly might lose a socket (fixed) - Fake 'whom' requests weren't getting caught (fixed) Found by: slix - Channel-specific bans tried to be written to a transmit userfile after the file was closed (caused all userfile transmits to go weird when channel-specific bans existed) (fixed) Found by: ledpighp - chmod 600 done right after fopen when writing user files to prevent teeny little window when it was unprotected Suggested by: ledpighp - If channel has no ops, and there are some humans there, 'need-op' will be run just in case it has a magical oper command or something Suggested by: Bruce S. - Directories are given more space for filename length in the 'ls' listing since they don't need the other info displayed Suggested by: stomper - Made 'configure' look for new-style Tcl library names (ie libtcl75.a) Suggested by: Kendrick Vegas - New command 'getaddr' to get a bot's address; 'getinfo' on bots will always return a blank string now (this should keep scripts from getting confused) - Added Tcl commands 'addignore', 'addpermignore', 'delignore', 'isignore' Patch by: Hue Truong - Added 'flud' binding to catch and react to floods as the bot detects them, replacing the bot's normal punishments Patch by: Hue Truong - Help files typos and errors fixed Found by: Bruce S. - FreeBSD uses non-standard names for the Tcl library -- added to configure script Found by: tris - configure script will detect Tcl 7.6 betas now Patch by: tartarus - Will try to detect and compensate for broken Windows "CR-only" input strings - 'weed' was sometimes losing part of the xtra field (fixed) Patch by: Bruce S. - Tcl 'getdccidle' added Patch by: cmwagner - Virtual hosting fixed (we hope) Patch by: tris - Idle times are actually updated for dcc chat/files/script now - 'chemail' didn't complain about nonexistent users (fixed) Found by: Chucky Burnett - Tcl 'rand' would accept and explode on argument of 0 (fixed) Found by: Chucky Burnett - Bot could get confused about its current nickname during rehash (fixed) - recheck-channel would skip bot's nickname, but not if it wasn't using its desired nick (fixed) Found by: Chucky Burnett - Console was getting set to gibberish channel on limbo bots (fixed) Patch by: cmwagner - Tries to cope with ircd 2.9's funky mode-on-join netjoin notices - '-m' option works for limbo bots now (i think) - Away messages from the party line are shared across bots now (for whoz) - User is notified if they receive a note while away - getmyip() returned to normal behavior (see note in net.c) TO-DO: - Allow dynamic bans to be marked as "forced"? (ie, most bans are dynamic but some could be marked as permanently active) - Tcl commands for: move/copy a file make/remove a dir get/set a dir's required flags - '.sort' to sort files - Remote sharing of directories - Permanent yet channel-specific bans (right now it's either global & permanent, or channel-specific & temporary) BUG REPORTS: - +a bots are not getting linked if +h bots are down Reported by: genady - dcc chat with firewalled bot doesn't seem to work (error 2) Reported by: Rajat Goel - Changing nicks every 60 seconds on the undernet (which eggdrop does when it can't get its nick) can be perceived as a flood; suggested fix is to use ISON to determine if the name is available Reported by: Troy Davis - Some people say their bot thinks it's i-lined when it's not, but i can't duplicate it, and those people won't send me logs or info SUGGESTIONS: - Be able to leave a parting comment when doing '.quit' Suggested by: a person - Fix up help substitutions (%[ %] is pretty lame) - Be able to grab a dcc user's idle time with something like 'dccidle' (rumour is there's a patch that does this already) - Be able to grab a dcc user's away status 1.0h (August 7, 1996): # Released by: Robey [Robey Pointer ] - Spelling mistake Found by: blackjac - Dropped relay would cause bad join data to be sent across the botnet (fixed) - Away information is shared among bots now - Idle-time calculated locally for remote botnet users - Doesn't stick user's nickname in '.die' message if signoff message is given - ctcp procs can return 0 to let the bot continue processing that keyword Suggested by: darkshde - Took out Tcl event-loop support ('after', 'socket', etc) since nobody used it and it didn't even compile with some 7.5's - Checking for stoned servers would sometimes ping servers with their wrong name (fixed) Found by: tris - Various changes to make limbo bots less irc-bound Suggestions by: slix - Missing linefeed in transmitted userfiles Patch by: cmwagner - Password checking might explode on null password (fixed) Found by: cmwagner - 'ls dir' would just list the directory entry, not the actual contents (fixed) Found by: blackjac - Compile flag SHAREBOT_BOOTS was actually checking for +d, not +s bots (fixed) Found by: darkshde - Cleaned up some of the IP conversion code in net.c (at Fred1's prodding) - Majorly overhauled the Tcl command stubs and spread them out over 4 files - Tcl 'matchban' command would crash when given a channel (fixed) Found by: Gumbie - Added 'reserved-port' setting for using a certain port for dcc file transfers Suggested by: Jordy - Flood settings can now specify the time-lapse (# of seconds) which still defaults to 60 (probably too high) - Channel-specific bans are stored in the userfile and can be shared i guess - Channel-specific bans weren't set when joining or re-checking bans (fixed) - Some IAC codes would send spurious '7' under gcc (fixed) - +bitch/+protectops still wasn't working (fixed) (i hope it really was this time) - If server hostname is different from the one in the server list, the server list is updated with the new info Suggested by: demon - File system 'chdir' wasn't checking error returns on filedb's sometimes (fixed) Found by: Fred1 - Filedb code was using wrong match routines (case insensitive, bad) (fixed) Found by: Fred1 - Slightly better rejection of unsupported telnet IACs (thanks to ken keys) - 'handle' command renamed to the more intuitive 'chnick' (and 30,000 people will burn me alive for it i'm sure) - Notes are moved along with a handle change now - # of notes shown in 'whois' display Suggested by: ledpighp - Old or no-recipient notes expire during the logfile switchover Suggested by: ledpighp - Moved notes system into its own module for eventual cleanup (yeah right) - Won't block on DNS searches more than 10 seconds - Net module was returning bad lengths for non-binary sockets -- only the telnet IAC code used this, and it only manifested itself as a throw-away of any line less than 5 chars that had IAC codes in it (fixed) - More informative debug info written on crash - Attempts to grab the userfile that abort very early didn't cause an unlink (fixed) Found by: blackjac - ntalk.irc bugfix Fixed by: tris - Tcl 'dccsimul' command broadcast flag changes to sharebots (fixed) Found by: cold fusion - Tried to fix weird bug where +a bots listed before +h bots wouldn't get linked if the +h bots were down - Handles FPE signal TO-DO: - Allow dynamic bans to be marked as "forced"? (ie, most bans are dynamic but some could be marked as permanently active) - Tcl commands for: move/copy a file make/remove a dir get/set a dir's required flags - '.sort' to sort files - Remote sharing of directories - Permanent yet channel-specific bans (right now it's either global & permanent, or channel-specific & temporary) - Tcl access to blowfish BUGS: - None (HA!) - +h/+a auto-linking is not working correctly - Some people say their bot thinks it's i-lined when it's not, but i can't duplicate it, and those people won't send me logs or info 1.0g (July 23, 1996): # Released by: Robey [Robey Pointer ] - Tcl 'killdcc' could kill off the terminal (HQ) user in -nt mode (fixed) Found by: cmwagner - Multihoming fixed Patch by: tris - Little better at checking for stoned servers - protect-ops doesn't reop if the deop was caused by another bot (stops some desync wars) Suggested by: Xerxes - Bans were checked on the wrong hostmask during nick changes (fixed) Found by: tris - Several commands would behave strangely with extra spaces added (fixed) Patch by: cmwagner - file-system-only users were getting binary sockets (fixed) Patch by: cmwagner - Tcl wants fds 0/1/2 left open, but they're redirected to /dev/null now so it can't harm anything - Most normal mode flushes are queued now to avoid the bot flooding itself off when it joins a bunch of channels at once and starts implementing bans from the list - 'adduser' could add users with nicks > 9 chars (fixed) Found by: taz-man - Added PRIVATE_OWNER define so that dictatorial sharebot networks can have one master bot which ignores any +n modes coming from slave bots (all slave bots must therefore have 'owner' set so that when downloading the user file, they will at least have some local +n's that don't exist on the master) - 'invite' didn't recognize net-splits or non-invite channels (fixed) Patch by: tris - Removed "strong connection" since it was a no-op - Userfile marks a version number now, and has upgraded to v2 (will read v1 user files but writes only v2 ones) - Passwords are encrypted now using blowfish (public domain equivalent of DES without silly patent laws or government interference) - Rudimentary socks firewall support (outbound connections only so far) - Repetitive ban checking used wrong timestamp (fixed) Patch by: Hue Truong - Wasn't really switching between m/h queues when dumping to server (fixed) - Cleans out m/h queues when switching servers so they don't get cluttered Suggested by: tris - With quiet rejection off, bot responds to 'help' politely even if it doesn't know the user Suggested by: jonte - Joins & parts of botnet users is shared now, to eventually replace '.whom' in a few versions - '.chinfo' pretended to change info of non-existent users (fixed) Found by: Aaron Zollman - Support for sun firewalls (as much as there can be) -- will barely work, if at all, since "telnet passthru" wasn't meant for machine use - Entering anything but "*bye*" on a relay attempt that hadn't connected yet would crash the bot (fixed) Found by: tris - Entering "*bye*" on a relay attempt that hadn't connected yet would fail to announce that the user had rejoined the party line (fixed) - PRIVATE_OWNER define wasn't actually working (fixed) Found by: Gord- - Updated 'weed' for new userfile format TO-DO: - Allow dynamic bans to be marked as "forced"? (ie, most bans are dynamic but some could be marked as permanently active) - Tcl commands for: move/copy a file make/remove a dir get/set a dir's required flags - '.sort' to sort files BUGS: - None (HA!) - Some complaints that a large filedb file gets created (fixed? maybe?): + Fred1 says it happens in /gifs/abpem, suggesting that the removal/ addition of directories might be a culprit - Channel bans aren't saved in the userfile, or downloaded to other bots: they probably should be. 1.0f (July 6, 1996): # Released by: Robey [Robey Pointer ] - Various patches to fix socket 1 getting treated special when the bot is in the background Patches by: cmwagner - msg 'whois' command had possible nick overrun (fixed) Patch by: cmwagner - Overruns in file system (fixed) Patch by: cmwagner - Bot link/relay wasn't using strong connection for incremented ports (fixed) Patch by: cmwagner - Aborted userfile transfers were killing the wrong socket (fixed) Patch by: cmwagner - Full file system would crash (fixed) Patch by: tris - Sending the userfile over NFS would just send garbage (fixed) Patch by: cmwagner - Much better definition of "bogus" channel keys and bans: char 127, or any char below 32 except ^B, ^V, ^_ - Bots aren't penalized for bogus channel keys or bans - bitch/protectops combo wasn't working quite right on deop yet (fixed): new behavior is that if protectops and bitch are both set, the deop'd person will get re-op'd only if +o or +m Found by: brenny - Can define 'altnick' now to avoid blatantly obvious "Lamebot0" nicks Suggested by: cmwagner - '.status' will indicate if the bot is in limbo instead of saying it's trying to join various servers and channels Found by: dannyboy - Measures and displays server lag in '.status' - Added separate flood threshold 'flood-ctcp' for CTCP floods - Super-long CTCP ECHO/PING/ERRMSG requests are just ignored - strong-connect sockets were losing incoming data at the beginning of the connection (fixed) - Directory wasn't closed after filedb-update (fixed) (maybe this caused the explosive filedb's?) - No longer dumps out existing chat-channel assoc's to new bots when they link (caused stupid floods, etc) - Could possibly flood itself off with channel joins when starting up (fixed) TO-DO: - Allow dynamic bans to be marked as "forced"? (ie, most bans are dynamic but some could be marked as permanently active) - Channel bans aren't passed between sharebots: should they be? - Tcl commands for: move/copy a file make/remove a dir get/set a dir's required flags - '.sort' to sort files BUGS: - None (HA!) - Some complaints that a large filedb file gets created (fixed? maybe?): + Fred1 says it happens in /gifs/abpem, suggesting that the removal/ addition of directories might be a culprit - Option SOCK_STRONGCONN currently appears to be a no-op 1.0e (Jul 2, 1996): # Released by: Robey [Robey Pointer ] - Might confuse lag for a desync, and not kick people who joined while a ban was being placed ("after" the ban was placed, from the bot's point of view) (fixed) Found by: Fred1 - Stupid new '+', '-', '^', '=' preceding usernames are stripped unless strict-host is on - 'set' added to list of commands that are disabled if user Tcl access is restricted (#undef ENABLE_TCL) -- plugs a possible security hole Found by: cmwagner - Tries to avoid abuse of '+ignore' to create duplicate identical ignores Found by: blackjac - Super-long help request could crash the bot (fixed) Found by: darknight - dcc 'email' command didn't have long enough buffer for display (fixed) Found by: cmwagner - Race condition on userfile send and receive at the same time (fixed) Found by: Fred1 - Got rid of some HPUX warnings Patches by: cmwagner - copyfile() would only copy part of a file if it ran out of disk space (now it aborts) Found by: Mr. Wizard - Added 'pushmode' and 'flushmode' Tcl commands - Buffer overrun on check_chanlist() Fixed by: cmwagner - filedb-path wasn't working (fixed) - If the bot cycles a channel, becomes the only member, and still isn't op'd, it will assume it's i-lined and jump - Failed dcc chat was pressing on with assumed successful connect (fixed) - Identity change (changing the bot's nick and then reloading the config file) would wait a while before changing nicks on the server (fixed) Found by: Laurens v. Alphen - Colorization (^B/^V/^_) in bans was considered bogus (fixed) Found by: topcat - Don't re-op someone if they are not +o and bitch is on, even if protect- ops is on Found by: seadawg - Relay uses "strong" connections to try not to be fooled by async i/o - Failed relay attempt would cause crash (fixed) - Bogus IAC packets in telnet connections could cause endless loop (fixed) Exploited by: "eggcrash" - Tries harder to disassociate controlling terminal when running in the background (ie, most of the time) and re-uses fd's 0-2 (server will generally be socket 0 now) TO-DO: - Allow dynamic bans to be marked as "forced"? (ie, most bans are dynamic but some could be marked as permanently active) - Channel bans aren't passed between sharebots: should they be? - Tcl commands for: move/copy a file make/remove a dir get/set a dir's required flags - '.sort' to sort files - Be able to clear all bans Suggested by: blackjac - Tcl command to add and flush mode changes BUGS: - None (HA!) - Tcl 'sign' bindings sometimes crash (?) - Some complaints that a large filedb file gets created (can't duplicate, might be just a rumor): + Fred1 says it happens in /gifs/abpem, suggesting that the removal/ addition of directories might be a culprit - Aborting a userfile transfer is usually fatal now (why?) 1.0d (June 12, 1996): # Released by: Robey [Robey Pointer ] - Turning off flood protection wasn't working for dcc chat (fixed) - 'stat all' display was outdated for channel settings (fixed) - ctcp finger, version, userinfo will not return anything if the responses are set to blank Suggested by: answer - Better handles long file system directory names - '.filedb' thingies don't have to be stored in the actual directories now Suggested by: waxmaster - Xerxes got laid - eggstat wasn't keeping track of the 'xtra' field correctly Fixed by: cmwagner - Userfile was being buffered as it was received (fixed) - Added sets 'my-ip' and 'my-hostname' to override auto-detect in odd cases Suggested by: Rok Papez - Might have fixed OSF/1 problems with DNS TO-DO: - Allow dynamic bans to be marked as "forced"? (ie, most bans are dynamic but some could be marked as permanently active) - Channel bans aren't passed between sharebots: should they be? - Tcl commands for: move/copy a file make/remove a dir get/set a dir's required flags - '.sort' to sort files - Be able to clear all bans Suggested by: blackjac BUGS: - None (HA!) - Tcl 'sign' bindings sometimes crash (?) - osf/1 has dns problems -- no known solution (might be unsigned long problem?) - Some complaints that a large filedb file gets created (can't duplicate, might be just a rumor) 1.0c (June 1, 1996): # Released by: Robey [Robey Pointer ] - Remote 'who' info was putting garbage before the channel list (fixed) - link binding was giving a null parameter (fixed) Patch by: cmwagner - Relays were exploding (fixed) - mprintf/hprintf/putlog could get overloaded (fixed, i think) - Better (?) support for suns in trying to find libs Suggested by: keyoke - Thought all bot rejections were fake (fixed) Found by: cmwagner / Caused by: cmwagner ;) - dcc sends to the bot (including userfile transfers) were being buffered by accident (fixed) - Just does slow bot ping all the time now - console.tcl wasn't restoring console channel correctly (fixed) Found by: Ben Barton - Really dumps bots when they abort the userfile transfer now - Userfile sends were choking (fixed) Found by: Gord- - Was checking for connect timeout even when between servers (fixed) - Support for code 405 ("too many channels") and 432 ("bad nickname") Suggested by: cmwagner - No longer kicks people for having a ';' in their username Suggested by: sprite - Can set maximum number of notes to save for a user (default 50) to prevent someone being flooded by stored notes Suggested by: Robert Brice - Added Tcl: 'getchanmode' Suggested by: Roger Yerramsetti - Can mark a bot +sa now Suggested by: Nate Gardner - Revenge is a channel option now, not a global option - Some Tcl commands ('matchattr', 'userlist', 'chanlist') and dcc commands ('match') would assume anyone matches against a non-existent flag -- now nobody will match a non-existent flag Patch by: answer - Channel chanmode overrun Fixed by: zamf - Tells OS it wants to be able to re-use listening port later Patch by: tris - Uses ISON instead of PING to check for server stoned Suggested by: archon - Tcl 'addbot' command hadn't been working right (fixed) Found by: cmwagner - '.who bot1 bot2' was rude (fixed) Found by: blackjac - sharebot_boots wasn't really checking for sharebots (fixed) Found by: blackjac TO-DO: - Allow dynamic bans to be marked as "forced"? (ie, most bans are dynamic but some could be marked as permanently active) - Channel bans aren't passed between sharebots: should they be? - Tcl commands for: move/copy a file make/remove a dir get/set a dir's required flags - '.sort' to sort files - Be able to clear all bans Suggested by: blackjac BUGS: - None (HA!) - Tcl 'sign' bindings sometimes crash (?) - osf/1 has dns problems -- no known solution 1.0b (May 20, 1996): # Released by: Robey [Robey Pointer ] - Owners couldn't add hostmasks to each other with '+host' (fixed) Found by: waxmaster - Nick floods are triggered by 'flood-join' now instead of 'flood-msg' - Channels missing from the config file on a rehash will be removed - Notes and master-comments weren't always echoing properly for file system users (fixed) Found by: pinchaser - mv/cp in file system would cause chaos (fixed) Found by: pinchaser - ques3.tcl was writing 0-length files (fixed) Found by: imoq - Got confused when it joined a channel with the wrong nick (fixed) - Setting flood levels to 0 deactivates flood protection - No more '.exec' because i killed process control -- it can be done in Tcl anyway - Sharebots queue user changes while a userfile transfer is in progress - Non-blocking ("asynchronous") network I/O now (re-wrote network stuff) - Can stop a relay before it connects - '.debug' shows abridged socket table - '-nt' mode was leaving you on a screwy nonexistant channel (fixed) - Lame -v option - New set 'telnet-bots-only' to allow you to restrict the telnet port to bots (no humans) Suggested by: blackjac - Telnet port can be changed on the fly - New set 'server-timout' to replace the compile-time option - Security hole with 'open-telnets' on (fixed) Found by: cmwagner - Added 'assoc' and 'killassoc' for Tcl - Better protection against the bot flood-checking itself - Bans added via Tcl are now tagged with the bot's nickname, so the ban comment will be displayed on kick - Sharebots won't bitch at each other for removing bans - Much better about letting many channels be used without overflowing buffers - Could send fake bot rejections (fixed) Patch by: cmwagner TO-DO: - Allow dynamic bans to be marked as "forced"? (ie, most bans are dynamic but some could be marked as permanently active) - Channel bans aren't passed between sharebots: should they be? - Tcl commands for: move/copy a file make/remove a dir get/set a dir's required flags - '.sort' to sort files - Be able to clear all bans Suggested by: blackjac BUGS: - None (HA!) - Tcl 'sign' bindings sometimes crash (?) 1.0a (May 4, 1996): # Released by: Robey [Robey Pointer ] - Can use 'ENABLE_TCL' to turn off the '.tcl' command now Suggested by: Jay S. Monk - New 'ntalk.irc' (v4.1) Submitted by: Fred1 - Bind string matching could get locked up Fixed by: Fred1 - DALnet fixes Patch by: cmwagner - Copying a file into a directory where it already existed caused duplicate records (fixed) Found by: Fred1 - Couldn't hide/unhide dirs in the file system (fixed) Found by: imoq - timer/utimer didn't handle bad syntax in commands well (fixed) Found by: dan - Desyncs were causing the bot to repetitively kickban people who joined the channel on a side of the net where the ban did not exist, which would sometimes make the bot flood itself off (fixed) Found by: Nate Gardner - Setting the 'xtra' field blank would crash the bot (fixed) Found by: dan - Small fix to quesedilla Patch by: Gord- - Dropped relay connections weren't REALLY reseting echo (fixed) Found by: imoq - 'rehash' saves the user file first before reloading it -- new command 'reload' will reload the user file without saving it or loading anything else - Could use 'adduser' on bot owners *gulp* (fixed) - 'rehash' will refresh channel settings from the config file now (in case something has changed in the channel definition) - When a master gave extra console modes to someone, they would be lost the next time that person changed their console mode (fixed) Found by: pinchaser - Tcl 'filesend' wasn't really there (fixed) Found by: cmwagner - Small fix to console.tcl - Asks for a disconnect when a userfile transfer gets aborted (i have no idea why this should ever happen, but apparently it does in mexico) Suggested by: imoq - Console mode '*' is all allowed modes - 'null' users and 'none' bans for sharebot no longer happen Helped by: cmwagner - Can detect and use the new standard Tcl 7.5 shared library (hint hint) - Annoying roommate: Xerxes - '.dump' was op-level not master-level (fixed) Found by: skyline - Bans weren't being checked on nick change (fixed) Found by: spacey - Nick binding passed uhost parameter incorrectly (fixed) - Stackable bindings weren't being checked by their individual flag requirements (fixed) Found by: Chad Fawcett - CTCP responses use secondary queue now - Rapid-fire kicks are queued to avoid being flooded off by rapid-fire kicking a wave of clonebots Suggested by: spacey - New channel setting '+stopnethack' that can turn on/off nethack protection - When using undesired nick, bot might idle-kick itself (fixed) Found by: hal - Some socket/fd leaks in the file system could lead to unpredictable filedbs i think (fixed) TO-DO: - Allow dynamic bans to be marked as "forced"? (ie, most bans are dynamic but some could be marked as permanently active) - Channel bans aren't passed between sharebots: should they be? - Tcl commands for: move/copy a file make/remove a dir get/set a dir's required flags - '.sort' to sort files - Be able to clear all bans Suggested by: blackjac BUGS: - None (HA!) 1.0 (April 7, 1996): # Released by: Robey [Robey Pointer ] - Security patch for 'pass' command Patch by: cyberscape - Can do 'comment none' now Suggested by: softlord - Wasn't letting you describe directories any more (fixed) Found by: sabi - Mode change before /who result caused crash (fixed) Found by: imoq - chon copes better with dropped dcc's and channel changes now - Tcl 'putloglev' to write to a user-defined log level (1-5) - 'trace' command was still broken (fixed) - New bans will store and display when they were created and the last time they were active (popular demand) - Tcl 'link' and 'unlink' weren't working (doh!) (fixed) - Finished dprintf'izing - Assoc'd channels are kept in numerical order now - No more support for non-Tcl bots - Was losing memory every time server list was loaded (fixed) - No longer honors outdated op requests done thru non-Tcl - Re-arranged config file a lot to make it cope with multiple channels - New Tcl command 'channel' to add, remove, and modify channel entries - Console now has channel and mode, instead of just mode - New faster match.c from Fred1 - Now only rejects 'who' requests for secret/private channels when the requestor isn't already on the channel - Doesn't keep "hidden" track of memory any more when debugging is off (downside: no way to tell memory leak unless debugging is on) - Bot link/etc notices were going to users who had '.chat off' (fixed) Found by: Xerxes - Added Tcl 'setlaston', 'echo', 'addglban', 'delglban' - '.email' has a more standard syntax now Suggested by: answer - Each channel keeps its own banlist now for temporary bans - Changed various Tcl ban commands to accomidate the concept of having a global banlist + separate banlist for each channel - Channel ban lists are sent by channel name to other sharebots - Revenge generally only adds bans to a certain channel now - Tcl 'channel info' dumps out all the info you can set - Join flood only gets you banned on the one channel now - Was reversing mode changes by fake-op people even if the mode changes were beneficial (fixed) Found by: tris - '/msg pass' incorrect password notice was getting sent to the wrong person (fixed) Found by: archon - '/msg ident' will take an optional nickname now Suggested by: poseidon - '.+bot' will try to add the hostmask if it can find it - Changed meaning of +a and +h flags for bots -- now +h is equivalent of old +ah, and +a is an alternate/secondary link if no +h can be linked - Better DALnet support (maybe not perfect, but...) - Password checking is case-sensitive now Suggested by: Jay S. Monk - Removed helpbot support (useless) - Revenge flag changes weren't propagating through sharebots properly (fixed) Found by: zenoran - Tries not to block longer than 10ms when writing to a socket now - Checks bans against userlist, just in case someone's dumb enough to ban by a hostmask the bot knows - 'unlink *' will disconnect you from the botnet Suggested by: blackjac - Aborting a relay, when a password was being asked for, could keep echo off indefinitely (fixed) Found by: cmwagner - New Tcl command 'getting-users' - Took out the old primitive 'talk'/'ntalk' script support (possibly to be replaced by something better later) - Tries to be more graceful when recovering via '.reset' - Rewrote entire file system and help files - Number of gets for a file is incremented AFTER a successful download now, instead of before - 'text/banner' is shown to people that telnet in - set 'copy-to-tmp' can turn on/off copying files to /tmp before sending them to people (has no effect on uploads, which are still stored in /tmp until finished) - Keeps file descriptor open while sending/receiving a file now (probably not much more efficient on many machines, but apparently it has an effect over NFS) - Wasn't passing flags 8/9/0 over sharebot links (fixed) - Local msgs (') leak to all channels by default now Patch by: answer - Old '.files' is converted to '.filedb' on first access to that directory - New Tcl 'utimer', 'killutimer', 'utimers' to deal with "micro-timers" that operate on the order of seconds instead of minutes - Timers are no longer double-evaluated - File sharing implemented - New Tcl: 'deluser' - Space for tandem bot records adjusted automatically now (no set limit) - Wasn't enforcing a +l mode if someone did +l with a different limit (fixed) Patch by: cmwagner - In help/text files, '%C' is now the list of channels the bot wants, and '%E' is the full-blown eggdrop version - Ignores store nicknames now Suggested by: blackjac - Changed behavior of Tcl 'dccsimul' to be more intuitive - Added 'filt' bindings which filter dcc input - Made Tcl 'dccsimul' give temporary owner access while executing - Alleged support of file transfer recovery now - Lots of Tcl commands to support the file system - Flags '6'-'0' weren't getting loaded correctly (fixed) Found by: Dave Guzeman - '.email' was spazzing out (fixed) Found by: slix - Sockets are non-blocking after a connect now - Something stupid about not being able to leave notes for bots Found by: Xerxes - The xtra field is transmitted between sharebots differently, and should now have no effective size limit - The ILL signal will log a context and continue -- to help find locks - Socket output is queued if it would block (non-binary sockets only), and '.debug' will show the socket queues, in and out - File system wasn't noticing an invalid dcc path (fixed) Found by: dorgan - Moved ' local-only chat to a Tcl script so it's optional - Userfile transfers happen via a DCC send connection now (might be faster) - Added 'save-users-at' and 'switch-logfiles-at' timing options - Killed forked processes were giving "unforseen error 234" (fixed) Found by: plof - 'putbot' wasn't up to speed (fixed) Found by: shadow - 'switch-logfiles-at' in lamestbot was set to octal value (oops) Found by: Xerxes - Bans were overwriting other memory when sent to Tcl to trigger bindings ("yer a dork!") (fixed) Found by: Fred1 - Better way to prevent the bot from going "idle" - CTCP AWAKE wasn't correctly removed (fixed) Found by: cmwagner - Owners couldn't even boot themselves (fixed) Found by: Gord- - 'chattr' was letting you do +b/-b when it shouldn't (fixed) - Leaf rejection was sometimes flooding (fixed) Found by: junkie - Bot was sometimes not noticing when it got its nickname back (fixed) Found by: station - When someone on a channel changed nicks to the same as someone who was net-split, the bot would get confused (fixed) Found by: station - msg 'jump' now requires a password - User caching used when adding users, so that the startup loading-userfile phase will be faster - New console level 's' to record server connect/disconnect/etc - 'unlink *' forces the bot tables and assoc records to be cleared to a sane state Suggested by: Fred1 - filt wasn't working for file system (fixed) Found by: dorgan - Missing linefeed was causing bot tree chaos (fixed by cmwagner) - Was possible to nick-ban the bot with +ban (fixed) Found by: Luke Detering - Better username testing on startup - Few problems with crashing when unlinking bots (fixed) Found by: Xerxes - Hack: Tcl 'putserv' and 'puthelp' truncate embedded linefeeds now, to keep braindead scripts from shooting themselves in the foot - Excessive repetitive invites are no longer logged Suggested by: derrick TO-DO: - Allow dynamic bans to be marked as "forced"? (ie, most bans are dynamic but some could be marked as permanently active) - Channel bans aren't passed between sharebots: should they be? - Tcl commands for: move/copy a file make/remove a dir get/set a dir's required flags - '.sort' to sort files - Be able to clear all bans Suggested by: blackjac BUGS: - Sometimes forks for chat aren't getting their memory freed: =MyBOT= File 'dccutil.c ' accounted for 108/728 (debug follows:) =MyBOT= 821:(010) 821:(010) 808:(06C) 821:(010) 821:(010) 808:(06C) =MyBOT= 808:(06C) 808:(06C) 821:(010) 808:(06C) 808:(06C) [not sure if this still happens] - Sometimes bans are being "none!*@*" ? - Raw mode crashes tclhash.c/563 1.0beta-turtle-patched (April 3, 1996): # Patch by: Robey [Robey Pointer ] - Bugfix patch 1.0beta-turtle (April 1, 1996): # Released by: Robey [Robey Pointer ] - Better way to prevent the bot from going "idle" - CTCP AWAKE wasn't correctly removed (fixed) Found by: cmwagner - Owners couldn't even boot themselves (fixed) Found by: Gord- - 'chattr' was letting you do +b/-b when it shouldn't (fixed) - Leaf rejection was sometimes flooding (fixed) Found by: junkie - Bot was sometimes not noticing when it got its nickname back (fixed) Found by: station - When someone on a channel changed nicks to the same as someone who was net-split, the bot would get confused (fixed) Found by: station - msg 'jump' now requires a password - User caching used when adding users, so that the startup loading-userfile phase will be faster - New console level 's' to record server connect/disconnect/etc TO-DO: - Allow dynamic bans to be marked as "forced"? (ie, most bans are dynamic but some could be marked as permanently active) - Channel bans aren't passed between sharebots: should they be? - Tcl commands for: move/copy a file make/remove a dir get/set a dir's required flags - '.sort' to sort files BUGS: - Sometimes forks for chat aren't getting their memory freed: =MyBOT= File 'dccutil.c ' accounted for 108/728 (debug follows:) =MyBOT= 821:(010) 821:(010) 808:(06C) 821:(010) 821:(010) 808:(06C) =MyBOT= 808:(06C) 808:(06C) 821:(010) 808:(06C) 808:(06C) - Problems with ques3.tcl ? - Sometimes bans are being "none!*@*" ? - None (yeah right!) 1.0beta-stegosaurus (March 28, 1996): # Released by: Robey [Robey Pointer ] - Userfile transfers happen via a DCC send connection now (might be faster) - Added 'save-users-at' and 'switch-logfiles-at' timing options - Killed forked processes were giving "unforseen error 234" (fixed) Found by: plof - 'putbot' wasn't up to speed (fixed) Found by: shadow - 'switch-logfiles-at' in lamestbot was set to octal value (oops) Found by: Xerxes - Bans were overwriting other memory when sent to Tcl to trigger bindings ("yer a dork!") (fixed) Found by: Fred1 TO-DO: - Allow dynamic bans to be marked as "forced"? (ie, most bans are dynamic but some could be marked as permanently active) - Channel bans aren't passed between sharebots: should they be? - Tcl commands for: move/copy a file make/remove a dir get/set a dir's required flags - '.sort' to sort files 1.0beta-rabbit (Mar 25, 1996): # Released by: Robey [Robey Pointer ] - Security patch for 'pass' command Patch by: cyberscape - Can do 'comment none' now Suggested by: softlord - Wasn't letting you describe directories any more (fixed) Found by: sabi - Mode change before /who result caused crash (fixed) Found by: imoq - chon copes better with dropped dcc's and channel changes now - Tcl 'putloglev' to write to a user-defined log level (1-5) - 'trace' command was still broken (fixed) - New bans will store and display when they were created and the last time they were active (popular demand) - Tcl 'link' and 'unlink' weren't working (doh!) (fixed) - Finished dprintf'izing - Assoc'd channels are kept in numerical order now - No more support for non-Tcl bots - Was losing memory every time server list was loaded (fixed) - No longer honors outdated op requests done thru non-Tcl - Re-arranged config file a lot to make it cope with multiple channels - New Tcl command 'channel' to add, remove, and modify channel entries - Console now has channel and mode, instead of just mode - New faster match.c from Fred1 - Now only rejects 'who' requests for secret/private channels when the requestor isn't already on the channel - Doesn't keep "hidden" track of memory any more when debugging is off (downside: no way to tell memory leak unless debugging is on) - Bot link/etc notices were going to users who had '.chat off' (fixed) Found by: Xerxes - Added Tcl 'setlaston', 'echo', 'addglban', 'delglban' - '.email' has a more standard syntax now Suggested by: answer - Each channel keeps its own banlist now for temporary bans - Changed various Tcl ban commands to accomidate the concept of having a global banlist + separate banlist for each channel - Channel ban lists are sent by channel name to other sharebots - Revenge generally only adds bans to a certain channel now - Tcl 'channel info' dumps out all the info you can set - Join flood only gets you banned on the one channel now - Was reversing mode changes by fake-op people even if the mode changes were beneficial (fixed) Found by: tris - '/msg pass' incorrect password notice was getting sent to the wrong person (fixed) Found by: archon - '/msg ident' will take an optional nickname now Suggested by: poseidon - '.+bot' will try to add the hostmask if it can find it - Changed meaning of +a and +h flags for bots -- now +h is equivalent of old +ah, and +a is an alternate/secondary link if no +h can be linked - Better DALnet support (maybe not perfect, but...) - Password checking is case-sensitive now Suggested by: Jay S. Monk - Removed helpbot support (useless) - Revenge flag changes weren't propagating through sharebots properly (fixed) Found by: zenoran - Tries not to block longer than 10ms when writing to a socket now - Checks bans against userlist, just in case someone's dumb enough to ban by a hostmask the bot knows - 'unlink *' will disconnect you from the botnet Suggested by: blackjac - Aborting a relay, when a password was being asked for, could keep echo off indefinitely (fixed) Found by: cmwagner - New Tcl command 'getting-users' - Took out the old primitive 'talk'/'ntalk' script support (possibly to be replaced by something better later) - Tries to be more graceful when recovering via '.reset' - Rewrote entire file system and help files - Number of gets for a file is incremented AFTER a successful download now, instead of before - 'text/banner' is shown to people that telnet in - set 'copy-to-tmp' can turn on/off copying files to /tmp before sending them to people (has no effect on uploads, which are still stored in /tmp until finished) - Keeps file descriptor open while sending/receiving a file now (probably not much more efficient on many machines, but apparently it has an effect over NFS) - Wasn't passing flags 8/9/0 over sharebot links (fixed) - Local msgs (') leak to all channels by default now Patch by: answer - Old '.files' is converted to '.filedb' on first access to that directory - New Tcl 'utimer', 'killutimer', 'utimers' to deal with "micro-timers" that operate on the order of seconds instead of minutes - Timers are no longer double-evaluated - File sharing implemented - New Tcl: 'deluser' - Space for tandem bot records adjusted automatically now (no set limit) - Wasn't enforcing a +l mode if someone did +l with a different limit (fixed) Patch by: cmwagner - In help/text files, '%C' is now the list of channels the bot wants, and '%E' is the full-blown eggdrop version - Ignores store nicknames now Suggested by: blackjac - Changed behavior of Tcl 'dccsimul' to be more intuitive - Added 'filt' bindings which filter dcc input - Made Tcl 'dccsimul' give temporary owner access while executing - Alleged support of file transfer recovery now - Lots of Tcl commands to support the file system - Flags '6'-'0' weren't getting loaded correctly (fixed) Found by: Dave Guzeman - '.email' was spazzing out (fixed) Found by: slix - Sockets are non-blocking after a connect now - Something stupid about not being able to leave notes for bots Found by: Xerxes - The xtra field is transmitted between sharebots differently, and should now have no effective size limit - The ILL signal will log a context and continue -- to help find locks - Socket output is queued if it would block (non-binary sockets only), and '.debug' will show the socket queues, in and out - File system wasn't noticing an invalid dcc path (fixed) Found by: dorgan - Moved ' local-only chat to a Tcl script so it's optional TO-DO: - Allow dynamic bans to be marked as "forced"? (ie, most bans are dynamic but some could be marked as permanently active) - Channel bans aren't passed between sharebots: should they be? - Tcl commands for: move/copy a file make/remove a dir get/set a dir's required flags - '.sort' to sort files