michaelortmann/botnetop.mod
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
_
| |__ ___ _____ _ __ ___ _____ ___ _ __
| ´_ \ / _ \|_ _| `_ \/ _ \|_ _|/ _ \| '_ \
| |_) | (_) | | | | | | | __/ | | | (_) | |_) |
|_.__/ \___/ |_| |_| |_|\___| |_| \___/| .__/
|_| v1.5
by Teemu Hjelt <temex@iki.fi>
At least glance over this document before doing anything with botnetop.mod.
If you don't have earlier experiences with eggdrop modules you should read
this file thoroughly.
Table of Contents
==================
1. Introduction
2. Installation
3. FAQ
4. Tcl commands
5. Tcl variables
6. Feedback
7. Latest version
8. Credits
9. License
1. Introduction
================
botnetop.mod is based on botnetop.tcl written by slennox and was written in C from
scratch by Teemu Hjelt. botnetop.mod allows linked bots to request and give ops to
each other. It can also invite linked bots to invite-only channels, share keys with
them, raise channels' limits and unban them. botnetop.mod is fully compatible with
the botnetop.tcl script and the netbots.tcl's botnetop.tcl component (you can even
use your netset.tcl to configure botnetop.mod). In addition you can use other botnet
opping scripts (e.g, getops.tcl) simultaneously with botnetop.mod.
2. Installation
================
botnetop.mod requires at least eggdrop 1.8.4 and you need to have the irc, the
server and the channel modules loaded.
You also need the source code of eggdrop to compile the module.
1. Go to the directory where you have the eggdrop source code.
(Normally the directory where you have extracted the eggdrop tarball)
2. Go to src/mod directory under your eggdrop directory and copy the
botnetop.mod tarball there.
Or clone the git repository:
git clone https://github.com/michaelortmann/botnetop.mod.git
3. Type "tar zxvf botnetop.mod-x.x.tar.gz" to extract the tarball.
(If that doesn't work type first "gzip -d botnetop.mod-x.x.tar.gz"
and then "tar -xvf botnetop.mod-x.x.tar.gz")
4. Configure and compile eggdrop like you would normally do it.
(e.g, ./configure && make config && make && make install)
All botnetop.mod settings can be found in the botnetop.conf file.
You can either copy it to your eggdrop directory, edit it to fit
your needs and then add line "source botnetop.conf" to your eggdrop
config file or you can just copy the contents of the file to your
eggdrop config file. If you want to use the default settings all you
need to do is to add line "loadmodule botnetop" to your eggdrop config
file. The last thing is to (re)start or rehash your bot and hope for
the best :)
3. FAQ
=======
1. Q: Are you ever going to make the module compatible with the 1.4
series of eggdrop?
A: Probably not, because 1.4 series is lacking the need bindings
and tandbot isn't exported for modules. I've planned to make
a patch for 1.4 that exports tandbot for modules but I don't
know whether I'm going to carry it out or not.
2. Q: I get "`H_need' undeclared (first use in this function)" or
"`tandbot' undeclared (first use this function)" every time I
try to compile eggdrop with botnetop.mod. What should I do?
Q: When trying to load the module I get "botnetop: Error loading
module: /home/lamest/eggdrop/modules/botnetop.so: undefined symbol:
tandbot". How can I fix this?
A: These errors are caused due to the fact that you have too old version of
eggdrop that doesn't have support for need bindings and doesn't export
tandbot for modules. You need at least eggdrop 1.5.4 to use botnetop.mod.
3. Q: I often get messages like "botnetop.mod: new foobar record created
for #foobar (address: 42424242)". What do they mean?
A: They are special debugging messages that help me track bugs in
memory allocating and freeing. They are nothing serious and if
you don't want to see them anymore, type ".console -d" on the
partyline.
4. Q: Are you going to add support for language files?
A: I'm not sure yet. Eggdrop will use gettext in their future
versions but implementing gettext support in botnetop.mod
could be a bit difficult.
5. Q: Are you going to make botnetop.mod compatible with getops.tcl
and/or other similar scripts?
A: I have thought about it. I'm not sure yet how I should do it
because I wouldn't like to make botnetop.mod more bloated
than it currently is.
6. Q: Can I get botnetop.mod for windrops?
A: Yes, if you compile it yourself in Cygwin. I have never tested
how the module works under Windows so I can't offer any kind of
support.
7. Q: What kind of versioning policy are you using?
A: Version 1.0.0 is the first stable version that should be very much
alike with botnetop.tcl. The 1.0 tree is intended for fixing bugs
in 1.0.0. When I'm satisfied with the 1.0 series I will start a new
1.1 series which is intended for adding new features and fixing flaws
in botnetop.tcl. Although the versions after 1.1.0 will have more
configuration variables they still will be fully compatible with
the older versions of the module and botnetop.tcl script.
8. Q: My bot crashed. What should I do?
A: Check the BUG-REPORT file in your bot's doc/ directory and follow
the instructions given. Instead of just sending the bug-report to
bugs@eggheads.org send it also to temex@iki.fi.
9. Q: Why is botnetop.mod so slow? I thought the fact that it's written
in C makes it a lot faster compared to Tcl scripts.
A: In fact Tcl scripts aren't as slow as people often tend to think.
However, I'm not satisfied with the speed of the module myself either
but I'm hoping the versions in 1.1 tree work a lot faster than the
older versions.
10. Q: Do I need to recompile whole eggdrop every time I install botnetop.mod?
A: No, if you still have the directory where you compiled eggdrop with all
the binaries and object files (i.e, you haven't executed either "make clean"
or "make distclean"). If that is the case you can step over the ./configure
phase and only execute "make config && make && make install". The compilation
process should be a lot faster because only the module is compiled.
4. Tcl commands
================
Tcl commands are only enabled if ENABLE_TCL_COMMANDS is
defined in botnetop.h file.
bop_reqop <channel> <need>
Makes the bot request <need> for <channel> from all
linked bots. <need> can be op, invite, limit, key or
unban. Generally if <need> is other than op bop_letmein
is called.
bop_askbot <handle> <channel>
Makes the bot ask <handle> if it wants ops on <channel>.
bop_letmein <channel> <need>
Makes the bot request <need> for <channel> from all
linked bots. <need> can be "invite", "limit", "key" or
"unban". Notice that <need> can't be "op".
bop_lowbots <channel>
Returns 1 if there are less than three bots on the
channel. Otherwise returns 0.
Note: If you're planning to use both botnetop.mod and botnetop.tcl
simultaneously, you need to undefine ENABLE_TCL_COMMANDS in botnetop.h
file or load the script after the module in order to make the script
use its own Tcl procedures.
5. Tcl variables
=================
bop_delay
Maximum number of seconds to delay before asking a non-opped bot
if it needs ops. Set to 0 to disable.
bop_maxreq
Maximum number of bots to request ops from at a time. Set to 0
to disable.
bop_modeop [0/1]
Make the bot send an op request when it sees a bot become opped on a
channel? This will make your bot get ops sooner when another bot is
given ops.
bop_linkop [0/1]
Make the bot send an op request when a bot links? This will make your bot
get ops sooner if linking is delayed, and provides a better chance of the
bots opping one another if there are linking problems.
bop_icheck [0/1]
Check bot's userhost before inviting it to a channel?
bop_hcheck [0/1]
This option performs a hostmask check over the botnet.
bop_osync [0/1]
Make the bot give ops to a bot even if it looks like it's already opped
on the channel?
bop_addhost [0/1]
Make the bot to try add new hostmasks for bots?
bop_log [0/1/2]
Set this to 2 to enable all logging, 1 to disable logging of ops/op
requests and 0 to disable all logging.
bop_oninvite [0/1]
What to do when a bot asks for an invite? Set this to 0 to invite
the bot to the channel and 1 to set +I for the bot.
bop_onlimit [0/1]
What to do when a bot asks for a limit raise? Set this to 0 to
raise the limit by one and 1 to invite the bot to the channel.
bop_onunban [0/1/2]
What to do when a bot asks for an unban? Set this to 0 to unban the
bot, 1 to set +e for the bot and 2 to invite the bot to the channel.
bop_onkey [0/1]
What to do when a bot asks for a key? Set this to 0 to send the
key to the bot and 1 to invite the bot to the channel.
bop_lowbotslimit
If the amount of bots on the channel is below this, send the ops
request right away. Set to 0 to disable.
bop_flood
Answer only X requests in Y seconds. This prevents flooding of
your botnet with botnetop requests. Set to 0:0 to disable.
bop_ignore
Ignore requests for X seconds if the limit in bop_flood has
been reached. Set to 0 to disable.
bop_quickop [0/1]
Use a faster mode queue to give ops quicker?
6. Feedback
============
You can contact the author at temex@iki.fi. All kinds of questions, suggestions,
comments and bug-reports are welcome and highly appreciated. Please feel free to
send also patches. Patches should be in unified (the -u switch in diff) format.
Before sending any questions etc. please read through this document, especially
the FAQ.
7. Latest version
==================
The main site for botnetop.mod was http://www.iki.fi/temex/eggdrop/
See also https://web.archive.org/web/20010124101700/http://user.sgic.fi/~temex/eggdrop/
You can obtain the latest version from
https://ftp.eggheads.org/pub/eggdrop/modules/ and
https://github.com/michaelortmann/botnetop.mod
8. Credits
===========
The author wants to thank the following people (in alphabetical order):
* \-\itman for beta testing.
* Abraham for beta testing and breaking practically everything.
* daimonic for beta testing and telling good jokes.
* Fabian for helping whenever I needed help.
* fuchs for ideas and patches.
* G`Quann for helping solve few problems.
* guppy for solving few problems and setting up the CVS.
* guruz for beta testing and telling bad jokes.
* Johoho for beta testing.
* NML_375 for helping with pointers and fixing few bugs.
* slennox for writing botnetop.tcl.
* SuperS for ideas, suggestions and beta testing.
* Wull for helping with structures.
The author is also grateful for all the people who have sent bug-reports
and supported the project in other ways.
9. License
===========
botnetop.mod is written by Teemu Hjelt and is released to the public under
the terms of the GNU General Public License. For the complete license please
see the file called LICENSE.
Copyright (C) 2000, 2001, 2002 Teemu Hjelt <temex@iki.fi>