sven [Sun, 2 Nov 2008 17:46:13 +0000]
Looks like I forgot to add these two files before my commit last year.
sven [Fri, 17 Oct 2008 15:57:42 +0000]
* Tried to use scripting namespaces, let's see if that works.
* Fixed IRC MODE parsing. The bot keeps track of all modes set on all
channels.
* .channel on the partyline now works like in eggdrop1.6.
tothwolf [Sat, 28 Jun 2008 14:51:33 +0000]
Regenerated ChangeLog file with cvs2cl.
sven [Tue, 6 Nov 2007 00:05:39 +0000]
* Added a new socketfilter that provides a per socket timer for easy
implementation of various timeouts.
* All sockets that expect user logins now have a 60 second timeout for
the user to supply a valid login.
* All botnet sockets now have a 30 second timeout for the bot to do a
successful login. After that it has a 90 second timeout after which
a ping will be sent. After another 90 seconds the socket is closed.
sven [Sat, 27 Oct 2007 19:55:51 +0000]
Full botnet support.
The login needs some work, the netburst handling sucks and nobody pings
anyone but it works.
sven [Thu, 13 Sep 2007 22:20:55 +0000]
* Added a owner to sockbufs. Ugly but necessary.
* Some more botnet stuff. Bots can actually link now.
sven [Sun, 19 Aug 2007 19:49:16 +0000]
Just bugfixes, boring stuff.
sven [Sat, 18 Aug 2007 23:03:09 +0000]
Oops, how did that happen?
sven [Sat, 18 Aug 2007 22:32:23 +0000]
Due to some time without internet access this commit is kinda random stuff
thrown together:
* Moved the int <-> base64 functions to base64.c
* Added botnet event on_login. This is triggered every time someone logs
into a bot.
* Documented some of xml functions.
* Fixed a xml memory leak. (perhaps. That suff still confuses me.)
* Fixed a xml bug that crashed the bot if there were comments in an xml file.
* Wrote about half of the new botnet module. (The easy part.)
* The version of linked bots is now actually saved and transmitted in the
oldbotnet module.
* Added a xml node to the botnet_bot_t struct. This can be used to save any
kind of information a module or scriptwriter might want to keep for this
bot. This information has the same lifetime as the bot it refers to and
is never saved. If the bot leaves the botnet, the information is gone
unless someone copies it somewhere else befor that happens.
Depending on how this works out, this xml node might be removed again or
added to some more data structs like users, partymembers, channels, and
so on.
sven [Sun, 3 Jun 2007 23:43:44 +0000]
* Added netstring filter.
* Created botnet module. (Just the framework, does nothing atm.)
sven [Sat, 12 May 2007 02:04:24 +0000]
Took care of the temp users that were spawned every time someone who wasn't
on any channel did something on the partyline. The oldbotnet module should
be finished now.
sven [Thu, 10 May 2007 00:25:07 +0000]
* Fixed a crash bug.
* Removed the linked user list, use hash table walkers for autolink now.
sven [Wed, 9 May 2007 01:39:24 +0000]
Bleh, messed up the last one.
sven [Wed, 9 May 2007 01:32:27 +0000]
* Created a double linked list to hold all user records. Hash tables are
great, but sometimes you just have to go through all records.
* Refuse to actively link to bots with a negative priority. Incoming
connections from these bots will still be acceppted.
* Refuse partyline logins from bots. Bots usually don't have a password
set, so that might be exploitable.
* Ping connected bots if they haven't sent anything for 5 minutes.
* Started to structure the user settings and documented it with a Doxygen
page.
* Added autolinking for bots based on a priority. See botnet_autolink()
documentation for details.
sven [Sun, 22 Apr 2007 13:18:31 +0000]
* Complete oldbotnet support expect for (user)file sharing.
sven [Wed, 18 Apr 2007 01:45:52 +0000]
More oldbotnet stuff, bugfixes, features.
Nearly complete support, but not yet ...
sven [Sat, 14 Apr 2007 15:21:11 +0000]
* Fixed various compiler warnings about diffent signedness.
* Added a new bind: bot. Works just like in eggdrop1.6
* Added a new struct: botnet_entity. This is used in places where a certain
event might be caused by either a bot or a partyline user.
* Added backend for botnet broadcasts, botmsgs (zapf) and botbroadcasts
(zapf-broad).
* Added oldbotnet support for actchan, zapf and zapf-broad messages.
* Improved oldbotnet assocs for mapping 1.6 channel numbers to 1.9 channel
names. Don't send real assoc messages out because the 1.6 assoc module is
horribly broken.
sven [Sat, 13 Jan 2007 12:23:39 +0000]
* Added doxy.h for the doxygen main and related pages.
* Fixed a bug in bind_rem_list.
* Added a function to send text to a partymember with printf like formatting
* Added a owner struct to partymembers so they can be deleted if their module
is unloaded.
* Unlinked the config vars of the server amd all partyline modules on unload.
* All partymembers are deleted on bot shutdown or resart.
* Reworked the way modules are unloaded:
The module API has now two closeing functions, close() and unload(). close()
is called by the module_unload function as it was before and should end all
normal operation for the module. unload() is called by the main loop and
should take care of terminating and freeing memory.
This allows module to unload themself, ie a dcc partyline user unloading the
dccparty module or a python script unloading the pythonscript module.
sven [Fri, 15 Dec 2006 09:30:47 +0000]
* Added a function to delete all bots by owner.
* Documented the user binds.
I did not fix the various oddities of the user binds because a lot of other
binds have similar problems and they should be fixed all at the same time
to get consistent behaviour.
sven [Sat, 2 Dec 2006 04:05:11 +0000]
* Added a .unlink partyline command (but it only works on local connections
right now.
* Fixed a module loading bug that prevented them from being unloaded again.
* Added some error checking to module unloading that would have made locating
the above bug much easier.
sven [Tue, 21 Nov 2006 01:38:40 +0000]
Added a few aliases to the Doxygen file to help generate a full list of all
binds:
\bind to create a new page listing all documented binds on a single page
linked from "Related Pages"
\name, \flags, \match to add a paragraph for the Name, Flags and Matches
\stackable, \breakable to add a note stating the bind is stackable/breakable
\noparam, \noreturn to add a paragraph stating the bind has no parameters/return value
Documented the binds used in core and botnet. Look at the changelog for an
example of how to use them. Here's an example of the
doxygen output: http://www.semidefinite.de/eggdropDocs/bind.html
sven [Tue, 14 Nov 2006 14:51:22 +0000]
Misc:
* Bind table flag BIND_BREAKABLE now includes BIND_STACKABLE, doesn't make
sense otherwise.
* If the line buffer contains more than one line of text do a check if the
index is still valid after every callback (the sockbuf might have been
deleted).
* Added a "Doxygen" file in the root dir. It will generate html output in
doc/developer/html. (The dir will be created by doxygen.)
Partyline stuff:
* Partychan join and quit functions have an extra parameter indicating if
the event is triggered because of someone joining/quitting or botnet
restructuring.
* Renamed partychan_msg() to chan_msg and made it static. It can now either
msg the whole channel or just everyone on the local bot on the channel.
* New functions partychan_msg() (works like before) and localchan_msg() to
send it to every local user of the chan.
* Added stuff to the partymember struct: A pointer to the bot the user is
on, a malloc'd string containing the full unique name in the form
"id:nick@bot", a pointer into this string to the full name "nick@bot"
and a pointer to the common name of the user, "nick" for local users and
"nick@bot" for users on other bots.
* The id of a partymember is no longer unique, only unique to the bot the
user is on. The nick was never unique. TODO: Change the script modules
to take care of that!
* A partymember is now part of two double linked lists: A list of all
partymembers and a list of all partymembers on the bot.
* Removed the partymember_lookup_* functions. partymember_lookup() takes
cares of all the stuff.
* Added functions to count all users on a bot and delete all users on a bot.
Ircpartyline:
* IRC requires nicks to be unique for everyone and useing the usual "@" in
the "nick@bot" form doesn't work at all on IRC. Therefor the nick format
is now: "nick*bot:id" for remote users and "nick:id" for local users.
Script stuff:
* Added a new script parameter: 'B': A bot.
* TODO: Change the script modules to use it!
Botnet stuff:
* Added botnet.[ch]. Fully documented!
* Changed the oldbotnet module to use the new botnet API. Only very basic
stuff works atm: Bot links, unlinks, partymember joins, quits and chatter.
But at least it doesn't matter any more if the bot is a leaf or a hub.
sven [Wed, 11 Oct 2006 01:54:04 +0000]
* Fixed a crash on shutdown bug
* Removed an incorrect use of the return value of strftime
* Added /me CTCP ACTION handling to the partyline
Unlike eggdrop1.6 that does this in the input functions it's done in the
output functions to keep the partyline API clean.
sven [Tue, 3 Oct 2006 04:02:12 +0000]
* Added an owner struct to ident requests. Same as with dns requests and
just as ugly.
* Added a function to remove all binds, timers, dns and ident requests of
an owner and called before unloading a module.
* Some random cleanups.
* Note: sockbufs are asyncronous callbacks too and need the same treatment
sven [Sun, 1 Oct 2006 21:59:25 +0000]
Allow setting flags on a channel that has no flags set. Paradox!
sven [Sun, 1 Oct 2006 00:48:59 +0000]
Added sanity checks to usernames. All non-printable characters as well
as " *?" are rejected. The " " is necessary but "*" und "?" might be ok,
so this may change in the future.
sven [Tue, 12 Sep 2006 01:50:50 +0000]
Attached an owner to dns queries. A module should now be able to kill all
pending queries on unload.
Moved parts of the scriptdns stuff from the module to the core because an
event can only have one owner (the scripting language module) not two (the
language module and the script module).
Now this thing is kinda ugly but it's the best I could come up with. :/
sven [Tue, 29 Aug 2006 02:15:55 +0000]
* recognize serverconnect even if it has no motd file
* allow adding a channel the bot is already in
* fixed channel counter
sven [Fri, 25 Aug 2006 17:22:50 +0000]
* fixed a bug with IPv6 reverse lookups
* added dns lookup functions to the scripting interface
sven [Tue, 22 Aug 2006 05:21:01 +0000]
* remote partymembers don't have a user struct
* added a string to the unload module bind callback explaining why it was unloaded
sven [Tue, 22 Aug 2006 01:41:28 +0000]
* Fixed memory corruption in the .chhand partyline command
* added new bindtables partynew and partyquit similar to the 1.6 binds CHON and CHOF
sven [Sun, 20 Aug 2006 15:23:05 +0000]
* fixed some linebuf bugs about eaten lines, corrupted memory and stuff
* added some meaningful return values
* scripts can now call net_linemode without a second parameter to get
the current linebuf status
* wrote some doxygen style comments as Bryan suggested back in february
stdarg [Mon, 19 Jun 2006 15:47:33 +0000]
* Got rid of bind entry id's since they weren't really used anywhere
* Got rid of "fake binds" for scripts since it had some problems dealing
with bind tables that never came into being
stdarg [Sun, 21 May 2006 19:32:19 +0000]
* Hopefully fixed an ipv6 related compile error on freebsd (testing
would be appreciated)
wcc [Fri, 14 Apr 2006 22:19:07 +0000]
* AUTHORS updates.
wcc [Wed, 29 Mar 2006 00:53:50 +0000]
* Added lordares to AUTHORS.
guppy [Fri, 6 Jan 2006 19:09:00 +0000]
figured a .cvsignore file would be handy
sven [Fri, 6 Jan 2006 19:01:40 +0000]
* unload all modules on .restart
With this fix restarting the bot seems to work. valgrind does not pick up
any more corruptions and I didn't notice any obvious bugs but there might
still be leaks around.
sven [Fri, 6 Jan 2006 03:59:30 +0000]
* lots of memory corrupting .restart fun
sven [Fri, 6 Jan 2006 00:53:10 +0000]
* fixed two memory crash bugs on .restart
sven [Thu, 5 Jan 2006 20:42:42 +0000]
* fixed the "break" thingy
* fixed a va_list crash on AMD64
* improved pythonscript module:
* used the correct CFLAGS as defined in lib/python2.x/config/Makefile
* cleared the exception indicator after loading a script
* implemented eggdrop users as a python object instead of an int (3 attributes, 12 methods)
* exported the egguser and stdio types into the eggdrop module
guppy [Tue, 3 Jan 2006 03:00:17 +0000]
another small fix
guppy [Tue, 3 Jan 2006 02:39:36 +0000]
simple typo -- catching up on my post-vacation e-mail
sven [Thu, 29 Dec 2005 01:38:12 +0000]
* timer IDs are now checked for overflows (like that's ever gonna happen)
* binds are assigned a unique non-zero id
* this ID is displayed in the partyline's ".binds" output
* bind_entry_lookup now searches *all* bind tables if the "table" parameter is NULL
* added "unbind_id" and "rebind_id" scripting functions that do the same thing as the non "_id" functions but use the bind ID instead of string guessing
sven [Wed, 28 Dec 2005 17:27:31 +0000]
As explained in detail here: eggheads.org/pipermail/eggdev/2005-December/026748.html
Summary:
* Created a "struct event_owner_t" to keep track of which event belongs to which module.
* Removed the "del" function pointer from the script callback struct, the owner struct does this now.
* Left the delete_data member in the scruct even so it is never used. Why does it exist?
* All modules use the event_owner struct to register their own events.
* Remove all binds and all timers belonging to a module before it is unloaded.
sven [Sat, 17 Dec 2005 01:25:06 +0000]
pythonscript:
* Real logfile and partyline output support
* Pretty docstrings for mapped eggdrop functions
* Indenting fixes in the partyline includes
sven [Thu, 15 Dec 2005 15:26:12 +0000]
Adding the pythonscript module
wcc [Fri, 9 Dec 2005 06:24:50 +0000]
* DO_IPV6 macros should be disabled if IPV6 is not defined.
wcc [Wed, 7 Dec 2005 03:17:49 +0000]
* Don't allow channels with invalid prefixes to be added to the bot via .+chan.
* Don't allow channels that already exist to be added to the bot via .+chan.
* Show a message saying the channel has been created after creation via +chan.
* Show removed channel name after a channel is removed with .-chan.
lordares [Thu, 1 Dec 2005 22:18:52 +0000]
* Formatting error/fix
wcc [Thu, 1 Dec 2005 22:16:11 +0000]
* Don't use getsockopt() on invalid file descriptors (<0).
* Minor code formatting.
* Added "loT" files to .cvsignore.
stdarg [Thu, 1 Dec 2005 21:22:11 +0000]
* Added some defines to prevent symbol conflicts
* Ircmask list was trying to be cleared twice (might need further
fixing)
stdarg [Thu, 1 Dec 2005 18:03:07 +0000]
* Fix formatting of ipv4-in-ipv6 mapped addresses
stdarg [Thu, 1 Dec 2005 17:43:47 +0000]
* Replaced atol() with stroul() for converting long ip to string
stdarg [Thu, 1 Dec 2005 15:02:32 +0000]
* Remove ident_info from linked list in ident_result()
wcc [Tue, 29 Nov 2005 01:18:54 +0000]
* More syntax documentation and cleanups for partyline commands.
* Added -obot partyline command for oldbotnet module.
wcc [Mon, 28 Nov 2005 07:09:28 +0000]
* Cleanups to server module partyline commands.
* Show "The channel list is empty." in party_channels() if it is.
* Decrement nchannels when a channel is removed.
wcc [Mon, 28 Nov 2005 06:29:07 +0000]
* Added a .channels partyline command.
stdarg [Mon, 28 Nov 2005 04:02:07 +0000]
.+chan joins channel when executed
wcc [Mon, 28 Nov 2005 03:53:09 +0000]
* Check for DO_IPV6 before using AF_INET6.
wcc [Sun, 27 Nov 2005 20:47:15 +0000]
- Corrected a sizeof(int) == sizeof(pointer) assumption in
lib/eggdrop/script.c.
- 'newvalue' was declared twice in one function in tclscript/tclscript.c.
* Patch by Sven Trenkel.
stdarg [Sat, 26 Nov 2005 23:41:03 +0000]
dcc connect wasn't being triggered
nicklist memmove size wasn't right when removing elements from list
stdarg [Sat, 26 Nov 2005 16:44:30 +0000]
Eliminate extra free() for keys of hash table
wcc [Tue, 15 Nov 2005 03:59:49 +0000]
* Fixed an off-by-one error in sockbuf.c from last night's commit. Patch by
Sven Trenkel.
wcc [Mon, 14 Nov 2005 04:44:43 +0000]
I'll just quote Sven :)
"While working on a python scripting module for eggdrop1.9 I found a few
bugs, patch attached:
1. memcpy is used for overlapping memory areas in lib/eggdrop/partychan.c
2. Prevent reading from or writing to a socket <=0 otherwise the
following could happen: eof detected -> on_eof handlers called ->
on_quit called -> write something to the sockbuf -> eof detected ...
3. Under certain conditions some memory blocks were freed twice.
(Hopefully) fixed it and added a warning for developers. This part is
extremely non-obvious I'm not 100% sure I got it right but at least it
doesn't crah anymore if you disconnect and reconnect a telnet connection
on AMD32 archs.
4. The my_scriptname_callbacker functions used some kind of pointer
magic on the stack to get their parameters. This worked on IA32 but not
on architectures that don't pass their function parameters over the
stack, like AMD64. It uses the stdarg macros now."
stdarg [Tue, 25 Oct 2005 19:55:44 +0000]
* Got rid of seemingly wrong "- 1" in config.stubs which was trimming
off an extra character
* Added default value for max_line_len to config.xml
lordares [Sun, 28 Aug 2005 01:39:48 +0000]
* Fixed 2 socket leaks in socket_create()
darko [Fri, 24 Jun 2005 19:00:57 +0000]
- Introduced hash table flag HASH_TABLE_FREE_KEY. Useful with hashes that
have their key created specifically for them (via strdup for example).
It will signal hash_table_remove()/delete() to free(key) too.
And there is already a beneficiary - irchosts_cache_ht will leak no more.
- Fixed leaks produced by userlist hash deletion - hash_table_delete() was
not enough.
darko [Wed, 22 Jun 2005 19:45:11 +0000]
- Resolved problems occuring due to cyclic dependencies (channels
referenced users who in turn referenced channels who referenced users..)
stdarg [Tue, 21 Jun 2005 02:55:34 +0000]
* Check for ping timeout in server connection
darko [Mon, 20 Jun 2005 19:21:55 +0000]
- Missing sentinel in xml_parse_file() - fixed A LOAD of memory errors
stdarg [Thu, 9 Jun 2005 02:59:03 +0000]
* Dunno why timer_info was using an uninitialized string instead of the real one
stdarg [Thu, 9 Jun 2005 02:56:44 +0000]
* Free channel stats when channel is deleted in chanserv
* Add help for some server commands
stdarg [Tue, 31 May 2005 03:35:07 +0000]
* Fixed some memleaks I found with valgrind
stdarg [Sun, 15 May 2005 17:34:23 +0000]
* Get rid of debugging output for ircmasks.c
stdarg [Tue, 10 May 2005 06:50:39 +0000]
* Didn't delete ident lookup idx when it was cancelled
stdarg [Sun, 8 May 2005 04:40:12 +0000]
* fix some bugs with initializing mode lists and arg lists for auto-joined channels
* experimental code to help user searching based on a host (in ircmasks.c)
* use random-replacement for userhost cache management (may need tuning)
lordares [Sat, 5 Mar 2005 18:14:17 +0000]
* mIRC masks 4 and 9 also replace user with '*'
lordares [Thu, 3 Mar 2005 21:40:33 +0000]
* Actually, looking over mIRC help and testing with $mask() it wasn't as simple as my patch..
lordares [Thu, 3 Mar 2005 21:37:36 +0000]
* Added support for 10-19 mask types from mIRC (replaces numbers with '?')
stdarg [Thu, 3 Mar 2005 18:45:26 +0000]
* Work done on chanserv module (protection, flood detection)
stdarg [Thu, 3 Mar 2005 18:44:47 +0000]
* Changed time to use long instead of int
* Fixed hash table resize to use defined constant
lordares [Thu, 3 Mar 2005 17:12:13 +0000]
* Changed comment about resizing as I missed that hashes were saved in the table. (newb mistake)
lordares [Wed, 2 Mar 2005 17:22:44 +0000]
* Added some comments on the hash table resizing to clear up some confusion I personally had
and some others may have had at some point.
lordares [Thu, 23 Dec 2004 00:12:34 +0000]
* Added shuffleArray(char **, int len) to string.c
* Dns cached pools are now shuffled before callback
lordares [Wed, 22 Dec 2004 21:07:15 +0000]
* Fix AF_INET6 compile error when IPV6 is not defined in inet-ntop.c
lordares [Wed, 22 Dec 2004 19:03:08 +0000]
*** empty log message ***
lordares [Wed, 22 Dec 2004 17:40:54 +0000]
* reply.ttl was clobbered, using the lowest value from the replies now
lordares [Mon, 20 Dec 2004 22:18:51 +0000]
* Potential loop problem
stdarg [Mon, 13 Dec 2004 15:02:29 +0000]
* skeleton for channel services module
lordares [Fri, 10 Dec 2004 19:00:45 +0000]
* Now caching the entire answer for the query
cache_find(char *query) will return an int which can be used on cache[]
cache entries are expired accoring to ttl from (last) reply/answer
-Still need to add an option to disable/tweak the cache
-And need to setup some sort of max for the cache
lordares [Thu, 9 Dec 2004 06:43:32 +0000]
* Added timer_create_secs(int secs, char *name, Function callback)
-Is just an easy way to create a timer based on seconds instead of declaring howlong
and calling timer_create_complex.
* dns now caches answers in hosts[] and expires them according go ttl
-No max cache settings yet or non-cache option, will add more functionality later...
- Please respond if caching dns answers is a problem -
lordares [Thu, 9 Dec 2004 04:53:30 +0000]
* Convert the ttl from the dns reply to our host byte order
Going to fix (add) caching/ttl to the dns, if anyone objects
do let me know asap, won't be anything drastic...
stdarg [Mon, 18 Oct 2004 05:39:34 +0000]
* Alternate code to compute timezone.. hopefully more portable
stdarg [Sun, 17 Oct 2004 08:38:11 +0000]
* Add intl include directory to CPPFLAGS when using builtin gettext
stdarg [Sun, 17 Oct 2004 05:44:13 +0000]
* An easier way to get the timezone...
stdarg [Sun, 17 Oct 2004 05:14:06 +0000]
* Added a few includs to common.h
* Removed duplicate includes from a bunch of files
* Added tcl date parsing a la "clock scan"
* Fixed some issues with configure (maybe)
stdarg [Sun, 10 Oct 2004 04:55:11 +0000]
* Added .netstats command to see network connections... may add traffic stats later
stdarg [Wed, 6 Oct 2004 14:59:09 +0000]
* added .timers command to view active timers
stdarg [Wed, 6 Oct 2004 04:53:26 +0000]
*** empty log message ***