home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 35 Internet
/
35-Internet.zip
/
dance414.zip
/
CHANGES
< prev
next >
Wrap
Text File
|
1999-02-04
|
93KB
|
2,450 lines
Version V4.14
* (gr8ron 1999-02-03) SAY-setting is now overridden if the user has
LEVELBOT or higher (SAY and ME commands).
* (gr8ron 1999-02-03) Added MUTE setting. MUTE command will now
toggle this setting. MUTE won't affect SAY anymore, also MUTE
won't turn WARN off but instead filter out the non-kickbannable
warnings so Dancer will still protect the channel.
Setting MUTE on will not touch any of the other settings either
(TALK, WELCOME and REPORTBAN), but it will override them to keep
the bot quiet. MUTE quarantees that your Dancer will remain quiet
unless otherwise commanded.
* (gr8ron 1999-02-03) USERMOD -C flag added to change the comment
of users. SETEMAIL -N flag added to change the email of other
users (requires LEVELEXPERT). Users with high enough level can now
change the comment and email two ways. Also modified CmdComment()
a bit and removed the ChangeComment() function as it was only used
by CmdComment().
* (gr8ron 1999-02-03) Channel operator status of people splitting and
joining again wasn't updated properly. Fixed.
* (gr8ron 1999-02-03) Added a new function, GetDefaultText(), to get
default language strings instead of the user's default.
Useful for CUT, USERADD, USERMOD and USERDEL inform etc.
* (gr8ron 1999-02-02) Replaced the recursive Match() function with a
faster, iterative match() function from ircd. Slightly modified it
to fit the context.
* (Controller 1999-01-28) Added VOICE and DEVOICE commands.
* (gr8ron 1999-01-23) USERADD and USERMOD won't allow registered nicks that
start with a digit anymore. Not a really useful feature, but makes it
easier to implement certain functionality. Conforms to IRC RFC.
* (gr8ron 1999-01-22) Finetuned OnMode() function.
Changed the way strictop works a bit: when a user with level less than
max(LEVELCHANOP, OPLEVEL) ops a user whose level is lower than
max(LEVELRECOG, OPLEVEL), Dancer will deop both users. Also Dancer won't
deop himself anymore when strictop is on and he doesn't recognize himself
as a LEVELBOT user. Otherwise strictop should be like before, except that
OPLEVEL matters as you can see from above (when OPLEVEL > LEVELRECOG).
* (gr8ron 1999-01-22) Added OPPROTECT setting:
When a user with level less than max(LEVELCHANOP, OPLEVEL) deops or kicks
a user whose level is higher or equal to max(LEVELCHANOP, OPLEVEL), Dancer
will deop the 'abusive' user and op the deoped user (if he was deoped).
Chan-op users can still deop and kick anyone they like.
* (gr8ron 1999-01-20) Finetuned the USERMOD command a bit. One can now
use the -R flag to change the userdata of a specific registered user
with that name prior to another recognized user joined with the same
nick when <nick> is not specified. Otherwise -R works like before.
-P will inform a non-recognized user only if the added pattern matches
the currently joined guest's pattern using that nick.
* (gr8ron 1999-01-19) Added a simple isspacechar macro to replace most
of the isspace and isgraph macros. This allows usage of scandinavian
characters with certain commands as isspace returns true for
scandinavian characters. SPY will now show scandinavian characters
correctly without stripping them from the first two words, EXPLAIN
allows scandinavian keywords, and more. In _NextWord() isspace was also
replaced with isspacechar.
* (gr8ron 1999-01-18) LanguageNum() will now check for shortname too.
This means that users can do f.ex. 'language nl' to set their language
to Dutch.
Version V4.13.5
* (gr8ron 1999-01-18) Added Finnish translation.
Version V4.13.4
* (gr8ron 1999-01-15) Fixed a nasty busy-loop bug in gr8ron's AddKick()
patch.
* (gr8ron 1999-01-15) Added OPLEVEL setting which can be used to
restrict the user-level from which upwards users are allowed to
have and manage ops. Setting OPLEVEL to 0 turns it off. Affects
STRICTOP, OPPROTECT, NETSPLIT, LOCKKEY, LOCKMODE and LOCKLIMIT
when on.
Version V4.13.3
* (gr8ron 1999-01-14) Users are now allowed to use NEWPASS without a
prior call to PASS when user's password is defpass.
* (gr8ron 1999-01-14) Primary language for the bot to use can now be set
online with the SET command (requires LEVELOWNER).
* (gr8ron 1999-01-14) Moved a few strings to language.c
Version V4.13.2
* (gr8ron 1999-01-12) Added banprotect setting which works almost like
the autoop setting, but as the main switch for banprotection.
* (gr8ron 1999-01-12) Fixed IllegalBan(). It was possible to ban banprotected
users when they were not in the channel, as reported by newlook.
* (gr8ron 1999-01-12) LEVELBOT or higher users are now allowed to ban
banprotected users without Dancer interfering with a deop and unban.
* (gr8ron 1999-01-12) Fixed a bug in YP stuff (netstuff.c) that sometimes
copied misc crap to nameserver char array, causing HOST command to
fail miserably.
* (gr8ron 1999-01-12) Added USERDEL -F flag to force an immediate removal of
a user from the userlist.
* (gr8ron 1999-01-12) Fixed a bug in CmdKick() which caused KICK to
fail when used by users whose level was lower than LEVELTRUST.
* (gr8ron 1998-01-12) If a non-passed user tries to CUT his DCC using
PRIVMSG (through server), Dancer should now notify the user about the
required registration with a server NOTICE. This is done because
sometimes a user may lose control to his DCC and he might have
problems cutting his DCC without getting any response from Dancer.
* (gr8ron 1998-01-12) SPY didn't snoop commands executed by guests who
were not recognized as real users. Fixed this.
* (rek2wilds 1999-01-10) Spanish translation added. Thanks to rek2wilds
<rek2@netnitco.net>
Version V4.13.1
* (Bagder 1999-01-08) Euro uses EUR instead of XEU now.
Version V4.13
* (Bagder 1999-01-04) Added Euro and EU to the contry list!
* (Tero JΣnkΣ 1998-12-09) user.c fix, as posted on the list Dec 4.
* (Bagder 1998-09-23) Corrected a long time SEEN bug that made the bot report
incorrect after "nick games", when two people have one changed nicks with
each other and similar.
* (Bagder 1998-09-07) Just removed the warnings the gcc compiler in my new
Linux Redhat 5.1 system showed me.
Version V4.12.2
* (TheCrow, 28 Aug 1998)
A small patch which corrects a couple of syntax errors in language.c and
will make Dancer show the nick pattern as well as the host pattern of the
warning being removed, to fit in with the fact that Dancer now uses nick
patterns in warnings!
Version V4.12.1
* (Tero JΣnkΣ 1998-08-18) Enhanced the AddKick() fix. Distributed as a
separate patch on the mailing list.
Version V4.12
* (Bagder 1998-08-17) As reported by Tero JΣnkΣ, the bot could crash itself
in the AddKick() function during situation of extensive abuse. The AddKick()
function has now been extended to be capable to extend the kicklist in case
of need. This may sort out the problem in i.e IRCnet #amiga.
* (Bagder 1998-08-03) Changed the 'void main' to 'int main' to better apply
to C standards.
(-- Version 4.12-pre used by Bagder)
* (Bagder 1998-07-26) Redhat 5.0 patch. configure failed on the non-blocking
check and transfer.c shouldn't have that #ifdef linux kludge in the top.
* (Bagder 1998-07-20) getopswhenalone.fpl had an error on the last line.
* (Bagder 1998-07-06) No longer prevents opping already opped people. Server
desynch and irc weirdnesses may require it at times and OP flooders should
die anyway. Bah.
* (Bagder 1998-06-16) Ray Akey's patch needed a fix.
* (Bagder) Thomas Finnerup <Picco@Picco.dk> reported a topic problem for
networks that grok topics longer than 128 characters. The max topic limit
was raised to 512.
*** What IRC networks need is a standard way for a client to find out all
network-specific lengths, sizes and other things special for that particular
network so that "we" could adjust automatically... ***
* (Bagder) Dancer 4.11 doesn't compile on a SunOS 5.6 with a gcc that works
perfectly well on 5.5.1. Appearantly a gcc problem. Posted a patch to the
mailing list that lets the 4.11 source compile.
Version 4.11
* Marcus A. Hofmann <marcus.hofmann@stud.uni-muenchen.de> added German!
* Ray Akey <rakey@cnetbbs.net> made a parse.c patch to fix a silly bug.
* (Bagder) Added 'myhost' as a valid setting in the .config file. It is the
same as setting the DANCER_MYHOST environment variable. The environment
variable has priority over the config file string. Remember, to generate a
new neat config file, run 'dancer config >tempfile' and edit the tempfile to
fit your needs before you do 'mv tempfile config' (replace "config" with the
name of YOUR config file).
* (breese) OnJoin() fix for IRCnet extra-data
* (breese) OnPing() fix for i.e gamma.net's spoof-preventer.
* (TheCrow) "a patch that adds an extra config item to dancer.config.
I refer to the TODO file in the Dancer archive:
* A static 4-letter-combo that the bot will always recognize as itself
regardless of the current nick.
and that is exactly what it is supposed to do :)
You can specify 'staticnick' in dancer.config e.g. 'staticnick = emot' then
when you restart your Dancer and do a channel command you can either use the
first 4 chars of the bots current nickname or use this 4 letter static
nickname e.g. 'emot top talk'.
Version 4.10
* (Bagder) On request from Chris Elsworth <chris@celsworth.demon.co.uk>
I made CHGCMDLVL only capable of changing commands that require lower
level than the user using the command.
* (TheCrow) Made WARNLIST use the nick part too for the pattern matching.
* (TheCrow) Made warnadd -b warnings use the nick pattern properly when
constructing ban patterns.
* (TheCrow) Solved some of the problems with excessive commenting on netheals
if the COMMENT is enabled.
* (Bagder) As being showed by Joel Hein <julle@person.dk>, Dancer could not
send PRIVMSGes from FPL programs, so I made Do() work from within FPL.
* (Bagder) SEEN did produce some non-translated text in some conditions, as
noted by Thomas Finnerup <Picco@Picco.dk>. Brian Jensen <brj@vejlehs.dk>
brought me the danish translation.
* (Bagder) WARNADD with a pattern like nick!*@* didn't previously work since
the bot didn't take the nick name in consideration when it compared if the
pattern matches itself. Reported by "Justin (TheCrow)"
<justin@mistral.co.uk>
* (Bagder) WARNADD did treat the nick in a very lame way when the warnadd
parameter was just a nick converted to a pattern. Reported by
"Justin (TheCrow)" <justin@mistral.co.uk>
* (Bagder) Applied the win32 patch brought by Chris Larsen <vader@vader.dk>.
There is now a separate win32/ directory with instructions and stuff for
the win32 version of Dancer.
Version 4.9
* (Bagder) Prevents known users from re-invoking IDENT. Suggested by
"Justin (TheCrow)" <justin@mistral.co.uk>
* (Bagder) Made the shutdown command better deal with the time parameter
if used as first parameter. It should now work even if 0 is the first digit
in the time string. Chris Larsen <vader@vader.dk> reported.
* (Bagder) Removed the extra space in front of the shutdown reason that
appeared for some users. Chris Larsen <vader@vader.dk> reported.
* (Bagder) Dancer lacked the toplevel domain .cd (Congo). Added now.
Robert Martin-Legene <robert@DK.net> reported
* (Bagder) Applied Ronny Bangsund's norwegian updates.
* (Bagder) CTCP ACTION floods are no longer triggering like other CTCP floods
since they are not at all as lethal. Noticed by "Justin (TheCrow)"
<justin@mistral.co.uk>
* Chris Larsen's FreeBSD hint how to get FPL working:
Hmm FPL works nicely for me on FreeBSD 2.2.1 and 2.2.5
I use the Generic UNIX makefile and GCC with the following parameters:
CFLAGS = -DUNIX -DSHARED -ansi -pedantic -g -funsigned-char
CC = gcc
LD = ld
LDFLAGS = -Bshareable -Bdynamic
test it with : #./SFPL ../demo.FPL
check that you have:
/usr/lib/libfpl.a
/usr/lib/libfpl.so.1.0
or in your local library
else do :
cp libfpl.a to /usr/lib/libfpl.a
ln -sf /usr/lib/libfpl.a /usr/lib/libfpl.so.1.0
* (Keith Blakemore-Noble) Fixed the usermod -r <too long nick> problem.
* (Ulf Heiman's) OVERRIDE_USER patch was included for the dirty deed hackers
among the crowd of bot runners who wan to change user id of the bot instead
of using the proper one. You're on your own when going that road.
(These two changes below were posted as commentx2_486.patch 98-02-26)
* (Justin) addition that enables high-level dudes to change other users'
comments by issueing "comment -n <nick> <comment>". Also, setting comment
to 'none' will delete it.
* (Bagder) Andrew Shuttlewood reported an overflow situation when you add a
VERY VERY long comment and then sview'ing the person. Now, 256 characters
is the maximum length of a comment and the output buffer for sview is
enlarged.
Version 4.8.6beta
* Ulf Heiman <eluhe@sydkraft.se> corrected the htonl() problem all the
multi-IP fiddling-around had added to the DCC CHAT.
* (breese) The "final" (?) multi IP fix.
* (Justin) Fixed the flaw that the latest sview fix added.
Version 4.8.5beta
* (TheCrow) Reported and found the bug leaving the comment field out in
various sview outputs.
* Keith Blakemore-Noble fixed a flaw in the server parser.
* (Bagder) Total number of kicks is now counted, and TOP KICK should work
better now! (NOTE: this change is not identical to the patch sent to the
mailing list 1998-02-17)
Version 4.8.4beta
* (breese) I think I've fixed the multiple IP thingy now (not a nice fix
though.)
* (Bagder) %u in ctcppub: in .fplconf did not contain the proper user (in
fact, 'current' was wrong for all CTCP flows...)
Version 4.8.3beta
* (Bagder) Since two independant buffer overruns were reported yesterday, I
spent three minutes adding more boundary checks to the numerous sscanf()
calls. I found several other holes, but I don't think I saw anyone as
lethal as the out-of-channel thing (reported by Alex Holst).
* (Bagder) I also enlarged several buffers used for transfers and decreased
the maximum allowed sizes for some input.
* (Bagder) Regarding the CLIENT bug reported to occur on a multihomed machine
(reported by Andrew Shuttlewood), I have now added an error check that will
add an entry in the logfile if the host you specify in DANCER_MYHOST
doesn't give a proper internal ipnumber for dancer (line 921 in netstuff.c
in the new 4.8.3beta).
* (Bagder) checks for and no longer sends mode +o to guests who are
already channel operators.
* Tero JΣnkΣ's gcc-on-Amiga patch is applied.
* Keith Blakemore-Noble's modified smakefile for Amiga compiles (downloaded
from his site) is included.
Version 4.8.2beta
* (breese) Fixed the multihost thing. To change host (to one of your multiple
hosts), set DANCER_MYHOST to your IP number.
Version 4.8.1beta
* (Bagder) As reported by 'Joker': When the bot is kicked out of a channel,
it doesn't flush its internal ban list. When it rejoins or joins another
channel the former bans will remain marked as ACTUAL to the bot. This will
in many cases make the bot kick any user joining that match one of those
patterns.
* (Tero JΣnkΣ) Corrected two bugs in user.c and two in netstuff.c - the worst
and most serious one being the CUT crash.
* (Bagder) Applied the patch supplied by Ulf Heiman <eluhe@sydkraft.se> and
activated it with the #define LAB_PATCH in dancer.h. If this turns out to
be a good and working patch, we make that the only code in the next
release.
* (breese) PubCTCP() did contain some old code that prevented /me to get
logged and also made public CTCP flooding possible.
* (Bagder) Fixed the logging function to work properly on the first day of
a year! ;-)
* (Bagder) /quit with an odd reason could trick the net split detection and
lead to a crash.
* (Bagder) 'TZ now' should now show the actual local bot time, not GMT.
Version 4.8
* (Bagder) Corrected some YP handling in netstuff.c
* (Bagder) Found and corrected a terrible bug in NewsSave().
* (Bagder) BUG no longer files a report if it is empty.
* (Bagder) In fact, warnadd -b *!*@* didn't work at all. I fixed it. It
now also checks on nick changes, unless nick flooding is going on.
* (Bagder) 'warnadd -b *!*@*' did mess up the nick part. 'Xcal' reported.
* (Bagder) Made the FPL hooks only run once as expected!
* (Bagder) Re-wrote and improved large parts of the FPLinDancer manual. It is
now a lot more accurate and describes Dancer as it is, not as it could've
been.
* (Bagder) ChanInfo(), Join() and Leave() were added to FPL. I also wrote a
tiny script called 'getopswhenalone.fpl' in the example/ directory that
makes the bot leave and join again if left alone in the channel without
ops.
Version 4.7.1
* (breese) Added support for multi-homed machines.
* (breese) Added detection of modes in extended JOIN lines.
Version 4.7
* (breese) Fixed UPPER and BEEP checking, which goofed on HP-UX.
* (breese) Fixed LANGUAGE with no arguments
* (breese) Localised many messages (many still left though)
* (breese) Using ISO 639 abbreviations in language.c now
* (breese) Colour code kick is now part of the normal warning system.
* (breese) Fixed DO not to crash on "DO #channel +b %s".
* (breese) Fixed BANLIST not to crash if %s!%s@%s (or similar) was banned.
* (breese) Fixed the TELL functions so that they ignore prefixes
Version 4.7beta6
* (Bagder) LANGUAGE with no parameters will now list all available languages.
Using a substring of a language will also be sufficient to select one.
* (Bagder) Now records and stores whether a user is ircop when (s)he joins.
* (Bagder) Introduced 3 new 'flags' to the UserInfo() command (in fpl) to
check user-data with: "ircop", "voice" and "chanop". They will make
UserInfo() return 1 if the user has the specified flag enabled, and 0 if
the flag isn't set on the user. Example usage:
void CrawlforOper(string nick)
{
int ircop = UserInfo(nick, "ircop");
if(ircop)
Send(nick, "Oh you mighty op, your word is my command");
}
Version 4.7beta5
* (breese) Pointed out a bug in the UserInfo code.
* (Bagder) FPL errors are now logged, stderr is often useless for that.
Version 4.7beta4
* (Bagder) Added support for UserInfo() in fpl. Used like
string nick = "foobar"; /* nick name to check */
int level = UserInfo(nick, "level"); /* returns level of the user */
If the nick isn't found in the channel (or the second parameter to this
command isn't "level"), -1 will be returned.
* The verbose flag for USERLIST was not set by default. (Reported and fixed
by chippi@umich.edu)
Version 4.7beta3
* (Bagder) 'dontsiteban' is a new entry in the .config file that allows a list
of domain patterns that should *never* be sitebanned by the bot.
* (Bagder) I have now included the FILEGET scripts in the script/ subdir. To
try them out you need to scan some sources to find out...
* (Bagder) Included my new urlget.c which replaces the older httpget.c in the
currency directory. This can get files from ftp servers as well as http and
gopher. Bugfixed the http part too.
Version 4.7beta2
* (Bagder) No longer replaces the nickpart in warnadd *!*@* style patterns
with a '*' to allow warnings on nick-dependent patterns.
* (Bagder) Also removed the '!', ']' and '[' from the list of illegal letters
since they're too likely to be used by lusers.
* (Bagder) Adjusted the banpattern generator. If a user with a 'bad' letter
in the user name gets banned, Dancer previously changed that into a site
ban. This fix now checks for a previous ban on that site, and only if there
is none it will be made into a siteban. Otherwise a standard userban will
be used.
The reason for this is of course to make it ban, since the siteban won't
take effect if there already is a ban on the site. The question remains of
course if it shouldn't REMOVE the single previous ban instead before and
then set the siteban (of course only if there really was a single ban).
* (Bagder) DCC CHAT broke down (due to FILEGET stuff). Works again now.
Version 4.7beta
* (Bagder) FILEGET concept. This is still #ifdef BAGDER. It needs external
scripts to work.
* (Bagder) 'SET LIMIT <ON/OFF>' enables/disables channel limit (+l) locking
and with SET CLIMIT the prefered limit is set.
* (Bagder) CLIENT on a bot running on Linux (and more) didn't work
* (Bagder) My change of include-files in dancer.c caused some errors that I
think I've fixed now.
Version 4.6.6
* (Bagder) AndyS reports that the long-tells bug is still there. I remade the
TELL command to split long tells into two separate tells.
* Martin Galipeau <sevenup@Pouet.endirect.qc.ca> brought the french
translation.
Version 4.6.5
* (breese) Discovered two language.c errors, one of them caused a sigsegv.
* (Bagder) Corrected a multiple include problem of config.h. I also made
setup.c no longer use __CONFIG_H but __SETUP_H instead
Version 4.6.4
* (Bagder) Now the alert-on should be logged properly and even increase
"alert-level" for each time alert-ON is called. Perhaps we might even
soon make some of the defense-mechanisms in Dancer actually use the
alert level to trigger things more easily...!
* (Bagder) 'SET' no longer shows set-groups for persons that have lower
level than the group require. I.e, the OWNER group should now only be
visible for OWNER level people.
* (Bagder) Now limits the length of a TELL message to 450 characters. (Bug
reported by AndyS)
Version 4.6.3
* (Keith) Added some defines to config.h.amiga
* (Keith) Unwrapped some texts in language.c, which caused some compilers
to choke.
* (breese) Fixed a bug in SeenAddNick(). Checking if strdup() fails
should probably be added in a million places.
* (breese) Fixed a CONVERT bug (reported by Deryk Robosson)
* (breese) Added some translations
* (breese) Remove the beta-ism (only major versions, X.Y, should be
made beta versions)
Version 4.6.2beta
* (Bagder) Fixed a bug in AddToBanList()
Version 4.6.1beta
* (Bagder) Extended the news help texts (and made the news commands show them)
* (Bagder) Applied Bobby Billingsley's colour-kicker patch.
Version 4.6beta
* (Bagder) Started working on the new news system.
NEWSADD, NEWSDEL and NEWSLIST now exist in the system. So does an extra
field in the user file and 'newsfile' and 'newsexpire' in the .config
Use 'dancer config' as usual to incorporate the new things easily.
* (Bagder) Fixed (yet another) bug in TELLDEL.
Version 4.5beta
* (Bagder) Removed one of the IDENT commands! =)
* (Bagder) 'USERMOD -P -' now strips the prefix from the pattern before it
is added.
* (Bagder) The bot could accidentaly say phrases using the wrong language
(on flood-kicks etc). This is now fixed.
* (Bagder) More translations.
* (Bagder) Saiful!terje@hut-modem-28.hut.fi helped me compile and test Dancer
on Digital Unix and AIX.
Version 4.4.7beta
* (Bagder) Changed the install-script to not use the substr expression
in expr since reports prove that to be missing in some systems.
(Zoran Babic <babicz@mafpz.fpz.hr> reported.)
* (Bagder) The CMD command now allows level 999 on users.
* (Bagder) Checks for '*' in host names on join and mark them as 'illegal'.
If FLOOD.FAKENAME is enabled, the bot will kick immediately. People marked
as 'illegalname' will not invoke ban-due-to-multiple-kicks since their
host mask may very well become a very nasty host mask. Like the guy who
joined with a host mask like "*@*.*"...
Version 4.4.6beta
* Hans Hasselaar <hanshass@xs4all.nl> brought the dutch translation.
* (Bagder) KickAll() no longer kicks users that have level 200 or higher
even if they match the pattern.
* (Bagder) Made 'sview -a' on non-joined persons still show the info about
who did what to the person last.
* (Bagder) Trying a command in public that isn't publically available will
now make the bot /notice the user about it.
Version 4.4.5beta
* (Bagder) I changed the >20 minutes lag check to also require >20 minutes
since last server-input
* (Bagder) Ronny Bangsund <vacuum@newmedia.no> wrote the norwegian
translation.
Version 4.4.4beta
* (Bagder) Made 'dancer config' output the listed items without the spaces
in between them which made i.e 'server' to fail ;-/
* (Bagder) Added a check that makes the bot consider >20 minutes lag a
disconnected connection.
Version 4.4.3beta
* (Bagder) Added the newest httpget to the archive.
* (Bagder) Applied Vader's fix that allows negative arguments to BACKLOG.
* (Bagder) Added 'warnmonths' to the .config file. It tells how old a warning
must be before it gets deleted from the warnlist. The time is measured from
latest warning or if never warned for, from the set time.
* (breese) Added lots of danish texts.
Version 4.4.2beta
* (Bagder) LANGUAGE is a new command a user can set its preferred language
with (from the few supported ones of course). The bot will then attempt
to keep all conversations with that user using that specified language.
Language is also saved in the user file and if it differs from the default
language, shown in the sview output.
* (Bagder) Added the BANUSERKICKS set item in the BAN group. It sets whether
to take ordinary users' kicks into consideration when the bot decides if it
should ban for too many kicks within a limited time. If disabled, only the
bot's own kicks are counted. If disabled, this decreases the security of
your channel a little since the ban trigger level will take longer to reach
during attacks. (Requested by AndyS.)
* (Bagder) Made the example dancer.config only contain a comment about how
to generate a new example file ;) I also removed the obsolete .passwd file
from the example directory.
* (Bagder) Added the useradmin.html file to the archive instead of the ASCII
version. Writing the docs in html right away makes it a lot easier to put
nice versions online ;) This one is also slightly updated.
Version 4.4.1beta
* (Bagder) I've been told the HPUX fix works. Good.
* (Bagder) Made the install-script use the 'dancer config' feature to make
installations get a version of the latest setup file as dancer.config.
* (Bagder) Modified the FAQ a bit.
* (Bagder) More translations and more texts moved to language.c and the
proper text system. (*sigh*)
* (Bagder) Removed the %s from the 'comment:' output in SVIEW.
* (Bagder) Added 'defaultpasswd' to the .config items. By changing this, you
can alter the password set to all users when they are added with 'useradd'.
Changing this, you improve the security slightly since the average Dancer
bot user from other channels won't know the default and most vulnerable
password of your particular channel and bot.
* (Vader) Applied breese's suggestion to prevent the default password from
being possible to use with IDENT and also made the bot complain on all
identifications done with the default password.
* (Bagder) Now hides IDENT from the cmd output if identprotect is ON.
Version 4.4Beta
* (Bagder) Inserted my previously posted HPUX fix for the getdtablesize().
I haven't got any reports about the functioning of this, so I have just
assumed it works ;)
* (Bagder) Wrote a memmove() replacement function in case of need (like
in SunOS 4).
* (breese) Added memmove() and getdtablesize() checks to the 'configure'
script.
* (Bagder) Running the bot with 'config' as parameter, will make the bot to
output an [example], well-commented, .config file on stdout. A very good
use for this is to start your bot config session by running "dancer config
>dancer.config" and then edit the dancer.config file according to your
wishes and desires before you run the bot for real.
I carefully designed this to read the current settings first and output the
"old" settings set properly in the output (using the new comments).
Therefore, if things work as they should, we could make it a habit to
invoke a 'dancer config' after each update and then get the latest comments
and setup (even nicely documented!) in your .config file.
* (Bagder) The .set file is now saved with included comments.
* (Bagder) Introduces the IDENT command. It is an eggdrop look-alike that
let any user to add its current host pattern to his 'account' by entering
IDENT <password> [registered nick]. The 'IDENTPROTECT' item can be set to
prevent this command from being available.
* (Bagder) Made tells get stored safer. Also made the tell messages get
saved on each TELL command invoke.
* (Bagder) Improved USERLIST with lots of flags and options according to
requests. (As discussed on the mailing list.)
Version 4.3.5
* (Bagder) Fixed the 'HELP SET' bug.
* (breese) Fixed a TELLME bug.
* (breese+Bagder) New language system. Danish and Swedish texts added.
There is a recognized 'language' label in the .config file now. 'english',
'svenska' and 'dansk' are supported.
* (breese) Reworked the language systems.
* (breese) Added danish as an optional language (without any way to
select it :)
Version 4.3.3
* (Bagder) Made the SEEN use the options properly.
* (Bagder) Made the BAN-settings get saved (and understood when read) with a
proper "ban." prefix.
Version 4.3.2
* (Bagder) Introduced a BACKLOG command that displays the last X commands
entered by users. Requires 200.
* (Bagder) Made JOIN and LEAVE require 100.
* (Bagder) Made WARNLIST a level 20 command since all it does is list the
warns.
* (Bagder) Made the link-stuff close down nicer. If no config file was
found, it crashed.
* (Bagder) Added a sanity-check in the seen-file reader routine. Thanks to
AndyS who "borrowed" me his broken seen file! ;)
* (Bagder) Removed quoting from Action() since there wasn't possible to
send control codes in i.e warning texts otherwise! (seen in #amigaswe)
* (Bagder) The ban due to repeated kicks got wrong 'who' field set.
(reported by fellow Cstar)
Version 4.3.1
* (Bagder) Made the STRICTOP only complain on +o ;)
* (breese) Support for stacked/embedded CTCP
* (breese) Under some circumstances it decided to use the same socket
for both the server and the link stuff, which naturally caused lots
of confusion and odd behavior. (this was actually a 4.3 patch, just
forgot to put it here)
Version 4.3
* (Bagder) Now ignores commands sent by itself (through the DO command).
* (Bagder) Changed the 'getrates' script to use the new httpget format.
* (breese) Fixed httpget.c to use better input format.
* (Bagder) Fixed the crash that happened when adding an explain longer than
256 characters.
Version 4.2.3
* (Bagder) [on request] Introduced the 'STRICTOP' flag. Enabled, it prevents
any non-regocnized user from getting opped by someone without very high
status.
* (Bagder) Logs error messages from the server.
* (Bagder) Prevents TELLs to users without patterns,
* (Bagder) Improved TELLDEL. Accepts delete of ID 0 and now allows deletion
even if you've changed machine name.
Version 4.2.2
* (keith) Brought the 'smakefile' for [better] amiga compiles.
* (breese) Measure lag in milliseconds now (and fixed the lag thing
which didn't look like it was working at all.)
* (breese) Fixed a CTCP USERINFO bug.
* (breese) Introduced the stealth user flag
Version 4.2.1
* (Bagder) The version string will now use its own file ("version.h") to
prevent the dancer.h to get changed and re-RCSed all the time.
* (DarkDesgn) Made the CMD command compile and run properly on amiga.
* (DarkDesgn) Made the config.h.amiga #define HAVE_NO_GREP and the FIND
command now can scan the index file without external commands (using
plain and simple strstr()).
TODO: perhaps we should make the 'configure' script check for the grep
command and reverse the #ifdef to HAVE_GREP.
* (breese) Added CTCP quoting
* (breese) It now correctly records if people are voiced or not
* (breese) Made the voicing for MODERATE use +vvv and -vvv if possible
* (breese) Moved EXCHANGE to LEVEL_RECOG per default, to prevent
granting access to an external command to all unknown.
* (breese) Fixed tiny details to make it compile on Ultrix
* (breese) Added REMOTE/ON command to make linkbot perform a command,
although this isn't implemented in the underlying links yet.
* (breese) Improved link communication. Made all multicasting go
through link too.
* (breese) Made chat cmdchar less hardcoded, and changed it to '!'
Removed ! as alias for DO.
* (breese) Fixed the output of USERDEL
Version 4.2
* (breese) Fixed the CUT-bug that crashed on Linux.
* (Bagder) Adjusted the user admin text a little according to Vader's
and breese's comments.
Version 4.1.5
* (Bagder) Added 'UserAdmin' in the doc/ directory.
* (Bagder) Adjusted the totaljoins fix to make it work!
* (Bagder) Added lots of new currencies to the country array. Improved the
FindByCurrency() (for countries that use other country's currencies).
Also found new currency sites and improved the get-script and parsing
scripts a lot.
* (Bagder) USERADD accepts '-n <passwd>' which sets the specified password
for the user at add-time. (requested by RexOrient)
* (Bagder) Updated the FAQ.
Version 4.1.4
* (Bagder) Added a crontab example showing how I do to get the currencies
automatically.
* (Bagder) Added a new field to the command struct called 'hide'. If set to
true, this command won't get visible in the logfile or spylink (set for
OP, PASS, NEWPASS, TELL, INVITE and the aliases to them) to work better
(previous "leaks" were found i.e for the OP aliases).
NOTE: the usage of the commands are still sent to the spylink and written
in the logfiled but the lines will be masked like they have always been.
* (Bagder) Added even more info on top of new logfiles. Now includes bot's
nickname and op-status, bot version and uptime info.
* (Bagder) Rewrote the logfile naming. It should now name old logfiles like
'<logfile>.<year><month><day>'. Hopefully this now deletes them properly
too.
* (Bagder) Remade the chat-mode commands to use , as prefix letter. (actually
made already in 4.1.3)
Version 4.1.3
* (breese) No longer specifies '-O2' in the Makefile since too many errors
have been found connected with that one.
* (breese) re-applied the 'explain -s' patch that somehow got lost
* (breese) Fixed CTCP not to answer invalid requests, like a
missing ^A (for instance ^AVERSION)
* (breese) Improved logging of ignored CTCPs.
* (Bagder) Added some left-out items to the example dancer.config file.
* (Bagder) Introducing the new dir-naming. The dancer dir included in the
archives will from now on be named 'Dancer-<version>' and the archives
will be named 'Dancer-<version>.tar.gz' and 'make tgz' and 'make lha'
both work dynamically with the existing directory name now.
* (Bagder) The CHAT system now features a few commands. Enter CHAT mode
command preceeded with '/'. They are only available and recognized when
entered from DCC chat when CHAT mode is active:
/echo - toggles echo mode
/help - shows the help text
/me - writes action-like lines
/names - lists all locally attached chatters
(AndyS requested)
* (Bagder) 'hostisp' now enforces host-style userdomain patterns.
* (Bagder) The multiple-joins check now kicks all users from the account that
has joined with more than FLOODJOINS (a new SET, also present in the
.config with the name 'thres.floodjoins') default set to 3.
* (Bagder) Oops. Now it loads the DELETE flag properly.
* (Bagder) Fixed the main Makefile to work with simply a 'make' the first time
instead of 'make configure'.
Done to 4.1.2 but not mentioned in the actual 4.1.2 archive:
* (Bagder) 'hostisp' is a valid item in the .config file. Enter a list of
patterns with ISPs that should not never get sitebanned. The users of ISPs
of this kind may also get other treatments soon.
* (Bagder) Corrected a silly sscanf() mistake in the exchange routines. Also
made the exchange abort if there's no currency information for the entered
country.
Version 4.1.2
* (breese) Found and removed a core-bug in OnMode() in server.c (in the new
ban-record-try-to-find-nick stuff)
* (Bagder) Made an EXCHANGE command. It should exchange between currencies.
- Currency information retrieval is external. I've written a little program
that downloads a specific webpage. (httpget.c should be included)
- Web page to currency rate format is external. I've written a script that
works great with the http://www.ny.frb.org/pihome/mktrates/forex12.shtml
which I intend to use. It has up-to-date information on ~37 currencies.
(frbparse and sedcurr should be included)
- Currency translation is done by an external program. Dancer calls the
command speficied with 'exchangecmd' in the .config file. The command
gets a complete command line and should take care of all result-
presentation.
I've written a script that works with files in the format my 'frbparse'
script outputs. (the 'rates' file should be generated by the frbparse
program).
- The 'EXCHANGE' command itself handles dot-style, known currency names (I
have added some 70 currencies known to me to the country.c array) and
country names. It then feeds the external command with the known
information, including amount, names of the currencies, names of the
countries and names of single units of the currencies.
- This system can easily be extended to get the information from several
sources. All you need to do is to write additional page-parsers. It is
also fully aware of situations when currencies appear and disappear from
lists.
- 'EXCHANGE list' lists all available currencies right now (may vary from
day to day if the web-service varies).
- 'EXCHANGE <currency/country>' will present currency information for the
specified country/currency. Short names and dot-style domain names are
also searched for.
Version 4.1.1
* (Bagder) Made the old BDUG use the DBUG one. THIS DOES MAKE THE LOG COMMAND
NECESSARY TO REINVOKE DUE TO MOVED FLAGS!!!! DO NOTE!!! RE-SET YOUR PREFERED
LOG-STATUS!!!
* (Bagder) No longer performs double CloseConnection() calls when CUT is used.
(it is still properly done within the RemoveClient() body)
* (Bagder) Checks that there is a split-server list before trying to scan it.
(caused a SIGSEGV when the bot was started with no .config or .users)
* (Bagder) The .users file is slightly changed again. All lines starting with
the (registered) nick name are now prefixed with a space. The scanning
function of course still deals with the old-style, but all new files will
be written with the new style. Done to avoid [future] problems. This makes
.users files written in this version impossible to read in older versions.
Hopefully the last time we see such a move with the .users file.
* (Bagder) #ifdef'ed out the unused SaveComment(). Are there more?
* (Bagder) Now dynamically counts the number of seen nicks and hosts instead
of just counting them at load-time.
* (Bagder) Made the seen-save only get done if there was a change to the
seen data. If it isn't saved, a log line will still be added saying so.
This way, there won't be no .seen file when starting the bot without the
proper files, or when starting the bot when it can't connect to any server
and so on.
* (Bagder) Made the Log() function only print the data to stderr if the log
stuff hasn't been inited. This way, every error prior to the loginit will
get visible (if invoked from a visible terminal). Then we don't need
duplicate error messages in dancer.c.
* (Bagder) Added a bunch of new checks that the bot really is chanop before
trying to perform a bunch of commands. It gives better serives to the user
of the commands as well as it doesn't load the server with silly commands.
* (Bagder) Now scans the DO command line and cancels QUIT commands. Quitting
the bot should be done properly with the QUIT command. We might consider
and implement further protection for other commands such as #join etc too.
(breese's idea)
Version 4.1.0
* (Bagder) When a ban is recorded from the channel, Dancer does now try to
attach a nick to the pattern by first looking through the channel for a
person joined matching the pattern, and then it looks through the kicklist
for a match. If it finds a match, the ban-entry gets the GUESSNICK bit
set and when listed, the nick will be embrased with braces like {nick}
instead of (nick) if it was "guessed".
NOTE: In normal cases, this will work flawlessly. Like when someone bans
and then kick a single user. During attacks and when re-arranging bans,
it will without doubts enter wrong nicks sometimes. The nick name does
not matter in any other way than as a short cut for unbans etc.
* (Bagder) Went through a bunch of items in setup.c and made sure only one
of the duplicates are saved in the .set file. There's no reason to save
two lines with the same info. The old items are still read and recognized,
but the new version is saved.
* (Bagder) Added SHOW to the command list. It doesn't do any difference at
all when it comes to functioning, but now it is visible in the command list
and better supported with SYNTAX and HELP.
* (Bagder) Added TimeToSec() in the fpl-controller. I think you all should
have a timer.fpl in the example/ dir now that shows how to add a command
to the bot that features an easy timer function.
* (Bagder) Added USERDEL. It sets a flag on the specified user (and if the
user is joined and -q wasn't used, it is informed) and if the user isn't
changed during the following month, it will not get saved after that
period. You may only remove a DELETE flag with 'USERDEL -U' (for undo).
You cannot set a delete flag twice, you cannot remove a delete flag from
someone that doesn't have it set and you cannot flush or in any way force
the user to get removed from the list before the timeout month has passed.
Any other modification of the user will make the timeout time (30 days) to
start over.
Added the DELETE flag to sview, load and save functions too.
* (Bagder) Added awareness for *!*@* style patterns in the TELL mechanism.
In some cases it picks the pattern from the userdata, and since that does
support the nick-part, the TELL routine(s) should be aware (and strip the
nick-part).
Also made better sanity-checks in the AddTell() command to check for illegal
patterns that may have been added to a user...
Added small checks in USERMOD and USERADD that prevent too weird patterns.
They _have_ to contain the '@' character.
(done after reading a gr8ron report)
* (Bagder) So I forgot to make a correct version number in the 4.0 dancer.h
Version 4.0Release
* (Bagder) SHOW to a channel can only be done by CHANOP level people.
SHOW to a channel now requires the command to be publicly useable
(which was a previous leak some found out about).
* (Bagder) Added '@' in front of the chanops' nicknames in the log-text
written on join and /WHO listings.
* (Bagder) Automatically marks its own entry in the guest-list as 'Bot'.
* (Bagder) Now the bot counts total joins for the registered users on all
their registered hostpatterns. For now, it will check if the hostpattern-
counter is larger than the 'totalcount' and then set the totalcount to
the highest amount. This way, moving to the new counter should be
invisible to users. ALSO, the old way still needs to be maintained to be
able to count joins on non-registered users.
* (Bagder) I cut away some of the welcome bullshit output dependent on the
join-count. I "had to" do it since I changed the way the join-count is
achieved.
* (Bagder) I went through server.c and made all calls to FindNick() actually
check the returncode. We might get actions from the channel that affect
users that we won't find with FindNick() at times when we have just joined
the channel without gotten the complete /WHO list.
* (Bagder) Kicksystem.
- Extended the kicklist to 15 items and multikick-means-ban to 10 full
minutes.
- Rewrote the flow in AddKick() slightly. I will do some more debugging
to see why multipl instances of the same pattern can occur in the list.
- When adding a new item to the kick list, it could use the wrong pattern.
- The kicklist command has a little more informative last line.
- BAN_ENFORCELEVEL is now using the new level-system.
* (Bagder) Warnsystem.
- The WARN_TIMEOUT_REMOVAL define in bans.h sets timeout time for
warnings. Warnings set and not warned for during the specified time,
will not be saved. Default time is 3 months. People tend to forget or
ignore to clean the warnlist, and accounts and sites change as fast as
longer timeouts would probably not be useful anyway.
* (Bagder) USERMOD and USERADD both now inform the user about the changes
if he is joined. (bugfixed the usermod version that didn't work before)
* (Bagder) *sigh* I didn't add a length-limit in the new sscanf() in TZ.
If there's anyway we can add some define or something that will alert if it
finds a %s or %[ in a sscanf() call, just tell me ;)
Version 4.0Beta7
* (Bagder) Fixed the flood thresholds to work with the actual values we
set in the SET output.
* (Bagder) A new flag is introduced. Mark all users that are bots with the
(R)egular (R)obot flag. Use 'USERMOD -F +R' to set it. Displayed as 'Bot'
in the sview output. NOTE that this is different to the (L)inkbot flag in
the way that the (R)-bots can never be linked (most probably because they
are not Dancers nor Dancer-linking-compatible).
I also added a flag to the guest struct called 'bot' that is TRUE if the
user is some kind of bot. Used i.e in the toplist scanning.
* (Bagder) FINGER is now host-prefix aware, and so is VRFY. I also made
both of them ignore trying if the username of the person fits the
BadUsername().
(Reported by SimD)
* (Bagder) SERVERDEL now supports that you specify '<server> <port>' to
delete a server, which is useful if you have two entries of the server
using different port numbers.
gr8ron!ron@du-26.slip.utu.fi at Thu Nov 14 16:16:10 1996
I tried 'serverdel 2,3,4' and my dancer died.
- I can't see why it did. Anyone?
* (Bagder) WARNADD, using *!*@* style pattern, now prevents the user-part
from being longer than 10 characters. Actually, it won't accept the
pattern at all since the sscanf() match will fail and no nick will match
the input...
(a gr8ron report)
* (Bagder) SHUTDOWN without time specified makes it use 10 by default (and
the reason that was specified).
(a gr8ron report)
* (Bagder) The toplists evalutations now skip the bot itself, and all other
users currently joined that has the 'LINKBOT' flag set. (NOTE: in order for
this to work at a maximum, I suggest you take advantage of the new way to
add hostpatterns to users that include nick names, which very well can and
probably should be used to separate bots from the bot owner/runner.)
(Vader requested.)
* (Bagder) Moved the TZ and CONVERT functions to the new convert.c file.
Made some parsing improvements in TZ:
- allows toplevel .style names to be used instead of proper country or
country name when converting
- the 'now' keyword defaults to show the time for GMT if no timezone is
specified
- the 'list' keyword now shows the first matches that matches the specified
pattern (* is used if pattern wasn't specified) and an additional text
informs if there are matching patterns that weren't showed.
(Vader reported)
* (Bagder) SERVER fixes
- Does now properly support no arguments to report current server name
(BUG FIX)
- Supports 'SERVER <num>' to switch to the server with that ID, existing
in the server list.
- 'SERVER +' changes to the next [non-disabled] server in the list. If the
current server isn't in the list, or if the last server is in use now,
the first server will be picked.
- Now makes sure the server functions avoid some NULL reading when the
current server isn't found in the list. (BUG FIX)
- Frees all items in the server struct in FreeServ() (BUG FIX)
(Vader requests)
Version 4.0Beta6
* (Bagder) Fixed the topic bug which made beta5 run very bad.
* (Trolan) [Kelly Cochran] brought a new config.h.amiga
* (Bagder) Found and removed a nastly little piece of bug that very well
could lead to SIGSEGVs and various userdata crashes. (in ChangeGuest())
* (Bagder) DCC chat fix. Trying a second dcc chat left rubbish in the bot's
list.
* (Bagder) Made the userdata read more forward compatible. New fields should
be silently discarded in older versions.
* (Bagder) Made KICK not possible to kick the bot itself (people will never
stop consider that fun). KICK for chanops now only allows kicking people
with lower level than themselves. To avoid getting the bot used in kick-
wars.
* (Bagder) Found at least 4 different places in which Dancer ate memory. 3 of
them really make the bot slowly eat itself to death.
* (Bagder) Appearantly I did add somthing bad. It hangs after a few hours. =(
Version 4.0Beta5
* (Bagder) Made the CMD command check for buffer overflow and sort the names
alphabetically in each level. The CHGCMDLEV could make CMD crash
if there were a lot of commands on the same level.
* (Bagder) Rewrote some internal split lists that keep the split users. The
guest counter should now only count actually present guests, while the
numSplitGuests counts the split users. Took away the 'numofsplits' variable
since it wasn't used anymore!
* (Bagder) Added a KICK command. Persons on a TRUSTED level can use sitekicks
and patternkicks too. Usage is of course 'kick <who> <reason>' where
<who> must be a nick for CHANOPs and can be '*nick' or '*!*@*' for higher
level people. NOTE, if a > CHANOP tries to kick the bot, it claims that
_ban_ pattern would match the bot so it won't do it. I just didn't wanna
add another text ;)
Version 4.0beta4
* (Bagder) Now includes server name and channel name in the header of all
new logs.
* (Bagder) 'CHGCMDLEV <command> -' is now supported to restore the built-in
level on a specified command. I also rewrote the command line parsing for
the function.
* (Bagder) Made all access levels within the Dancer source dynamic. There are
now 7 internal levels used, and they can all be changed in the .config file
(and are to become changeable with the SET command). The commands in
command.c have now been redesigned to be able to follow a change of the
internal levels. THEY NEED A RESTART AT THE MOMENT.
All internal level usages and dependencies are dynamically using these
levels. Remeber that if you intend to add stuff. The new dependencies are
using the old defined names so there should be no confusion.
*NOTE* *NOTE* *NOTE* *NOTE* *NOTE* *NOTE* *NOTE* *NOTE* *NOTE* *NOTE*
Stored users are _not_ using dynamic levels but will remain having their
stored level whatever you do with the internal ones.
* (Bagder) The CHGCMDLVL command invokes are now properly saved in the .set
file so that following re-invokes of the bot will use the new levels for
the changed command(s). Only changed commands will of course actually get
saved. The new level will be stored 'hard' on the command which means that
even if the internal levels are changed, the changed commands will remain
at set level.
* (Bagder) I don't like the AUTOOP feature, but since we have it we might as
well make it goodlooking. It will no longer op any user right away on join.
If will now wait (10-20 seconds, randomly and depending on the "sloppy"
events methods) until it checks if the user is op, and if not it will get
opped (once). Reason for this is of course to avoid op-floods that occur
after i.e netheals and to let other users/scripts do the oping in first
hand. Only one person get opped in each sloppy event (to prevent flooding)
so if lots of AUTOOP'ed users join at once and none of them op themselves,
it just might take a while before the bot has opped them all.
Also prevents fast joiners/leavers with autoop-flag enabled to make the bot
op-flood the channel or itself.
* (Bagder) Made USERMOD tell the modified user if the user is currently joined
and the -q (quiet) flag was not used.
* (Bagder) Made comments get stored in the regular .users file too instead
of the extra file. I do not like all those files to keep simple userdata.
If a .users file have been stored including the .comment data, the next
(re-)load of the userfile will make the .comment file to get rename to
'<file>_rm' since it will no longer be needed nor used.
* (Bagder) Made yet another bunch of sscanf()s safer. This time in server.c
* (Bagder) Extended FindUser() slightly. It should now be able to match users
properly even with the nick-part of the pattern used. Now, we can make a
user match "nick!user@domain" which might be a better way to i.e detect
bots or multiple users using the same account/site etc.
Version 4.0beta3
* (Bagder) Revolution in the seen-arena. I do now store 'departure' time on
each and every nick registered, and not only per-host as was done before.
This way, seen [recent] will become much better as well as the whole seen
concept will be clearer and soon easier to use and understand (even for
lusers). I also let the nicks use separate time-outs in the save so that
not only old hosts are forgotten but even old nicks.
The timestamp saved together with nicks do not interfere with the old
standard, so new seen-files can still be used by old bot versions.
...perhaps one of the greatest features that comes from this is that we
now can see which of all the nicks a certain host used the last time. I.e
'SEEN oldnick' can now actually tell us when *THAT* particular nick (and
not just his host) was used, and what nick that particular host has used
since!
* (Bagder) Spent time on the docs. dancerdoc.html is updated and does now
also include the former ChannelGuard manual.
* (Bagder) Made some small changes in the FAQ about the new 'make configure'
and 'make install' options.
* (Bagder) ircd studying made me add a chapter to my ChannelGuard docs that
explains the server flood control in detail. It also made me disable the
multi-kick again (untested source is left though, if we ever find a good
reason to use it).
* (Bagder) Made a new SET group called BAN and moved AUTOUNBAN, BANTIME,
BOTBANTIME, KICKBAN and REPORTBAN to it. I also made the both TIME items
require level 200.
* (Bagder) Added BOTBANTIME, which is the good old default time used for the
bot bans when no time is specified.
* (Bagder) AUTOUNBAN is a new SET item that, if enabled, makes Dancer
automatically unban the least important ban when there are 18 or more bans
set in the channel. The least important one is selected in this order:
1 - the NON-ENFORCED ban with the least time left
2 - the oldest NON-ENFORCED ban
3 - the ENFORCED ban with the least time left
4 - the oldest ENFORCED ban
* (Bagder) Added the file 'fplcheck' to the source root. It is a shell script
run with 'make configure' (after the actual configure script) that helps
you find and fix the Makefile to use the FPL library before compiling your
Dancer. Changed the Makefile to use it too.
* (Bagder) Added a test of the multi-kick system.
* (Bagder) Went through all file saving functions and made the important
ones use temporary files to make save-errors less serious.
Version 4.0beta2
* (Bagder) 'USED <nick>' has been added for testing purposes only. Meant to
become something like a more verbose SEEN.
* (Bagder) Made 'seen -m' acceptable publicly. Made seen -A no longer require
dcc chat (after all, the message queue do work! ;)
* (Bagder) breese discovered a glitch when someone joins a channel before
the list returned from the '/who *' command is completed. Dancer can then
get a nick reported as joined twice. This should now be prevented.
* (Bagder) Took some time to tidy up the init/cleanup mess. Starting the bot
with no or broken .config or .users file should no longer cause Dancer to
crash. It should even display an error message to stderr as well as in the
logfile.
* (Bagder) New way of looking at the .serv file and .config server parameter.
The previous way is abandoned, and now it works like:
At start-up time...
- All servers in the .serv file are added to the internal list (they may
be DISABLED).
- All servers in the server-field of the .config file are also added to the
list. If one of the servers in here already is added, the previous flag
status will be kept. Thus, if the .serv file has marked a server as
DISABLED, it will remain so even if it appears in the .config file too.
This means both lists get 'merged'.
At run-time...
- If you attempt to delete a server from the list that was read from the
.config file at startup, it will only get marked DISABLED. Only servers
_not_ present in the .config file can get deleted completely from the
list.
- DISABLED servers will not get selected whenever the bot needs one.
- SERVERSTAT -D <server> disables a server
- SERVERSTAT -E <server> enables a server again
* (Bagder) New SET concept introduced:
- They are now grouped. The first groups out are:
1. THRESHOLDS - Flood trigging values.
2. FLOOD - Options toggling the channel guard level.
3. VERBOSE - Options controlling bot talk
4. MISC - Various properties.
5. OWNER - Options only the owner should decide whether to use.
- Each item (and/or group) can get an individual access level (for now,
the "OWNER" group is the only one that uses it and it requires 242)
- Each group and item has its own help text.
- 'SET <group>.<item> <value>' is the new supposed way to set items with.
If <group> and <item> is a unique beginning of one group and one item,
that one will get affected. This way, you don't have to specify the whole
words, only enough to make them unique.
- 'SET <item> <value>' is still supported as long as the item name is
unique. In the future, two groups may use identical item name for two
different purposes.
- When an item has been set, the status of that item's group will be
displayed.
- 'SET <group>' displays the current status of that group
- 'SET' displays the current status of all groups
- 'HELP SET <item>' works the same and now also shows the current contents
of the item.
- 'HELP SET <group>' tells help about the SET-group.
This will not only make less output on the screen, but also a better way to
deal with an increasing number of SETs as well as making it easier
internally to add new items/groups/SETs.
There's probably some more to it too. Just ask.
* (Bagder) save-settings used a faulty end-of-loop check.
* (Bagder) Switched the TZ-command's ahead-time to make it output the correct
difference between timezones.
* (Bagder) Made _all_ sscanf()s in command.c use limited %s and %[ scans
* (breese) Made 'make install' run the installbot script
Version 4.0beta
* (Bagder) Made TELL work [better] with 511 character messages.
* (breese) Fixed the *SERIOUS* security hole in transfer.c/Execute().
Discovered by AndyS.
* (gr8ron) Fixed netstuff.c to compile on amiga.
* (breese) Fixed the bug of reversing the nibbles in dcc chat on Linux.
It was due to a broken inet_ntoa() (that's what you get for being nice
and try to use the OS calls :)
* (breese) Fixed the signals so that garbage IP# in dcc chat doesn't
result in a crash.
* (breese) Added a few toplevel domains.
* (breese) Fixed another shell security leak. Added the EXECPROTECT
flag as well.
* (Bagder) Changed spell command. It will now pipe the parameter to the script
defined with 'spellcmd' in dancer.config. (Default is "./script/speller.sh")
This allows much more flexible spell scripts for other spell programs and/
or different platform standards.
The old 'cmdspell' is no longer supported.
* (gr8ron) (Tero Janka) Fixed the config.h.amiga slightly
* (gr8ron) Made the HELPSYNTAX flag get saved.
* (gr8ron + Bagder) Sorted out the file name problem a little. There's now
a files.h file containg the important file name default defines. Check that
out and you'll see what I mean.
* (Bagder) Made USERADD and USERMOD -P cut off the prefix letters from the
hostpatterns when they add them to users.
* (Bagder) Hopefully improved the SPLIT command when there is no split
information in the list (it seems as if the numofsplits counter isn't
decreased properly at all times).
* (Bagder) UNBAN <pattern> should work a lot better now.
* (Bagder) It should now compile perfectly well even without HAVE_LIBFPL
defined in config.h
* (breese) TELL now searches for registered username before using the
seen data.
* (breese) A public ctcp action without text would cause a crash. Fixed.
* (breese) Changed launch.sh slightly
* (breese) Changed the retrieval of the username of the bot
* (breese) Fixed the output of SEEN -A
Version 3.10
* (breese) Fixed a ntohl() in InitNet() to make FreeBSD Dancer run.
* (Bagder) A bunch of hooks are now in function.
* (Bagder) Made 'WARNADD' use the full host name of the user that added it.
* (Bagder) FPL added labels work.
* (Bagder) CMD accepts a pattern argument and shows only the matching
commands.
* (Bagder) Autokickban should no longer re-send the same ban even if many
persons matching the same ban join. This was the propable cause why Dancer
got flooded in an attack lately.
* (Bagder) In cases when several bans are known with the same nick, 'unban'
now tries to get an actual ban first. Previously, the following sequence
didn't work: 'ban nick' 'ban *nick' 'unban nick'.
* (Bagder) Now uses sitebans if any of the following letters are found in the
username part of a person to ban: '*!@[]?'
* (Bagder) Implemented breese's new userinfo parser. Makes better bans and
warnings. Also new username prefix concept.
* (Bagder) 'explain *' works again.
* (Bagder) Fixed the ban pattern routine to work properly with ppl using
usernames consisting of a valid prefix only.
* (Bagder/breese) Fixed Match() to work better and faster with wildcards
using multiple '*' letters in a row.
* (DarkDesgn) Added in fpl.library supoort for the Amiga version and readded
the HELPSYNTAX flag that mysteriously disappeared from SET.
Version 3.9
* (Bagder) USERMOD -P is extended to better allow adding of existing patterns.
To add the pattern 'foobar2' uses to the registered user 'foobar', we can
now use the form 'USERMOD -p foobar2 foobar'. If the pattern specified with
-p matches the nick of a person in the channel, that person's pattern will
be used.
* (Bagder) Fixed the reban problem that sometimes made Dancer claim the ban
was already set when it actually wasn't.
* (DarkDesgn) Added USERMOD -r to changed registered user nick.
(Bagder) Don't allow it to use an already existing registered nick.
* (breese) Changed the prefix stuff to avoid confusion when people use
usernames "~" and similar.
* (breese) Added the global variable 'now' to avoid the many time(NULL)
* (breese) Removed a crash if someone did a CLIENT when they already
had established a connection.
* (breese) Based TELL on list.[ch] rather than on it's own shaky code
* (Bagder) Added the new fpl interface. Requires the libfpl.a (or on amiga,
the fpl.library).
* (DarkDesgn) Added HELPSYNTAX flag - automatically show syntax information
after a HELP command.
* (DarkDesgn) Fixed LoadServ() not fclose()'ing the server file, causing
problems, and fixed SaveServ() and ExplainWrite() to remove() before
rename().
* (DarkDesgn) Fixed a couple #define problems in regex.c dealing with alloca
usage, fixed and cleaned up the makefile.amiga and config.h.amiga, added
additional patch routines for Amiga, and fixed user.c's lack of not
remove()'ing a file before rename()'ing it.
* (Bagder) Improved the TELL matches. *REALLY* uses the stored patterns of
all users now instead of the previous "kludge".
* (breese) Made RELOAD verbose
* (breese) Added LINKLIST
* (breese) IBCP is now based on datagrams instead (DCC LINK UDP)
* (breese) Removed the extra nick reported in SEEN -A
* (breese) Further improved host checking.
* (Bagder) SERVERADD, SERVERDEL, SERVERLIST and SERVERSTAT are introduced to
enable 200-users to change the serverlist but also to store and keep more
and detailed informaiton about the servers in the list.
Version 3.8
* (breese) Retrieval of username improved
* (Bagder) Added the EMAIL and SETEMAIL commands that view or set the email
field of the userdata.
* (Bagder) Fixed Sview -R. Displays the registered user with the specified
nick prior to the user in the channel.
* (Bagder) Autoop is now done on flags basis. Only ppl marked as 'Autoop'
will get automatically opped when joined (AUTOOP still needs to be set
ON for this to trigger).
* (Bagder) Banprotect works. Users marked with the 'B' flag will make the
bot kick anyone that sets a ban matching the user(s) and the ban will be
unbanned.
* (Bagder) Improved the "old-userfile" detection. I discovered that one of
my old userfile fooled it to believe it was a new one!
* (Bagder) Improved the usermod -e and -d flags.
* (Bagder) Fixed the sview ouput to include flags and email and stuff.
* (Bagder) Added the 'L' flag, Botlink.
* (Bagder) Fixed the userlist checksum stuff for the bot to discover if any
user have been modified manually.
* (Bagder) Improved the split detection to only allow server names that end
in true domain names.
* (phb) New amigados patches.
* (phb) Fixed DCC chat with port 1024
* (breese) Fixed a timing bug in the event loop, and was hence able
to remove a kludge I once made to circumvent the bug. Used the same
opportunity to correct some misconceptions from the network code.
* (breese) Changed the retrieval of the bots host/domain name
* (breese) Fixed the message queue and the message reaper
* (breese) Introduced linked bots. Connection is done via DCC LINK.
Based on IBCP (Inter-Bot Communication Protocol.) Still in its early
infancy.
* (breese) CLIENT is accepted from outside the channel
* (breese) Added chat system (CHAT)
* (phb) Fixed the reversed HAVE__CRYPT test in user.c
* (breese) Fixed the Linux crashing SeenCleanup() bug.
* (Jean-Paul DZISIAK) Found and corrected the AddTail() flaw.
Version 3.7
* (Bagder) Added -F to USERMOD. The flags are atm:
'B' for banprotect
'A' for autoop
* (Bagder) Hopefully fixed Userdomain() in cases when there's only one dot
to the right of @.
* (Bagder) Applied Amiga-patch from Andrew Gray <DarkDesigns@trader.com>
* (Bagder) New user-system. The .passwd file is history and all new passwords
will be set using the new built-in crypt routine (a must for future multi-
bot multi-platform) and yet more information is stored about all registered
users. Such as creation time, last (any) modification time and password
changed time.
* (Bagder) EXPDEL is in. the 'dancer.explain.add' file should be removed
after you've started Dancer and changed any explain the first time.
All explains will in this release and future always get stored in the
.explain file by Dancer.
* (Bagder) USERADD and USERMOD have replaced REGISTER.
* (breese) Got rid of that annoying "connect() weirdness" message that
Linux people were experiencing.
* (breese) Added snapshots and cleaned up dancer.h
* (breese) Added CLIENT for the poor souls behind firewalls or
with buggy clients
* (breese) autoconf added (acconfig.h configure.in, Makefile.in,
config.h, configure). Changed all platform dependent defines to
adhere to the defines generated by configure.
* (breese) config.[ch] changed names to setup.[ch] to avoid confusion
with the autoconf stuff
Version 3.6
* (Bagder) Removed the Execute() crash. (most noticable in FIND)
* (breese) Made 'activelog' get -1 by default which makes Dancer log
everyhing until told not to the first time.
* (Zagor) Fixed the tz crash.
* (Bagder) Fixed some known ban problems:
- the 6 second repeat when trying to set an enforced ban that isn't set by
the server (this also takes care of the so called "overlapping" problem)
- unbanning when the lag to the server is >6 secs made the bot resend the
unban a number of times.
* (breese) Added userselectable flood parameters, add put all flood
related functions in flood.c
* (breese) Fixed the dcc chat crash (wish, hope)
* (Bagder/breese) Added support for the the new ircd 2.9 hostname
prefixes (+, -, ^, =)
* (Bagder) I accidentaly placed two enums below the LASTMSG in language.h
which made 'help log' crash.
Version 3.5
* (Bagder) Took a few minutes and added a source header to all C sources,
headers and Makefiles.
* (Bagder) July 11th 1996 - Back on IRC. Back to Dancer development.
Version 3.4
* (Bagder) Made a butt-ugly fix to work-around some domain name problems.
Undocumented, find it in the source if you need more info.
* (breese) "/ctcp bot ping" (ie. without a time) would crash the bot.
This bug has been removed.
* (PhB/breese) New logging system
* (breese) Rewrote Execute() to fix a security leak
* (breese) Fixed Linux dcc chat
* (breese) Added non-blocking connect for clients to avoid Ping Timeout
caused by the big timeout of connect()
* (breese) Added socket lingering
* (breese) Fixed SIGPIPEs from clients dropping carrier
* (breese) USERLIST know hides higher userlevels
* (Bagder) SAY and ME now reply about SAY being off to the errfrom.
* (Bagder) The func matches redirects errfrom messages to NULL;
Version 3.3
* (Bagder) Ban <pattern> does not perform the 'ban *user' siteban adjustments
since it could easily get very stupid.
* (Bagder) Removed case insensitivity in the regex search since that crashed
the Solaris Dancer 3.2... ? This _must_ get fixed somehow.
* (Bagder) Now supports exxplains that begins with a space in the file (thus
enabling '#channel' explains when padding the word with a space).
Version 3.2
* (Bagder) PatternExist() now matches case insensitive. It's used in the
'E' style patterns in dancer.func.
* (Bagder) When using DCC-chat-only (without joining the channel) you can
now again use SVIEW as supposed.
* (Bagder) The new "alias" system is added. For now, check out the
dancer.func.example of how to add custom command aliases and context
sensitive actions.
* (Bagder) The bot is no longer gonna show up as idle if it hasn't been
silent.
* (Bagder) Made the ban command capable of setting a siteban when a user-
ban already is present (it unbans the userban first, in the same MODE-
command to the server).
* (Bagder) Made the toplist show the top 7.
* (Bagder) 'BAN -K' makes the bot kick all users in the channel that match
the pattern. To be used in cases where i.e you want to kickban several
users joined from the same user account and you don't wanna make a site
ban.
* (breese/Zagor) SPELL now uses the speller.awk script.
* (Zagor) Made CONVERT aware of a bunch of known prefixes. (i.e kilo, mega,
pico, etc)
* (Bagder) Cleaned up the directory tree a little and put the sources in
src/
Version 3.1
* (Zagor/Bagder) FIND now reports "No match found, <nick>".
* (Bagder) Added the parse.[ch] files to the package. Coming newfunc system.
* (Zagor) 'toplist kicked'
* (Zagor) SPELL command (requires ispell)
* (Zagor) CONVERT is a new command
* (breese) 'invite <password>' from outside the channel makes the bot invite
the person
* (breese) CUT can be used by 10+ users to cut their own 'hanging' DCC chat
connection
* (Bagder) PresentTop() now deals with empty toplists
* (Bagder) AddKick() auto-banning fix.
* (Zagor) A bunch of more toplists (continent/kicker/banner/command/mode)
Version 3.0
* ENFORCED bans that were unbanned twice (and thus timeouting to get banned
again), couldn't get unbanned (removed) from the banlist with the UNBAN
command until the ban was set in the channel again.
* BAN_ENFORCELEVEL is now raised to 200.
* Terrible little lockup could occur if a spying user got its dcc closed.
* BANLIST always displays double-unbanned enforced bans that wait for the
timeout. They're displayed as "[ENFORCED] [UNBANNED]".
* CHBAN now accepts the ban-pattern as well as nick or banid.
Version 2.17
* Improved the main()-loop
- probably fixed the connect bug
- should've fixed the problem that appeared when a server closed connection
and the bot re-connected to that same server, which previously screwed up
the guestlist and probably some more things.
* Made a few more commands publicly available. (like LAG, SVIEW and EXPADD)
* (950517) REGISTER now informs of the old level when a new one is set, and
doesn't change the user if the same level is reset as it already has.
* Remade the AddKick() function to prevent a multitude of bans on multi-
account bot attacks. Lemme inform you a bit of how it does the evaluation:
If the AddKick() is about to set a ban on a user (with a *user@*.site
pattern) and ONE other ban already is set on that site but on a different
user, the previous ban is removed and a siteban is set. If more than one
ban is set, the standard user-bans will be used for the new ban too!
* Removed the "comma-separator" from the TOPIC command.
* Eetu's OSF-defines and Makefile-flags were added.
* FIND-fix for NetBSD by Phb.
* (950514) AddKick() is now hopefully not flooding the server with ban
requests as it did previously!
* (950513) Applied Phb's patches. Now introduces TOPIC and CHGCMDLEVEL as
well as the 'cmgcmdlevel' .config entry. Enables the bot runner to change
level of individual bot commands.
* breese's new ParseServer() code.
* Changed Send() to check the nick-parameter. If it is NULL and no chat
is opened, it won't do anything.
* CmdRegister() fix to make the 'changed' stuff work better.
* AddBan() fix to prevent multiple bans in flood attacks
* (950513) breese's new ParseServer()
* (950510) Made the spylink report about added and removed clients.
Version 2.16
* (960509) Bj÷rn Stenberg <Bjorn.Stenberg@sth.frontec.se> added the country
toplist.
* (960509) TELLDEL works (breese fix)
* Added breese's profiling stuff. Is it still makeable with regular make?
My sunos make complains about those new fixes!
* (960508) [Temporarily] Replaced the explain-routines with a new set. They
give almost the same functionality. They're slower and not at all that
neatly written, but hey, they work! ;)
* (960507) Incorporated breese's seen-fix to add nick on host-seens.
* Improved the PubCommand() parse just a little more.
* SEEN <pattern> is now restricted to show only 15 matches. 'seen *' did
make the bot to ping timeout!
* SVIEW shows registered nick name if it differs from the used one.
* REGISTER can change the level of non-joined users.
* WHOIS is now an SVIEW alias.
Version 2.15
* Made out-of-channel /msgs get shown in the spylink.
* The use of the REGISTER command is now stored together with the data of
the user it changed. Who did it, when it was done and what was done is
stored. It uses an extra row in the .users file.
* Uses breese's new Makefile. It fixes the final version by default, use
'make debug' to create the debug version.
* Changed the PubCommand() parse slightly to adjust to NetBSD limitations.
* Improved kick-queue handling (increased pause between kicks after the 3rd
kick).
* Brand's:
- AUTOOP feature implemented. If enabled, autoops stats >= 241
users on join. set AUTOOP ON - enables it.
- COMMENT is a command to add any generic comment to your userinfo.
set COMMENT on - will make the bot diplay it on joins
* TOPLIST is a new command for new and fun top-list information
Only four ones added to far. Please add more as you think of any.
* 'logdays' was removed from the .config
* 'storedays' was added. This should be the number of days logfiles should
be kept. Older logfiles will be removed automatically...
* SVIEW and WHOIS doesn't display level info of users with the same or higher
level than the peeking user.
* NAMES is now introduced as the GUESTLIST command, available for 100+ users.
The new status-peeking regulation is in use for that too.
* Applied Brand's new NetBSD fixes.
Version 2.14
* Changed the public CTCP flood algorithm. It separates ACTIONS from the rest.
Dancer triggers a flood on 6 ACTIONs within 4 seconds or 3 any-CTCP within
6 seconds. The one that triggers the flood is ignored, and the flooder is
(if CTCP is ON) kicked, warned or ignored.
The private CTCP flood detect is the same old one.
* The kicklist (the X latest kicks) now also contains the last used nick of
the misbehaving fellow. This way Dancer knows which nick to attach to the
pattern if it bans and thus enabling 'unban user' for these kinds of bans
too. Also changed the output of 'kicklist' to include the nick name.
The kick-Q only kicks each nick once. If the user manages to change nick
while not yet kick, it'll get kicked again.
* All kicks now go through the internal flood check and on kick-intensive
situations, they automatically get pushed to the kick-queue. When the
kick-q is enabled, the 10 second CTCP ignore is switched on.
* The kick-queue is changed a lot. Now, as long as it knows there are pending
kicks, it scans the guestlist and kicks the first guest that is marked
for kicking. If no person is marked, the list is considered empty.
REASON for this:
A) it doesn't kick nicks that already has left or was kicked by someone
else
B) it is nickchange resistant (queueing up old nick names like it used
to is pretty stupid).
Nick and flood bots have proved to get kicked with this algorithm. Left to
experience is *extensive* flood bot takeover attempts.
* CTCP ignores are no longer host-based. Too frequent CTCPs will make the bot
ignore all CTCPs for 10 seconds (except 20+ user's dcc chat requests) and
each following CTCP wile ignoring will extend the timeout time.
All CTCP attack bots tried are ignored accordingly.
* Changed the timeout-bans-text to use the much more describtive TimeAgo().
Which makes the former i.e "10000 seconds ban" make "2 hours 46 minutes
ban"
* when TALK is on and the bot is opped or deopped, it does now only respond
if its op-status changes. I.e just repeated opping won't make it flood.
* Kicks are queued up if being made too quick by the bot. (Still needs more
fixing, but this might help a little for now.)
More StickyKick()s are used to avoid some of the extra kicks. QueueKick()
is no longer used directly by any function.
* WARNADD has a -b option that'll make the bot kickban matching users
WARNLIST -b lists kickban warns only
* TELLME and the join-notify now check for TELLs to any of all known
accounts of registered users.
* Added the 'bug' command for easier filing of bug reports from online
users. Stores the bugs in 'dancer.bugs' by default. 'bugfile' is the new
entry in the .config file.
* Added some stuff to the status output (number of ops, split users, bot's
mode changes, bans, enforced bans, warns and kickban warns)
* Improved parsing of the banlist (got really confused on some american
servers previously). Though it ignores all other info but the banpatterns.
* Improved usage of multiple servers (previous versions had problems to
connect to all but the first server)
* Improved bans of users using 10-letter usernames (NOT nick name)
* Timeouts autobans due to repeated kicks
* Language fixes, a separate source file for all localized strings.
Version 2.13
* QueueKick() made the bot unable to handle clonebot attacks.
Has been replaced by StickyKick().
Version 2.12
* NetBSD version
* Fixed TELLDEL (which previously wasn't working)
* Multi kicks and Warning() kicks are now QueueKick()ed
* Fixed some bugs, especially some in the Solaris version
* KickAll() is now put on a queue to prevent Excess Flood
Version 2.11
* CHBAN can now change ban reason
* New and better warning system (linked lists)
* WARNLIST now supports -A as well as *!*@* pattern style instead of nick
* Logs invites
* Made TELL secret in logs and spy-messages
* Fixed the banlist bug, now gets cleaned up when the bot leaves the
channel.
* Now reads the banner's name even if the ban command was typed in public
* Added 'warnfile' to .config
Version 2.10
* KICKLIST shows the last (max 10) kicks done in the channel.
* WARNLIST accepts a <match> parameter to only list the warn-patterns that
match the specified pattern.
* Unbanned patterns were removed too quick from the internal banlist.
* 3 botkicks with max 5 mins interval between them, or 5 regular userkicks+
botkicks, makes that user get banned, and all users joined from that
account are kicked out from the channel.
* siteban will now kick all users joined from the banned site
* BAN-ing someone with a pattern that already is banned will now still kick
the person.
* Made some kicks sticky, ie. a new kick would be issued if an
offender changes nick to avoid a kick.
* COUNTRY will now try to guess the country if it doesn't match a
code or a nickname. It also show the full name of the country now.
Version 2.9
* Status 20+ ppl can change the mode even when 'MODE' is on.
* Resistance against ctcp flooding
* Warnings to user about potential nick collisions
* Fixed Avalance() kicking
* Fixed dcc chat connections
* Rewrote netsplit stuff
* New BAN system implemented. CHBAN/BAN/UNBAN are affected. Read top of
bans.c to get detailed theories.
* EXPLAIN now gets the first word and tries to explain it and ignores the
rest of the line.
* OPS, CHANOP and OPME are valid OP aliases
* SAW is now a valid SEEN alias
* SEEN -a should work now even on ppl still in the channel or netsplit!
* TELL notify is done now on netjoins if a netsplitted person got a
'tell' while split.
* IDENTIFY is renamed to MYNICK
* SHOW of a non-showable command in a dcc chat no longer crashes the bot
* FIND now supports a number-of-matches argument.
* Made a bunch of commands publically available
Version 2.8
* Command line options has been removed. Everything must be handled
through the .config file
* New logfile is created Xth day.
* Improved STATUS
* Added CUT
* Current settings are saved to file on exit.
* Process ID gets written to the file ".pid" on start. This is used by
the external launch script
* Made external launch script (launch.perl) which checks if the bot is
running and if not it starts it
* Previously the bot could get confused if a user joined or made client
connections more than once. Also, there was a security leak: if a
user had authenticated, everybody from the same account became
authenticated. This is especially unfortunate because some anonymeous
telnet clients use the same account.
Now each person on the channel and each client connection gets their
seperate identification structure. If possible, these two will be
unified. The only place where this unification can go wrong is when
you change nick when the bot cannot see you (if you're off the channel
or on the other side of a netsplit.) To force a unification IDENTIFY
has been added. It must be sent through dcc chat with your current
nick as argument.
* Failed authentications gets logged and send on the spylink
Version 2.7
* Added macro for easy use of multiple, randomly picked, replies.
* SHUTDOWN can show time left, and be canceled
* Responds to /invite's from LEVELTRUST
* Format of seen file has been changed. Use seenconv-2.7.c to convert
older files.
* Commands that need passwds are hidden from CMD and ALIAS if the
user haven't been authenticated yet
* Added possibility to specify port and password in serverlist.
Format is server:port:passwd
* Fixed TALK and QUIET to work from dcc chat
* Ban protected. If a ban matches the host of the bot, it is removed.
If set by a user, the user is deopped.
* Added ALIAS and WHOLEFT
* Added more debugging info
Version 2.6
* Made a flag indicated whether a command can be used in public
or not.
* List of users on the channel is now flushed in OnError() too.
* Message queue moved from SIGALRM handler to a select(2) timeout
handler. SIGALRM proved to cause too much trouble because it
breaks the system calls.
Version 2.5
* Added REPORTADD/DEL for desync/fake snooping
* Added DEBUGADD/DEL for debug info
* SPYLIST is obsolete and has been removed. Use CLIENTLIST instead
* Wrote Multicast()
* Added detection of channel desync and fake (canceled) mode changes
* Rewrote the TELL system. Added TELLADD, TELLDEL, TELLLIST, and
TELLME. Made TELL netsplit aware.
Please delete older tellfiles.
* Added low overhead server pinging and LAG
* Added support for alternative servers
Version 2.4
* Help for SET arguments
* Added check for beep bombs
* Most user definable values moved to .config file
* LEVELPUBX are allowed to issue public commands if they have ops.
* Added TOPIC, WALL, and SHUTDOWN
* Rewrote SeenHost() to have proper support for wildcards.
* Added command aliases.
* Made a message reaper to remove all occurences of a nick/channel from
the message queue if we receive ERR_NOSUCHNICK or ERR_NOSUCHCHANNEL
from the server. This reduces the amount of wasted bandwidth.
* Gave all funcs, structs, and variables dealing with the message queue
more meaningful names.
* Added proper handling to various errors from the server.
Version 2.3
* Rewrote the core of the system - HandleSockets(). The previous core
didn't work properly with the SIGALRM handler, which could cause
problems when trying to connect to a server.
* Streamlined the output and capabilities of Execute(). fork(2) is
no longer needed.
* Error handling in CmdFind()
* Removed an endian dependency in CtcpDCC()
* CALC works in public commands too.
* 3 violation levels. Lowest level gets kicked after WARNLOW warnings
(defaults to 0, ie. gets kicked immediately.) Medium level gets
WARNMID warnings before being kicked. Highest level doesn't get
kicked (and no warnings either.)
Version 2.2
* Fixed the looping bug that occured if there was a client connection
and the bot left IRC and came back. In the invalid assumption that
the client connections were removed, as they would have if the the
bot quitted, the client list was cleared. When the bot returned and
got a command from a client it would loop, because select(2) would
return immediately, and the socket that should have been read was
no longer visible to the bot. This nasty bug caused the program to
use as much CPU-time as it could (typically 80%)
* Rewrote the reply system. If a client connection is used the message
will be sent immediately, otherwise it will be put on a message
queue (in the SIGALARM handler. These messages are send at a rate of
one line per second to avoid flooding users and being disconnected
from the server with an "Excess flood" message.
* Message queue is now stalled when not connected to a server. Done by
checking the 'running' flag
* Notice[f] and Async were bad names. They have been renamed to Send[f]
and Execute respectively.
* Rearranged the command hierarchy (again)
* Removed dcc chat dependency in Execute.
* Made EXPADD check syntax better. Omision of a '=' would crash it. Now
the key may be seperated from the description by either '=' or a
whitespace. (This is known as the Edd syntax ;)
* Added DEFPASS <nick>, which will overwrite the password of <nick> with
default (for the forgetful soul.)
* Added SHOW. "SHOW <nick> <cmd>" will redirect the output of <cmd> to
<nick>
* Changed layout of logfile. Made it more readable (and grep-friendly.)
* Hidden passwords from logfile.
* Extended ban timeout from <seconds> to [[HH:]MM:]SS format.
* Put registered accounts into linked-list instead of a fixed array.
(Some of those netproviders just have an incredible amount of accounts
they want registered :)
* Changed the name of the KICK flag to BOMB, as it was misleading.
Added check for Tsunami.
* Rewrote Userhost() to check if last part is numeric rather than
the first part. In named addresses the last part represents the
top-level domains, and they never use numbers (machine names
shouldn't start with a non-alphabetic char either, but some
sysadmins have no clue.)
* Disabled "dangerous" public commands and options, ie. commands that
may produce much output and hence cause flooding. (fx. EXPLAIN *,
or SEEN -A)
* Removed command seperator (;), as nobody used it anyway and it's
omission leaves a much more consistant interface.
* Accounts listed in WHOIS -A.
* Added -M and -A options to SEEN.
* Made NAMES command for debugging purposes.
* Added counters for served commands. Displayed in STATUS.
* Less DanBot dependant bot support. Now, the bot has to have exacly
the LEVELBOT level and make the MASTERMSG action to get ops. A certain
nickname is no longer needed.
* Added Debug(). If an error occurs, log it _and_ send it to spylinks.
* Added a master flag for FLOOD, which will disable reacting to floods
some time after a netjoin. This prevents accidential kicking due to
netburps.
* Due to netsplit awareness ACCEPT is superfluous and has been removed.
Version 2.0
* Added timed bans (BAN, UNBAN, CHBAN, BANLIST)
* Added warning messages (WARNADD, WARNDEL, WARNLIST)
* Added SVIEW
* Added SPLIT, and made the bot netsplit aware
* Added FIND
* Added SAY and ME
* Added many new flags to SET
* Changed layout of CMD
* Removed most /dcc chat requirements
* Fixed stuff in SEEN
* Gave the bot a voice of it's own
* Added another programmer ;)
Version 1.33
* Added SET flags to .config file
Version 1.30
* Fixed ACCEPT and added some information
* Fixed a security leak in OP <passwd>
Version 1.29
* Rearranged the command hierarchy
Version 1.28
* Added ACCEPT
* Made the bot remember who had PASSed after a RELOAD
Version 1.27
* Added EXPADD
* CALC now uses the Unix 'bc' command instead of my own code
Version 1.26
* Piped stderr as well as stdout
* Made it possible to use options for shell commands
* Added FINGER
Version 1.25
* If a client (/dcc chat) connection exists all replies will be sent
through it.
* Added async shell commands to the socket handling. This way the bot
won't freeze while executing shell commands.
* Added VRFY
* Added HOST
* Added check for dead server socket (thanks to Titan)
Version 1.22
* Added UPTIME (was included - and still is - in STATUS, but just to
retain a "standard" interface.)
* Restarts on "Ping timeout", "Excess Flood", and nickname collision.
Version 1.21
* Command parser rewritten
* Multiple instructions per line supported
* Multiple arguments per instruction supported
Version 1.12
* Backups of seen file now adds a timestamp to be unique.
Version 1.11
* Added COUNTRY
Version 1.08
* Users not authenticated by an IRC server, ie. someone with a tilde (~)
in their login name, were not correctly processed.
Version pre-1.08
* Many commands, features, and bugs. Nothing recorded.
Version 0.0
* Added programmer ;)