The Network Daemon Exploder
- INSIPRATION
I wrote this program out of need, actually. I've been the release manager for the dancer-ircd conversion project on OpenProjects.Net. We were trying to get the network using a newly coded irc daemon when we discovered that under load, it cored. Ouch. After disrupting communication for all 5000 people on OpenProjects, the decision was made that simply trying it was not an acceptable form of testing. Unfortunately, just using the daemon a bit or even using clone bots was not causing it to core. I wrote this program to not only connect clients, but also simulate activity. It is able to handle hundreds of simultaneously connected clients. You may note that each FD gets read/written one after the other, so it may be a better test to have a few of these running simultaneously. In case your wondering, this program did help us find the bug - with some of the select() delay calls commented out, it could crash our ircd within seconds. Not bad.
PLANS FOR FUTURE:
This program was originally called "ircdloadtester". I decided that it probably would have lots of use in testing other daemons. I renamed it to a more general name, although never did have time to actually generalize the code. Hopefully, someone will want to use this for something else, and might even feel like making their code general enough to have some kind of a configuration file for each type of daemon. Probably configration files for the constants and arrays at the top of the file would be nice too. Hey, I can dream in patch land, right? hint. :)
BUG FIXES/PATCHES:
In case you didn't get the hint, yes, please do report these/send them in. :)
CONTACTING THE AUTHOR:
My name is Daniel Dent. At this point in time, I can be reached by emailing ddent@vc.bc.ca. I am also on IRC under the nicks "dent" and "ddent" on irc.openprojects.ca. I will make an effort to return your email, but I may not have time for an individual reply to each one due to time constraints.
Hope you find this program useful. I sure did.
Daniel Dent
2001-11-25
