IncuBot (Changes from ChRoniC v1.03)

v1.03 Beta 2:


Fixed hangs or SIGBUS when "!deop #channel nickname" is used.

Fixed a memory leak in add_user().

Bot now clears out its channel data properly. It wasn't clearing user information, leading to inaccurate !chanst or !showusers results.

Rewrote some of the shitlist code. shit.list2, and expire.list are no longer separate files, they are now merged with shit.list. This should also eliminate the problem where a shitlist entry's shit reason could get lost.

Bot will now attempt to gain ops if it isn't opped and another bot gets opped.

Fixed some code in on_mode() that was exiting without updating the bot's internal channel info when someone was server-opped.

Now when the bot writes its list files, it writes each one to "temp.list" and, if the write is successful, renames it to whichever list file is being written. This should keep the bot from writing empty or incomplete lists when there is not enough disk space although any changes made to the lists since the last successful write will be lost.

Removed TB_MSG code.

Fixed banmask generation routines so usernames longer than 9 characters won't be truncated.

Added !nshitdel. *Note* !nshitdel will not work if the person is shitted AND excluded.

Added !uptime

Added !version

Added "FP" to the list of file specifiers !sendbotlist takes.

!sendbotlist can now be used with either a list of file specifiers or "ALL".

Sockets are now read-buffered for server connections and DCC chats. It used to go into a loop reading one byte of data from the socket until it received a linefeed character. This could slow the bot down while reading data from lagged connections or hang it completely if a linefeed never came.

Fixed output of !channels so channels that the bot isn't in are marked as such.

Increased the max number of bans a channel can have before the bot starts unbanning old ones before setting a new ban.

Bot no longer unbans and rebans the same mask.

Fixed some code that could keep the bot from banning/unbanning in some rare cases.

When bot joined a channel an got the banlist, they were added to its internal banlist in the wrong order. Fixed.

Bot now chmods its list files to "owner read/write" when it writes them.

Fixed a problem in fnmatch.h that made compiles fail with "FNM_CASEFOLD undeclared"

Fixed a bug in !deop that was making it +o people instead of -o. Don't know if this was there in the last version or if I put it there between versions.

!giveop and !deop now do modes in groups of 4 instead of 3.