diff --git a/.gitignore b/.gitignore index 40caffa8e..7cb635ede 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,15 @@ _$* *.ln core # CVS default ignores end +autom4te.cache +Makefile +.modules +.known_modules +config.h +lush.h +config.log +config.status +config.cache +eggdrop +EGGMOD.stamp +mod.xlibs diff --git a/ChangeLog b/ChangeLog index 0ef224714..b0fb9968d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,32 +1,621 @@ -- - - - - - - - - - - - - - - -Commit 1a2ac64 (2016-09-10 19:22:42 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 6315d7a (2016-11-01 19:06:05 -0400) by Geo +Don't create _sources doc dir + +misc/generateDocs + +- - - - - - - - - - - - - - - +Commit 69c0546 (2016-11-01 18:51:50 -0400) by Geo +Update ChangeLog + +ChangeLog + +- - - - - - - - - - - - - - - +Commit 9a669cf (2016-11-01 18:51:27 -0400) by Geo +Push tags as part of releaseprep + +misc/releaseprep + +- - - - - - - - - - - - - - - +Commit 9e1f329 (2016-11-01 18:49:33 -0400) by Geo +Update doc/Changes1.8 + +doc/Changes1.8 + +- - - - - - - - - - - - - - - +Commit 7f5c04f (2016-11-01 18:19:08 -0400) by Geo +Commit ChangeLog in releaseprep if changed + +ChangeLog +aclocal.m4 +configure +doc/html/objects.inv +doc/html/searchindex.js +misc/releaseprep +src/patch.h + +- - - - - - - - - - - - - - - +Commit becf7dd (2016-11-01 18:13:32 -0400) by Geo +Update version in Changes1.8 + +doc/Changes1.8 + +- - - - - - - - - - - - - - - +Commit fc56390 (2016-11-01 17:41:21 -0400) by Geo +Add Cygwin compile section to INSTALL docs + +INSTALL +doc/html/_sources/ABOUT.txt +doc/html/_sources/BANS.txt +doc/html/_sources/BOTNET.txt +doc/html/_sources/COMPILE-GUIDE.txt +doc/html/_sources/INSTALL.txt +doc/html/_sources/KNOWN-PROBLEMS.txt +doc/html/_sources/README.txt +doc/html/_sources/TEXT-SUBSTITUTIONS.txt +doc/html/_sources/TRICKS.txt +doc/html/_sources/WEIRD-MESSAGES.txt +doc/html/_sources/appendices/first-script.txt +doc/html/_sources/appendices/index.txt +doc/html/_sources/appendices/known-probs.txt +doc/html/_sources/appendices/text-sub.txt +doc/html/_sources/appendices/tricks.txt +doc/html/_sources/appendices/weird-msg.txt +doc/html/_sources/appendices/weird-msgs.txt +doc/html/_sources/coreDocs/assoc.txt +doc/html/_sources/coreDocs/blowfish.txt +doc/html/_sources/coreDocs/channels.txt +doc/html/_sources/coreDocs/compress.txt +doc/html/_sources/coreDocs/console.txt +doc/html/_sources/coreDocs/core.txt +doc/html/_sources/coreDocs/ctcp.txt +doc/html/_sources/coreDocs/dns.txt +doc/html/_sources/coreDocs/filesys.txt +doc/html/_sources/coreDocs/index.txt +doc/html/_sources/coreDocs/irc.txt +doc/html/_sources/coreDocs/modules.txt +doc/html/_sources/coreDocs/notes.txt +doc/html/_sources/coreDocs/seen.txt +doc/html/_sources/coreDocs/server.txt +doc/html/_sources/coreDocs/share.txt +doc/html/_sources/coreDocs/transfer.txt +doc/html/_sources/coreDocs/uptime.txt +doc/html/_sources/coreDocs/woobie.txt +doc/html/_sources/index.txt +doc/html/_sources/installAndSetup/faq.txt +doc/html/_sources/installAndSetup/index.txt +doc/html/_sources/installAndSetup/install.txt +doc/html/_sources/installAndSetup/readme.txt +doc/html/_sources/mainDocs/about.txt +doc/html/_sources/mainDocs/bans.txt +doc/html/_sources/mainDocs/botnet.txt +doc/html/_sources/mainDocs/features.txt +doc/html/_sources/mainDocs/index.txt +doc/html/_sources/mainDocs/ipv6.txt +doc/html/_sources/mainDocs/partyline.txt +doc/html/_sources/mainDocs/patch.txt +doc/html/_sources/mainDocs/tcl-commands.txt +doc/html/_sources/mainDocs/tls.txt +doc/html/_sources/mainDocs/users.txt +doc/html/_sources/tcl-commands.txt +doc/html/_sources/toc_installAndSetup.txt +doc/html/index.html +doc/html/installAndSetup/index.html +doc/html/installAndSetup/install.html +doc/html/objects.inv +doc/html/search.html +doc/html/searchindex.js +doc/sphinx_source/installAndSetup/install.rst + +- - - - - - - - - - - - - - - +Commit 9c0fc90 (2016-11-01 14:05:07 +0100) by thommey +Use -pthread for threaded Tcl on OpenBSD, fixes #295. +* Use -pthread for OpenBSD linking, found in TCL_EXTRA_CFLAGS in +tclConfig.sh. + +* Run autotools. + +* Update changelog. + +* Add -pthread to cflags instead of shared module linker. + +* Run autotools. + +* Fix typo. + +* Run autotools. + +* Add linker flag to where it is being used. + +* Run autotools. + +aclocal.m4 +configure +doc/Changes1.8 +src/mod/compress.mod/configure +src/mod/dns.mod/configure + +- - - - - - - - - - - - - - - +Commit bb5fb02 (2016-10-31 17:30:14 -0400) by Geo +Update THANKS file + +THANKS +doc/Changes1.8 + +- - - - - - - - - - - - - - - +Commit 3d44182 (2016-10-28 18:12:54 +0200) by thommey +Run autotools. + +configure +src/mod/compress.mod/configure +src/mod/dns.mod/configure + +- - - - - - - - - - - - - - - +Commit cdd012a (2016-10-28 17:51:22 +0200) by thommey +Trim version numbers from tcllib names like libtcl8.5.so.1.7. + +aclocal.m4 +doc/Changes1.8 + +- - - - - - - - - - - - - - - +Commit 2f98259 (2016-10-28 17:18:50 +0200) by thommey +Use cc -shared for linking on BSD. + +aclocal.m4 +doc/Changes1.8 + +- - - - - - - - - - - - - - - +Commit 63aaa90 (2016-10-28 16:07:05 +0200) by thommey +Work around some incompatibilies between gnu make 3.82 and 4.x. + +Makefile.in +doc/Changes1.8 + +- - - - - - - - - - - - - - - +Commit 0f4bbd1 (2016-10-27 21:19:25 -0500) by Geo +Fix out-of-bounds read error (#292). Fixes #200 +Patch by: thommey, Geo / Found by: Robby +doc/Changes1.8 +src/mod/dns.mod/coredns.c + +- - - - - - - - - - - - - - - +Commit 711bf7f (2016-10-27 20:08:06 -0500) by Geo +Clear channel modes on disconnect (#279) +Patch by: Geo, thommey / Found by: thommey + nuke_server() calls reset_chan_info(), which clears channel modes and then +re-requests them, which is the point of the function. However, because the +server connection has already been killed, chan->status is set to +CHAN_ASKEDBANS and thus doesn't re-request the banlist from the server +when it finally does rejoin. By setting to clear_chan, the list is just +cleared and the banlist properly requested from the IRC server on join. +doc/Changes1.8 +src/mod/server.mod/servmsg.c + +- - - - - - - - - - - - - - - +Commit 3a9a7be (2016-10-27 19:53:39 -0500) by Geo +Ensure Makefile works with both BSDand GNU make (#291). Fixes #272 +Patch by: thommey / Found by: Geo + +* Adding -f to readlink in Makefile because the destination path usually +does not exist. +Makefile.in +doc/Changes1.8 + +- - - - - - - - - - - - - - - +Commit 829084a (2016-10-25 18:25:43 +0200) by thommey +Fix commit hash for last commit, I meant 618ecbf9. + +doc/Changes1.8 + +- - - - - - - - - - - - - - - +Commit 8ad1bc0 (2016-10-25 18:19:43 +0200) by thommey +Fix formatting bug in 49df122, MISC_LOGREPEAT contains a format specifier. + +doc/Changes1.8 +src/misc.c + +- - - - - - - - - - - - - - - +Commit a4353e5 (2016-10-20 18:56:49 +0200) by thommey +Increase memory table size for memory debugging by factor 10. + +doc/Changes1.8 +src/mem.c + +- - - - - - - - - - - - - - - +Commit a059d84 (2016-10-13 19:33:23 -0400) by Geo +Update THANKS file + +THANKS + +- - - - - - - - - - - - - - - +Commit 14f9f6a (2016-10-13 18:38:04 -0400) by Geo +Add RC1 release date to Changelog + +doc/Changes1.8 + +- - - - - - - - - - - - - - - +Commit f6292e3 (2016-10-13 17:47:41 +0200) by thommey +Update patch description, while we are still using it. + +src/patch.h + +- - - - - - - - - - - - - - - +Commit 306bfe3 (2016-10-13 17:47:02 +0200) by thommey +Fix compile warnings. + +doc/Changes1.8 +src/botnet.c +src/mem.c +src/mod/filesys.mod/files.c +src/mod/share.mod/share.c +src/mod/share.mod/uf_features.c + +- - - - - - - - - - - - - - - +Commit 9557c38 (2016-10-13 00:19:46 -0400) by Geo +Update Changelog + +doc/Changes1.8 + +- - - - - - - - - - - - - - - +Commit 21816ec (2016-10-03 22:01:49 -0400) by Geo +Update x-compile Makefile changes to POSIX. Fixes #273 Patch by: Geo + +Makefile.in + +- - - - - - - - - - - - - - - +Commit 9878939 (2016-10-12 23:44:58 -0400) by Geo +Update Changelog + +doc/Changes1.8 + +- - - - - - - - - - - - - - - +Commit 321c219 (2016-10-13 03:00:43 +0200) by Christophe Beauval +Reset channel information on disconnect properly. +This fixes two instances missing in cc7240, in the fix for #218. Closes +#275. + +doc/Changes1.8 +src/mod/server.mod/servmsg.c + +- - - - - - - - - - - - - - - +Commit d953721 (2016-10-12 19:01:52 +0200) by thommey +Fix a bug from the Tcl interp result transition. + +doc/Changes1.8 +src/cmds.c + +- - - - - - - - - - - - - - - +Commit 09dd276 (2016-10-10 22:41:29 -0400) by Geo +Update Changelog + +doc/Changes1.8 + +- - - - - - - - - - - - - - - +Commit 57419b9 (2016-10-04 15:59:43 -0400) by Geo +Run autotools + +configure +doc/Changes1.8 +src/mod/compress.mod/configure +src/mod/dns.mod/configure + +- - - - - - - - - - - - - - - +Commit eafc49d (2016-10-04 15:57:50 -0400) by Geo +Update tcl.m4 (Adds NetBSD tclConfig.sh path). Fixes #175 Patch by: +thommey,Geo / Found by: fhorst + +doc/Changes1.8 +tcl.m4 + +- - - - - - - - - - - - - - - +Commit 4a21b5a (2016-10-03 21:06:03 +0200) by thommey +Update INSTALL. + +INSTALL + +- - - - - - - - - - - - - - - +Commit 2f316eb (2016-10-03 16:03:02 +0200) by thommey +Revert "Add byte-based flood option", we will re-add it at a later point. +It's not how we want it to be right now. +This reverts commit cfdf0ec1a01979ffaa694c93f764609e429ff13b. + +doc/Changes1.8 +eggdrop.conf +src/chan.h +src/eggdrop.h +src/mod/channels.mod/channels.c +src/mod/channels.mod/cmdschan.c +src/mod/channels.mod/tclchan.c +src/mod/irc.mod/chan.c +src/mod/irc.mod/irc.h +src/mod/irc.mod/mode.c + +- - - - - - - - - - - - - - - +Commit 20b7479 (2016-10-02 20:37:44 -0400) by Geo +Update Changes1.8 Patch by: Geo + +doc/Changes1.8 + +- - - - - - - - - - - - - - - +Commit 867f4bb (2016-10-02 20:33:20 -0400) by Geo +Remove duplicate uppercase doc filenames. Fixes #270 Patch by: Geo / Found +by: jackal^ + +doc/html/_sources/installAndSetup/INSTALL.txt +doc/html/_sources/installAndSetup/README.txt +doc/html/_sources/mainDocs/TLS.txt +doc/html/installAndSetup/INSTALL.html +doc/html/installAndSetup/README.html +doc/html/mainDocs/TLS.html + +- - - - - - - - - - - - - - - +Commit a858678 (2016-10-02 21:04:01 +0200) by thommey +Squelsh error message on misc/runautotools if git is not found. + +misc/getcommit + +- - - - - - - - - - - - - - - +Commit 393e6ad (2016-10-02 17:33:54 +0200) by thommey +Run autotools. + +configure +src/mod/compress.mod/configure +src/mod/dns.mod/configure + +- - - - - - - - - - - - - - - +Commit d2371c3 (2016-10-02 17:33:42 +0200) by thommey +Use Tcl linker suggestion when using Tcl ldflags for them to be compatible. + + +aclocal.m4 + +- - - - - - - - - - - - - - - +Commit 18fc31c (2016-10-02 17:27:00 +0200) by thommey +Fix compile warning about potentially signed char as array subscript. + +doc/Changes1.8 +src/tls.c + +- - - - - - - - - - - - - - - +Commit 885b4e5 (2016-10-02 17:15:41 +0200) by thommey +Run autotools. + +configure +src/mod/compress.mod/configure +src/mod/dns.mod/configure + +- - - - - - - - - - - - - - - +Commit 962c542 (2016-10-02 16:13:33 +0200) by thommey +Include -lz for Tcl >= 8.6 if not autoconfigured via tclConfig.sh. + +aclocal.m4 + +- - - - - - - - - - - - - - - +Commit c9bff21 (2016-10-02 16:06:30 +0200) by thommey +Update .gitignore some more. + +.gitignore + +- - - - - - - - - - - - - - - +Commit 5a625d2 (2016-10-02 16:01:26 +0200) by thommey +Update .gitignore. + +.gitignore + +- - - - - - - - - - - - - - - +Commit f11ce2c (2016-10-01 17:51:02 +0200) by thommey +Fix cygwin windows.h inclusion. + +src/main.c + +- - - - - - - - - - - - - - - +Commit 74398d3 (2016-10-01 17:50:26 +0200) by thommey +Revert "Remove windows.h including, and instead provide our own +FreeConsole() prototype." +This reverts commit 28301664dd303d35563714a160b9bc7c9f6848eb. + +src/main.c + +- - - - - - - - - - - - - - - +Commit becc096 (2016-10-01 11:56:03 +0200) by thommey +Run autotools. + +configure +src/mod/compress.mod/configure +src/mod/dns.mod/configure + +- - - - - - - - - - - - - - - +Commit b3a0f63 (2016-10-01 11:55:44 +0200) by thommey +Remove duplicate math libs from Tcl library list. + +aclocal.m4 + +- - - - - - - - - - - - - - - +Commit 2830166 (2016-10-01 10:58:35 +0200) by thommey +Remove windows.h including, and instead provide our own FreeConsole() +prototype. + +src/main.c + +- - - - - - - - - - - - - - - +Commit e159be3 (2016-10-01 10:57:10 +0200) by thommey +Fix various compile warnings. + +doc/Changes1.8 +src/dcc.c +src/dns.c +src/mod/dns.mod/coredns.c + +- - - - - - - - - - - - - - - +Commit fe21006 (2016-09-30 00:35:35 +0200) by thommey +Run autotools. + +configure +src/mod/compress.mod/configure +src/mod/dns.mod/configure + +- - - - - - - - - - - - - - - +Commit 593ec65 (2016-09-30 00:34:59 +0200) by thommey +Add Tcl library link flags from tclConfig.sh. + +aclocal.m4 + +- - - - - - - - - - - - - - - +Commit 2965183 (2016-09-29 22:26:06 +0200) by thommey +Add help-path setting to eggdrop-basic.conf. + +doc/Changes1.8 +eggdrop-basic.conf + +- - - - - - - - - - - - - - - +Commit b41fb6b (2016-09-29 21:29:48 +0200) by thommey +Add owner setting to eggdrop-basic.conf. + +doc/Changes1.8 +eggdrop-basic.conf + +- - - - - - - - - - - - - - - +Commit 0a90a9f (2016-09-29 17:06:02 +0200) by thommey +Run autotools. + +configure +src/mod/compress.mod/configure +src/mod/dns.mod/configure + +- - - - - - - - - - - - - - - +Commit fb7db08 (2016-09-29 17:04:51 +0200) by thommey +Update TEA version to match tcl.m4. + +aclocal.m4 +doc/Changes1.8 + +- - - - - - - - - - - - - - - +Commit 789fc8c (2016-09-28 08:43:33 -0400) by Geo +Move eggdrop-basic.conf as part of make install. Fixes #261 Patch by: Geo / +Found by: thommey + +Makefile.in + +- - - - - - - - - - - - - - - +Commit 918b0e3 (2016-09-26 22:09:09 -0500) by Geo +Fix documents not being generated to correct places. Fixes #257 (#258) +Patch by: Geo / Found by: Pixelz +FEATURES +INSTALL +README +doc/Changes1.8 +misc/generateDocs + +- - - - - - - - - - - - - - - +Commit bd1ee04 (2016-09-23 23:04:08 -0400) by Geo +Commit ChangeLog to develop before gen'ing RC/Releases. Fixes #246, closes +#256 Patch by: Geo / Found by: kisser + +doc/Changes1.8 +misc/releaseprep + +- - - - - - - - - - - - - - - +Commit 48e427c (2016-09-23 22:52:47 -0400) by Geo +Update docs to indicate j log flag logs topic changes. Fixes #191 Patch by: +Geo / Found by: senpai + +doc/Changes1.8 +doc/html/_sources/mainDocs/tcl-commands.txt +doc/html/index.html +doc/html/mainDocs/index.html +doc/html/mainDocs/tcl-commands.html +doc/html/search.html +doc/html/searchindex.js +doc/sphinx_source/mainDocs/tcl-commands.rst +doc/tcl-commands.doc +eggdrop.conf + +- - - - - - - - - - - - - - - +Commit e3321cc (2016-09-21 23:31:02 -0500) by Generic User +Fix cross-compile errors. Fixes #247, fixes #248, closes #249 Patch by: +Anonymous / Found by: eelcohuininga +Fix some cross-compile issues with socklen_t and IPv6 autoconf + +Updated to not run the compiled eggdrop when cross-compiling + +Fixed typo when determining if we are cross-compiling + +Add notification that test run is to be skipped if x-compilation is used + +Makefile.in +aclocal.m4 +configure +configure.ac +doc/Changes1.8 + +- - - - - - - - - - - - - - - +Commit a4ca7a5 (2016-09-23 00:39:50 +0200) by thommey +Update copyright date for ./eggdrop -v. + +doc/Changes1.8 +src/main.c + +- - - - - - - - - - - - - - - +Commit be8bd09 (2016-09-16 20:22:54 -0400) by Geo +Typo: tcl-commands.doc bind time description. Fixes #244 Patch by: Geo / +Found by: maimizuno + +doc/Changes1.8 +doc/html/_sources/mainDocs/tcl-commands.txt +doc/html/index.html +doc/html/mainDocs/index.html +doc/html/mainDocs/tcl-commands.html +doc/html/objects.inv +doc/html/search.html +doc/html/searchindex.js +doc/sphinx_source/mainDocs/tcl-commands.rst +doc/tcl-commands.doc + +- - - - - - - - - - - - - - - +Commit c2b173f (2016-09-15 18:19:40 +0300) by Fayez +Typo: "timer " should be "utimer ". Closes #241 Patch by: +sirfz, Geo / Found by: sirfz + +doc/Changes1.8 +doc/html/_sources/mainDocs/tcl-commands.txt +doc/html/index.html +doc/html/mainDocs/index.html +doc/html/mainDocs/tcl-commands.html +doc/html/objects.inv +doc/html/search.html +doc/html/searchindex.js +doc/sphinx_source/mainDocs/tcl-commands.rst +doc/tcl-commands.doc + +- - - - - - - - - - - - - - - +Commit 1a2ac64 (2016-09-10 19:22:42 -0400) by Geo Rename basic.eggdrop.conf to eggdrop-basic.conf basic.eggdrop.conf eggdrop-basic.conf -- - - - - - - - - - - - - - - -Commit 1d86245 (2016-09-10 16:42:56 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 1d86245 (2016-09-10 16:42:56 -0400) by Geo Generate documents doc/BOTNET doc/IPV6 doc/settings/core.settings -- - - - - - - - - - - - - - - -Commit 9f2c0e2 (2016-09-09 23:18:49 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 9f2c0e2 (2016-09-09 23:18:49 -0400) by Geo Update THANKS file THANKS -- - - - - - - - - - - - - - - -Commit 3786a5c (2016-09-09 08:45:51 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 3786a5c (2016-09-09 08:45:51 -0400) by Geo Add pid setting to basic.conf basic.eggdrop.conf -- - - - - - - - - - - - - - - -Commit a9a2d13 (2016-08-30 22:58:25 -0400) by Geo +- - - - - - - - - - - - - - - +Commit a9a2d13 (2016-08-30 22:58:25 -0400) by Geo Add 'basic' config file option to Eggdrop. Fixes #164 Move loadmodules to top, mod a few other settings @@ -45,14 +634,14 @@ Fix inline comments basic.eggdrop.conf doc/Changes1.8 -- - - - - - - - - - - - - - - -Commit f20b8fe (2016-09-08 21:25:48 -0400) by Geo +- - - - - - - - - - - - - - - +Commit f20b8fe (2016-09-08 21:25:48 -0400) by Geo Remove incorrect docs update artifact doc/IPv6 -- - - - - - - - - - - - - - - -Commit f69a389 (2016-09-07 18:58:54 -0500) by andy5995 +- - - - - - - - - - - - - - - +Commit f69a389 (2016-09-07 18:58:54 -0500) by andy5995 Fix incorrect .chaddr help documentation. Merges #238 Found by: andy5995 / Patch by: andy5995 @@ -63,8 +652,8 @@ language/core.finnish.lang language/core.french.lang language/core.german.lang -- - - - - - - - - - - - - - - -Commit 618ecbf (2016-08-28 11:57:31 -0500) by andy5995 +- - - - - - - - - - - - - - - +Commit 618ecbf (2016-08-28 11:57:31 -0500) by andy5995 Fix format string warnings. Fixes #195, Merges #232. When eggdrop is built with -Wformat -Werror=format-security @@ -73,8 +662,8 @@ src/misc.c src/mod/server.mod/server.c src/mod/transfer.mod/transfer.c -- - - - - - - - - - - - - - - -Commit c805e6a (2016-08-30 10:48:46 -0400) by Geo +- - - - - - - - - - - - - - - +Commit c805e6a (2016-08-30 10:48:46 -0400) by Geo Update HTML docs to match eggheads color scheme doc/html/.buildinfo @@ -129,8 +718,8 @@ doc/html/searchindex.js doc/sphinx_source/_static/eggdrop.css doc/sphinx_source/conf.py -- - - - - - - - - - - - - - - -Commit c5b5244 (2016-08-24 21:12:17 -0400) by Geo +- - - - - - - - - - - - - - - +Commit c5b5244 (2016-08-24 21:12:17 -0400) by Geo Raise default max-log to 20, update config docs (#230) Raise default max-log to 20, update config docs This change increases the default to 20. The code checks if max-logs was @@ -151,63 +740,63 @@ eggdrop.conf src/misc.c src/tcl.c -- - - - - - - - - - - - - - - -Commit 6203bdd (2016-08-12 22:11:31 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 6203bdd (2016-08-12 22:11:31 -0400) by Geo update AUTHORS AUTHORS -- - - - - - - - - - - - - - - -Commit 9f802d5 (2016-08-11 20:51:40 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 9f802d5 (2016-08-11 20:51:40 -0400) by Geo Update doc Makefile for new HTML files doc/Makefile.in -- - - - - - - - - - - - - - - -Commit a73a319 (2016-08-10 00:38:45 -0400) by Geo +- - - - - - - - - - - - - - - +Commit a73a319 (2016-08-10 00:38:45 -0400) by Geo Fixup bash git push script misc/releaseprep -- - - - - - - - - - - - - - - -Commit d758eb7 (2016-08-09 22:53:26 -0400) by Geo +- - - - - - - - - - - - - - - +Commit d758eb7 (2016-08-09 22:53:26 -0400) by Geo Generate fresh docs as part of release misc/generateDocs misc/releaseprep -- - - - - - - - - - - - - - - -Commit 78a9a96 (2016-08-09 21:26:13 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 78a9a96 (2016-08-09 21:26:13 -0400) by Geo Remove whitespace doc/Versions -- - - - - - - - - - - - - - - -Commit a5a915e (2016-08-07 02:00:52 -0400) by Geo +- - - - - - - - - - - - - - - +Commit a5a915e (2016-08-07 02:00:52 -0400) by Geo Update THANKS file THANKS -- - - - - - - - - - - - - - - -Commit 9957f00 (2016-08-04 17:46:23 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 9957f00 (2016-08-04 17:46:23 -0400) by Geo Commit, Tag, Push final release version misc/releaseprep -- - - - - - - - - - - - - - - -Commit 6fb5418 (2016-08-04 16:05:20 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 6fb5418 (2016-08-04 16:05:20 -0400) by Geo Update genChangelog to respect .mailmap misc/genChangelog -- - - - - - - - - - - - - - - -Commit 9679f7b (2016-07-31 11:54:10 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 9679f7b (2016-07-31 11:54:10 -0400) by Geo Update : counting method src/net.c -- - - - - - - - - - - - - - - -Commit bdf72d9 (2016-07-25 23:14:06 -0400) by Geo +- - - - - - - - - - - - - - - +Commit bdf72d9 (2016-07-25 23:14:06 -0400) by Geo Typo fix doc/MODULES @@ -217,8 +806,8 @@ doc/html/objects.inv doc/html/searchindex.js doc/sphinx_source/coreDocs/modules.rst -- - - - - - - - - - - - - - - -Commit 5254a4a (2016-07-25 23:08:52 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 5254a4a (2016-07-25 23:08:52 -0400) by Geo Update text files doc/FIRST-SCRIPT @@ -237,8 +826,8 @@ doc/sphinx_source/coreDocs/compress.rst doc/sphinx_source/coreDocs/modules.rst misc/generateDocs -- - - - - - - - - - - - - - - -Commit c9d8607 (2016-07-25 22:49:15 -0400) by Geo +- - - - - - - - - - - - - - - +Commit c9d8607 (2016-07-25 22:49:15 -0400) by Geo Convert new documentation to HTML, sexify the rest doc/html/COMPILE-GUIDE.html @@ -339,8 +928,8 @@ doc/sphinx_source/mainDocs/ipv6.rst doc/sphinx_source/mainDocs/tls.rst misc/generateDocs -- - - - - - - - - - - - - - - -Commit e2a04d4 (2016-07-21 19:15:45 -0400) by Geo +- - - - - - - - - - - - - - - +Commit e2a04d4 (2016-07-21 19:15:45 -0400) by Geo ...aaaaand the html docs, too doc/html/_sources/coreDocs/assoc.txt @@ -380,8 +969,8 @@ doc/html/coreDocs/transfer.html doc/html/coreDocs/uptime.html doc/html/coreDocs/woobie.html -- - - - - - - - - - - - - - - -Commit f97e9f9 (2016-07-21 19:10:21 -0400) by Geo +- - - - - - - - - - - - - - - +Commit f97e9f9 (2016-07-21 19:10:21 -0400) by Geo Fix generateDocs path error, re-gen tcl-commands.doc doc/html/index.html @@ -390,14 +979,14 @@ doc/html/searchindex.js doc/tcl-commands.doc misc/generateDocs -- - - - - - - - - - - - - - - -Commit 9fbfcbd (2016-07-21 18:52:13 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 9fbfcbd (2016-07-21 18:52:13 -0400) by Geo Add pandoc/sphinx check in generateDocs misc/generateDocs -- - - - - - - - - - - - - - - -Commit 271fe23 (2016-07-21 18:50:59 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 271fe23 (2016-07-21 18:50:59 -0400) by Geo Rename coreDocs from git-ignored filename core doc/sphinx_source/coreDocs/assoc.rst @@ -419,8 +1008,8 @@ doc/sphinx_source/coreDocs/transfer.rst doc/sphinx_source/coreDocs/uptime.rst doc/sphinx_source/coreDocs/woobie.rst -- - - - - - - - - - - - - - - -Commit 05379db (2016-07-20 23:53:07 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 05379db (2016-07-20 23:53:07 -0400) by Geo Formatting - Update binds procname spacing doc/html/COMPILE-GUIDE.html @@ -448,14 +1037,14 @@ doc/html/search.html doc/html/searchindex.js doc/sphinx_source/mainDocs/tcl-commands.rst -- - - - - - - - - - - - - - - -Commit 826bbbc (2016-07-17 15:39:31 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 826bbbc (2016-07-17 15:39:31 -0400) by Geo Formatting - tcl-commands.doc doc/sphinx_source/mainDocs/tcl-commands.rst -- - - - - - - - - - - - - - - -Commit 6300a24 (2016-07-17 00:08:47 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 6300a24 (2016-07-17 00:08:47 -0400) by Geo Update BOTNET formatting, add assoc docs doc/BOTNET @@ -468,8 +1057,8 @@ doc/html/searchindex.js doc/settings/mod.assoc doc/sphinx_source/mainDocs/botnet.rst -- - - - - - - - - - - - - - - -Commit 07c2075 (2016-07-16 23:59:38 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 07c2075 (2016-07-16 23:59:38 -0400) by Geo Update plaintext docs from rst files doc/ABOUT @@ -501,14 +1090,14 @@ doc/settings/mod.uptime doc/settings/mod.woobie doc/tcl-commands.doc -- - - - - - - - - - - - - - - -Commit 41b0279 (2016-07-16 23:50:27 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 41b0279 (2016-07-16 23:50:27 -0400) by Geo Create generateDocs to gen HTML and plaintext docs misc/generateDocs -- - - - - - - - - - - - - - - -Commit d87581d (2016-07-16 22:13:44 -0400) by Geo +- - - - - - - - - - - - - - - +Commit d87581d (2016-07-16 22:13:44 -0400) by Geo Formatting- Add emphasis to tcl-commands.rst heading Formatting- also, fix PUBM spacing @@ -538,30 +1127,30 @@ doc/html/search.html doc/html/searchindex.js doc/sphinx_source/mainDocs/tcl-commands.rst -- - - - - - - - - - - - - - - -Commit 96a7981 (2016-07-16 17:04:35 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 96a7981 (2016-07-16 17:04:35 -0400) by Geo Use :-checking instead of inet_pton to determine AF_INET/6 If the OS doesn't have IPv6 capabilities, the presence of inet_pton() is not reliable, so we simply check for 2 or more :s in the provided IP/hostname. src/net.c -- - - - - - - - - - - - - - - -Commit 928b284 (2016-07-16 01:18:16 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 928b284 (2016-07-16 01:18:16 -0400) by Geo Check/reject IPv6 addresses w/o IPv6 support src/net.c -- - - - - - - - - - - - - - - -Commit 26994c5 (2016-07-16 01:38:01 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 26994c5 (2016-07-16 01:38:01 -0400) by Geo Fix IPv6 pref_af #ifdef bug If compiled without IPv6 support, pref_af is improperly attempted for use. This adds the appropriate IPv6 ifdef to exclude it from the conditional if IPv6 is not compiled. src/net.c -- - - - - - - - - - - - - - - -Commit c601450 (2016-07-11 12:34:06 -0400) by Geo +- - - - - - - - - - - - - - - +Commit c601450 (2016-07-11 12:34:06 -0400) by Geo Docs font/bullets update doc/html/.buildinfo @@ -603,8 +1192,8 @@ doc/html/searchindex.js doc/sphinx_source/_static/eggdrop.css doc/sphinx_source/conf.py -- - - - - - - - - - - - - - - -Commit f20e6de (2016-07-11 01:45:27 -0400) by Geo +- - - - - - - - - - - - - - - +Commit f20e6de (2016-07-11 01:45:27 -0400) by Geo Remove un-needed sphinx build-byproducts doc/html/_static/basic.css @@ -650,8 +1239,8 @@ doc/sphinx_source/doctrees/environment.pickle doc/sphinx_source/doctrees/index.doctree doc/sphinx_source/doctrees/tcl-commands.doctree -- - - - - - - - - - - - - - - -Commit 3b25bfd (2016-07-11 00:37:43 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 3b25bfd (2016-07-11 00:37:43 -0400) by Geo Organize under TOC; add remaining topics doc/html/ABOUT.html @@ -746,16 +1335,16 @@ doc/sphinx_source/mainDocs/tcl-commands.rst doc/sphinx_source/mainDocs/users.rst doc/sphinx_source/tcl-commands.rst -- - - - - - - - - - - - - - - -Commit 318d0ad (2016-07-10 16:27:38 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 318d0ad (2016-07-10 16:27:38 -0400) by Geo Update css elements doc/html/_static/eggdrop.css doc/html/searchindex.js doc/sphinx_source/_static/eggdrop.css -- - - - - - - - - - - - - - - -Commit 9fdbd7f (2016-07-10 15:15:52 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 9fdbd7f (2016-07-10 15:15:52 -0400) by Geo Create custom eggdrop CSS colorscheme doc/html/.buildinfo @@ -788,58 +1377,58 @@ doc/sphinx_source/_themes/eggdrop/theme.conf doc/sphinx_source/conf.py doc/sphinx_source/tcl-commands.rst -- - - - - - - - - - - - - - - -Commit d260563 (2016-07-09 13:35:41 +0200) by thommey +- - - - - - - - - - - - - - - +Commit d260563 (2016-07-09 13:35:41 +0200) by thommey Restore changelog entries. They are merged. doc/Changes1.8 -- - - - - - - - - - - - - - - -Commit 870326b (2016-07-09 13:27:45 +0200) by thommey +- - - - - - - - - - - - - - - +Commit 870326b (2016-07-09 13:27:45 +0200) by thommey Reverting changelog entries of not fully merged pull requests. doc/Changes1.8 -- - - - - - - - - - - - - - - -Commit 879f753 (2016-07-09 01:08:00 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 879f753 (2016-07-09 01:08:00 -0400) by Geo Add 1.6.21 to doc/Versions, update AUTHORS AUTHORS doc/Versions -- - - - - - - - - - - - - - - -Commit 120d3ac (2016-07-08 23:30:59 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 120d3ac (2016-07-08 23:30:59 -0400) by Geo Update tcl.m4 (#216) Current as of 21 Jun 2016 - http://core.tcl.tk/tclconfig/artifact/9af027a75ea60be0 tcl.m4 -- - - - - - - - - - - - - - - -Commit 6159ba5 (2016-07-08 23:29:55 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 6159ba5 (2016-07-08 23:29:55 -0400) by Geo Fix SSL verify logic (#221) src/eggdrop.h src/tls.c -- - - - - - - - - - - - - - - -Commit cffe3c1 (2016-07-08 23:29:33 -0400) by Geo +- - - - - - - - - - - - - - - +Commit cffe3c1 (2016-07-08 23:29:33 -0400) by Geo Fix DNS Certificate Matching (#222) -- - - - - - - - - - - - - - - -Commit 9bee92c (2016-07-08 23:28:36 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 9bee92c (2016-07-08 23:28:36 -0400) by Geo Log failed logins due to invalid handles to LOG_MISC instead of LOG_BOTS. (#223) Fixes #184 src/dcc.c -- - - - - - - - - - - - - - - -Commit 5f48f12 (2016-07-08 23:27:00 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 5f48f12 (2016-07-08 23:27:00 -0400) by Geo Fix SSL DNS name matching for telnet (#224) src/dcc.c -- - - - - - - - - - - - - - - -Commit 53536b1 (2016-07-08 23:23:42 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 53536b1 (2016-07-08 23:23:42 -0400) by Geo Ipv6 chat select (#220) * Add CTCP chat src IPv6 settings/selection logic @@ -865,8 +1454,8 @@ src/modules.c src/net.c src/proto.h -- - - - - - - - - - - - - - - -Commit 11c2da4 (2016-07-08 22:23:58 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 11c2da4 (2016-07-08 22:23:58 -0400) by Geo MOAR rest formatting doc/html/_sources/tcl-commands.txt @@ -874,8 +1463,8 @@ doc/html/searchindex.js doc/html/tcl-commands.html doc/sphinx_source/tcl-commands.rst -- - - - - - - - - - - - - - - -Commit bd2f192 (2016-07-08 20:02:39 -0400) by Geo +- - - - - - - - - - - - - - - +Commit bd2f192 (2016-07-08 20:02:39 -0400) by Geo Update source formatting doc/html/.buildinfo @@ -900,29 +1489,29 @@ doc/sphinx_source/_static/eggman.png.gif doc/sphinx_source/conf.py doc/sphinx_source/tcl-commands.rst -- - - - - - - - - - - - - - - -Commit 63754d6 (2016-07-08 00:14:39 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 63754d6 (2016-07-08 00:14:39 -0400) by Geo Refine ChangeLog format doc/Changes1.8 misc/releaseprep -- - - - - - - - - - - - - - - -Commit 06eb36c (2016-07-07 19:02:33 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 06eb36c (2016-07-07 19:02:33 -0400) by Geo Update ChangeLog format misc/releaseprep -- - - - - - - - - - - - - - - -Commit 3645b10 (2016-07-07 18:28:50 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 3645b10 (2016-07-07 18:28:50 -0400) by Geo Update releaseprep to use git for ChangeLog misc/newversion misc/releaseprep src/patch.h -- - - - - - - - - - - - - - - -Commit d4130c8 (2016-07-04 14:55:59 -0400) by Geo +- - - - - - - - - - - - - - - +Commit d4130c8 (2016-07-04 14:55:59 -0400) by Geo Reset channel info on server disconnect src/mod/irc.mod/irc.c @@ -930,14 +1519,14 @@ src/mod/irc.mod/irc.h src/mod/modvals.h src/mod/server.mod/servmsg.c -- - - - - - - - - - - - - - - -Commit 13312a6 (2016-07-03 17:54:11 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 13312a6 (2016-07-03 17:54:11 -0400) by Geo Update github download link to .tar.gz doc/sphinx_source/README.rst -- - - - - - - - - - - - - - - -Commit 176c6ca (2016-07-03 17:45:40 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 176c6ca (2016-07-03 17:45:40 -0400) by Geo HTML docs template update doc/html/.buildinfo @@ -981,8 +1570,8 @@ doc/html/tcl-commands.html doc/sphinx_source/conf.py doc/sphinx_source/index.rst -- - - - - - - - - - - - - - - -Commit 328cfcc (2016-07-02 23:31:10 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 328cfcc (2016-07-02 23:31:10 -0400) by Geo Add new Sphinx-based HTML documentation build system Built in reStructure language, go to sphinx_source and type 'make html' to build docs. TODO: Script method to convert html docs to text, then update the base text docs @@ -1064,8 +1653,8 @@ doc/sphinx_source/doctrees/tcl-commands.doctree doc/sphinx_source/index.rst doc/sphinx_source/tcl-commands.rst -- - - - - - - - - - - - - - - -Commit 7e39d46 (2016-07-02 23:28:14 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 7e39d46 (2016-07-02 23:28:14 -0400) by Geo Remove old HTML files doc/html/about.html @@ -1105,115 +1694,115 @@ doc/html/starting.html doc/html/tcl-commands.html doc/html/users.html -- - - - - - - - - - - - - - - -Commit 4ff3fd0 (2016-05-02 19:28:55 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 4ff3fd0 (2016-05-02 19:28:55 -0400) by Geo Grammar update Patch by: Geo / Found by: maimizuno scripts/userinfo.tcl -- - - - - - - - - - - - - - - -Commit 4ca0207 (2016-06-05 21:00:47 +0200) by Robby +- - - - - - - - - - - - - - - +Commit 4ca0207 (2016-06-05 21:00:47 +0200) by Robby Remove a trailing space in eggdrop.conf. eggdrop.conf -- - - - - - - - - - - - - - - -Commit 5fe4cc9 (2016-05-02 19:28:55 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 5fe4cc9 (2016-05-02 19:28:55 -0400) by Geo Grammar update Patch by: Geo / Found by: maimizuno scripts/userinfo.tcl -- - - - - - - - - - - - - - - -Commit 98bb0da (2016-04-18 17:55:35 +0200) by Geo +- - - - - - - - - - - - - - - +Commit 98bb0da (2016-04-18 17:55:35 +0200) by Geo Fix SSL hostname verification for partyline connections. Closes #98. doc/Changes1.8 -- - - - - - - - - - - - - - - -Commit f7abbda (2016-04-18 17:54:06 +0200) by Robby +- - - - - - - - - - - - - - - +Commit f7abbda (2016-04-18 17:54:06 +0200) by Robby Move logging of failed bot logins to LOG_MISC. Closes #184. doc/Changes1.8 -- - - - - - - - - - - - - - - -Commit 8572444 (2016-04-18 17:51:19 +0200) by Geo +- - - - - - - - - - - - - - - +Commit 8572444 (2016-04-18 17:51:19 +0200) by Geo Fix SSL verification flags not working. Closes #100. doc/Changes1.8 -- - - - - - - - - - - - - - - -Commit 609ce38 (2016-04-18 17:50:15 +0200) by Geo +- - - - - - - - - - - - - - - +Commit 609ce38 (2016-04-18 17:50:15 +0200) by Geo Improve CTCP CHAT IPv6 selection logic. Closes #159. doc/Changes1.8 -- - - - - - - - - - - - - - - -Commit a7fd15d (2016-04-17 23:08:17 +0200) by thommey +- - - - - - - - - - - - - - - +Commit a7fd15d (2016-04-17 23:08:17 +0200) by thommey Set bounce-bans to default to 0, 18a4e634 was incomplete. doc/Changes1.8 src/mod/irc.mod/irc.c -- - - - - - - - - - - - - - - -Commit 804944b (2016-04-08 18:25:35 +0200) by thommey +- - - - - - - - - - - - - - - +Commit 804944b (2016-04-08 18:25:35 +0200) by thommey Add changelog entry for last commit. doc/Changes1.8 -- - - - - - - - - - - - - - - -Commit da6fffe (2016-03-30 15:54:16 +0200) by thommey +- - - - - - - - - - - - - - - +Commit da6fffe (2016-03-30 15:54:16 +0200) by thommey Reduce TLS error noise if neither key nor cert is set. doc/Changes1.8 src/tls.c -- - - - - - - - - - - - - - - -Commit d584c2f (2016-03-05 23:02:07 -0500) by Geo +- - - - - - - - - - - - - - - +Commit d584c2f (2016-03-05 23:02:07 -0500) by Geo Prevent msg commands from functioning without a password set src/userrec.c -- - - - - - - - - - - - - - - -Commit 663a59c (2016-02-27 06:44:37 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 663a59c (2016-02-27 06:44:37 +0100) by thommey Clarify that wait-split is in seconds, not minutes. doc/Changes1.8 doc/html/tcl-commands.html doc/tcl-commands.doc -- - - - - - - - - - - - - - - -Commit 4bbf0ec (2016-02-27 06:43:15 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 4bbf0ec (2016-02-27 06:43:15 +0100) by thommey Remove issue template for github. .github/ISSUE_TEMPLATE -- - - - - - - - - - - - - - - -Commit 2f1ceaa (2016-02-26 22:39:59 -0500) by Geo +- - - - - - - - - - - - - - - +Commit 2f1ceaa (2016-02-26 22:39:59 -0500) by Geo Update HTML docs doc/html/tcl-commands.html -- - - - - - - - - - - - - - - -Commit 84e146a (2016-02-26 00:08:00 -0500) by Geo +- - - - - - - - - - - - - - - +Commit 84e146a (2016-02-26 00:08:00 -0500) by Geo Update HTML docs doc/html/tcl-commands.html -- - - - - - - - - - - - - - - -Commit 057431e (2016-02-24 19:41:23 -0500) by Geo +- - - - - - - - - - - - - - - +Commit 057431e (2016-02-24 19:41:23 -0500) by Geo Create ISSUE_TEMPLATE .github/ISSUE_TEMPLATE -- - - - - - - - - - - - - - - -Commit 3e28ae4 (2016-02-24 19:32:18 -0500) by Geo +- - - - - - - - - - - - - - - +Commit 3e28ae4 (2016-02-24 19:32:18 -0500) by Geo Create PULL_REQUEST_TEMPLATE .github/PULL_REQUEST_TEMPLATE -- - - - - - - - - - - - - - - -Commit 5257250 (2016-02-25 00:43:10 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 5257250 (2016-02-25 00:43:10 +0100) by thommey Revert "Add TCL_EXTRA_CFLAGS from tclConfig.sh to the compiler (to get -pthread)." This reverts commit f0927b9c7f48f33537a4bcc316118963c6ee7a83. @@ -1230,8 +1819,8 @@ doc/Changes1.8 src/mod/compress.mod/configure src/mod/dns.mod/configure -- - - - - - - - - - - - - - - -Commit f0927b9 (2016-02-25 00:32:49 +0100) by thommey +- - - - - - - - - - - - - - - +Commit f0927b9 (2016-02-25 00:32:49 +0100) by thommey Add TCL_EXTRA_CFLAGS from tclConfig.sh to the compiler (to get -pthread). Makefile.in @@ -1241,40 +1830,40 @@ doc/Changes1.8 src/mod/compress.mod/configure src/mod/dns.mod/configure -- - - - - - - - - - - - - - - -Commit 46e26ac (2016-02-25 00:07:35 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 46e26ac (2016-02-25 00:07:35 +0100) by thommey Remove unnecessary Tcl_CreateInterp() prototype, it is in tcl.h. doc/Changes1.8 src/tcl.c -- - - - - - - - - - - - - - - -Commit 8cd9c1b (2016-02-22 21:11:33 -0500) by Geo +- - - - - - - - - - - - - - - +Commit 8cd9c1b (2016-02-22 21:11:33 -0500) by Geo Fix missing ifdef src/mod/ctcp.mod/ctcp.c -- - - - - - - - - - - - - - - -Commit 10b5f58 (2016-02-22 20:55:42 -0500) by Geo +- - - - - - - - - - - - - - - +Commit 10b5f58 (2016-02-22 20:55:42 -0500) by Geo Touchups doc/IPV6 src/mod/ctcp.mod/ctcp.c -- - - - - - - - - - - - - - - -Commit 3fbec09 (2016-02-22 20:50:38 -0500) by Geo +- - - - - - - - - - - - - - - +Commit 3fbec09 (2016-02-22 20:50:38 -0500) by Geo Update IPV6 docs to include SCHAT4/6 doc/IPV6 -- - - - - - - - - - - - - - - -Commit c57bd5d (2016-02-22 20:41:10 -0500) by Geo +- - - - - - - - - - - - - - - +Commit c57bd5d (2016-02-22 20:41:10 -0500) by Geo Added SCHAT4/6 command support src/mod/ctcp.mod/ctcp.c -- - - - - - - - - - - - - - - -Commit 8abba25 (2016-02-22 19:32:22 -0500) by Geo +- - - - - - - - - - - - - - - +Commit 8abba25 (2016-02-22 19:32:22 -0500) by Geo Add CTCP CHAT4/CHAT6 functionality doc/IPV6 @@ -1284,119 +1873,119 @@ src/modules.c src/net.c src/proto.h -- - - - - - - - - - - - - - - -Commit 89c6dda (2016-02-22 15:27:16 -0500) by Geo +- - - - - - - - - - - - - - - +Commit 89c6dda (2016-02-22 15:27:16 -0500) by Geo IPv6 CTCP IP selection logic docs update doc/IPV6 -- - - - - - - - - - - - - - - -Commit 24444dd (2016-02-22 00:29:19 -0500) by Geo +- - - - - - - - - - - - - - - +Commit 24444dd (2016-02-22 00:29:19 -0500) by Geo Explain network settings in eggdrop.conf eggdrop.conf -- - - - - - - - - - - - - - - -Commit 5bf60a6 (2016-02-15 15:36:12 -0500) by Geo +- - - - - - - - - - - - - - - +Commit 5bf60a6 (2016-02-15 15:36:12 -0500) by Geo grammarz doc/TLS -- - - - - - - - - - - - - - - -Commit 4cb9fa6 (2016-02-14 22:26:10 -0500) by Geo +- - - - - - - - - - - - - - - +Commit 4cb9fa6 (2016-02-14 22:26:10 -0500) by Geo Update botnet TLS documentation doc/TLS doc/tcl-commands.doc help/cmds1.help -- - - - - - - - - - - - - - - -Commit a367dae (2016-02-15 00:42:19 -0500) by Geo +- - - - - - - - - - - - - - - +Commit a367dae (2016-02-15 00:42:19 -0500) by Geo Add ERROR prefix to errors src/tls.c -- - - - - - - - - - - - - - - -Commit e045deb (2016-02-15 00:22:46 -0500) by Geo +- - - - - - - - - - - - - - - +Commit e045deb (2016-02-15 00:22:46 -0500) by Geo Fix SSL error logging src/tls.c -- - - - - - - - - - - - - - - -Commit 1a145a1 (2016-02-15 03:37:25 +0100) by Robby +- - - - - - - - - - - - - - - +Commit 1a145a1 (2016-02-15 03:37:25 +0100) by Robby Remove duplicate entries from doc/Changes1.8 doc/Changes1.8 -- - - - - - - - - - - - - - - -Commit da89238 (2016-02-11 21:10:23 +0100) by thommey +- - - - - - - - - - - - - - - +Commit da89238 (2016-02-11 21:10:23 +0100) by thommey Clarify that the owner setting are handles. eggdrop.conf -- - - - - - - - - - - - - - - -Commit eb3885a (2016-02-11 03:13:06 +0100) by thommey +- - - - - - - - - - - - - - - +Commit eb3885a (2016-02-11 03:13:06 +0100) by thommey Normalize IPv6 score to same as IPv4 score: 32. src/match.c -- - - - - - - - - - - - - - - -Commit 88837c2 (2016-02-09 23:56:44 -0500) by Geo +- - - - - - - - - - - - - - - +Commit 88837c2 (2016-02-09 23:56:44 -0500) by Geo Add CTCP chat src IPv6 settings/selection logic src/net.c -- - - - - - - - - - - - - - - -Commit 480d0d7 (2016-02-06 00:09:49 -0500) by Geo +- - - - - - - - - - - - - - - +Commit 480d0d7 (2016-02-06 00:09:49 -0500) by Geo Fail if SSL server attempted with no SSL support src/mod/server.mod/cmdsserv.c src/mod/server.mod/server.c -- - - - - - - - - - - - - - - -Commit 73938bc (2016-02-05 22:31:21 -0500) by Geo +- - - - - - - - - - - - - - - +Commit 73938bc (2016-02-05 22:31:21 -0500) by Geo Update chansettype doc/tcl-commands.doc -- - - - - - - - - - - - - - - -Commit b59bf20 (2016-02-04 22:45:54 -0500) by Geo +- - - - - - - - - - - - - - - +Commit b59bf20 (2016-02-04 22:45:54 -0500) by Geo Documentation update doc/tcl-commands.doc -- - - - - - - - - - - - - - - -Commit 9ec109a (2016-02-05 02:36:43 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 9ec109a (2016-02-05 02:36:43 +0100) by thommey Fix THANKS file indention. THANKS -- - - - - - - - - - - - - - - -Commit 82db0bb (2016-02-05 02:28:25 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 82db0bb (2016-02-05 02:28:25 +0100) by thommey Fix utf-8 encoding of THANKS file. THANKS -- - - - - - - - - - - - - - - -Commit 61d5017 (2016-02-05 02:13:38 +0100) by Robby +- - - - - - - - - - - - - - - +Commit 61d5017 (2016-02-05 02:13:38 +0100) by Robby Update my email address. THANKS -- - - - - - - - - - - - - - - -Commit f14fac0 (2016-01-30 21:29:51 -0500) by Geo +- - - - - - - - - - - - - - - +Commit f14fac0 (2016-01-30 21:29:51 -0500) by Geo Because spelling. doc/tcl-commands.doc -- - - - - - - - - - - - - - - -Commit 7224cb8 (2016-01-30 21:27:03 -0500) by Geo +- - - - - - - - - - - - - - - +Commit 7224cb8 (2016-01-30 21:27:03 -0500) by Geo Update PUBM documentation doc/tcl-commands.doc -- - - - - - - - - - - - - - - -Commit 1ac3404 (2016-01-30 22:23:24 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 1ac3404 (2016-01-30 22:23:24 +0100) by thommey Add the Tcl function rfcequal. doc/Changes1.8 @@ -1404,138 +1993,138 @@ doc/html/tcl-commands.html doc/tcl-commands.doc src/tclmisc.c -- - - - - - - - - - - - - - - -Commit 7648f02 (2016-01-29 21:43:38 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 7648f02 (2016-01-29 21:43:38 +0100) by thommey Fix bug in 0abc1c3b. src/mod/irc.mod/irc.c -- - - - - - - - - - - - - - - -Commit dc74cec (2016-01-27 16:55:10 -0500) by Geo +- - - - - - - - - - - - - - - +Commit dc74cec (2016-01-27 16:55:10 -0500) by Geo thommey knows best src/net.c -- - - - - - - - - - - - - - - -Commit 92a1259 (2016-01-27 16:44:34 -0500) by Geo +- - - - - - - - - - - - - - - +Commit 92a1259 (2016-01-27 16:44:34 -0500) by Geo Last change! src/net.c -- - - - - - - - - - - - - - - -Commit 0abc1c3 (2016-01-27 20:17:18 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 0abc1c3 (2016-01-27 20:17:18 +0100) by thommey Revert compression of +b, +e, +I to +beI when asking for MODEs. Unfortunately, MODE #chan +beI doesn't work on all IRCds. Fixes #73. doc/Changes1.8 src/mod/irc.mod/irc.c -- - - - - - - - - - - - - - - -Commit 6528e34 (2016-01-27 20:07:59 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 6528e34 (2016-01-27 20:07:59 +0100) by thommey Reintroduce scoring system for hostmask matching. Removed by 532d9fe. Fixes #89. src/match.c -- - - - - - - - - - - - - - - -Commit 8e8aec3 (2016-01-27 18:50:49 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 8e8aec3 (2016-01-27 18:50:49 +0100) by thommey Change deprecation message. src/net.c -- - - - - - - - - - - - - - - -Commit 98603fd (2016-01-27 17:54:51 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 98603fd (2016-01-27 17:54:51 +0100) by thommey Document that you can trigger arbitrary events by Tcl scripts. doc/Changes1.8 doc/html/tcl-commands.html doc/tcl-commands.doc -- - - - - - - - - - - - - - - -Commit 07292c6 (2016-01-27 17:51:41 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 07292c6 (2016-01-27 17:51:41 +0100) by thommey Make sure to always set evnt and log temporary variables in the global scope. doc/Changes1.8 src/tclhash.c -- - - - - - - - - - - - - - - -Commit 897c0cf (2016-01-27 00:30:46 -0500) by Geo +- - - - - - - - - - - - - - - +Commit 897c0cf (2016-01-27 00:30:46 -0500) by Geo Update message src/net.c -- - - - - - - - - - - - - - - -Commit a40de62 (2016-01-27 02:34:36 +0100) by thommey +- - - - - - - - - - - - - - - +Commit a40de62 (2016-01-27 02:34:36 +0100) by thommey Fix relative DEST= paths for make install. Makefile.in -- - - - - - - - - - - - - - - -Commit 27c4179 (2016-01-27 02:08:20 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 27c4179 (2016-01-27 02:08:20 +0100) by thommey Fix relative DEST= paths for make install. Makefile.in doc/Changes1.8 -- - - - - - - - - - - - - - - -Commit 9518b42 (2016-01-26 21:25:36 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 9518b42 (2016-01-26 21:25:36 +0100) by thommey Add deprecation warning code and transition for my-ip/my-hostname to vhost4/vhost6/listen-addr. src/net.c src/tcl.c -- - - - - - - - - - - - - - - -Commit 01a18f7 (2016-01-26 19:56:47 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 01a18f7 (2016-01-26 19:56:47 +0100) by thommey Update changes file. doc/Changes1.8 -- - - - - - - - - - - - - - - -Commit 2eaae9b (2016-01-24 00:07:07 -0500) by Geo +- - - - - - - - - - - - - - - +Commit 2eaae9b (2016-01-24 00:07:07 -0500) by Geo alias PASSWORD to PASS in msg cmds doc/Changes1.8 src/mod/irc.mod/msgcmds.c -- - - - - - - - - - - - - - - -Commit 4aaf93b (2015-10-24 00:35:25 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 4aaf93b (2015-10-24 00:35:25 -0400) by Geo Allow botmasters to add shared bot hostmasks doc/Changes1.8 src/cmds.c -- - - - - - - - - - - - - - - -Commit 7e99f23 (2016-01-19 22:05:22 -0500) by Geo +- - - - - - - - - - - - - - - +Commit 7e99f23 (2016-01-19 22:05:22 -0500) by Geo Formatting fixup eggdrop.conf -- - - - - - - - - - - - - - - -Commit d2b3969 (2015-10-22 23:40:15 -0400) by Geo +- - - - - - - - - - - - - - - +Commit d2b3969 (2015-10-22 23:40:15 -0400) by Geo Add option to disable ident lookups doc/Changes1.8 eggdrop.conf src/dcc.c -- - - - - - - - - - - - - - - -Commit df4b71d (2016-01-14 01:55:48 -0500) by Geo +- - - - - - - - - - - - - - - +Commit df4b71d (2016-01-14 01:55:48 -0500) by Geo Fix init_channel logic/memory leak doc/Changes1.8 src/mod/channels.mod/tclchan.c -- - - - - - - - - - - - - - - -Commit 9aa68a6 (2016-01-01 22:11:34 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 9aa68a6 (2016-01-01 22:11:34 +0100) by thommey Prevent the user from installing into the source directory. Makefile.in doc/Changes1.8 -- - - - - - - - - - - - - - - -Commit 78fbbb8 (2015-12-30 21:04:26 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 78fbbb8 (2015-12-30 21:04:26 +0100) by thommey Remove newline in getting commit number. configure @@ -1543,8 +2132,8 @@ misc/getcommit src/mod/compress.mod/configure src/mod/dns.mod/configure -- - - - - - - - - - - - - - - -Commit 29e1a08 (2015-12-30 20:07:38 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 29e1a08 (2015-12-30 20:07:38 +0100) by thommey Update copyright ahead of time. AUTHORS @@ -1776,14 +2365,14 @@ src/users.h text/CONTENTS text/banner -- - - - - - - - - - - - - - - -Commit 12f9ae8 (2015-12-30 20:05:45 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 12f9ae8 (2015-12-30 20:05:45 +0100) by thommey Add script to update copyrights (at least most of them). misc/updatecopyright -- - - - - - - - - - - - - - - -Commit 87adce4 (2015-12-30 18:47:53 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 87adce4 (2015-12-30 18:47:53 +0100) by thommey Kill whitespaces. src/chanprog.c @@ -1801,16 +2390,16 @@ src/tcldcc.c src/tclmisc.c src/tls.c -- - - - - - - - - - - - - - - -Commit a538dca (2015-12-30 18:45:06 +0100) by thommey +- - - - - - - - - - - - - - - +Commit a538dca (2015-12-30 18:45:06 +0100) by thommey Ran autotools. configure src/mod/compress.mod/configure src/mod/dns.mod/configure -- - - - - - - - - - - - - - - -Commit 0de27ec (2015-12-30 18:17:27 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 0de27ec (2015-12-30 18:17:27 +0100) by thommey Replace CVS revision tags with git describe and patch as fallback. configure.ac @@ -1819,8 +2408,8 @@ misc/runautotools src/mod/compress.mod/configure.ac src/mod/dns.mod/configure.ac -- - - - - - - - - - - - - - - -Commit f9754a4 (2015-12-30 15:54:54 +0100) by thommey +- - - - - - - - - - - - - - - +Commit f9754a4 (2015-12-30 15:54:54 +0100) by thommey Remove all CVS Id tags. AUTHORS @@ -2144,87 +2733,87 @@ src/users.h ssl.conf text/CONTENTS -- - - - - - - - - - - - - - - -Commit 0751f3f (2015-12-29 03:28:56 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 0751f3f (2015-12-29 03:28:56 +0100) by thommey Update patchname. src/patch.h -- - - - - - - - - - - - - - - -Commit 24da99c (2015-12-29 03:03:29 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 24da99c (2015-12-29 03:03:29 +0100) by thommey Clear unused variable. src/dns.c -- - - - - - - - - - - - - - - -Commit c690592 (2015-12-29 03:01:59 +0100) by thommey +- - - - - - - - - - - - - - - +Commit c690592 (2015-12-29 03:01:59 +0100) by thommey Run autotools. config.h.in configure -- - - - - - - - - - - - - - - -Commit ac7a950 (2015-12-29 03:01:31 +0100) by thommey +- - - - - - - - - - - - - - - +Commit ac7a950 (2015-12-29 03:01:31 +0100) by thommey Remove superfluous definition of Tcl version, it is already in tcl.h. aclocal.m4 -- - - - - - - - - - - - - - - -Commit 1295758 (2015-12-29 02:59:14 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 1295758 (2015-12-29 02:59:14 +0100) by thommey Clarify minimum required Tcl version. aclocal.m4 -- - - - - - - - - - - - - - - -Commit 886c0ea (2015-12-29 02:57:15 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 886c0ea (2015-12-29 02:57:15 +0100) by thommey Run autotools, update changelog. config.h.in configure doc/Changes1.8 -- - - - - - - - - - - - - - - -Commit d557bb2 (2015-12-29 02:56:22 +0100) by thommey +- - - - - - - - - - - - - - - +Commit d557bb2 (2015-12-29 02:56:22 +0100) by thommey Fix spelling error compatability. src/Makefile.in -- - - - - - - - - - - - - - - -Commit d7d94e9 (2015-12-29 02:44:57 +0100) by thommey +- - - - - - - - - - - - - - - +Commit d7d94e9 (2015-12-29 02:44:57 +0100) by thommey Set Tcl version from configure. aclocal.m4 -- - - - - - - - - - - - - - - -Commit 99212d0 (2015-12-29 02:41:44 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 99212d0 (2015-12-29 02:41:44 +0100) by thommey Adjust HAVE_TCL_* settings to assume Tcl >= 8.3. src/main.h src/tcl.c -- - - - - - - - - - - - - - - -Commit db30392 (2015-12-29 02:29:18 +0100) by thommey +- - - - - - - - - - - - - - - +Commit db30392 (2015-12-29 02:29:18 +0100) by thommey Remove XREQs. src/Makefile.in src/net.c -- - - - - - - - - - - - - - - -Commit 7570148 (2015-12-29 01:48:58 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 7570148 (2015-12-29 01:48:58 +0100) by thommey Remove unused variables. Fix memset to zero. src/dns.c src/md5/md5c.c src/net.c -- - - - - - - - - - - - - - - -Commit 8fba6a5 (2015-12-29 01:38:46 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 8fba6a5 (2015-12-29 01:38:46 +0100) by thommey Remove another inline specifier. src/tclhash.h -- - - - - - - - - - - - - - - -Commit 4106f73 (2015-12-28 19:24:57 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 4106f73 (2015-12-28 19:24:57 +0100) by thommey Clean up the inline business. doc/Changes1.8 @@ -2239,15 +2828,15 @@ src/mod/transfer.mod/transfer.c src/proto.h src/userrec.c -- - - - - - - - - - - - - - - -Commit bf47f57 (2015-12-28 19:07:30 +0100) by thommey +- - - - - - - - - - - - - - - +Commit bf47f57 (2015-12-28 19:07:30 +0100) by thommey Fix --with-tcllib compilation typo. aclocal.m4 configure -- - - - - - - - - - - - - - - -Commit 6694623 (2015-12-28 19:01:45 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 6694623 (2015-12-28 19:01:45 +0100) by thommey Fix compilation with tcl.m4 again. Makefile.in @@ -2258,62 +2847,62 @@ configure.ac doc/Changes1.8 src/Makefile.in -- - - - - - - - - - - - - - - -Commit ed910ff (2015-12-14 00:11:02 +0100) by thommey +- - - - - - - - - - - - - - - +Commit ed910ff (2015-12-14 00:11:02 +0100) by thommey Fix basename for Tcl library when compiling without --with-tcllib. aclocal.m4 configure -- - - - - - - - - - - - - - - -Commit bb8a724 (2015-12-13 23:34:05 +0100) by thommey +- - - - - - - - - - - - - - - +Commit bb8a724 (2015-12-13 23:34:05 +0100) by thommey Fix Makefile Makefile.in doc/Changes1.8 -- - - - - - - - - - - - - - - -Commit 4315862 (2015-12-13 23:31:53 +0100) by thommey +- - - - - - - - - - - - - - - +Commit 4315862 (2015-12-13 23:31:53 +0100) by thommey run autotools configure -- - - - - - - - - - - - - - - -Commit c1e0df4 (2015-12-13 23:31:20 +0100) by thommey +- - - - - - - - - - - - - - - +Commit c1e0df4 (2015-12-13 23:31:20 +0100) by thommey Fix compilation with tcl.m4 configure.ac doc/Changes1.8 -- - - - - - - - - - - - - - - -Commit ed71324 (2015-10-21 23:31:09 -0400) by Geo +- - - - - - - - - - - - - - - +Commit ed71324 (2015-10-21 23:31:09 -0400) by Geo fix assoc module local channels doc/Changes1.8 src/cmds.c -- - - - - - - - - - - - - - - -Commit b579643 (2015-10-28 23:40:04 -0400) by Geo +- - - - - - - - - - - - - - - +Commit b579643 (2015-10-28 23:40:04 -0400) by Geo Update botname on +i/+x doc/Changes1.8 src/mod/server.mod/servmsg.c -- - - - - - - - - - - - - - - -Commit 953d7dc (2015-12-06 16:08:52 -0500) by Geo +- - - - - - - - - - - - - - - +Commit 953d7dc (2015-12-06 16:08:52 -0500) by Geo re-run autotools configure -- - - - - - - - - - - - - - - -Commit 2cae39c (2015-12-02 23:00:36 -0500) by Geo +- - - - - - - - - - - - - - - +Commit 2cae39c (2015-12-02 23:00:36 -0500) by Geo Updated tcl.m4 file Update date: 2015-10-05 from http://core.tcl.tk/tclconfig/dir?ci=tip tcl.m4 -- - - - - - - - - - - - - - - -Commit 3e56e30 (2015-12-02 22:53:04 -0500) by Geo +- - - - - - - - - - - - - - - +Commit 3e56e30 (2015-12-02 22:53:04 -0500) by Geo Incorporate tclConfig.sh aclocal.m4 @@ -2321,8 +2910,8 @@ configure.ac doc/Changes1.8 tcl.m4 -- - - - - - - - - - - - - - - -Commit 7636e31 (2015-12-05 23:11:56 -0500) by Geo +- - - - - - - - - - - - - - - +Commit 7636e31 (2015-12-05 23:11:56 -0500) by Geo Up encryption to 4096 Makefile.in @@ -2332,8 +2921,8 @@ doc/settings/core.settings eggdrop.conf src/dcc.c -- - - - - - - - - - - - - - - -Commit 7ce81fd (2015-10-31 23:49:43 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 7ce81fd (2015-10-31 23:49:43 -0400) by Geo Reset channel info on part/kick doc/Changes1.8 @@ -2341,8 +2930,8 @@ src/mod/channels.mod/tclchan.c src/mod/irc.mod/chan.c src/mod/irc.mod/irc.c -- - - - - - - - - - - - - - - -Commit ab717a5 (2015-10-24 00:11:49 -0400) by Geo +- - - - - - - - - - - - - - - +Commit ab717a5 (2015-10-24 00:11:49 -0400) by Geo Clarify SSL documentation and errors INSTALL @@ -2353,14 +2942,14 @@ eggdrop.conf src/dcc.c src/tls.c -- - - - - - - - - - - - - - - -Commit 78367e0 (2015-10-23 20:53:46 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 78367e0 (2015-10-23 20:53:46 -0400) by Geo Update Change1.8 file doc/Changes1.8 -- - - - - - - - - - - - - - - -Commit 0d60c39 (2015-10-22 21:38:43 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 0d60c39 (2015-10-22 21:38:43 -0400) by Geo un-remove compile warning ignores src/botcmd.c @@ -2376,8 +2965,8 @@ src/mod/transfer.mod/transfer.c src/net.c src/users.c -- - - - - - - - - - - - - - - -Commit 6161024 (2015-10-08 21:12:57 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 6161024 (2015-10-08 21:12:57 -0400) by Geo various compile warning fixes src/botcmd.c @@ -2396,8 +2985,8 @@ src/net.c src/tls.c src/users.c -- - - - - - - - - - - - - - - -Commit 5777956 (2015-10-24 00:21:08 +0200) by thommey +- - - - - - - - - - - - - - - +Commit 5777956 (2015-10-24 00:21:08 +0200) by thommey Remove two inline keywords. Fixes #123. Inline semantics between gnu89 and c99 differ, and with gcc5 changng default behavior this has become an issue. @@ -2405,48 +2994,48 @@ default behavior this has become an issue. src/net.c src/tclhash.c -- - - - - - - - - - - - - - - -Commit 2e252d6 (2015-10-23 00:03:33 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 2e252d6 (2015-10-23 00:03:33 -0400) by Geo Remove EMAIL and URL fields from docs doc/Changes1.8 -- - - - - - - - - - - - - - - -Commit 2a6c083 (2015-10-22 18:20:49 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 2a6c083 (2015-10-22 18:20:49 -0400) by Geo Point user to userinfo.tcl doc/tcl-commands.doc -- - - - - - - - - - - - - - - -Commit e16d7eb (2015-10-07 23:19:54 -0400) by Geo +- - - - - - - - - - - - - - - +Commit e16d7eb (2015-10-07 23:19:54 -0400) by Geo Removes the EMAIL and URL fields from tcl-commands.doc these were removed some time ago in code, but documentation appears not to have been updated along with it. doc/tcl-commands.doc -- - - - - - - - - - - - - - - -Commit 82dedc8 (2015-10-22 23:15:08 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 82dedc8 (2015-10-22 23:15:08 -0400) by Geo update Change file doc/Changes1.8 -- - - - - - - - - - - - - - - -Commit 6bf8fbc (2015-10-22 18:20:49 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 6bf8fbc (2015-10-22 18:20:49 -0400) by Geo Point user to userinfo.tcl doc/tcl-commands.doc -- - - - - - - - - - - - - - - -Commit 6c0f4b5 (2015-10-08 21:26:26 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 6c0f4b5 (2015-10-08 21:26:26 -0400) by Geo fix failing alt hub links src/botnet.c src/dcc.c src/net.c -- - - - - - - - - - - - - - - -Commit cfdf0ec (2015-10-08 20:59:38 -0400) by Geo +- - - - - - - - - - - - - - - +Commit cfdf0ec (2015-10-08 20:59:38 -0400) by Geo Add byte-based flood option eggdrop.conf @@ -2459,63 +3048,63 @@ src/mod/irc.mod/chan.c src/mod/irc.mod/irc.h src/mod/irc.mod/mode.c -- - - - - - - - - - - - - - - -Commit c0dbb79 (2015-10-08 20:35:08 -0400) by Geo +- - - - - - - - - - - - - - - +Commit c0dbb79 (2015-10-08 20:35:08 -0400) by Geo fix duplicate array mask value src/mod/module.h -- - - - - - - - - - - - - - - -Commit 8d7a306 (2015-10-08 20:27:49 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 8d7a306 (2015-10-08 20:27:49 -0400) by Geo Reply to server CTCPs src/mod/server.mod/servmsg.c -- - - - - - - - - - - - - - - -Commit e984dfe (2015-10-07 23:39:21 -0400) by Geo +- - - - - - - - - - - - - - - +Commit e984dfe (2015-10-07 23:39:21 -0400) by Geo Return -1 for idletime if user not on channel doc/tcl-commands.doc src/mod/irc.mod/tclirc.c -- - - - - - - - - - - - - - - -Commit 1eca0ff (2015-10-07 23:29:18 -0400) by Geo +- - - - - - - - - - - - - - - +Commit 1eca0ff (2015-10-07 23:29:18 -0400) by Geo Mode change after host add src/tcluser.c -- - - - - - - - - - - - - - - -Commit de293a9 (2015-10-07 23:19:54 -0400) by Geo +- - - - - - - - - - - - - - - +Commit de293a9 (2015-10-07 23:19:54 -0400) by Geo Removes the EMAIL and URL fields from tcl-commands.doc these were removed some time ago in code, but documentation appears not to have been updated along with it. doc/tcl-commands.doc -- - - - - - - - - - - - - - - -Commit d785368 (2014-10-08 20:08:27 +0000) by thommey +- - - - - - - - - - - - - - - +Commit d785368 (2014-10-08 20:08:27 +0000) by thommey Throw error when writing to read-only variables in server module. doc/Changes1.8 src/mod/server.mod/server.c -- - - - - - - - - - - - - - - -Commit 14c2584 (2014-10-08 14:41:23 +0000) by thommey +- - - - - - - - - - - - - - - +Commit 14c2584 (2014-10-08 14:41:23 +0000) by thommey Add a config warning to tell users they are in the source directory. ---------------------------------------------------------------------- doc/Changes1.8 eggdrop.conf -- - - - - - - - - - - - - - - -Commit d61e4ad (2014-10-03 20:49:44 +0000) by thommey +- - - - - - - - - - - - - - - +Commit d61e4ad (2014-10-03 20:49:44 +0000) by thommey Fix description for share-unlinks in the config. doc/Changes1.8 eggdrop.conf -- - - - - - - - - - - - - - - -Commit 6839dca (2014-10-02 19:27:43 +0000) by thommey +- - - - - - - - - - - - - - - +Commit 6839dca (2014-10-02 19:27:43 +0000) by thommey Remove length limit of info line. Fix stripcodes modifying the Tcl object in-place. Only permanent owners can delete owners. @@ -2526,8 +3115,8 @@ src/patch.h src/tclmisc.c src/userent.c -- - - - - - - - - - - - - - - -Commit 9b50119 (2014-09-30 10:40:40 +0000) by thommey +- - - - - - - - - - - - - - - +Commit 9b50119 (2014-09-30 10:40:40 +0000) by thommey Add Tcl8.6 and /usr/lib/x86_64-linux-gnu to Tcl search paths. configure @@ -2537,8 +3126,8 @@ src/mod/compress.mod/configure src/mod/dns.mod/configure src/patch.h -- - - - - - - - - - - - - - - -Commit 05362f9 (2014-09-09 16:43:32 +0000) by thommey +- - - - - - - - - - - - - - - +Commit 05362f9 (2014-09-09 16:43:32 +0000) by thommey Changed IRCnet's max-bans/max-modes to 64. doc/Changes1.8 @@ -2546,8 +3135,8 @@ doc/html/mod-irc.html eggdrop.conf src/mod/irc.mod/irc.c -- - - - - - - - - - - - - - - -Commit 05930a1 (2014-09-06 23:49:32 +0000) by thommey +- - - - - - - - - - - - - - - +Commit 05930a1 (2014-09-06 23:49:32 +0000) by thommey Fix error messages of (un)stick(exempt/invite). doc/Changes1.8 @@ -2555,16 +3144,16 @@ doc/html/tcl-commands.html doc/tcl-commands.doc src/mod/channels.mod/tclchan.c -- - - - - - - - - - - - - - - -Commit 1401c68 (2014-03-21 21:42:41 +0000) by thommey +- - - - - - - - - - - - - - - +Commit 1401c68 (2014-03-21 21:42:41 +0000) by thommey Fix a potentially endless loop when looking up bot hostnames. doc/Changes1.8 src/dcc.c src/patch.h -- - - - - - - - - - - - - - - -Commit ee13a3b (2013-07-31 01:09:34 +0000) by thommey +- - - - - - - - - - - - - - - +Commit ee13a3b (2013-07-31 01:09:34 +0000) by thommey apply two patches of guppy that were missing configure.ac @@ -2582,15 +3171,15 @@ src/mod/server.mod/servmsg.c src/tcl.c src/tclmisc.c -- - - - - - - - - - - - - - - -Commit 256e91a (2013-07-31 00:52:36 +0000) by thommey +- - - - - - - - - - - - - - - +Commit 256e91a (2013-07-31 00:52:36 +0000) by thommey better documentation of bind time/cron doc/Changes1.8 doc/tcl-commands.doc -- - - - - - - - - - - - - - - -Commit 4847a9e (2013-07-31 00:45:38 +0000) by thommey +- - - - - - - - - - - - - - - +Commit 4847a9e (2013-07-31 00:45:38 +0000) by thommey new evnt bind type: preinit-server doc/Changes1.8 @@ -2599,8 +3188,8 @@ doc/tcl-commands.doc src/mod/server.mod/servmsg.c src/patch.h -- - - - - - - - - - - - - - - -Commit a000d1a (2013-07-31 00:32:55 +0000) by thommey +- - - - - - - - - - - - - - - +Commit a000d1a (2013-07-31 00:32:55 +0000) by thommey new evnt bind: fail-server doc/Changes1.8 @@ -2608,22 +3197,22 @@ doc/html/tcl-commands.html doc/tcl-commands.doc src/mod/server.mod/servmsg.c -- - - - - - - - - - - - - - - -Commit 3f6dd25 (2013-07-31 00:28:50 +0000) by thommey +- - - - - - - - - - - - - - - +Commit 3f6dd25 (2013-07-31 00:28:50 +0000) by thommey share doc update doc/Changes1.8 src/mod/share.mod/help/share.help -- - - - - - - - - - - - - - - -Commit e56c038 (2013-07-31 00:25:32 +0000) by thommey +- - - - - - - - - - - - - - - +Commit e56c038 (2013-07-31 00:25:32 +0000) by thommey master can no longer .-user another master doc/Changes1.8 src/cmds.c -- - - - - - - - - - - - - - - -Commit 3306cc1 (2013-07-31 00:20:05 +0000) by thommey +- - - - - - - - - - - - - - - +Commit 3306cc1 (2013-07-31 00:20:05 +0000) by thommey apply two patches by robby doc/Changes1.8 @@ -2634,39 +3223,39 @@ src/cmds.c src/dcc.c src/tclmisc.c -- - - - - - - - - - - - - - - -Commit f410315 (2013-07-29 15:49:40 +0000) by thommey +- - - - - - - - - - - - - - - +Commit f410315 (2013-07-29 15:49:40 +0000) by thommey We need more chars to print unixtime these days (10 instead of 9) doc/Changes1.8 src/cmds.c src/patch.h -- - - - - - - - - - - - - - - -Commit 3290977 (2012-12-19 22:30:43 +0000) by thommey +- - - - - - - - - - - - - - - +Commit 3290977 (2012-12-19 22:30:43 +0000) by thommey Fix a special char issue in dccwhois.tcl doc/Changes1.8 scripts/dccwhois.tcl src/patch.h -- - - - - - - - - - - - - - - -Commit 7002071 (2012-12-11 13:27:44 +0000) by thommey +- - - - - - - - - - - - - - - +Commit 7002071 (2012-12-11 13:27:44 +0000) by thommey Make sure match_cidr returns NOMATCH if address families mismatch. doc/Changes1.8 src/match.c -- - - - - - - - - - - - - - - -Commit dc38404 (2012-12-10 22:49:45 +0000) by thommey +- - - - - - - - - - - - - - - +Commit dc38404 (2012-12-10 22:49:45 +0000) by thommey Fix match_cidr to always return MATCH if the prefix is 0. doc/Changes1.8 src/match.c src/patch.h -- - - - - - - - - - - - - - - -Commit 23dce56 (2012-09-25 17:24:41 +0000) by thommey +- - - - - - - - - - - - - - - +Commit 23dce56 (2012-09-25 17:24:41 +0000) by thommey Export the tcl_result* functions to modules doc/Changes1.8 @@ -2674,16 +3263,16 @@ src/mod/module.h src/modules.c src/patch.h -- - - - - - - - - - - - - - - -Commit f64a828 (2012-06-26 21:20:49 +0000) by thommey +- - - - - - - - - - - - - - - +Commit f64a828 (2012-06-26 21:20:49 +0000) by thommey Clarify documentation of mask matching in bind notc. doc/Changes1.8 doc/html/tcl-commands.html doc/tcl-commands.doc -- - - - - - - - - - - - - - - -Commit 66c1b1e (2012-06-22 23:35:33 +0000) by thommey +- - - - - - - - - - - - - - - +Commit 66c1b1e (2012-06-22 23:35:33 +0000) by thommey add stripcodes flag to strip italics and rename code for stripcodes o doc/Changes1.8 @@ -2695,8 +3284,8 @@ src/eggdrop.h src/patch.h src/tclmisc.c -- - - - - - - - - - - - - - - -Commit 1bb12aa (2012-06-22 21:38:55 +0000) by thommey +- - - - - - - - - - - - - - - +Commit 1bb12aa (2012-06-22 21:38:55 +0000) by thommey new stripcode flag "o" for mirc ctrl+o and * for everything doc/Changes1.8 @@ -2708,8 +3297,8 @@ src/eggdrop.h src/patch.h src/tclmisc.c -- - - - - - - - - - - - - - - -Commit af6e020 (2012-06-19 14:27:17 +0000) by thommey +- - - - - - - - - - - - - - - +Commit af6e020 (2012-06-19 14:27:17 +0000) by thommey Partially revert changes to vwait/update as in 1.6.21. doc/Changes1.8 @@ -2717,8 +3306,8 @@ src/patch.h src/tcl.c src/tclhash.h -- - - - - - - - - - - - - - - -Commit b204199 (2012-06-16 16:04:02 +0000) by thommey +- - - - - - - - - - - - - - - +Commit b204199 (2012-06-16 16:04:02 +0000) by thommey Call Tcl's bgerror on Eggdrop background errors. doc/Changes1.8 @@ -2728,16 +3317,16 @@ src/patch.h src/tcl.c src/tclhash.c -- - - - - - - - - - - - - - - -Commit 8961a65 (2012-06-15 00:04:59 +0000) by thommey +- - - - - - - - - - - - - - - +Commit 8961a65 (2012-06-15 00:04:59 +0000) by thommey Remove wrong truncation of ERR_YOUREBANNEDCREEP output to console. doc/Changes1.8 src/mod/server.mod/servmsg.c src/patch.h -- - - - - - - - - - - - - - - -Commit 3e15835 (2011-11-10 22:07:25 +0000) by thommey +- - - - - - - - - - - - - - - +Commit 3e15835 (2011-11-10 22:07:25 +0000) by thommey Fixed the format specifier for the Tcl [traffic] command. THANKS @@ -2745,14 +3334,14 @@ doc/Changes1.8 src/patch.h src/tcldcc.c -- - - - - - - - - - - - - - - -Commit f5390d9 (2011-10-25 16:49:54 +0000) by thommey +- - - - - - - - - - - - - - - +Commit f5390d9 (2011-10-25 16:49:54 +0000) by thommey THANKS file update THANKS -- - - - - - - - - - - - - - - -Commit 2b7fd1f (2011-10-25 16:47:20 +0000) by thommey +- - - - - - - - - - - - - - - +Commit 2b7fd1f (2011-10-25 16:47:20 +0000) by thommey Added missing read trace flag to the nick-len variable trace after being unset to make the trace be removed properly on unload. @@ -2760,16 +3349,16 @@ doc/Changes1.8 src/mod/server.mod/server.c src/patch.h -- - - - - - - - - - - - - - - -Commit 732203e (2011-09-09 21:38:39 +0000) by thommey +- - - - - - - - - - - - - - - +Commit 732203e (2011-09-09 21:38:39 +0000) by thommey Fixed a bug in the mainloop for Tcl threads which is now also being used as vwait/update recursion mainloop. doc/Changes1.8 src/tcl.c -- - - - - - - - - - - - - - - -Commit 5ca0075 (2011-07-20 10:32:25 +0000) by thommey +- - - - - - - - - - - - - - - +Commit 5ca0075 (2011-07-20 10:32:25 +0000) by thommey Ran autotools. config.h.in @@ -2778,8 +3367,8 @@ doc/Changes1.8 src/mod/compress.mod/configure src/mod/dns.mod/configure -- - - - - - - - - - - - - - - -Commit 8b6ee35 (2011-07-20 10:31:37 +0000) by thommey +- - - - - - - - - - - - - - - +Commit 8b6ee35 (2011-07-20 10:31:37 +0000) by thommey Work around Tcl8.5.10 bug 3371644. Use the autoconf macros AC_LANG_PROGRAM/AC_LANG_SOURCE. @@ -2789,8 +3378,8 @@ doc/Changes1.8 src/mod/channels.mod/channels.c src/patch.h -- - - - - - - - - - - - - - - -Commit d5fb2be (2011-07-08 23:12:54 +0000) by thommey +- - - - - - - - - - - - - - - +Commit d5fb2be (2011-07-08 23:12:54 +0000) by thommey Fix Tcl8.5.10 memory corruption bug related to Tcl_ScanElement and Tcl_ConvertElement. @@ -2798,24 +3387,24 @@ doc/Changes1.8 src/patch.h src/tclhash.c -- - - - - - - - - - - - - - - -Commit 3b40f1a (2011-03-14 03:03:28 +0000) by thommey +- - - - - - - - - - - - - - - +Commit 3b40f1a (2011-03-14 03:03:28 +0000) by thommey Moved variable declarations to conform to C89 (beginning of blocks only) THANKS doc/Changes1.8 src/bg.c -- - - - - - - - - - - - - - - -Commit fbb23fc (2011-03-12 09:59:07 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit fbb23fc (2011-03-12 09:59:07 +0000) by Rumen Stoyanov Documented a .+ban/+exempt/+invite feature allowing to make the hostmask sticky by prefixing the comment with '*'. doc/Changes1.8 src/mod/channels.mod/help/channels.help -- - - - - - - - - - - - - - - -Commit fd8ae34 (2011-02-26 19:22:37 +0000) by thommey +- - - - - - - - - - - - - - - +Commit fd8ae34 (2011-02-26 19:22:37 +0000) by thommey script listen sockets with the pub flag no longer perform ident lookups doc/Changes1.8 @@ -2824,14 +3413,14 @@ doc/tcl-commands.doc src/dcc.c src/patch.h -- - - - - - - - - - - - - - - -Commit 2f6ef11 (2011-02-17 19:35:25 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit 2f6ef11 (2011-02-17 19:35:25 +0000) by Rumen Stoyanov Update of statuslog documentation. doc/settings/mod.channels -- - - - - - - - - - - - - - - -Commit a61fb95 (2011-02-15 23:55:17 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit a61fb95 (2011-02-15 23:55:17 +0000) by Rumen Stoyanov Fixed a bug with connecting to numeric addresses when compiled with --disable-ipv6 @@ -2839,14 +3428,14 @@ doc/Changes1.8 src/net.c src/patch.h -- - - - - - - - - - - - - - - -Commit bb5b48f (2011-02-11 16:08:38 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit bb5b48f (2011-02-11 16:08:38 +0000) by Rumen Stoyanov Fixed statuslog documentation. eggdrop.conf -- - - - - - - - - - - - - - - -Commit 4a99673 (2011-02-11 14:23:40 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit 4a99673 (2011-02-11 14:23:40 +0000) by Rumen Stoyanov Fixed statuslog documentation. doc/Changes1.8 @@ -2854,8 +3443,8 @@ doc/html/mod-channels.html src/mod/channels.mod/help/chaninfo.help src/patch.h -- - - - - - - - - - - - - - - -Commit 2be82c5 (2011-02-10 21:28:14 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit 2be82c5 (2011-02-10 21:28:14 +0000) by Rumen Stoyanov Fixed a bug with [channel get] returning types instead of values for udefs. @@ -2863,8 +3452,8 @@ doc/Changes1.8 src/mod/channels.mod/tclchan.c src/patch.h -- - - - - - - - - - - - - - - -Commit bf5eac0 (2011-02-03 15:44:11 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit bf5eac0 (2011-02-03 15:44:11 +0000) by Rumen Stoyanov Check for pending data on SSL sockets even when select reports the descriptor's not readable. Allow moving write buffers for SSL sockets. @@ -2874,8 +3463,8 @@ src/net.c src/patch.h src/tls.c -- - - - - - - - - - - - - - - -Commit 76cc2a5 (2011-01-27 11:20:16 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit 76cc2a5 (2011-01-27 11:20:16 +0000) by Rumen Stoyanov Added missing message for incoming telnet connections. THANKS @@ -2883,16 +3472,16 @@ doc/Changes1.8 src/dcc.c src/patch.h -- - - - - - - - - - - - - - - -Commit db5d453 (2011-01-27 02:11:27 +0000) by thommey +- - - - - - - - - - - - - - - +Commit db5d453 (2011-01-27 02:11:27 +0000) by thommey Changed the prototype in module.h for check_tcl_event doc/Changes1.8 src/mod/module.h src/patch.h -- - - - - - - - - - - - - - - -Commit f679dd7 (2011-01-27 01:41:08 +0000) by thommey +- - - - - - - - - - - - - - - +Commit f679dd7 (2011-01-27 01:41:08 +0000) by thommey bind evnt return value now ignored for non-signal events as documented doc/Changes1.8 @@ -2900,8 +3489,8 @@ src/main.c src/tclhash.c src/tclhash.h -- - - - - - - - - - - - - - - -Commit f587add (2011-01-21 02:37:03 +0000) by thommey +- - - - - - - - - - - - - - - +Commit f587add (2011-01-21 02:37:03 +0000) by thommey Reran autotools configure @@ -2909,8 +3498,8 @@ doc/Changes1.8 src/mod/compress.mod/configure src/mod/dns.mod/configure -- - - - - - - - - - - - - - - -Commit 0da9696 (2011-01-21 02:33:41 +0000) by thommey +- - - - - - - - - - - - - - - +Commit 0da9696 (2011-01-21 02:33:41 +0000) by thommey Clarified --with-tcl* usage in configure and mentioned tcl-dev packages. Fixed some section numbering in doc/COMPILE-GUIDE. @@ -2918,8 +3507,8 @@ aclocal.m4 doc/COMPILE-GUIDE doc/Changes1.8 -- - - - - - - - - - - - - - - -Commit 7fba132 (2010-11-26 13:20:29 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit 7fba132 (2010-11-26 13:20:29 +0000) by Rumen Stoyanov Added a little hack to send starttls before password exchange during the initial handshake. @@ -2930,8 +3519,8 @@ src/net.c src/patch.h src/tls.c -- - - - - - - - - - - - - - - -Commit 3832d05 (2010-11-23 23:25:24 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit 3832d05 (2010-11-23 23:25:24 +0000) by Rumen Stoyanov Fixed a dumb mistake in the previous patch. doc/Changes1.8 @@ -2939,8 +3528,8 @@ src/mod/share.mod/share.c src/patch.h src/tls.c -- - - - - - - - - - - - - - - -Commit 0e96d48 (2010-11-23 16:36:23 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit 0e96d48 (2010-11-23 16:36:23 +0000) by Rumen Stoyanov Fixed a problem with sharing causing starttls to fail. Moved STARTTLS early in the bot link process and synchronized the handshake. Made it possible for ssl handshakes to complete even without data to be sent on the channel. @@ -2957,8 +3546,8 @@ src/net.c src/patch.h src/tls.c -- - - - - - - - - - - - - - - -Commit 0e1cf3b (2010-11-18 12:54:39 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit 0e1cf3b (2010-11-18 12:54:39 +0000) by Rumen Stoyanov Fixed a problem with resolving hostnames when compiled with IPv6 disabled. Made server.mod report connection failures properly. @@ -2967,12 +3556,12 @@ doc/Changes1.8 src/mod/server.mod/servmsg.c src/net.c -- - - - - - - - - - - - - - - -Commit d55e635 (2010-11-06 20:57:41 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit d55e635 (2010-11-06 20:57:41 +0000) by Rumen Stoyanov file gettext.h was initially added on branch gettext. -- - - - - - - - - - - - - - - -Commit fe00c1e (2010-11-05 16:18:02 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit fe00c1e (2010-11-05 16:18:02 +0000) by Rumen Stoyanov Fixed getudef() to return intptr_t instead of int to prevent crashes on 64-bit systems. @@ -2981,16 +3570,16 @@ doc/Changes1.8 src/mod/channels.mod/udefchan.c src/patch.h -- - - - - - - - - - - - - - - -Commit 0cb1103 (2010-11-04 17:54:05 +0000) by thommey +- - - - - - - - - - - - - - - +Commit 0cb1103 (2010-11-04 17:54:05 +0000) by thommey Fixed a bug in (u)timers which could lead to invalid memory access. doc/Changes1.8 src/chanprog.c src/patch.h -- - - - - - - - - - - - - - - -Commit 8c4139b (2010-11-01 23:00:11 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit 8c4139b (2010-11-01 23:00:11 +0000) by Rumen Stoyanov Minor docfixes CONTENTS @@ -2999,8 +3588,8 @@ doc/CONTENTS doc/Makefile.in doc/html/readme.html -- - - - - - - - - - - - - - - -Commit 627013c (2010-11-01 22:38:34 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit 627013c (2010-11-01 22:38:34 +0000) by Rumen Stoyanov Made it possible to specify ssl independently for telnet and user ports when modifying bot addresses. Changed the syntax of .chaddr and .+bot to use space as a port separator instead of ':'. Changed the syntax of server @@ -3023,8 +3612,8 @@ src/patch.h src/userent.c src/users.h -- - - - - - - - - - - - - - - -Commit 563a50d (2010-10-31 14:40:38 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit 563a50d (2010-10-31 14:40:38 +0000) by Rumen Stoyanov Fixed dcc_telnet_pass() to not use a constant string with fingerprint authentication, because strip_telnet() may attempt to write to it later. @@ -3033,8 +3622,8 @@ doc/Changes1.8 src/dcc.c src/patch.h -- - - - - - - - - - - - - - - -Commit 3d596c3 (2010-10-29 20:53:43 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit 3d596c3 (2010-10-29 20:53:43 +0000) by Rumen Stoyanov Modified tcl_channel_get to return a flat list of all channel settings and their values when called without a setting argument. Added two new Tcl commands: chansettype returning setting types and getudefs listing user @@ -3046,8 +3635,8 @@ doc/tcl-commands.doc src/mod/channels.mod/tclchan.c src/patch.h -- - - - - - - - - - - - - - - -Commit 36b4a14 (2010-10-27 20:47:26 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit 36b4a14 (2010-10-27 20:47:26 +0000) by Rumen Stoyanov Added optional count argument to Tcl timer and utimer to allow them run more than once. @@ -3059,22 +3648,22 @@ src/patch.h src/tclegg.h src/tclmisc.c -- - - - - - - - - - - - - - - -Commit 2bab129 (2010-10-26 09:16:36 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit 2bab129 (2010-10-26 09:16:36 +0000) by Rumen Stoyanov Fixed indentation. src/tcl.c -- - - - - - - - - - - - - - - -Commit 2916868 (2010-10-26 09:13:56 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit 2916868 (2010-10-26 09:13:56 +0000) by Rumen Stoyanov Renamed the vhost Tcl variable to vhost4. doc/Changes1.8 src/patch.h src/tcl.c -- - - - - - - - - - - - - - - -Commit 44ed106 (2010-10-25 22:11:23 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit 44ed106 (2010-10-25 22:11:23 +0000) by Rumen Stoyanov Removed -mwin32 on Windows. It's no longer necessary and causes problems with Cygwin 1.7. @@ -3083,8 +3672,8 @@ configure doc/Changes1.8 src/patch.h -- - - - - - - - - - - - - - - -Commit dc0ed30 (2010-10-25 19:47:49 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit dc0ed30 (2010-10-25 19:47:49 +0000) by Rumen Stoyanov Removed few wire.mod leftovers. Removed IRC_FUNKICK. doc/Changes1.8 @@ -3093,8 +3682,8 @@ doc/settings/mod.wire src/lang.h src/patch.h -- - - - - - - - - - - - - - - -Commit bf93d7c (2010-10-25 15:56:38 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit bf93d7c (2010-10-25 15:56:38 +0000) by Rumen Stoyanov Performed some cleanup. Removed some obsolete config aliases. Added missing parts of the documentation. Updated news and features for 1.8. @@ -3117,16 +3706,16 @@ src/chanprog.c src/mod/irc.mod/msgcmds.c src/tcl.c -- - - - - - - - - - - - - - - -Commit 65e5a3f (2010-10-24 13:41:53 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit 65e5a3f (2010-10-24 13:41:53 +0000) by Rumen Stoyanov Added -lcrypto when probing for -lssl in --with-ssllib aclocal.m4 configure doc/Changes1.8 -- - - - - - - - - - - - - - - -Commit dd367b4 (2010-10-24 13:22:40 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit dd367b4 (2010-10-24 13:22:40 +0000) by Rumen Stoyanov Removed the never-give-up, sort-users and kick-fun/ban-fun variables. Sorting users shouldn't be a challenge for CPUs nowadays. The rest are rarely used and can be scripted. @@ -3153,8 +3742,8 @@ src/patch.h src/tcl.c src/userrec.c -- - - - - - - - - - - - - - - -Commit d1bac3f (2010-10-24 12:39:36 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit d1bac3f (2010-10-24 12:39:36 +0000) by Rumen Stoyanov Removed wire.mod and all references to it. Botnet and partyline encryption are now available using ssl. @@ -3166,8 +3755,8 @@ eggdrop.conf help/core.help src/patch.h -- - - - - - - - - - - - - - - -Commit 3bcbf14 (2010-10-23 11:16:13 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit 3bcbf14 (2010-10-23 11:16:13 +0000) by Rumen Stoyanov Modified SIGQUIT handler to restart the bot by default. Added support for evnt bind procs to cancel default signal actions. Removed the die-on-sighup and die-on-sigterm variables. Added a new bind type DIE triggered before a @@ -3190,8 +3779,8 @@ src/tcl.c src/tclhash.c src/tclhash.h -- - - - - - - - - - - - - - - -Commit add01aa (2010-10-20 13:07:13 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit add01aa (2010-10-20 13:07:13 +0000) by Rumen Stoyanov Clarified the OpenSSL version requirements. Rewrote open_telnet() to make it more useful. Replaced some calls to open_telnet_raw() with open_telnet(). @@ -3208,8 +3797,8 @@ src/patch.h src/proto.h src/tcldcc.c -- - - - - - - - - - - - - - - -Commit bd4eaa4 (2010-10-19 14:20:56 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit bd4eaa4 (2010-10-19 14:20:56 +0000) by Rumen Stoyanov Added few autoconf checks for ssl. Added tls to tcl_status() aclocal.m4 @@ -3222,8 +3811,8 @@ src/patch.h src/tclmisc.c src/tls.c -- - - - - - - - - - - - - - - -Commit c01a09a (2010-10-19 12:13:33 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit c01a09a (2010-10-19 12:13:33 +0000) by Rumen Stoyanov Added full SSL support including Tcl commands. Added support for certificate authentication. Added support for botnet and partyline encryption using ssl. Documented the new features and commands. Fixed @@ -3289,8 +3878,8 @@ src/userent.c src/users.h ssl.conf -- - - - - - - - - - - - - - - -Commit 0f144fa (2010-10-14 09:49:47 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit 0f144fa (2010-10-14 09:49:47 +0000) by Rumen Stoyanov Fixed dns.mod on QNX6/Mac OS X/Solaris Rewrote dns.mod's autoconf checks to detect the resolver library properly on Darwin/Solaris. Added -lsocket to the list of libraries, searched for res_* functions, in order to support @@ -3307,8 +3896,8 @@ src/mod/dns.mod/configure.ac src/mod/dns.mod/coredns.c src/patch.h -- - - - - - - - - - - - - - - -Commit bb1397b (2010-10-11 08:46:10 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit bb1397b (2010-10-11 08:46:10 +0000) by Rumen Stoyanov Altered the permission check on the pls/mns ban/exempt/invite commands from USER_MASTER to USER_OP to allow global operators to set global bans. @@ -3316,8 +3905,8 @@ THANKS doc/Changes1.8 src/mod/channels.mod/cmdschan.c -- - - - - - - - - - - - - - - -Commit aa0bbc0 (2010-10-10 21:24:43 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit aa0bbc0 (2010-10-10 21:24:43 +0000) by Rumen Stoyanov Removed the unrecognized options warning when configuring modules. Modified -v output and .status display configure options. @@ -3329,8 +3918,8 @@ src/chanprog.c src/main.c src/mod/Makefile.in -- - - - - - - - - - - - - - - -Commit 94f48a7 (2010-10-10 18:22:47 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit 94f48a7 (2010-10-10 18:22:47 +0000) by Rumen Stoyanov Added the process and parent pids to .status output. Increased the precision of cpu time reporting. Added a new Tcl command status to provide access to cpu/memory/cache information now and some more in the future. @@ -3343,8 +3932,8 @@ src/patch.h src/proto.h src/tclmisc.c -- - - - - - - - - - - - - - - -Commit c259871 (2010-10-06 19:07:47 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit c259871 (2010-10-06 19:07:47 +0000) by Rumen Stoyanov Fixed some problems with IPv6 autodetection and system headers. aclocal.m4 @@ -3359,23 +3948,23 @@ src/compat/inet_pton.h src/mod/transfer.mod/transfer.c src/patch.h -- - - - - - - - - - - - - - - -Commit 29db3e6 (2010-10-05 17:38:24 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit 29db3e6 (2010-10-05 17:38:24 +0000) by Rumen Stoyanov Made some corrections to the contributors list, removed a duplicate entry. THANKS doc/Changes1.6 doc/Changes1.8 -- - - - - - - - - - - - - - - -Commit fc70e8d (2010-10-01 23:56:37 +0000) by thommey +- - - - - - - - - - - - - - - +Commit fc70e8d (2010-10-01 23:56:37 +0000) by thommey Fixed bind cron html documention to be in sync with non-html one. doc/Changes1.8 doc/html/tcl-commands.html -- - - - - - - - - - - - - - - -Commit 5bb1e6a (2010-09-27 19:38:14 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit 5bb1e6a (2010-09-27 19:38:14 +0000) by Rumen Stoyanov Replaced most dns.mod preprocessor definitions with config variables. Added support for user-specified dns servers and non-standard ports. This is most important for Cygwin 1.7, where the dns server list won't get initialized @@ -3394,8 +3983,8 @@ src/mod/dns.mod/help/dns.help src/mod/dns.mod/help/set/dns.help src/patch.h -- - - - - - - - - - - - - - - -Commit 66286cb (2010-09-14 19:45:29 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit 66286cb (2010-09-14 19:45:29 +0000) by Rumen Stoyanov Fixed a bug in setsockname() making it fail with IPv6 enabled due to a variable not being set. @@ -3404,16 +3993,16 @@ doc/Changes1.8 src/net.c src/patch.h -- - - - - - - - - - - - - - - -Commit 24e6d68 (2010-09-06 22:08:54 +0000) by thommey +- - - - - - - - - - - - - - - +Commit 24e6d68 (2010-09-06 22:08:54 +0000) by thommey Fix env(TZ) config setting to not contain a space. The space is just inserted in POSIX documentation to clarify, it must not be there. doc/Changes1.8 eggdrop.conf -- - - - - - - - - - - - - - - -Commit 75931fb (2010-08-31 18:21:47 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit 75931fb (2010-08-31 18:21:47 +0000) by Rumen Stoyanov Made dcc_telnet_new() allow non-latin characters in new handles like other handle validation functions. @@ -3421,8 +4010,8 @@ doc/Changes1.8 src/dcc.c src/patch.h -- - - - - - - - - - - - - - - -Commit c8c7c77 (2010-08-23 21:27:40 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit c8c7c77 (2010-08-23 21:27:40 +0000) by Rumen Stoyanov Modified src/compat/ replacements of gethostbyname2() and inet_ntop() to not compile when IPv6 is disabled. Added a missing header preventing gethostbyname2() from compiling on FreeBSD. Fixed few lines with wrong @@ -3437,22 +4026,22 @@ src/compat/inet_pton.c src/net.c src/tcl.c -- - - - - - - - - - - - - - - -Commit a3c088d (2010-08-11 16:10:19 +0000) by Jonathan Rudolph +- - - - - - - - - - - - - - - +Commit a3c088d (2010-08-11 16:10:19 +0000) by Jonathan Rudolph Removed Makefile from the repository. Doh! Makefile -- - - - - - - - - - - - - - - -Commit 82462d9 (2010-08-11 15:58:19 +0000) by thommey +- - - - - - - - - - - - - - - +Commit 82462d9 (2010-08-11 15:58:19 +0000) by thommey Reran autotools config.h.in configure doc/Changes1.8 -- - - - - - - - - - - - - - - -Commit 6f99996 (2010-08-11 15:57:51 +0000) by thommey +- - - - - - - - - - - - - - - +Commit 6f99996 (2010-08-11 15:57:51 +0000) by thommey Added detection of Tcl_NotifierProcs members to ensure the notifier can be replaced. Fixes compilation against Tcl 8.2 and 8.3. @@ -3462,14 +4051,14 @@ doc/Changes1.8 src/main.h src/patch.h -- - - - - - - - - - - - - - - -Commit 427384f (2010-08-05 18:20:34 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit 427384f (2010-08-05 18:20:34 +0000) by Rumen Stoyanov Replaced some tabs with spaces. src/eggdrop.h -- - - - - - - - - - - - - - - -Commit ac1b6ed (2010-08-05 18:12:05 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit ac1b6ed (2010-08-05 18:12:05 +0000) by Rumen Stoyanov Added new, full IPv6 support to eggdrop. README @@ -3530,8 +4119,8 @@ src/tcluser.c src/userent.c src/users.c -- - - - - - - - - - - - - - - -Commit 005f285 (2010-07-27 21:49:42 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit 005f285 (2010-07-27 21:49:42 +0000) by Rumen Stoyanov Updated documentation to reference 1.8 instead of 1.6. Changed module dependencies to 1.8. Changed default handle length to 32. Changed default make type to 'debug' as it should be in CVS builds. @@ -3573,8 +4162,8 @@ src/mod/uptime.mod/uptime.c src/mod/woobie.mod/woobie.c src/patch.h -- - - - - - - - - - - - - - - -Commit c753e44 (2010-07-27 13:13:20 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit c753e44 (2010-07-27 13:13:20 +0000) by Rumen Stoyanov Ran misc/runautotools for 1.8.0. configure @@ -3582,8 +4171,8 @@ doc/Changes1.8 src/mod/compress.mod/configure src/mod/dns.mod/configure -- - - - - - - - - - - - - - - -Commit fe6333d (2010-07-27 13:05:43 +0000) by Rumen Stoyanov +- - - - - - - - - - - - - - - +Commit fe6333d (2010-07-27 13:05:43 +0000) by Rumen Stoyanov Ran misc/newversion for 1.8.0. configure.ac @@ -3598,8 +4187,8 @@ doc/html/tcl-commands.html src/mod/compress.mod/configure.ac src/mod/dns.mod/configure.ac -- - - - - - - - - - - - - - - -Commit b8de58a (2010-07-26 21:11:06 +0000) by Jonathan Rudolph +- - - - - - - - - - - - - - - +Commit b8de58a (2010-07-26 21:11:06 +0000) by Jonathan Rudolph Imported Eggdrop 1.6.20 ChangeLog @@ -3802,8 +4391,8 @@ src/stat.h src/tandem.h text/CONTENTS -- - - - - - - - - - - - - - - -Commit a3b9b4d (2010-07-26 21:11:06 +0000) by Jonathan Rudolph +- - - - - - - - - - - - - - - +Commit a3b9b4d (2010-07-26 21:11:06 +0000) by Jonathan Rudolph *** empty log message *** AUTHORS diff --git a/FEATURES b/FEATURES index e84abca20..bcdcac507 100644 --- a/FEATURES +++ b/FEATURES @@ -1,57 +1,50 @@ -Features of Eggdrop Last revised: June 05, 2002 - _____________________________________________________________________ - - Features of Eggdrop +Eggdrop Features +================ Eggdrop is the most advanced IRC robot available. It has been under - development since December 1993, and unlike most other bots, it is still - regularly updated. Some of its features include: - - * Completely separate channel user lists like having a separate bot for - each channel. - - * A "party line" available through dcc chat or telnet, with multiple - channels, giving you the ability to talk to people without being - affected by netsplits. - - * A "botnet". A botnet consists of one or more bots linked together. This - can allow bots to op each other securely, control floods efficiently, - and share user lists, ban lists, exempt/invite lists, and ignore lists - (if sharing is enabled). - - * User records are saved on disk and alterable via dcc chat. Each user - can have a password (encrypted), a list of valid hostmasks, a set of - access flags, etc. - - * The ability to "learn" new users (if you choose to let the bot do so) - by letting users /MSG the bot "hello". The bot will grant them automatic - access of whatever type you specify (or even no access at all). - - * A file system where users can upload and download files in an - environment that looks and acts (for the most part) like a typical - UNIX system. It also has the ability to mark files and directories - as hidden -- unaccessible to people without certain user flags. - - * Console mode: you can view each channel through dcc chat or telnet, - selectively looking at mode changes, joins and parts, channel talk, - or any combination of the above. - - * A scripting language: commands and features can be easily added to - the bot by means of the Tcl scripting language, giving you the power - of TOTAL customization of your bot. - - * Module support: you can remove/add features to your bot by adding or - removing modules. + development since December 1993, and unlike most other bots, it is + still regularly updated. Some of its features include: + + - Support for SSL-enabled IRC servers + - Support for IPv6 users + - Completely separate channel user lists like having a separate + bot for each channel. + - A "party line" available through dcc chat or telnet, with + multiple channels, giving you the ability to talk to people + without being affected by netsplits. + - A "botnet". A botnet consists of one or more bots linked + together. This can allow bots to op each other securely, control + floods efficiently, and share user lists, ban lists, + exempt/invite lists, and ignore lists (if sharing is enabled). + - User records are saved on disk and alterable via dcc chat. Each + user can have a password (encrypted), a list of valid hostmasks, + a set of access flags, etc. + - The ability to "learn" new users (if you choose to let the bot + do so) by letting users /MSG the bot "hello". The bot will grant + them automatic access of whatever type you specify (or even no + access at all). + - A file system where users can upload and download files in an + environment that looks and acts (for the most part) like a + typical UNIX system. It also has the ability to mark files and + directories as hidden -- unaccessible to people without certain + user flags. + - Console mode: you can view each channel through dcc chat or + telnet, selectively looking at mode changes, joins and parts, + channel talk, or any combination of the above. + - A scripting language: commands and features can be easily added + to the bot by means of the Tcl scripting language, giving you + the power of TOTAL customization of your bot. + - Module support: you can remove/add features to your bot by + adding or removing modules. NOTE: - This bot is NOT intended for users of very limited MEMORY or DISK shell - accounts. The development of this latest design of Eggdrop is geared - towards features and flexibility. + This bot is NOT intended for users of very limited MEMORY or DISK + shell accounts. The development of this latest design of Eggdrop is + geared towards features and flexibility. - _____________________________________________________________________ +Copyright (C) 1997 Robey Pointer - Copyright (C) 1997 Robey Pointer - Copyright (C) 2000 - 2016 Eggheads Development Team +Copyright (C) 2000 - 2016 Eggheads Development Team diff --git a/INSTALL b/INSTALL index 445eec95a..a1d750031 100644 --- a/INSTALL +++ b/INSTALL @@ -1,162 +1,171 @@ -Compilation and Installation of Eggdrop -Last revised: July 24, 2004 - _____________________________________________________________________ +Compilation and Installation of Eggdrop Last revised: July 24, 2004 - Compilation and Installation of Eggdrop +Installing Eggdrop +================== +This is the quick install guide; if you have had little or no experience +with UNIX or Eggdrop, READ THE README FILE NOW! This file is only for +experienced users. - This is the quick install guide; if you have had little or no experience - with UNIX or Eggdrop, READ THE README FILE NOW! This file is only for - experienced users. +For more information on compiling Eggdrop, see the Compile Guide in +doc/COMPILE-GUIDE (and of course, the README FILE). - For more information on compiling Eggdrop, see the Compile Guide in - doc/COMPILE-GUIDE (and of course, the README FILE). +Overview +-------- - Contents: - 1. What is Eggdrop? - 2. Quick startup - 3. Modules - 4. Frequently asked questions +1. What is Eggdrop? +2. Quick Startup +3. Cygwin Requirements (Windows) +4. Modules +5. Frequently Asked Questions +What is Eggdrop? +---------------- - (1) WHAT IS EGGDROP? +Please, read the README file before attempting to set up this bot. This +file is a quick setup guide, not a miracle worker. If you enter this +file without basic Eggdrop knowledge, you will NOT leave with a working +bot! Before asking ANY questions, READ THE README FILE OR YOU WILL BE +BURNED TO A HORRIBLE DEATH! IF YOU DO NOT READ THAT FILE I WILL +PERSONALLY WALK TO YOUR TERMINAL AND BEAT IT WITH A SMELLY SNEAKER! By +the way, read the README file. - Please, read the README file before attempting to set up this bot. This - file is a quick setup guide, not a miracle worker. If you enter this file - without basic Eggdrop knowledge, you will NOT leave with a working bot! - Before asking ANY questions, READ THE README FILE OR YOU WILL BE BURNED - TO A HORRIBLE DEATH! IF YOU DO NOT READ THAT FILE I WILL PERSONALLY WALK - TO YOUR TERMINAL AND BEAT IT WITH A SMELLY SNEAKER! By the way, read the - README file. +Quick Startup +------------- - (2) QUICK STARTUP +Eggdrop uses the GNU autoconfigure scripts to make things easier. - Eggdrop uses the GNU autoconfigure scripts to make things easier. +1. Type './configure' from the Eggdrop directory. The configure script + will determine how your system is set up and figure out how to + correctly compile Eggdrop. It will also try to find Tcl, which + is required to compile. - 1. Type './configure' from the Eggdrop directory. The configure script - will determine how your system is set up and figure out how to - correctly compile Eggdrop. It will also try to find Tcl, which is - required to compile. +2. Type either 'make config' or 'make iconfig' to determine which + modules will be compiled. 'make config' compiles the default + modules (everything but woobie.mod). If you want to choose which + modules to compile, use 'make iconfig'. - 2. Type either 'make config' or 'make iconfig' to determine which - modules will be compiled. 'make config' compiles the default modules - (everything but woobie.mod). If you want to choose which modules to - compile, use 'make iconfig'. +3. Type 'make' from the Eggdrop directory, or to force a statically + linked module bot, type 'make static'. Otherwise, the Makefile + will compile whatever type of bot the configure script + determined your system will support. Dynamic is always the + better way to go if possible. There are also the 'debug' and + 'sdebug' (static-debug) options, which will give more detailed + output on a (highly unlikely :) crash. This will help the + development team track down the crash and fix the bug. Debug and + sdebug will take a little longer to compile and will enlarge the + binary a bit, but it's worth it if you want to support Eggdrop + development. - 3. Type 'make' from the Eggdrop directory, or to force a statically - linked module bot, type 'make static'. Otherwise, the Makefile will - compile whatever type of bot the configure script determined your - system will support. Dynamic is always the better way to go if - possible. There are also the 'debug' and 'sdebug' (static-debug) - options, which will give more detailed output on a (highly unlikely :) - crash. This will help the development team track down the crash and - fix the bug. Debug and sdebug will take a little longer to compile - and will enlarge the binary a bit, but it's worth it if you want to - support Eggdrop development. +4. Eggdrop must be installed in a directory somewhere. This is + accomplished by entering the UNIX command: - 4. Eggdrop must be installed in a directory somewhere. This is - accomplished by entering the UNIX command: + make install - make install + This will install the Eggdrop in your home directory in a + directory called 'eggdrop' (i.e. /home/user/eggdrop). - This will install the Eggdrop in your home directory in a directory - called 'eggdrop' (i.e. /home/user/eggdrop). + If you want to install to a different directory, use: - If you want to install to a different directory, use: + make install DEST= - make install DEST= + For example: - For example: + make install DEST=/home/user/otherdir - make install DEST=/home/user/otherdir + Note that you must use full path for every file to be correctly + installed. - Note that you must use full path for every file to be correctly - installed. + [The following is performed from the directory installed above.] - [The following is performed from the directory installed above.] - - 5. By default, version 1.8 uses SSL to protect botnet links. If you intend - on linking 1.8 bots together, you must run: +5. By default, version 1.8 uses SSL to protect botnet links. If you intend + on linking 1.8 bots together, you must run: make ssl-cert - Or, if you installed your eggdrop to a different directory in step 4, you - will want to run: - - make ssl-cert DEST= - - Read docs/TLS for more info on this process. - - 6. Edit your config file completely. - - 7. Start the bot with the "-m" option to create a user file, i.e. './eggdrop - -m LamestBot.conf'. - - 8. When starting the bot in the future, drop the "-m". If you have edited - your config file correctly, you can type: + Or, if you installed your eggdrop to a different directory in + step 4, you will want to run: - chmod u+x + make ssl-cert DEST= - For example: + Read docs/TLS for more info on this process. - chmod u+x LamestBot.conf +6. Edit your config file completely. +7. Start the bot with the "-m" option to create a user file, i.e. : - From then on, you will be able to use your config file as a shell - script. You can just type "./LamestBot.conf" from your shell prompt - to start up your bot. For this to work, the top line of your script - MUST contain the correct path to the Eggdrop executable. + ./eggdrop -m LamestBot.conf - 9. It's advisable to run your bot via crontab, so that it will - automatically restart if the machine goes down or (heaven forbid) - the bot should crash. Look at 'scripts/botchk' and 'scripts/autobotchk' - for a great start with crontabbing the bot. +8. When starting the bot in the future, drop the "-m". If you have edited + your config file correctly, you can type: - 10. Smile, and if you haven't already read the README file in its - entirety, go take a long walk off a short pier. + chmod u+x - (3) MODULES + For example: - Modules are small pieces of code that can either be compiled into the - binary or can be compiled separately into a file. This allows for a much - smaller binary. + chmod u+x LamestBot.conf - If there are any modules that you have made or downloaded, you can add - them to the bot by placing them in the /src/mod directory with a mod - extension. They will be automatically compiled during make for you. - They must have a valid Makefile and, of course, be compatible with - the rest of the Eggdrop source. + From then on, you will be able to use your config file as a + shell script. You can just type "./LamestBot.conf" from your + shell prompt to start up your bot. For this to work, the top + line of your script MUST contain the correct path to the Eggdrop + executable. - If you wish to add a module at a later time, follow the same steps in - paragraph 2. After you have moved the appropriate files, you will only - need to type 'make modules' to compile only the modules portion of the - bot. +9. It's advisable to run your bot via crontab, so that it will + automatically restart if the machine goes down or (heaven + forbid) the bot should crash. Look at 'scripts/botchk' and + 'scripts/autobotchk' for a great start with crontabbing the bot. - (3) FREQUENTLY ASKED QUESTIONS +10. Smile, and if you haven't already read the README file in its + entirety, go take a long walk off a short pier. - (Q) What do I do if...? +Cygwin Requirements (Windows) +----------------------------- - (A) READ THE README FILE! +Eggdrop requires the following packages to be added from the Cygwin +installation tool prior to compiling: - (Q) The readme does not answer...! + Interpreters: tcl, tcl-devel + Net: openssl-devel + Devel: autoconf, gcc-core, git, make + Utils: diffutils - (A) READ THE README FILE AGAIN! +Modules +------- - (Q) I still don't know how to... +Modules are small pieces of code that can either be compiled into the +binary or can be compiled separately into a file. This allows for a much +smaller binary. - (A) MEMORIZE THE README FILE! +If there are any modules that you have made or downloaded, you can add +them to the bot by placing them in the /src/mod directory with a mod +extension. They will be automatically compiled during make for you. They +must have a valid Makefile and, of course, be compatible with the rest +of the Eggdrop source. - (Q) But... +If you wish to add a module at a later time, follow the same steps in +paragraph 2. After you have moved the appropriate files, you will only +need to type 'make modules' to compile only the modules portion of the +bot. - (A) Well, go to www.egghelp.org or www.eggheads.org and see if you can - find there what you're looking for. There are also lots of IRC help - channels and various mailing lists, as seen in the README FILE. +FREQUENTLY ASKED QUESTIONS +-------------------------- - This is the end. If you read to this point, hopefully you have also read - the README file. If not, then READ IT!&@#%@! + (Q) What do I do if...? + (R) READ THE README FILE! + (S) The readme does not answer...! + (T) READ THE README FILE AGAIN! + (U) I still don't know how to... + (V) MEMORIZE THE README FILE! + (W) But... + (X) Well, go to www.egghelp.org or www.eggheads.org and see if you can + find there what you're looking for. There are also lots of IRC + help channels and various mailing lists, as seen in the README + FILE. - Have fun with Eggdrop! +This is the end. If you read to this point, hopefully you have also read +the README file. If not, then READ IT!&@#%@! - _____________________________________________________________________ +Have fun with Eggdrop! - Copyright (C) 1997 Robey Pointer - Copyright (C) 1999 - 2016 Eggheads Development Team + Copyright (C) 1997 Robey Pointer Copyright (C) 1999 - 2016 Eggheads + Development Team diff --git a/Makefile.in b/Makefile.in index 60641d0ad..d4d58ebc6 100644 --- a/Makefile.in +++ b/Makefile.in @@ -10,8 +10,17 @@ VPATH = @srcdir@ @SET_MAKE@ prefix = @prefix@ DEST = @DEST@ -override DEST := $(abspath $(DEST)) +# GNU Make < 3.82 ignores these != statements, they are for bsd make and gnu make >= 4.0. +# gnu make 3.82 interprets a!= b as setting the variable a!. +# it seems to interpret != otherwise and throws an error. +DEST_PARENT_DIR!= dirname $(DEST) +DEST_PARENT!= readlink -f $(DEST_PARENT_DIR) +DEST_DIR!= basename $(DEST) +ABSDEST!= echo $(DEST_PARENT)/$(DEST_DIR) +# GNU Make +ABSDEST ?= $(abspath $(DEST)) EGGEXEC = @EGGEXEC@ +EGG_CROSS_COMPILING = @EGG_CROSS_COMPILING@ EGGVERSION = @EGGVERSION@ # Extra compiler flags @@ -74,7 +83,10 @@ MODULE_XLIBS = @MODULE_XLIBS@ modconf = $(top_srcdir)/misc/modconfig --top_srcdir=$(top_srcdir) -egg_test_run = EGG_LANGDIR=$(top_srcdir)/language ./$(EGGEXEC) -v +egg_test_run = if [ '$(EGG_CROSS_COMPILING)' = 'no' ]; \ + then EGG_LANGDIR=$(top_srcdir)/language ./$(EGGEXEC) -v; \ + else echo 'This build is a cross-compilation, skipping test run...'; \ + fi post_config = echo "" && \ echo "You can now compile the bot, using \"make\"." && \ @@ -124,7 +136,7 @@ MAKE_DEPEND = $(MAKE) 'MAKE=$(MAKE)' 'CC=$(CC)' MAKE_CONFIG = $(MAKE) 'MAKE=$(MAKE)' -MAKE_INSTALL = $(MAKE) 'MAKE=$(MAKE)' 'DEST=$(DEST)' +MAKE_INSTALL = $(MAKE) 'MAKE=$(MAKE)' 'DEST=$(ABSDEST)' all: @DEFAULT_MAKE@ @@ -348,7 +360,7 @@ install-start: @echo "" @$(egg_test_run) @echo "" - @echo "Installing in directory: '$(DEST)'." + @echo "Installing in directory: '$(ABSDEST)'." @echo "" @if test ! -d $(DEST); then \ echo "Creating directory '$(DEST)'."; \ @@ -397,6 +409,9 @@ install-data: @if test ! -f $(DEST)/eggdrop.conf; then \ $(INSTALL_DATA) $(srcdir)/eggdrop.conf $(DEST)/; \ fi + @if test ! -f $(DEST)/eggdrop-basic.conf; then \ + $(INSTALL_DATA) $(srcdir)/eggdrop-basic.conf $(DEST)/; \ + fi @if test ! -d $(DEST)/logs; then \ echo "Creating 'logs' subdirectory."; \ $(top_srcdir)/misc/mkinstalldirs $(DEST)/logs >/dev/null; \ diff --git a/README b/README index c8423120d..ab22d42de 100644 --- a/README +++ b/README @@ -1,570 +1,377 @@ -Readme -Last revised: Nov 01, 2010 - _________________________________________________________________ - - Readme - - - Please at least SKIM this document before asking questions. In fact, READ IT - if you've never successfully set up an Eggdrop bot before. PLEASE! READ IT! - - Contents - - 0. Important notice - 1. What is Eggdrop? - 2. How do I get Eggdrop? - 2a. How to get the latest version of Eggdrop via CVS - 3. Quick startup - 4. Upgrading - 4a. Upgrading from a pre-1.3 version to 1.8 - 4b. Upgrading from an older 1.3/1.4/1.5/1.6 version to a newer one - 5. Command line - 6. Frequently Asked Questions - 6a. What do I do if I get the error "User file not found"? - 6b. What the Heck is Tcl? - 6c. My bot dies and the last entry in the logfile is "Received terminate - signal". What does that mean and can I prevent it? - 6d. Someone else set up a bot I don't like. Are there any backdoors I - can use to take their bot down? - 6e. What are modules? - 6f. Can I compile Eggdrop without dynamic modules? - 6g1. Do I still need to "loadmodule" modules? - 6g. Where can I get a pre-compiled Eggdrop for my computer? - 6h. I get "Makefile:3 : invalid operator" or some such thing when I - try to "make". - 6i. When I "tclsh scripts/weed c" It barfs chunks at me - and dies. - 6j. I get "ld-elf.so.1: Shared object "libtcl80.so.1" not found" or - "eggdrop: error in loading shared libraries / libtcl8.1.so: cannot - open shared object file: No such file or directory" when I try to - start my bot. - 6k. I get a whole pile of "unresolved symbol 'Tcl_AppendResult'" (or - some other symbol) when I try to load a module. - 7. Setting up a crontab - 7a. Setting up a crontab using autobotchk - 8. Boring legal stuff - 9. Mailing list - 10. Documentation - 11. Obtaining help - - _________________________________________________________________ - - - (0) NOTICE - - Please read this file carefully before trying to set up Eggdrop. Also, - make SURE that you select your +n (owner) users wisely! They have 100% - access to your bot and account! ONLY GIVE THIS POWER TO SOMEONE YOU - TRUST COMPLETELY!! - - - (1) WHAT IS EGGDROP? +Last revised: Jul 2, 2016 + +README +====== + + Please at least SKIM this document before asking questions. In fact, + READ IT if you've never successfully set up an Eggdrop bot before. + PLEASE! READ IT! + +NOTICE +------ + + Please read this file carefully before trying to set up Eggdrop. Also, + make SURE that you select your +n (owner) users wisely! They have 100% + access to your bot and account! ONLY GIVE THIS POWER TO SOMEONE YOU + TRUST COMPLETELY!! + +What is Eggdrop? +---------------- - Eggdrop is the World's most popular Internet Relay Chat (IRC) bot; it is - freely distributable under the GNU General Public License (GPL). Eggdrop - is a feature rich program designed to be easily used and expanded upon by - both novice and advanced IRC users on a variety of hardware and software - platforms. + Eggdrop is the World's most popular Internet Relay Chat (IRC) bot; it + is freely distributable under the GNU General Public License (GPL). + Eggdrop is a feature rich program designed to be easily used and + expanded upon by both novice and advanced IRC users on a variety of + hardware and software platforms. - An IRC bot is a program that sits on an IRC channel and performs automated - tasks while looking just like a normal user on the channel. Some of these - functions include protecting the channel from abuse, allowing privileged - users to gain op or voice status, logging channel events, providing - information, hosting games, etc. + An IRC bot is a program that sits on an IRC channel and performs + automated tasks while looking just like a normal user on the channel. + Some of these functions include protecting the channel from abuse, + allowing privileged users to gain op or voice status, logging channel + events, providing information, hosting games, etc. + + One of the features that makes Eggdrop stand out from other bots is + module and Tcl scripting support. With scripts and modules, you can + make the bot perform almost any task you want. They can do anything + from preventing floods to greeting users and banning advertisers from + channels. - One of the features that makes Eggdrop stand out from other bots is module - and Tcl scripting support. With scripts and modules, you can make the bot - perform almost any task you want. They can do anything from preventing - floods to greeting users and banning advertisers from channels. + You can also link multiple Eggdrop bots together to form a botnet. + This can allow bots to op each other securely, control floods + efficiently, and even link channels across multiple IRC networks. It + also allows the Eggdrops share user lists, ban lists, exempt/invite + lists, and ignore lists with other bots if userfile sharing is + enabled. This allows users to have the same access on every bot on + your botnet. It also allows the bots to distribute tasks such as + opping and banning users. See doc/BOTNET for information on setting up + a botnet. + + Eggdrop is always being improved and adjusted because there are bugs + to be fixed and features to be added (if the users demand them, and + they make actually sense). In fact, it existed for several years as + v0.7 - v0.9 before finally going 1.0. This version of Eggdrop is part + of the 1.8 tree. A valiant effort has been made to chase down and + destroy bugs. + + This README file contains information about how to get Eggdrop, + command line options for Eggdrop, what you may need to do when + upgrading from older versions, a list of frequently asked questions, + how to set up a crontab, some boring legal stuff, info about the + mailing list (a great place to ask questions, and a good place to + report bugs, too), some basics about CVS usage, and some channels + where you might get help with Eggdrop. + +HOW TO GET EGGDROP +------------------ + + Before you can compile Eggdrop, you need to have Tcl installed on your + system. Most systems should have Tcl on them by now -- you can check + by trying the command "tclsh". If it works, you will be given a "%" + prompt, and you can type "exit" to exit the program. This means Tcl is + installed on your system. If tclsh doesn't load, then Tcl probably + isn't on your system, and you will need to install it. The best ftp + site for Tcl is ftp://tcl.activestate.com/pub/tcl/. + + Currently, the 1.8 tree of Eggdrop is developed at eggheads.org. You + can get the latest STABLE version of Eggdrop from the following url: + + http://geteggdrop.com/ + + You might try www.eggheads.org for help and information. + +Git Usage +--------- + + Eggdrop development has moved from a CVS-based version control system + to git. If you are interested in trying out the VERY LATEST updates to + eggdrop, you may want be interested in pulling the most recent code + from there. BE WARNED, the development branch of Eggdrop is not to be + considered stable, and may (haha) have some significant bugs in it. + The Eggheads Development Team will in NO WAY take any responsibility + for whatever might happen to you or your shell if you use the + development branch of Eggdrop! + + To obtain Eggdrop via the git repository (hosted by GitHub), you can + either clone the repository via git, or download a development + snapshot. + + To clone the repository, simply type: + + git clone https://github.com/eggheads/eggdrop.git + + Otherwise, you can download the development snapshot as a tar archive + from: + + https://github.com/eggheads/eggdrop/archive/develop.tar.gz + +Quick Startup +------------- + + Please see the 'INSTALL' file AFTER you finish reading this file. + +Upgrading +--------- + +UPGRADING FROM A PRE-1.3 VERSION TO 1.8 + + First of all- why are you still running pre-1.3?!?! + + #### BACK UP YOUR USERFILE #### + + We can't stress this enough. If you are upgrading and you have even a + slight possibility of downgrading again later, you will HAVE to back + up your userfile, or you will lose it. v1.3 of Eggdrop radically + changed a lot of things. + + There are many major changes between v0.9, v1.0, v1.1 and v1.8, so PAY + ATTENTION to this part if you have a v0.9, 1.0 or 1.1 bot currently. + If you're just starting out, you can skip this section. + + If you run share bots, you will need to upgrade them all at the same + time because of the new userfile format. Older bots will be able to + link in, but will not get or send a userfile. MAKE A NEW CONFIG FILE + from the example; there are some radical changes. + + If you are upgrading from 0.9/1.0 to 1.8, just redo the whole thing. + Absolutely everything has changed, including the userfile and config + file formats. - You can also link multiple Eggdrop bots together to form a botnet. This - can allow bots to op each other securely, control floods efficiently, and - even link channels across multiple IRC networks. It also allows the - Eggdrops share user lists, ban lists, exempt/invite lists, and ignore - lists with other bots if userfile sharing is enabled. This allows users - to have the same access on every bot on your botnet. It also allows the - bots to distribute tasks such as opping and banning users. See doc/BOTNET - for information on setting up a botnet. + If you are upgrading from 1.1/1.2 to 1.8, you will likely want to redo + the config file, as much as changed. BACK UP! You will need to run + 'tclsh scripts/weed/ c' to convert your userfile from v3 + (1.1/1.2) to v4 (1.3/1.4/1.5/1.6/1.8). - Eggdrop is always being improved and adjusted because there are bugs to - be fixed and features to be added (if the users demand them, and they make - actually sense). In fact, it existed for several years as v0.7 - v0.9 - before finally going 1.0. This version of Eggdrop is part of the 1.8 tree. - A valiant effort has been made to chase down and destroy bugs. +UPGRADING FROM AN OLDER 1.3/1.4/1.5/1.6 VERSION TO A NEWER 1.8 VERSION - This README file contains information about how to get Eggdrop, command - line options for Eggdrop, what you may need to do when upgrading from - older versions, a list of frequently asked questions, how to set up a - crontab, some boring legal stuff, info about the mailing list (a great - place to ask questions, and a good place to report bugs, too), some basics - about CVS usage, and some channels where you might get help with Eggdrop. + If you followed the 'INSTALL' file and did a 'make install' (or 'make + install DEST="path"') after 'make', this will be pretty easy. Just + upload the new eggdrop1.8.x.tar.gz file to your home dir on your + shell, gunzip and untar it, and type 'cd ~/eggdrop1.8.x'. Next, type + './configure', 'make config' or 'make iconfig', then 'make'. Then, + kill the bot ('.die' on the party line), and 'make install' to the + same directory your bot is currently in. After that, you can just + restart your bot. You may wish to delete the old Eggdrop executable + and modules as well, especially if you have limited disk space. + You should read through the new eggdrop.conf file for all of the new + options in Eggdrop 1.8.x. You can copy and paste any of these settings + into you current conf file if you do not want to use the default + settings. - (2) HOW TO GET EGGDROP +Command Line +------------ - Before you can compile Eggdrop, you need to have Tcl installed on your - system. Most systems should have Tcl on them by now -- you can check by - trying the command "tclsh". If it works, you will be given a "%" prompt, - and you can type "exit" to exit the program. This means Tcl is installed - on your system. If tclsh doesn't load, then Tcl probably isn't on your - system, and you will need to install it. The best ftp site for Tcl is - ftp://tcl.activestate.com/pub/tcl/. - - Currently, the 1.8 tree of Eggdrop is developed at eggheads.org. You can - get the latest version of Eggdrop from the following url: - - http://geteggdrop.com/ - - You might try www.eggheads.org for help and information. - - - (2a) CVS USAGE - - You can obtain the VERY LATEST version of Eggdrop, that is still under - development, by using CVS. CVS means 'Concurrent Versions System' and is - a tool for developers to always keep source code up to date. Try 'man cvs' - on your shell for more information about CVS. - - This is intended only for users that know a good bit about Eggdrop. Be - aware that the versions of Eggdrop that you get via CVS are still being - developed, and may be buggy. The Eggheads Development Team will in NO WAY - take any responsibility for whatever might happen to you or your shell if - you use a CVS version of Eggdrop. - - To obtain Eggdrop over CVS, do as follows: - - 1. Log into your shell. - - 2. Type: 'export - CVSROOT=:pserver:anonymous@cvs.eggheads.org:/usr/local/cvsroot'. - - 3. Type 'cvs login'. - - 4. Press when prompted for a password. - - 5. In your home dir, type 'cvs checkout eggdrop1.8' - - 6. In ~/eggdrop1.8, you should have a copy of the latest CVS version - of Eggdrop. - - Notes: - - o You can 'cvs logout', but you don't need to. - - o You don't need to go through this whole process every time. If you - want to get a CVS version of Eggdrop at a later time, you can just - 'cd ~/eggdrop1.8' and type 'cvs update -CdAP'. - - o If you experience errors when using 'export', you might be using tclsh - as a shell. If so, try using the command 'setenv' instead of 'export': - - setenv CVSROOT :pserver:anonymous@cvs.eggheads.org:/usr/local/cvsroot - - - (3) QUICK STARTUP - - Please see the 'INSTALL' file AFTER you finish reading this file. - - - (4) UPGRADING - - - (4a) UPGRADING FROM A PRE-1.3 VERSION TO 1.8 - - #### BACK UP YOUR USERFILE #### - - We can't stress this enough. If you are upgrading and you have even a - slight possibility of downgrading again later, you will HAVE to back up - your userfile, or you will lose it. v1.3 of Eggdrop radically changed a - lot of things. - - There are many major changes between v0.9, v1.0, v1.1 and v1.8, so PAY - ATTENTION to this part if you have a v0.9, 1.0 or 1.1 bot currently. If - you're just starting out, you can skip this section. - - If you run share bots, you will need to upgrade them all at the same time - because of the new userfile format. Older bots will be able to link in, - but will not get or send a userfile. MAKE A NEW CONFIG FILE from the - example; there are some radical changes. - - If you are upgrading from 0.9/1.0 to 1.8, just redo the whole thing. - Absolutely everything has changed, including the userfile and config file - formats. - - If you are upgrading from 1.1/1.2 to 1.8, you will likely want to redo - the config file, as much as changed. BACK UP! You will need to run 'tclsh - scripts/weed/ c' to convert your userfile from v3 (1.1/1.2) to - v4 (1.3/1.4/1.5/1.6/1.8). - - - (4b) UPGRADING FROM AN OLDER 1.3/1.4/1.5/1.6 VERSION TO A NEWER 1.8 VERSION - - If you followed the 'INSTALL' file and did a 'make install' (or 'make - install DEST="path"') after 'make', this will be pretty easy. Just upload - the new eggdrop1.8.x.tar.gz file to your home dir on your shell, gunzip - and untar it, and type 'cd ~/eggdrop1.8.x'. Next, type './configure', - 'make config' or 'make iconfig', then 'make'. Then, kill the bot ('.die' - on the party line), and 'make install' to the same directory your bot - is currently in. After that, you can just restart your bot. You may wish - to delete the old Eggdrop executable and modules as well, especially if - you have limited disk space. - - You should read through the new eggdrop.conf file for all of the new - options in Eggdrop 1.8.x. You can copy and paste any of these settings - into you current conf file if you do not want to use the default settings. - - - (5) COMMAND LINE - - Eggdrop has some command-line options -- not many, because most things - should be defined through the config file. However, sometimes you may - want to start up the bot in a different mode, and the command-line - options let you do that. Basically, the command line for Eggdrop is: + Eggdrop has some command-line options -- not many, because most things + should be defined through the config file. However, sometimes you may + want to start up the bot in a different mode, and the command-line + options let you do that. Basically, the command line for Eggdrop is: % eggdrop [options] [config-file] - The options available are: - - -n: Don't background. Normally, Eggdrop will move itself into the - background when you start it up, meaning you'll get another shell - prompt, and you can do other things while the bot is running. With - -n, you won't return to the shell prompt until the bot exits (which - won't normally happen until it's killed). By default, -n will send - all log entries to the console. - - -nt: Don't background, use terminal. This is just like -n, except that - instead of seeing log entries, your console will simulate a DCC - chat with the bot. - - -nc: Don't background, show channel info. This is just like -n, except - that instead of seeing log entries, every 10 seconds your screen - will clear and you will see the current channel status, sort of - like "top". - - -m: Create userfile. If you don't have a userfile, this will make Eggdrop - create one and give owner status to the first person that introduces - himself or herself to it. You'll need to do this when you first set - up your bot. - - -h: Show help. + The options available are: - -v: Show version info, then quit. + -n: Don't background. Normally, Eggdrop will move itself into the + background when you start it up, meaning you'll get another + shell prompt, and you can do other things while the bot is + running. With -n, you won't return to the shell prompt until the + bot exits (which won't normally happen until it's killed). By + default, -n will send all log entries to the console. - Most people never use any of the options except -m, and you usually only - need to use that once. + -nt: Don't background, use terminal. This is just like -n, except that + instead of seeing log entries, your console will simulate a DCC + chat with the bot. + -nc: Don't background, show channel info. This is just like -n, except + that instead of seeing log entries, every 10 seconds your screen + will clear and you will see the current channel status, sort of + like "top". - (6) FREQUENTLY ASKED QUESTIONS (or "Why doesn't this thing work?") + -m: Create userfile. If you don't have a userfile, this will make Eggdrop + create one and give owner status to the first person that + introduces himself or herself to it. You'll need to do this when + you first set up your bot. - 6a. WHAT DO I DO IF I GET THE ERROR "USER FILE NOT FOUND"? + -h: Show help. - 1. Run Eggdrop with the "-m" option (i.e. "eggdrop -m eggdrop.conf"). + -v: Show version info, then quit. - 2. Go to IRC and send "hello" to your bot (i.e. "/msg mybot hello"). + Most people never use any of the options except -m, and you usually + only need to use that once. - 3. You will become an owner on your bot. You can leave the bot running - (nobody else will become an owner if they say "hello"), but in the - future, don't use the "-m" option when running the bot. +Setting up a Crontab +-------------------- - 6b. WHAT THE HECK IS Tcl? + Eggdrop has become more stable with time, thanks mostly to people + reporting bug details and helping find places where it crashes. + However, there are still a -few- places where things aren't perfect. + Few, if any, things in life are. - Tcl is a scripting language written by John Ousterhout. It's much better - than most "built-in" script languages (like the one in ircII) and is - meant to be linked with anything needing a scripting language, so I - linked it with Eggdrop. The file "tcl-commands.doc" in the doc directory - contains a list of additional Tcl commands provided by Eggdrop. There - are also several example scripts in the scripts/ directory, and one in - the doc directory called first_script.txt. Hundreds of scripts floating - around on the ftp/web sites if you like working by example (which is - typically the best way). + Also, most systems go down from time to time. These things cause your + bot to disappear from IRC, and you have to restart it. - 6c. MY BOT DIES, AND THE LAST ENTRY IN THE LOGFILE IS "RECEIVED TERMINATE - SIGNAL". WHAT DOES THAT MEAN, AND CAN I PREVENT IT? - - There's nothing you can do to prevent it. It means the system - administrator is killing the Eggdrop process. Most of the time, it's an - automatic thing that happens when the system is being rebooted, so it's - harmless. If you have a crontab running, the bot will get restarted when - the system is back online. Occasionally, the system administrator will - kill the bot manually. For example, if he/she doesn't want bots running - on the system. - - 6d. SOMEONE ELSE SET UP A BOT I DON'T LIKE. ARE THERE ANY BACKDOORS I CAN - USE TO TAKE THEIR BOT DOWN? - - No, there have never been any backdoors and there never will be, so - please stop asking. Every once in a while, someone finds a way to - exploit a bug in Eggdrop, but we fix these bugs as soon as we find out - about them. If you want to bring down someone else's bot, you will not - have my/our help. - - 6e. WHAT ARE MODULES? - - Modules are a way of adding extra features to the bot, much like Tcl - scripts, without requiring the bot to be recompiled. See doc/MODULES - for more information. - - 6f. CAN I COMPILE EGGDROP WITHOUT DYNAMIC MODULES? - - Yes, you can. If the configure script detects that your system CAN'T - run modules, it will setup 'make' to link the modules in statically - for you. You can choose this option yourself by using 'make static'. - You can also try to compile dynamic modules on a static-only system - by using 'make eggdrop'. - - 6f1. DO I STILL NEED TO 'loadmodule' MODULES? - - YES, when you compile statically, all the modules are linked into the - main executable. HOWEVER, they are not enabled until you use loadmodule - to enable them, hence you get nearly the same functionality with static - modules as with dynamic modules. - - 6g. WHERE CAN I GET A PRE-COMPILED EGGDROP FOR MY COMPUTER? - - It is HIGHLY recommended AGAINST using pre-compiled Eggdrops from - un-trusted sources. Eggdrop has been a regular target for hacking and - crashing. Distribution of pre-compiled (binary) versions of Eggdrop are - the easiest way for hackers to provide you with the easiest (and most - dangerous) way of gaining access to, not only your bot, but to your - computer account directly. Don't advertise your pre-compiled Eggdrop - binary sites on the Eggdrop list either. =P - - 6h. I GET 'Makefile:3 :invalid operator' OR SOME-SUCH-THING WHEN I TRY - TO 'make'. - - Try 'gmake'. - - 6i. WHEN I 'tclsh scripts/weed c' IT BARFS CHUNKS AT ME AND - DIES. :( - - Upgrade your Tcl. You are probably using Tcl 7.5 or earlier. Some of the - commands in weed require Tcl7.6 to run, so either upgrade it or remove - the offending lines from you userfile manually (those starting with '.' - generally) and accept the loss of that data. - - 6j. I GET "ld-elf.so.1: Shared object "libtcl80.so.1" not found" or - "eggdrop: error in loading shared libraries libtcl8.1.so: \ - cannot open shared object file: No such file or directory" WHEN I TRY - TO START MY BOT. - - './configure' is looking in the wrong place for Tcl; it looks like it - compiled with one version of Tcl and tries to load another. Maybe your - sysadmin upgraded Tcl and didn't tell you. In that case, you should just - need to recompile your bot. - - Maybe, when upgrading, he didn't clean the old version of Tcl and - './configure' is looking for the files in the wrong places, or trying - to use different versions of tcl.h and libtcl*. Smack your admin and - have him install Tcl properly. ;) - - You can also try: - - ./configure --with-tcllib= - --with-tclinc= - - This will tell configure where to look for the Tcl files. - - Try looking for libtcl by: - - ls /usr/lib/libtcl* - ls /usr/local/lib/libtcl* - - Try looking for tcl.h by: - - ls /usr/include/tcl.h - ls /usr/local/include/tcl.h - - If everything else fails, try to install Tcl to your home dir ;) - (Suggested by dw@Undernet, dw@lixom.nu) - - 6k. I GET A WHOLE PILE OF "Unresolved symbol 'Tcl_AppendResult'" (OR SOME - OTHER SYMBOL) WHEN I TRY TO LOAD A MODULES. - - POSSIBILITY A: See section 6j. - - POSSIBILITY B: - - Some of the standard libraries have been compiled for static linking - only on your machine, you have 3 options: - - 1. If it's your own machine, recompile Tcl using dynamic linking by - using './configure --enable-shared' when you configure Tcl (not - the bot) and then remake, and reinstall. - - 2. If it's not your machine, you may have to resort to 'make static' - and 'make install DEST="path"' to make and install your bot. - - 3. If you are of a more aggressive sense of mind, go beat the - stuffing out of your admin for having lame static libraries. :) - - - (7) SETTING UP A CRONTAB - - Eggdrop has become more stable with time, thanks mostly to people - reporting bug details and helping find places where it crashes. However, - there are still a -few- places where things aren't perfect. Few, if any, - things in life are. - - Also, most systems go down from time to time. These things cause your bot - to disappear from IRC, and you have to restart it. - - Eggdrop comes with a shell script called 'botchk' that will help keep the - bot online. It will make the machine check every ten minutes to make sure - your bot is still running. To use it, you have to add a line to your - crontab. First, edit 'botchk' and change the directory and command line - parameters so that it will be able to start up your bot. Then, add this - line to your crontab: + Eggdrop comes with a shell script called 'botchk' that will help keep + the bot online. It will make the machine check every ten minutes to + make sure your bot is still running. To use it, you have to add a line + to your crontab. First, edit 'botchk' and change the directory and + command line parameters so that it will be able to start up your bot. + Then, add this line to your crontab: 0,10,20,30,40,50 * * * * /home/mydir/botchk - If you don't want to get e-mails from cron, use this: + If you don't want to get e-mails from cron, use this: 0,10,20,30,40,50 * * * * /home/mydir/botchk >/dev/null 2>&1 - Naturally, you need to change the path to the correct path for botchk. If - you've never used crontab before, here is a simple way to add that line: + Naturally, you need to change the path to the correct path for botchk. + If you've never used crontab before, here is a simple way to add that + line: - 1. Create a new file called 'mycron' and put the above line into it. + 1. Create a new file called 'mycron' and put the above line into + it. + 2. From your shell prompt, type '% crontab mycron'. - 2. From your shell prompt, type '% crontab mycron'. + That will create a new crontab entry for you with a line that runs + botchk every ten minutes. Botchk will then restart the bot when + necessary (and send you email informing you). - That will create a new crontab entry for you with a line that runs botchk - every ten minutes. Botchk will then restart the bot when necessary (and - send you email informing you). +Setting up a Crontab using autobotchk +------------------------------------- + Included with your Eggdrop is an Eggdrop utility called 'autobotchk'. + Using autobotchk is probably the fastest way of creating your botchk + and crontabbing it with just a few required steps: - (7a) SETTING UP A CRONTAB USING AUTOBOTCHK + 1. Type: - Included with your Eggdrop is an Eggdrop utility called 'autobotchk'. - Using autobotchk is probably the fastest way of creating your botchk and - crontabbing it with just a few required steps: + cp scripts/autobotchk .. - 1. Type 'cp scripts/autobotchk ..'. + 2. Type: - 2. Type './autobotchk '. + ./autobotchk - This will hopefully crontab your bot using the default setup. If you want - a list of autobotchk options, type './autobotchk'. An example with options - would be: + This will hopefully crontab your bot using the default setup. If you + want a list of autobotchk options, type './autobotchk'. An example + with options would be: ./autobotchk -noemail -5 - This would setup crontab to run the botchk every 5 minutes and also to - not send you e-mail saying that it restarted your bot. - - - (8) BORING LEGAL STUFF - - The Eggdrop bot is Copyright (C) by Robey Pointer. As of January, 1997, - Eggdrop is distributed according to the GNU General Public License. There - should be a copy of this license in the file 'COPYING'. If not, write to - the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - As of Eggdrop 1.3.28, all changes made by the Eggheads Development Team to - the Eggdrop source code and any related files are Copyright (C) by Eggheads - Development Team. The source code will still be distributed according to - the GNU General Public License as Robey Pointer did in the past. - - Releases previous to 1.0m were made using a different licensing scheme. - You may, at your option, use the GNU General Public License on those - versions (instead of the license packaged with them) with my blessing. - For any versions bearing a copyright date of 1997 or later, you have - no choice -- you must use the GNU General Public License. + This would setup crontab to run the botchk every 5 minutes and also to + not send you e-mail saying that it restarted your bot. - The files "match.c", "net.c", and "blowfish.c" are exempt from the above - restrictions. "match.c" is original code by Chris Fuller (email: - crf@cfox.bchs.uh.edu) and has been placed by him into the public domain. - "net.c" is by me, and I [Robey Pointer] also choose to place it in the - public domain. "blowfish.c" is by various sources and is in the public - domain as well. All 3 files contain useful functions that could easily - be ported to other applications. +Boring Legal Stuff +------------------ - Tcl is by John Ousterhout and is in no way affiliated with Eggdrop. It - likely has its own set of copyrights and whatnots. + The Eggdrop bot is Copyright (C) by Robey Pointer. As of January, + 1997, Eggdrop is distributed according to the GNU General Public + License. There should be a copy of this license in the file 'COPYING'. + If not, write to the Free Software Foundation, Inc., 675 Mass Ave, + Cambridge, MA 02139, USA. - There is no warranty, implied or whatever. You use this software at your - own risk, no matter what purpose you put it to. + As of Eggdrop 1.3.28, all changes made by the Eggheads Development + Team to the Eggdrop source code and any related files are Copyright + (C) by Eggheads Development Team. The source code will still be + distributed according to the GNU General Public License as Robey + Pointer did in the past. + Releases previous to 1.0m were made using a different licensing + scheme. You may, at your option, use the GNU General Public License on + those versions (instead of the license packaged with them) with my + blessing. For any versions bearing a copyright date of 1997 or later, + you have no choice -- you must use the GNU General Public License. - (9) MAILING LIST + The files "match.c", "net.c", and "blowfish.c" are exempt from the + above restrictions. "match.c" is original code by Chris Fuller (email: + crf@cfox.bchs.uh.edu) and has been placed by him into the public + domain. "net.c" is by me, and I [Robey Pointer] also choose to place + it in the public domain. "blowfish.c" is by various sources and is in + the public domain as well. All 3 files contain useful functions that + could easily be ported to other applications. - There are currently a couple of mailing lists about Eggdrop. - eggheads@eggheads.org is the one relevant for posts about Eggdrop 1.4 and - up (suggestions, help, etc). + Tcl is by John Ousterhout and is in no way affiliated with Eggdrop. It + likely has its own set of copyrights and whatnots. - To subscribe to the eggheads mailing list, send e-mail to - eggheads-request@eggheads.org. In the body of the message, put "subscribe - eggheads". You can also go to the following url: + There is no warranty, implied or whatever. You use this software at + your own risk, no matter what purpose you put it to. - http://lists.eggheads.org/mailman/listinfo/eggheads +Mailing List +------------ - ### DO NOT SEND ROBEY EMAIL ABOUT EGGDROP! ### + There are currently a couple of mailing lists about Eggdrop. + eggheads@eggheads.org is the one relevant for posts about Eggdrop 1.8 + and up (suggestions, help, etc). - Robey is no longer developing the Eggdrop code, so don't bother e-mailing - him. If you have a serious problem, email the eggheads mailing list and - it will get to the coders. + To subscribe to the eggheads mailing list, send e-mail to + eggheads-request@eggheads.org. In the body of the message, put + "subscribe eggheads". You can also go to the following url: - Please, before posting to this list, see what things are like. When you do - post, read over your post for readability, spelling, and grammar mistakes. - Obviously, we're all human (or are we?) and we all make mistakes (heck, - look at this document! ;). + http://lists.eggheads.org/mailman/listinfo/eggheads - Open discussion and debate is integral to change and progress. Don't flame - others over mere form (grammar and spelling), or even substantive issues - for that matter. Please read and follow the mailing list rules. + ### DO NOT SEND ROBEY EMAIL ABOUT EGGDROP! ### - The eggheads@eggheads.org mailing list is not dedicated to those all too - common questions we have all seen on other lists... For example: + Robey is no longer developing the Eggdrop code, so don't bother + e-mailing him. If you have a serious problem, email the eggheads + mailing list and it will get to the coders. - o "Why does my bot say this: Please edit your config file." - o "How do I telnet my bot?" - o "Where do I get Eggdrop for windows??????" + Please, before posting to this list, see what things are like. When + you do post, read over your post for readability, spelling, and + grammar mistakes. Obviously, we're all human (or are we?) and we all + make mistakes (heck, look at this document! ;). - Technical questions, your thoughts or suggestions on new features being - added to Eggdrop, things that should be removed or fixed, amazing problems - that even stump the guru's, etc. are what we want to see here. + Open discussion and debate is integral to change and progress. Don't + flame others over mere form (grammar and spelling), or even + substantive issues for that matter. Please read and follow the mailing + list rules. - Bug reports should be sent to bugs@eggheads.org. Please read and fill out - the BUG-REPORT file in the doc directory. + The eggheads@eggheads.org mailing list is not dedicated to those all + too common questions we have all seen on other lists... For example: - DO NOT SEND HTML E-MAILS TO ANY OF THE EGGHEADS.ORG MAILING LISTS. ANYONE - CAUGHT SENDING HTML E-MAILS TO ONE OF THESE LISTS WILL BE REMOVED - IMMEDIATELY! + o "Why does my bot say this: Please edit your config file." o "How + do I telnet my bot?" o "Where do I get Eggdrop for windows??????" + Technical questions, your thoughts or suggestions on new features + being added to Eggdrop, things that should be removed or fixed, + amazing problems that even stump the guru's, etc. are what we want to + see here. - (10) DOCUMENTATION + Bug reports should be sent to bugs@eggheads.org. Please read and fill + out the BUG-REPORT file in the doc directory. - We're trying to keep the documentation up to date. If you feel that - anything is missing here or that anything should be added, etc, please - e-mail bugs@eggheads.org about it. Thank you. + DO NOT SEND HTML E-MAILS TO ANY OF THE EGGHEADS.ORG MAILING LISTS. + ANYONE CAUGHT SENDING HTML E-MAILS TO ONE OF THESE LISTS WILL BE + REMOVED IMMEDIATELY! +Documentation +------------- - (11) OBTAINING HELP + We're trying to keep the documentation up to date. If you feel that + anything is missing here or that anything should be added, etc, please + e-mail bugs@eggheads.org about it. Thank you. - You can obtain help with Eggdrop in the following IRC channels: +Obtaining Help +-------------- - Undernet - #eggdrop (official channel) - EFnet - #egghelp - IRCnet - #eggdrop - DALnet - #eggdrop - FreeNode - #eggdrop, #egghelp - QuakeNet - #eggdrop.support + You can obtain help with Eggdrop in the following IRC channels: - If you plan to ask questions in any of the above channels, you should be - familiar with and follow IRC etiquette. + - Undernet - #eggdrop (official channel) + - FreeNode - #eggdrop (official channel), #egghelp + - EFnet - #egghelp + - IRCnet - #eggdrop + - DALnet - #eggdrop + - QuakeNet - #eggdrop.support - o Don't type using CAPITAL letters, colors, or bold. + If you plan to ask questions in any of the above channels, you should + be familiar with and follow IRC etiquette. - o Don't use "!" and "?" excessively. + o Don't type using CAPITAL letters, colors, or bold. - o Don't /msg people without their permission. + o Don't use "!" and "?" excessively. - o Don't repeat or paste large amounts of text to the channel. + o Don't /msg people without their permission. - If there are any other serious Eggdrop related channels that should be - added to the above list, please let us know. + o Don't repeat or paste large amounts of text to the channel. - ________________________________________________________________________ + If there are any other serious Eggdrop related channels that should be + added to the above list, please let us know. -Copyright (C) 1997 Robey Pointer -Copyright (C) 1999 - 2016 Eggheads Development Team +Copyright (C) 1997 Robey Pointer Copyright (C) 1999 - 2016 Eggheads +Development Team diff --git a/THANKS b/THANKS index b05e530b4..ff798244c 100644 --- a/THANKS +++ b/THANKS @@ -1,5 +1,5 @@ Eggdrop Developers and Contributors -Last revised: September 10, 2016 +Last revised: October 31, 2016 ------------------------------------------------------------------------------ @@ -66,566 +66,576 @@ Wild Mike Hartman wild@klondike.com Contributors: - zathras3@hotmail.com - vince@who.net - Turner@Undernet - os2warp@invlogic.com - pepsi@gear.torque.net - a person - Aaron Zollman -aaronwl -aba -abfab -Abraham -Absinthe - Adam Spiers -Adze -afterlife -Al3X Alex alex@bmotel.com -alex323 - Amir Shalem amir@boom.org.il -AmnesiAc -Amun -Andrej Andrej Presern andrejp@luz.fe.uni-lj.si -Andy + zathras3@hotmail.com + vince@who.net + Turner@Undernet + pepsi@gear.torque.net + os2warp@invlogic.com + a person + Aaron Zollman +aaronwl +aba +abfab +Abraham +Absinthe + Adam Spiers +Adze +afterlife +Al3X Alex alex@bmotel.com +alex323 + Amir Shalem amir@boom.org.il +AmnesiAc +Amun +Andrej Andrej Presern andrejp@luz.fe.uni-lj.si +Andy andy5995 Andy Alt andyqwerty@users.sourceforge.net -Anon-e-mouse anon-e-mouse@anon-e-mouse.co.uk -anonymous -answer -archimede -archon -argg Paul Anderson xerox@foonet.net -Arkadietz Kiril Georgiev arkadietz@yahoo.com -Armand udf-xerxes@barrysworld.com - arthur2 arthur2 -axel_v -aXs -ayman -azurIt - B. Jamison -Bass -Beige - Ben Barton - Ben Dover eggdrop_soup@hotmail.com -Benny - Bert Bohla -bhab Kelsey Hudson khudson@compendium.us -bill - Bill Brandt -bill-tcl -billyjoe -bingony -blackjac -Blacky -blaster^ blasterb@wanadoo.fr -Ble Bruce brucee_ca@yahoo.com -bleah -Bob -BoGuS -Boing -boro -Bosko - Bow Sineath - Brad Edwards -brenny -Brian - Brian T. - Bruce Gingery - Bruce S. - Bryan Dolan -bUrN Tobias Schwind -Butthead -By-Tor bytor@netside.com - C. Massam -C4thY -capster -CFusion - Chad Fawcett -CHaiNeSS -chaos -Charvel -Chotaire chotaire@chotaire.moc.kw -Chriphil - Chris Northwood - Chucky Burnett -ClearlyJa -ClubCX -clusters -CoderX2 - cold fusion -coolio -coop -Cosmo -Creative1 Joaquin Grech creative1@bigfoot.com -Crotale -cuentero - Curt Lewis -cyberscape -CyberTech -C_Olli -d-e-m -Daemus -Dagmar -daimonic Gary Wall gary@daimonic.org -dalbien -dan - Dan Anatol - Dania Stolfi -Daniel -danny -dannyboy -DarkDruid -darkfall -Darkfox -Darki -darknight -DarkReap1 -darkshde -Darude -data -davd David Newhall II david@sleepers.net - Dave Guzeman -David - David Brauman - David Brown - David Sesno -David- - De Kus -deadgrrrl -deaf -DeathHand -debaser - Dejan Oklobdzija - Del Carter -demon -denali -DennisMV -derrick -DFrank -Dicctr0s -Digdilem Simon Avery flash@digdilem.org -digital -dirtymac -DocSavag Jerry Sutton jerrystn@ccse.net -dollar -Domino - Donovan Long -Dopsy dopsy@orastie.org -dorgan -dork -dracwolf -DrDeath -drnet Justin W. Pauler justin@jwpauler.org -dtM -Dude Matthew Stiefel matt@snip.net -dunk -dvlsadvct -DVS01 Denis dvs01@dvs01.net -easton -Ec|ipse -Eden -edmiester -Ehrenberg -ejm - Emmanuel Marty -Evo|ver -exile -eye - Fabian Knittel fabian.knittel@avona.com -Fabulous fabulous@brasnet.org -fasticus -FeaRx -Felix -Felix3339 -FirebaII fireball@lanparty.ch -FireEgl Philip Moore fireegl@gmail.com -Flame Lee Hardy flame@melnet.co.uk -flammable Dan Pike flammable@start.com.au -flash -Flattie - flyin lion -foxmulder -Fraggle Jérôme Benoit jerome.benoit@grenouille.com -Freeder freeder@techmonkeys.org -fuchs Bjoern Krombholz bjkro@gmx.de -FumBa -FuzzBuster Scott R. Godin mactech@webdragon.net -fx2 -garbanzo Alex Zepeda garbanzo@hooked.net -gavroche Jamie Rishaw jamie@arpa.com -genady -Geo Geo Van O geo@eggheads.org - Georg Schwarz -Giga - Gilles d'Andrea -Gisselle - Giuseppe Caulo -goo -GoodGuy -Gord- Gordon Lloyd Goldberg ggold@panix.com -grawity Mantas Mikulenas grawity@nullroute.eu.org -GregMo Greg Mosier me@gregmo.us -grnbrg Brian Greenberg grnbrg@grnbrg.org -GSCEGO -GTo Grigoris Ntotsis gto@the.forthnet.gr -Gumbie gumbie@sunspot.tiac.net -guruz -guy -gwyn -Habeeb -hal -Hanno -Hath hath@cyberops.org -hdclown -herz -hobb -hoopycat - Hue Truong -Hunger -iceman -Igmar -illi -imoq -IpAddress -islandic -izy` - J. Lehto -James - James Colton - Jason Ede j.d.ede@sheffield.ac.uk -jay - Jay Maynard - Jay S. Monk -jedis - Jeff Fisher guppy@techmonkeys.org -jeffx -Jerome -jerrold - Jesse M. - Jesse Schachter - Jim Marco -jkw -jman - Joe Morris - John Fulton -Johnny - Johnny Mnemonic johnny@themnemonic.org - johoho johoho -Joker -jonte -Jordan -Jordy -Julie -junkie -Juvenal -Jz -Karsten - Keith Tyler -Kelvin - Kendrick Vegas -keyoke -kibbles -KingBob -Kinslayer Gaven Cohen dragon@wastelands.net -Koach -Komandar - Kool Cat kool_cat@softhome.net -Krome -Kuja -KuNgFo0 kungfo0@techmonkeys.org -L0RE -labtec -Lam -Larry -lasher- - Laurens v. Alphen -ledpighp -lee -Lefty Jeff Hartman lefty@sojourn.com -LethalWP -Lobo^Loco -Looser^ -LSC -LtGen - Luca De Roberto -Lucas Lucas Nussbaum lucas@lucas-nussbaum.net - Luke Detering - M. Koszik -madhack -maimizuno - Manual Hernandez -manuel manuel.leiner@gmx.de -masskilla -Mastr - Matthew Hallacy poptix@poptix.net -MBroLad -mc Rico Gloeckner mc@verdinet.de -MC_8 Carl M. Gregory mc8@purehype.net -Melvan -metatron -mho mtl@videotron.ca -MHT ManHatTan mht@mygale.org -Michael - Michael D. Smith mike.ds@tiscali.co.uk -Michele - Miguel Ventura -Mikael - Mikael Hammarin - Mikael Hedberg - Mike Hammarin - Mike McLagan - Mikko Vester -miltrypet -mish Lev mish@mydestiny.net -Mixter mixter@mixter.org -mjg -Mloe -Mo-Ize Guillaume Leclanche mo-ize@nul-en.info - modus operandi - Mohammad Ali Rezaei -moonwolf -MORA - Mr. Wizard -mrbond -mrBuG mrbug@eggdrop.org.ru -Mr_Jode -MsingLnk -MULTITUDE -Murf -mw -nakee Ely Levy elylevy@cs.huji.ac.il -NaTaS - Nate Gardner - Neale Pickett -NeO-MeTaL -NeoN -nervous -NESS -NetG0D -NetIrc -neuro -never Sebastian Schwardt never@nolife.org - Nicholas J. Dear -Nick_ nick@null.net - Nico Golde nion@debian.org -Nidhogg -Niggurath Shub Niggurath rm@fh-worms.de -NigtHuntr - Nils Østbjerg shorty@business.auc.dk -nitemoon -NML_375 Fredrik Löhr -Nobody -node -NoPleX -Noyga -offspring -okey -OldGhost -OldGroo -Oliver -Olrick -OpTiC-?X -Paladin Alan Cameron paladin@techmonkeys.org -Paladinz -panasync -paralyse -paran0id -paranorml -paravoid -partek -pattyt - Paul E. -PaulBoehm -peace peace@shell.webmaster.com -Phoenix -piglet -pinchaser -Pixelz Rickard Utgren rutgren@gmail.com -pjb pjb@decafgeek.org -plan9 -Plex -plof -poseidon -PPSlim Phil Richardson ppslim@acarr.plus.com -Preston -Prez -Prime -project10 -proton -prox -pseudo Rumen Stoyanov pseudo@egg6.net -pteron Andy Repton eggdrop@pteron.org -QuakeMstr -quest quest@mac.com - R. Brooklyn - R. Ramos -RaakQ Kimmo Varis kimmov@gmail.com -ragtop -Raistlin Jason Slagle (Raistlin Majere) raistlin@tacorp.net -RandomAPB - Randy Summerfiled -ranjha -rastam0n -rawdon -rco133 -ReBEL -RebuM Martin Matuska rebum@gmx.at -redbird -ReDDawG Mike Chambers mike@netlyncs.com -reed -Rich - Rick Cuoto -ridens -Robby robby@chatbelgie.be - Robert Brice - Roger Yerramsetti - Rok Papez -romulus -Rufus - S Wilcox -S7reaM -sabi -Sandoz -sandvik -scipio -Scorpius -scott -ScottDrake -Scuzzi -seadawg - Sean T. -Segfault Ryan Butler rbutler@tsss.org -seljo -seth - Seth Mattinen -shadow -Shane -Shane0 -Shaun Shaun Brown mastr@irrelevant.net -Shawn888 -Shayne -shovon -shrike -sid3windr Tom Laermans tom.laermans@powersource.cx -simple Jonathan G. Rudolph skralg@gmail.com -skiidoo Thomas Faucher aza.skiidoo@gmail.com -Skorpion -SKY -skyline -slennox Shayne Lennox slennox@egghelp.org -slenny -slix -sloot -slt -slug Chris Porter slug@quakenet.org -smash Patrick Ringl patrick_@freenet.de -smok -softlord -Solal -somni -sorta -Souperman Graeme Donaldson webmonster@eggdrop.za.net -spacey -sprite -stary -station - stdarg stdarg@yahoo.com - Stephen Hunter - Stephen P. Clouse -stephenc -SteppenWolf - Steven Nikkel -stomper -Stream -strolchi -Stu - Stu Jones -suizide -symband -symbands - T. Salomäki -tabo -tartarus -taz-man -tchaika -tdmarti -TheAvatar Søren Jensen sjj@eushells.com -thembones -TheQ -TheUnknown TheUnknown@Bigfoot.com -The_Dawn -Thomas - Thomas Neumayer - Thomas Sader thommey@gmail.com -thx-1138 -timothy - Timothy Barbeisch -Ting Ronny Vårdal rv@umbraco.nu -Tit00n -TiTi -Toblerone -tolim - Tom Rini - Tomas Szaniszlo -Toon -topcat -Tori - Tothwolf tothwolf@techmonkeys.org -trey -tris -trojan - Trond Refsnes -troy - Troy Davis -tuvix -tyson -upstream Christian Larsen upstream@shell2.lomag.net - Uwe Schindler uwe@thetaphi.de -Vassago Ryan Addams rowan@unix.mclv.net -vern-n -vertex -Vertigo Sergey Goltsov sergiosolnet@gmail.com -vod Roger Stone capsterx@hotmail.com -void -VYOinLove Olbosanu Viorel vyoinlove@yahoo.com -Wade -Wanderer wanderer@telenet.be -Warmage -WauloK Jason Oakley waulok@bangrocks.com -waxmaster -wayhigh Kevin Lynn klynn@kevinlynn.com -Webbie Peter Chiu webbie@ipfw.org -wheely Kevin Walker kevin@racbot.dot.org -Whicked -Whilor Arne Beyer whilor@whilor.de - Will Buckner wcc@techmonkeys.org -Wingman Christian Birkl wingman@techmonkeys.org -winkey Brian Case rush@winkey.org -wrath -Wull wnelson@enterprise.net -wylie Todd Wright wylie@geekasylum.org -xberry BBerry xberry@slo.net -Xerxes Lonnie Denison -XGen -xian -Xtoper -zamf -zarni zarni@weirdness.com -Zart Konstantin Zemlyak zart@zartsoft.ru -Ze Yann Richard ze@nbox.org -zenoran - ZeveRoaRe RoeLt zeveroar@phreaker.net -ziffie -ZiMiaS -zip Ian Campbell zip@techmonkeys.org -[Eazy|E] -[joco] -[secret] -[sL] strikelight@tclscript.com -\-\itman -^Baron^ Zev Toledano eggdrop@thelastexit.net -^PRS4^ James P. prs4@hotmail.com -^You^ -|mmortal -|SKY| -|^Raven^| +Anon-e-mouse anon-e-mouse@anon-e-mouse.co.uk +anonymous +answer +archimede +archon +argg Paul Anderson xerox@foonet.net +Arkadietz Kiril Georgiev arkadietz@yahoo.com +Armand udf-xerxes@barrysworld.com + arthur2 arthur2 +axel_v +aXs +ayman +azurIt + B. Jamison +Bass +Beige + Ben Barton + Ben Dover eggdrop_soup@hotmail.com +Benny + Bert Bohla +bhab Kelsey Hudson khudson@compendium.us +bill + Bill Brandt +bill-tcl +billyjoe +bingony +blackjac +Blacky +blaster^ blasterb@wanadoo.fr +Ble Bruce brucee_ca@yahoo.com +bleah +Bob +BoGuS +Boing +boro +Bosko + Bow Sineath + Brad Edwards +brenny +Brian + Brian T. + Bruce Gingery + Bruce S. + Bryan Dolan +bUrN Tobias Schwind +Butthead +By-Tor bytor@netside.com + C. Massam +C4thY +capster +CFusion + Chad Fawcett +CHaiNeSS +chaos +Charvel +Chotaire chotaire@chotaire.moc.kw +Chriphil + Chris Northwood + Chucky Burnett +Cizzle Christophe Beauval Cizzle@users.noreply.github.com +ClearlyJa +ClubCX +clusters +CoderX2 + cold fusion +coolio +coop +Cosmo +creatio +Creative1 Joaquin Grech creative1@bigfoot.com +Crotale +cuentero + Curt Lewis +cyberscape +CyberTech +C_Olli +d-e-m +Daemus +Dagmar +daimonic Gary Wall gary@daimonic.org +dalbien +dan + Dan Anatol + Dania Stolfi +Daniel +danny +dannyboy +DarkDruid +darkfall +Darkfox +Darki +darknight +DarkReap1 +darkshde +Darude +data +davd David Newhall II david@sleepers.net + Dave Guzeman +David + David Brauman + David Brown + David Sesno +David- + De Kus +deadgrrrl +deaf +DeathHand +debaser + Dejan Oklobdzija + Del Carter +demon +denali +DennisMV +derrick +DFrank +Dicctr0s +Digdilem Simon Avery flash@digdilem.org +digital +dirtymac +DocSavag Jerry Sutton jerrystn@ccse.net +dollar +Domino + Donovan Long +Dopsy dopsy@orastie.org +dorgan +dork +dracwolf +DrDeath +drnet Justin W. Pauler justin@jwpauler.org +dtM +Dude Matthew Stiefel matt@snip.net +dunk +dvlsadvct +DVS01 Denis dvs01@dvs01.net +easton +Ec|ipse +Eden +edmiester +eelcohuininga eelco@huininga.nl +Ehrenberg +ejm + Emmanuel Marty +Evo|ver +exile +eye + Fabian Knittel fabian.knittel@avona.com +Fabulous fabulous@brasnet.org +fasticus +FeaRx +Felix +Felix3339 + fhorst +FirebaII fireball@lanparty.ch +FireEgl Philip Moore fireegl@gmail.com +Flame Lee Hardy flame@melnet.co.uk +flammable Dan Pike flammable@start.com.au +flash +Flattie + flyin lion +foxmulder +Fraggle Jérôme Benoit jerome.benoit@grenouille.com +Freeder freeder@techmonkeys.org +fuchs Bjoern Krombholz bjkro@gmx.de +FumBa +FuzzBuster Scott R. Godin mactech@webdragon.net +fx2 +garbanzo Alex Zepeda garbanzo@hooked.net +gavroche Jamie Rishaw jamie@arpa.com +genady +Geo Geo Van O geo@eggheads.org + Georg Schwarz +Giga + Gilles d'Andrea +Gisselle + Giuseppe Caulo +goo +GoodGuy +Gord- Gordon Lloyd Goldberg ggold@panix.com +grawity Mantas Mikulenas grawity@nullroute.eu.org +GregMo Greg Mosier me@gregmo.us +grnbrg Brian Greenberg grnbrg@grnbrg.org +GSCEGO +GTo Grigoris Ntotsis gto@the.forthnet.gr +Gumbie gumbie@sunspot.tiac.net +guruz +guy +gwyn +Habeeb +hal +Hanno +Hath hath@cyberops.org +hdclown +herz +hobb +hoopycat + Hue Truong +Hunger +iceman +Igmar +illi +imoq +IpAddress +islandic +izy` + J. Lehto +jackal^ +James + James Colton + Jason Ede j.d.ede@sheffield.ac.uk +jay + Jay Maynard + Jay S. Monk +jedis + Jeff Fisher guppy@techmonkeys.org +jeffx +Jerome +jerrold + Jesse M. + Jesse Schachter + Jim Marco +jkw +jman + Joe Morris + John Fulton +Johnny + Johnny Mnemonic johnny@themnemonic.org + johoho johoho +Joker +jonte +Jordan +Jordy +Julie +junkie +Juvenal +Jz +Karsten + Keith Tyler +Kelvin + Kendrick Vegas +keyoke +kibbles +KingBob +Kinslayer Gaven Cohen dragon@wastelands.net +kisser +Koach +Komandar + Kool Cat kool_cat@softhome.net +Krome +Kuja +KuNgFo0 kungfo0@techmonkeys.org +L0RE +labtec +Lam +Larry +lasher- + Laurens v. Alphen +ledpighp +lee +Lefty Jeff Hartman lefty@sojourn.com +LethalWP +LinaSovereign +Lobo^Loco +Looser^ +LSC +LtGen + Luca De Roberto +Lucas Lucas Nussbaum lucas@lucas-nussbaum.net + Luke Detering + M. Koszik +madhack +maimizuno + Manual Hernandez +manuel manuel.leiner@gmx.de +masskilla +Mastr + Matthew Hallacy poptix@poptix.net +MBroLad +mc Rico Gloeckner mc@verdinet.de +MC_8 Carl M. Gregory mc8@purehype.net +Melvan +metatron +mho mtl@videotron.ca +MHT ManHatTan mht@mygale.org +Michael + Michael D. Smith mike.ds@tiscali.co.uk +Michele + Miguel Ventura +Mikael + Mikael Hammarin + Mikael Hedberg + Mike Hammarin + Mike McLagan + Mikko Vester +miltrypet +mish Lev mish@mydestiny.net +Mixter mixter@mixter.org +mjg +Mloe +Mo-Ize Guillaume Leclanche mo-ize@nul-en.info + modus operandi + Mohammad Ali Rezaei +moonwolf +MORA + Mr. Wizard +mrbond +mrBuG mrbug@eggdrop.org.ru +Mr_Jode +MsingLnk +MULTITUDE +Murf +mw +nakee Ely Levy elylevy@cs.huji.ac.il +NaTaS + Nate Gardner + Neale Pickett +NeO-MeTaL +NeoN +nervous +NESS +NetG0D +NetIrc +neuro +never Sebastian Schwardt never@nolife.org + Nicholas J. Dear +Nick_ nick@null.net + Nico Golde nion@debian.org +Nidhogg +Niggurath Shub Niggurath rm@fh-worms.de +NigtHuntr + Nils Østbjerg shorty@business.auc.dk +nitemoon +NML_375 Fredrik Löhr +Nobody +node +NoPleX +Noyga +offspring +okey +OldGhost +OldGroo +Oliver +Olrick +OpTiC-?X +Paladin Alan Cameron paladin@techmonkeys.org +Paladinz +panasync +paralyse +paran0id +paranorml +paravoid +partek +pattyt + Paul E. +PaulBoehm +peace peace@shell.webmaster.com +Phoenix +piglet +pinchaser +Pixelz Rickard Utgren rutgren@gmail.com +pjb pjb@decafgeek.org +plan9 +Plex +plof +poseidon +PPSlim Phil Richardson ppslim@acarr.plus.com +Preston +Prez +Prime +project10 +proton +prox +pseudo Rumen Stoyanov pseudo@egg6.net +pteron Andy Repton eggdrop@pteron.org +QuakeMstr +quest quest@mac.com + R. Brooklyn + R. Ramos +RaakQ Kimmo Varis kimmov@gmail.com +ragtop +Raistlin Jason Slagle (Raistlin Majere) raistlin@tacorp.net +RandomAPB + Randy Summerfiled +ranjha +rastam0n +rawdon +rco133 +ReBEL +RebuM Martin Matuska rebum@gmx.at +redbird +ReDDawG Mike Chambers mike@netlyncs.com +reed +Rich + Rick Cuoto +ridens +Robby robby@chatbelgie.be + Robert Brice + Roger Yerramsetti + Rok Papez +romulus +Rufus + S Wilcox +S7reaM +sabi +Sandoz +sandvik +scipio +Scorpius +scott +ScottDrake +Scuzzi +seadawg + Sean T. +Segfault Ryan Butler rbutler@tsss.org +seljo +senpai +seth + Seth Mattinen +shadow +Shane +Shane0 +Shaun Shaun Brown mastr@irrelevant.net +Shawn888 +Shayne +shovon +shrike +sid3windr Tom Laermans tom.laermans@powersource.cx +simple Jonathan G. Rudolph skralg@gmail.com +simply +sirfz Fayez iamfayez@gmail.com +skiidoo Thomas Faucher aza.skiidoo@gmail.com +Skorpion +SKY +skyline +slennox Shayne Lennox slennox@egghelp.org +slenny +slix +sloot +slt +slug Chris Porter slug@quakenet.org +smash Patrick Ringl patrick_@freenet.de +smok +softlord +Solal +somni +sorta +Souperman Graeme Donaldson webmonster@eggdrop.za.net +spacey +sprite +stary +station + stdarg stdarg@yahoo.com + Stephen Hunter + Stephen P. Clouse +stephenc +SteppenWolf + Steven Nikkel +stomper +Stream +strolchi +Stu + Stu Jones +suizide +symband +symbands + T. Salomäki +tabo +tartarus +taz-man +tchaika +tdmarti +TheAvatar Søren Jensen sjj@eushells.com +thembones +TheQ +TheUnknown TheUnknown@Bigfoot.com +The_Dawn +Thomas + Thomas Neumayer + Thomas Sader thommey@gmail.com +thx-1138 +timothy + Timothy Barbeisch +Ting Ronny Vårdal rv@umbraco.nu +Tit00n +TiTi +Toblerone +tolim + Tom Rini + Tomas Szaniszlo +Toon +topcat +Tori + Tothwolf tothwolf@techmonkeys.org +trey +tris +trojan + Trond Refsnes +troy + Troy Davis +tuvix +tyson +upstream Christian Larsen upstream@shell2.lomag.net + Uwe Schindler uwe@thetaphi.de +Vassago Ryan Addams rowan@unix.mclv.net +vern-n +vertex +Vertigo Sergey Goltsov sergiosolnet@gmail.com +vod Roger Stone capsterx@hotmail.com +void +VYOinLove Olbosanu Viorel vyoinlove@yahoo.com +Wade +Wanderer wanderer@telenet.be +Warmage +WauloK Jason Oakley waulok@bangrocks.com +waxmaster +wayhigh Kevin Lynn klynn@kevinlynn.com +Webbie Peter Chiu webbie@ipfw.org +wheely Kevin Walker kevin@racbot.dot.org +Whicked +Whilor Arne Beyer whilor@whilor.de + Will Buckner wcc@techmonkeys.org +Wingman Christian Birkl wingman@techmonkeys.org +winkey Brian Case rush@winkey.org +wrath +Wull wnelson@enterprise.net +wylie Todd Wright wylie@geekasylum.org +xberry BBerry xberry@slo.net +Xerxes Lonnie Denison +XGen +xian +Xtoper +zamf +zarni zarni@weirdness.com +Zart Konstantin Zemlyak zart@zartsoft.ru +Ze Yann Richard ze@nbox.org +zenoran + ZeveRoaRe RoeLt zeveroar@phreaker.net +ziffie +ZiMiaS +zip Ian Campbell zip@techmonkeys.org +[Eazy|E] +[joco] +[secret] +[sL] strikelight@tclscript.com +\-\itman +^Baron^ Zev Toledano eggdrop@thelastexit.net +^PRS4^ James P. prs4@hotmail.com +^You^ +|mmortal +|SKY| +|^Raven^| diff --git a/aclocal.m4 b/aclocal.m4 index 406f39d2c..ed8ad4968 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -242,7 +242,7 @@ dnl AC_DEFUN([EGG_CHECK_SOCKLEN_T], [ AC_CACHE_CHECK([for socklen_t], egg_cv_socklen_t, [ - AC_RUN_IFELSE([AC_LANG_PROGRAM([[ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include #include #include @@ -260,8 +260,6 @@ AC_DEFUN([EGG_CHECK_SOCKLEN_T], egg_cv_socklen_t="yes" ], [ egg_cv_socklen_t="no" - ], [ - egg_cv_socklen_t="cross" ]) ]) @@ -763,7 +761,7 @@ AC_DEFUN([EGG_CHECK_OS], *BSD) # FreeBSD/OpenBSD/NetBSD SHLIB_CC="$CC -fPIC" - SHLIB_LD="ld -Bshareable -x" + SHLIB_LD="$CC -shared" ;; Darwin) # Mac OS X @@ -934,7 +932,7 @@ AC_DEFUN([EGG_TCL_WITH_TCLLIB], if test -f "$tcllibname" && test -r "$tcllibname"; then TCLLIB=`echo $tcllibname | sed 's%/[[^/]][[^/]]*$%%'` TCLLIBFN=`$BASENAME $tcllibname | cut -c4-` - TCLLIBEXT=".`echo $TCLLIBFN | $AWK '{j=split([$]1, i, "."); print i[[j]]}'`" + TCLLIBEXT=`echo $TCLLIBFN | $AWK '{j=split([$]1, i, "."); suffix=""; while (i[[j]] ~ /^[[0-9]]+$/) { suffix = "." i[[j--]] suffix; }; print "." i[[j]] suffix }'` TCLLIBFNS=`$BASENAME $tcllibname $TCLLIBEXT | cut -c4-` # Set default make as static for unshared Tcl library @@ -1010,12 +1008,24 @@ AC_DEFUN([EGG_TCL_TCLCONFIG], if test "x$TCLLIBFN" = x; then AC_MSG_NOTICE([Autoconfiguring Tcl with tclConfig.sh]) egg_tcl_changed="yes" - TEA_INIT("3.9") + TEA_INIT("3.10") TEA_PATH_TCLCONFIG TEA_LOAD_TCLCONFIG TEA_TCL_LINK_LIBS + # Overwrite TCL_LIBS again, which TCL_LOAD_TCLCONFIG unfortunately overwrites from tclConfig.sh + # Also, use the Tcl linker idea to be compatible with their ldflags + if test -r ${TCL_BIN_DIR}/tclConfig.sh; then + . ${TCL_BIN_DIR}/tclConfig.sh + # OpenBSD uses -pthread, but tclConfig.sh provides that flag in EXTRA_CFLAGS + TCL_PTHREAD_LDFLAG=`echo $TCL_EXTRA_CFLAGS | grep -o -- '-pthread'` + AC_SUBST(SHLIB_LD, $TCL_SHLIB_LD) + AC_MSG_CHECKING([for Tcl linker]) + AC_MSG_RESULT([$SHLIB_LD]) + else + TCL_LIBS="${EGG_MATH_LIB}" + fi TCL_PATCHLEVEL="${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION}${TCL_PATCH_LEVEL}" - TCL_LIB_SPEC="${TCL_LIB_SPEC} ${MATH_LIBS}" + TCL_LIB_SPEC="${TCL_PTHREAD_LDFLAG} ${TCL_LIB_SPEC} ${TCL_LIBS}" else egg_tcl_changed="yes" TCL_LIB_SPEC="-L$TCLLIB -l$TCLLIBFNS ${EGG_MATH_LIB}" @@ -1027,6 +1037,9 @@ AC_DEFUN([EGG_TCL_TCLCONFIG], TCL_PATCHLEVEL=`grep TCL_PATCH_LEVEL $TCLINC/$TCLINCFN | $HEAD_1 | $AWK '{gsub(/\"/, "", [$]3); print [$]3}'` TCL_MAJOR_VERSION=`echo $TCL_VERSION | cut -d. -f1` TCL_MINOR_VERSION=`echo $TCL_VERSION | cut -d. -f2` + if test $TCL_MAJOR_VERSION -gt 8 || test $TCL_MAJOR_VERSION -eq 8 -a $TCL_MINOR_VERSION -ge 6; then + TCL_LIB_SPEC="$TCL_LIB_SPEC -lz" + fi fi AC_MSG_CHECKING([for Tcl version]) @@ -1468,6 +1481,23 @@ AC_DEFUN([EGG_IPV6_STATUS], egg_cv_var_ipv6_supported="yes" ], [ egg_cv_var_ipv6_supported="no" + ], [ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ + #include + #include + #include + ]], [[ + int s = socket(AF_INET6, SOCK_STREAM, 0); + + if (s != -1) + close(s); + + return((s == -1)); + ]])], [ + egg_cv_var_ipv6_supported="yes" + ], [ + egg_cv_var_ipv6_supported="no" + ]) ]) ]) ]) diff --git a/configure b/configure index b872165c4..87aaac5b1 100755 --- a/configure +++ b/configure @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.ac 29e1a08. +# From configure.ac 1d09756. # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for Eggdrop 1.8.0. # @@ -629,6 +629,7 @@ ac_includes_default="\ ac_header_list= ac_subst_vars='LTLIBOBJS LIBOBJS +EGG_CROSS_COMPILING MOD_UPDIR DEST EGGVERSION @@ -5587,7 +5588,7 @@ $as_echo "#define STOP_UAC 1" >>confdefs.h *BSD) # FreeBSD/OpenBSD/NetBSD SHLIB_CC="$CC -fPIC" - SHLIB_LD="ld -Bshareable -x" + SHLIB_LD="$CC -shared" ;; Darwin) # Mac OS X @@ -6392,12 +6393,7 @@ if ${egg_cv_socklen_t+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : - - egg_cv_socklen_t="cross" - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include @@ -6422,7 +6418,7 @@ main () return 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO"; then : egg_cv_socklen_t="yes" @@ -6431,10 +6427,7 @@ else egg_cv_socklen_t="no" fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $egg_cv_socklen_t" >&5 @@ -7072,7 +7065,7 @@ EOF if test -f "$tcllibname" && test -r "$tcllibname"; then TCLLIB=`echo $tcllibname | sed 's%/[^/][^/]*$%%'` TCLLIBFN=`$BASENAME $tcllibname | cut -c4-` - TCLLIBEXT=".`echo $TCLLIBFN | $AWK '{j=split($1, i, "."); print i[j]}'`" + TCLLIBEXT=`echo $TCLLIBFN | $AWK '{j=split($1, i, "."); suffix=""; while (i[j] ~ /^[0-9]+$/) { suffix = "." i[j--] suffix; }; print "." i[j] suffix }'` TCLLIBFNS=`$BASENAME $tcllibname $TCLLIBEXT | cut -c4-` # Set default make as static for unshared Tcl library @@ -7142,7 +7135,7 @@ $as_echo "$as_me: Autoconfiguring Tcl with tclConfig.sh" >&6;} # TEA extensions pass this us the version of TEA they think they # are compatible with. - TEA_VERSION="3.9" + TEA_VERSION="3.10" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for correct TEA configuration" >&5 $as_echo_n "checking for correct TEA configuration... " >&6; } @@ -7150,12 +7143,12 @@ $as_echo_n "checking for correct TEA configuration... " >&6; } as_fn_error $? " The PACKAGE_NAME variable must be defined by your TEA configure.ac" "$LINENO" 5 fi - if test x""3.9"" = x ; then + if test x""3.10"" = x ; then as_fn_error $? " TEA version not specified." "$LINENO" 5 - elif test ""3.9"" != "${TEA_VERSION}" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: warning: requested TEA version \"\"3.9\"\", have \"${TEA_VERSION}\"" >&5 -$as_echo "warning: requested TEA version \"\"3.9\"\", have \"${TEA_VERSION}\"" >&6; } + elif test ""3.10"" != "${TEA_VERSION}" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: warning: requested TEA version \"\"3.10\"\", have \"${TEA_VERSION}\"" >&5 +$as_echo "warning: requested TEA version \"\"3.10\"\", have \"${TEA_VERSION}\"" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok (TEA ${TEA_VERSION})" >&5 $as_echo "ok (TEA ${TEA_VERSION})" >&6; } @@ -7360,8 +7353,9 @@ $as_echo "$as_me: WARNING: --with-tcl argument should refer to directory contain for i in `ls -d ${libdir} 2>/dev/null` \ `ls -d ${exec_prefix}/lib 2>/dev/null` \ `ls -d ${prefix}/lib 2>/dev/null` \ - `ls -d /usr/local/lib 2>/dev/null` \ `ls -d /usr/contrib/lib 2>/dev/null` \ + `ls -d /usr/local/lib 2>/dev/null` \ + `ls -d /usr/pkg/lib 2>/dev/null` \ `ls -d /usr/lib 2>/dev/null` \ `ls -d /usr/lib64 2>/dev/null` \ `ls -d /usr/lib/tcl8.6 2>/dev/null` \ @@ -7808,8 +7802,23 @@ fi + # Overwrite TCL_LIBS again, which TCL_LOAD_TCLCONFIG unfortunately overwrites from tclConfig.sh + # Also, use the Tcl linker idea to be compatible with their ldflags + if test -r ${TCL_BIN_DIR}/tclConfig.sh; then + . ${TCL_BIN_DIR}/tclConfig.sh + # OpenBSD uses -pthread, but tclConfig.sh provides that flag in EXTRA_CFLAGS + TCL_PTHREAD_LDFLAG=`echo $TCL_EXTRA_CFLAGS | grep -o -- '-pthread'` + SHLIB_LD=$TCL_SHLIB_LD + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Tcl linker" >&5 +$as_echo_n "checking for Tcl linker... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SHLIB_LD" >&5 +$as_echo "$SHLIB_LD" >&6; } + else + TCL_LIBS="${EGG_MATH_LIB}" + fi TCL_PATCHLEVEL="${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION}${TCL_PATCH_LEVEL}" - TCL_LIB_SPEC="${TCL_LIB_SPEC} ${MATH_LIBS}" + TCL_LIB_SPEC="${TCL_PTHREAD_LDFLAG} ${TCL_LIB_SPEC} ${TCL_LIBS}" else egg_tcl_changed="yes" TCL_LIB_SPEC="-L$TCLLIB -l$TCLLIBFNS ${EGG_MATH_LIB}" @@ -7821,6 +7830,9 @@ fi TCL_PATCHLEVEL=`grep TCL_PATCH_LEVEL $TCLINC/$TCLINCFN | $HEAD_1 | $AWK '{gsub(/\"/, "", $3); print $3}'` TCL_MAJOR_VERSION=`echo $TCL_VERSION | cut -d. -f1` TCL_MINOR_VERSION=`echo $TCL_VERSION | cut -d. -f2` + if test $TCL_MAJOR_VERSION -gt 8 || test $TCL_MAJOR_VERSION -eq 8 -a $TCL_MINOR_VERSION -ge 6; then + TCL_LIB_SPEC="$TCL_LIB_SPEC -lz" + fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Tcl version" >&5 @@ -8138,10 +8150,40 @@ if ${egg_cv_var_ipv6_supported+:} false; then : else if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + #include + +int +main () +{ + + int s = socket(AF_INET6, SOCK_STREAM, 0); + + if (s != -1) + close(s); + + return((s == -1)); + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + egg_cv_var_ipv6_supported="yes" + +else + + egg_cv_var_ipv6_supported="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -8791,6 +8833,17 @@ _ACEOF +if test "$cross_compiling" = "yes"; then : + + EGG_CROSS_COMPILING=yes + +else + + EGG_CROSS_COMPILING=no + +fi + + # Create Makefiles ac_config_files="$ac_config_files Makefile doc/Makefile scripts/Makefile src/Makefile src/compat/Makefile src/md5/Makefile src/mod/Makefile" diff --git a/configure.ac b/configure.ac index 6286be41d..4018325c0 100644 --- a/configure.ac +++ b/configure.ac @@ -171,6 +171,14 @@ EGG_SUBST_MOD_UPDIR EGG_CATCH_MAKEFILE_REBUILD +dnl If we are cross-compiling, make a note of it so we can skip some tests in the Makefile +AS_IF([test "$cross_compiling" = "yes"], [ + EGG_CROSS_COMPILING=yes +], [ + EGG_CROSS_COMPILING=no +]) +AC_SUBST(EGG_CROSS_COMPILING) + # Create Makefiles AC_CONFIG_FILES([Makefile doc/Makefile scripts/Makefile src/Makefile src/compat/Makefile src/md5/Makefile src/mod/Makefile]) diff --git a/doc/Changes1.8 b/doc/Changes1.8 index 7a5dc6b5b..ef2af78f0 100644 --- a/doc/Changes1.8 +++ b/doc/Changes1.8 @@ -1,9 +1,128 @@ -Eggdrop Changes (since version 1.8.0) +Eggdrop Changes (since version 1.6.21) _____________________________________________________________________ 1.8.0: + # RC2 Relased on Nov 1, 2016 + + - Use -pthread for OpenBSD linking, found in TCL_EXTRA_CFLAGS in tclConfig.sh. + Patch by: thommey / Found by: fahuo + + - Trim version numbers from tcllib names like libtcl8.5.so.1.7. + Patch by: thommey + + - Switch to using $CC -shared for BSD in general, this seems to work on + newer versios, and ld -Bshareable -x fails. + Patch by: thommey / Found by: LinaSovereign + + - Work around some incompatibilies between gnu make 3.82 and 4.x. + Patch by: thommey / Found by: Robby + + - Fix out-of-bounds read error + Patch by: thommey, Geo / Found by: Robby + + - Clear channel modes on disconnect + Patch by: Geo / Found by: thommey + + nuke_server() calls reset_chan_info(), which clears channel modes and + then re-requests them, which is the point of the function. However, + because the server connection has already been killed, chan->status + is set to CHAN_ASKEDBANS and thus doesn't re-request the banlist from + the server when it finally does rejoin. By setting to clear_chan, the + list is just cleared and the banlist properly requested from the IRC + server on join. + + - Ensure our Makefile works with both BSD make and GNU make. + Patch by: thommey / Found by: Geo + + - Fix formatting bug in 618ecbf9, MISC_LOGREPEAT contains a format specifier. + Patch by: thommey / Found by: Robby + + - Increase memory table size for memory debugging by factor 10. + Found by: Kiril, various / Patch by: thommey + + - Fix compile warnings. + Patch by: thommey + + - Update x-compile Makefile changes to POSIX compliance. Fixes #273 + Patch by: Geo + + Allows bsd 'make' to be used on BSD systems (gmake not needed). Fixes + bug introduced in e3321ccf46da7950995f7003b83e1b4a8e9eef81 + + - Tcl various OS linking, cross-compilation issues. Fixes #250, #251 + Patch by: thommey / Found by: eelcohuininga, thommey + + Fixes Tcl-related compilation/linking issues by using the + tclConfig.sh variables and including -lz if Tcl >= 8.6 and we have no + tclConfig.sh + + - Fix cygwin windows.h inclusion. Fixes #262, #265, #266 + Patch by: thommey / Found by: creatio, jackal + + Cygwin's windows.h inclusion only works if VOID is not defined, and + we undefine their openssl defines before including the official + openssh headers. We need to include windows.h to have FreeConsole() + to launch eggdrop into the background properly. + + - Reset channel information on disconnect properly. + Patch by: Cizzle + + - Fix a bug introduced by Tcl interp result transition. + Patch by: thommey / Found by: simply + + - Update tcl.m4 (Adds NetBSD tclConfig.sh path). Fixes #175 + Patch by: thommey,Geo / Found by: fhorst + + - Remove duplicate uppercase doc filenames + Patch by: Geo / Found by: jackal^ + + - Fix compile warning about potentially signed char as array subscript. + Patch by: thommey + + - Install eggdrop-basic.conf on make install. + Patch by: Geo / Found by: thommey + + - Fix various compile warnings: + Fixed type of recvfrom's last argument to be socklen_t, not uint. + Added first arg cast for const char* in gethostbyaddr for cygwin. + Added explicit type of idx as function argument. + Patch by: thommey + + - Add help-path to eggdrop-basic.conf + Patch by: thommey / Found by: simple + + - Add owner setting to eggdrop-basic.conf + Patch by: thommey + + - Update TEA version for tcl.m4. + Patch by: thommey / Found by: b6s3d + + - Fix doc generation incorrectly placing new docs + Patch by: Geo / Found by: Pixelz + + - Commit ChangeLog before generating RC/Final release + Patch by: Geo / Found by: kisser + + - Update docs to indicate the 'j' flag logs topic changes + Patch by: Geo / Found by: senpai + + - Fix cross-compilation errors regarding socklen and IPv6 + Skip attempted test run after make on x-compiles + Patch by: Anonymous / Found by: eelcohuininga + + - Update copyright date for ./eggdrop -v. + Patch by: thommey / Found by: maimizuno + + - Typo: tcl-commands.doc bind time description + Patch by: Geo / Found by: maimizuno + + - Typo: "timer " should be "utimer " + Patch by: sirfz, Geo / Found by: sirfz + + # RC1 Relased on September 12, 2016 + - Add basic.eggdrop.conf to source directory Patch by: Geo, thommey @@ -119,9 +238,6 @@ Eggdrop Changes (since version 1.8.0) - Fix duplicate array value in module API Patch by: Geo / Found by: IRC user - - Add byte-based flood option - Patch by: remorse - - Reply properly to server-generated CTCPs Patch by: Geo / Found by: IRC user diff --git a/doc/html/_sources/ABOUT.txt b/doc/html/_sources/ABOUT.txt deleted file mode 100644 index acd7d2480..000000000 --- a/doc/html/_sources/ABOUT.txt +++ /dev/null @@ -1,64 +0,0 @@ -About Eggdrop -Last revised: July 27, 2010 - -============= -About Eggdrop -============= - - Eggdrop was created around December 1993 to help stop the incessant wars - on #gayteen. It spawned from another bot that was in the process of being - written at the time called "Unrest". The purpose of Unrest was to answer - help requests from other bots. The first public release of Eggdrop was - version 0.6, and since then, it has grown into what you have before you. - - Eggdrop is the World's most popular Internet Relay Chat (IRC) bot; it is - freely distributable under the GNU General Public License (GPL). Eggdrop - is a feature rich program designed to be easily used and expanded upon by - both novice and advanced IRC users on a variety of hardware and software - platforms. - - An IRC bot is a program that sits on an IRC channel and performs automated - tasks while looking just like a normal user on the channel. Some of these - functions include protecting the channel from abuse, allowing privileged - users to gain op or voice status, logging channel events, providing - information, hosting games, etc. - - One of the features that makes Eggdrop stand out from other bots is module - and Tcl scripting support. With scripts and modules, you can make the bot - perform almost any task you want. They can do anything from preventing - floods to greeting users and banning advertisers from channels. - - You can also link multiple Eggdrop bots together to form a botnet. - This can allow bots to op each other securely, control floods efficiently, - and even link channels across multiple IRC networks. It also allows the - Eggdrops share user lists, ban lists, exempt/invite lists, and ignore - lists with other bots if userfile sharing is enabled. This allows users - to have the same access on every bot on your botnet. It also allows the - bots to distribute tasks such as opping and banning users. See doc/BOTNET - for information on setting up a botnet. - - Eggdrop is always being improved and adjusted because there are bugs to - be fixed and features to be added (if the users demand them, and they - make actually sense). In fact, it existed for several years as v0.7 - - v0.9 before finally going 1.0. This version of Eggdrop is part of the - 1.8 tree. A valiant effort has been made to chase down and destroy bugs. - - To use Eggdrop, you need: - - * Some sort of Unix account - - * A pretty good knowledge of IRC and Unix, including how to compile - programs, how to read, and what DCC chat is, at absolute minimum. - - * About 5-7 MB of disk space. The Eggdrop tarball is about 5.4 MB - unpacked. - - * Tcl -- Eggdrop cannot compile without Tcl installed on your shell. - - Before starting, ask yourself if you really need a bot. Most IRC servers - allow only a handful of bots, and some forbid them outright. The reason? Too - many people run bots as "toys" or as a means of destruction. If you want to - use Eggdrop for destructive purposes, go ahead and erase this directory now. - It's almost impossible to do what you want with this bot. - - Copyright (C) 1999 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/BANS.txt b/doc/html/_sources/BANS.txt deleted file mode 100644 index 4193a9be3..000000000 --- a/doc/html/_sources/BANS.txt +++ /dev/null @@ -1,76 +0,0 @@ -Bans, Invites and Exempts -Last revised: March 07, 2002 - -========================== -Bans, Invites, and Exempts -========================== - - - I assume that you know how bans work on IRC. Eggdrop handles bans, exempts - and invites in various ways, and this file is intended to help clarify how - these modes are used within the bot. From here on, 'mode' applies to all - three modes (bans, exempts, and invites) unless otherwise specified. There - are three types of modes: - - Global modes - These modes will be active on every channel the bot - monitors. Some will "expire" after a while (be removed - automatically). Others are considered "permanent" and - can only be removed by a master. - - Channel modes - These modes are active only on one channel, and are almost - always temporary modes that expire after an hour or so - (depending on how long you've specified in the config - file). Usually they're created by a Tcl script of some - sort. - - Non-bot modes - These are modes that were not placed by the bot. They - can be removed by anyone on the channel. The other two - types of modes are protected by the bot (unless the - channel settings specify otherwise), and have to be - removed via the bot. - - Bans can also be either sticky or unsticky: - - Sticky - These modes are usually set by a user using the ".stick" - command. Modes with this attribute are attempted to be kept - active on the channel at all times by the bot, even if the - channel is set to use dynamic modes. Obviously, if the channel - isn't set to use dynamic modes, this won't have any effect. - - Un-sticky - These modes are the style that Eggdrop sets by default when - a user uses one of the commands that result in a mode. This - attribute means that the ban will be removed if using dynamic - modes after a certain time. If a mode is "sticky" and you wish - to set it to be "un-sticky", use the ".unstick" command. - - Mode behavior: - - Bans - If the channel is supporting dynamic bans, then the ban is - set when a user with a matching hostmask joins the channel; - otherwise, the modes are permanently set. On a channel with - dynamic bans, the ban expires after 'ban-time' minutes (which - is specified in the config file). - - Exempts - If the channel is not supporting dynamic exempts, then they - are set at all times. Otherwise, the exemption is set when a - ban is placed whose host includes that covered by the exempt. - The exempt will remain in place for at least 'exempt-time' - minutes (defined in config file) or until after the - corresponding ban has been removed, whichever happens last. - - Invites - If the channel does not support dynamic invites, then they - are set at all times. Otherwise, the invite is set when the - channel is +i and a user requests an invite into the channel. - The invite then remains set for 'invite-time' minutes - (defined in config file) or until the channel goes -i again, - whichever happens last. - - Copyright (C) 1999 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/BOTNET.txt b/doc/html/_sources/BOTNET.txt deleted file mode 100644 index a964b3ba4..000000000 --- a/doc/html/_sources/BOTNET.txt +++ /dev/null @@ -1,294 +0,0 @@ -Botnet Sharing and Linking -Last revised: June 29, 2016 - -========================== -Botnet Sharing and Linking -========================== - - - The purpose of this document is to show you what a botnet is and how it - could be useful to you. It also covers botflags userfile sharing. - -What is a botnet? ------------------ - - A botnet consists of one or more bots linked together. This can allow bots to op each other securely, control floods efficiently, and share user lists, ban lists, exempt/invite lists, and ignore lists (if sharing is enabled). - -Terms ------ - -The following are some common terms used in this document: - -**Botnet** - A botnet consists of one or more bots connected together. - -**Link** - Link is the term used to describe a bot connecting to another bot. - -**Hub** - A bot is described as a hub-bot if one or more bots are linked to it. - - -**Leaf** - A leaf is a non-hub bot connecting to a hub-bot. A leaf has only one other bot connected to it, its hub. Leaf bots can be assigned the "l" botflag to prevent other bots from linking to them. - - -**Link Bot** - A link-bot is a bot that is linked to another bot. It may or may not be a hub-bot. - - -**Share** - Share is the term used to describe the sharing of user records. - - -**Share Bot** - A share-bot is a bot which shares user records with one or more linked bots. - - -**Aggressive Share** - Aggressive share is a term used to describe the direction of sharing user-files. Aggressive share bots will SEND userfiles to another passive bot. - - -**Passive Share** - Passive share is a term used to describe the direction of sharing user-files. Passive share bots will accept userfiles from an aggressive share bot. - -**Address** - The physical address, containing the address and port of the bot. For example: lame.org:3333. You can change a bot's address with:: - - .chaddr - -**Relay Port** - The relay port number of the bot is defined in the config file. Note that you can define one port for bots and another for user connections. - -**Relay** - A relay connection is used to relay (jump) to another bot via telnet or DCC chat. You can relay to another bot even if the remote bot is not linked. You can use:: - - .relay - - to relay to another bot. - -**Port** - The telnet port is used by the bot to communicate with other bots and/or users. Note that you can define separate ports for user and bot connections. - -Example bottree ---------------- - -| BotA -| \|-+BotB -| \`-+BotC - - BotB is linked to a master sharebot, BotA, and a slave sharebot, BotC. BotB shares passively with [receives from] BotA and shares aggressively with [sends to] BotC. - - -Bot Flags ---------- - -Flags are attributes that determine what a bot can or is allowed to do. -Flags can be either global (such as +s) or channel specific (such as -\|+s #lamest). See '.help botattr' for help with setting these flags. - -The following is a list of valid bot flags: - -+------+---------------------------------------------------------------+ -| s | share aggressively (SEND userfile to a passive bot) | -+------+---------------------------------------------------------------+ -| p | share passively (ACCEPT userfile from an aggressive bot) | -+------+---------------------------------------------------------------+ -| g | global share (share all channels) | -+------+---------------------------------------------------------------+ -| h | hub (automatically link to this bot) | -+------+---------------------------------------------------------------+ -| a | alternate (automatically link to this bot if the hub bot can't| -| | be linked) | -+------+---------------------------------------------------------------+ -| l | leaf (bot is not allowed to link in other bots) | -+------+---------------------------------------------------------------+ -| r | reject (bot will not be allowed to link) | -+------+---------------------------------------------------------------+ -| i | isolate (isolate the party line across a bot link) | -+------+---------------------------------------------------------------+ -| 0-9 | user defined flags | -+------+---------------------------------------------------------------+ - -Adding and linking bots ------------------------ - -With the common terms out of the way, we can start with the process of linking two bots. Before you start, you need to know the address and port of each bot you wish to link. - -Here is an example scenario: - - BotA is on lame.org listening on port 3333, and BotB is on irc.org - listening on port 4444. First, you have to add each Bot to the other's - userfile. On BotA, you would type '.+bot BotB irc.org:4444'. If BotB is - on a common channel with BotA, BotB's hostmask is automatically added. - Otherwise, you have to add the hostmask manually with the '.+host' - command. On BotB, you would type '.+bot BotA lame.org:3333'. - -At this point, you can link the two bots by typing '.link BotA' on BotB (or '.link BotB' on BotA). The bots will now give themselves random passwords which are *not* stored encrypted in the userfile. Note that you can link as many bots as you wish to your botnet. - - -Using botflags --------------- - -Botflags are needed to assign special functions and tasks to your bots. -Bot flags are set with the '.botattr' command. See '.help botattr' for -help with this command. The following is a list of botflags and their -functions: - - "h" (hub) - If you want your bot(s) to automatically link/relink, you can assign - the +h botflag each bot's hub. Note that if you set multiple bots +h, - the bot only attempts to link to one. - - - "a" (alternate) - If your bots are, for some reason, unable to link to their hub, they - will attempt to connect to an alternate hub. You can assign a bot as - an alternate hub by giving it the +a botflag. - - - "l" (leaf) - This flag, assigned to a link bot, will prevent the link bot from linking - other bots to your botnet. - - - "r" (reject) - If you assign this flag to a link bot, the link bot will not be allowed - to link to the botnet. - - - "i" (isolate) - This flag isolates a link bot's partyline from the rest of the botnet. - Anything said on the link bot's partyline won't appear on the rest of - the botnet. - - - "s" (SEND userfile to) - \+s Giving a link bot this flag will make the bot share aggressively - with the link bot. See 'Aggressive Share' in section 2 of this - document for more information on aggressive sharing. - - "\|s" (channel-specific sharing) - +s bots need this flag for each channel you want to share. - - - "p" (ACCEPT userfile from) - Giving a link bot this flag will make the bot share passively with - the link bot. See 'Passive Share' in section 2 of this document for - more information on passive sharing. - - "g" (global share) - This flag allows the sharing of all channels with a link bot. - - "0-9" (user-defined) - These 10 flags are user-defined can be used by scripters. - - -Making bots share user records ------------------------------- - - Before you start preparing your bots for sharing, make sure that - you've loaded the transfer and share modules. You also have to ensure - that each channel you wish to share is set +shared (see '.help - chanset' and '.help chaninfo'). - - By using specific botflags, you can cause your bot to share - aggressively with some link bots, and passively with others. For - sharing to work, flags must be set properly on both the passive and - the aggressive bots. An aggressive bot will not share userfiles with - another aggressive bot; a passive bot will not share userfiles with - another passive bot. - - First off, let's say we have two bots we want to link. We will - call one Lamestbot, and the other Lameshare. The first thing that needs - to be done is each bot needs the other bot added to its user record. - Your botnet should have a hub bot. This will have them connect - automatically whenever they are started. Without a hub, you would have to - manually link them with the .link command. For this situation we will - make Lamestbot the hub for our small botnet. Let's also use a channel - called #eggdrop as the one we want to share user channel flags with. Do - the following: - - On Lamestbot:: - - .+bot Lameshare eggdrop.com:3333 - - This command adds a user record to - Lamestbot for Lameshare. Lameshare is running from eggdrop.com and is - on port 3333. If Lameshare were to have a separate port for users/relays - we would just add a '/' and the port number, i.e. 3333/5555:: - - .botattr Lameshare +s - - This tells us that Lamestbot will only send - user files to Lameshare; Lameshare will not send them to it:: - - .botattr Lameshare |s #eggdrop - - This sets up sharing of the channel - flags for #eggdrop between the bots. Without this, they will not share - channel flags only global flags for the users - - On Lameshare:: - - .+bot Lamestbot best.com:3333/5555 - - Again this will add a user on - Lameshare called Lamestbot with the domain of best.com. The bot has - two ports, 3333 for bot communications and 5555 for users/relays:: - - .botattr Lamestbot +hp - - This command sets Lamestbot as the hub and - also as a passive share, which means Lameshare will accept user files - from Lamestbot::: - - .botattr Lamestbot |s #eggdrop - - This sets #eggdrop as a share channel - - Our botnet: - - Lamestbot - \`-+Lameshare - - Let's add a third bot called beldin to this scenario: - - On Lamestbot:: - - .+bot beldin llama.com:3333 - - .botattr beldin s|s #eggdrop - - Notice how i piped (the | character) - the channel flag, also saving time.) - - Also note that you don't have to add beldin on Lameshare. Since - they are already sharing, it was added automatically. The one thing that - you should note is that no bot flags will be shared. If you set beldin as - +s (Aggressive share) on the hub (Lamestbot) he will not be set on the - other bots as that. The same with the channel +s flag. All other flags - will be shared such as the o, f, etc. Now that we have three bots, we - can also set up one as an alternate hub. The alternate hub is the bot - that the bots will auto-connect to in the event the hub goes down or - is unreachable. - - Let's make beldin an alternate hub for our little botnet. - - On Lameshare:: - - .botattr beldin +a - - That's all there is to it. Again, since bot flags are not shared, - you would have to add the bot flag +a for beldin on them all. The only - ones you would not have to do this on are beldin and the hub (Lamestbot). - Of course, if you had more bots, you would have to add beldin as a +a on - them, but you would not do it on the hub or beldin. - - Our botnet: - - Lamestbot - \|-+beldin - \`-+Lameshare - -Copyright (C) 1999 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/COMPILE-GUIDE.txt b/doc/html/_sources/COMPILE-GUIDE.txt deleted file mode 100644 index de45a6637..000000000 --- a/doc/html/_sources/COMPILE-GUIDE.txt +++ /dev/null @@ -1,544 +0,0 @@ -Eggdrop Compile Guide and FAQ -Last revised: October 25, 2010 - -============================= -Eggdrop Compile Guide and FAQ -============================= - - - This guide may help you successfully compile Eggdrop. Suggestions are by - various contributors. If you think something should be added, please send - an e-mail to bugs@eggheads.org. Note that in this document, text between - a '<' and a '>' should be replaced (without the '<' and '>'). - - NOTE: This is not a 'quick install' guide. See the INSTALL file for basic - setup information. This is intended to help you compile the bot on uncommon - operating systems, or work past problems encountered during compile. - - - Contents: - Compile Guide: - A. Standard compile process (Linux, FreeBSD, NetBSD, OpenBSD, etc) - B. HP-UX B.11.* - C. Ultrix - D. Mac OS X - E. AIX - F. IRIX - G. Solaris / SunOS - H. Cygwin / Windows - I. Tcl Detection and Installation - - Frequently Asked Questions: - 1. I get a lot of warnings. - 2. I get a 'strip terminated with signal 6' error during compile/install, - or another error related to 'strip'. - 3. 'DIR' undeclared (and a whole bunch of others) (AIX 4) - 4. 'fd_set' undeclared (and a whole bunch of others) (AIX 4) - 5. Unresolved or undefined symbols: ldclose, ldopen, ldnshread (AIX 3) - 6. Unsatisfied symbols 'shl_findsym' and 'shl_load' (HP-UX 9) - 7. Compile stops at the last minute with "ld fatal signal 11"! (Linux) - 8. Undefined references in net.o (Sun OS) - 9. I experience problems starting the configure script (AIX/various) - 10. I get a 'make: Permission denied' error when I type 'make config' - or 'make' (FreeBSD / *BSD) - - - Compile Guide - This will tell you how to compile Eggdrop on various operating systems. - If you have gotten Eggdrop to compile on an operating system not listed - here, please let the development team know how, at eggdev@eggheads.org. - Please tell us what, if any, special steps were required to compile the - bot. Also, any compiler warnings/etc, and the 'config.log' and 'config.h' - files would be helpful. The development team does not have access to the - resources needed to test portability on uncommon operating systems, so - your help is greatly appreciated. - - A. Standard compile process (32-bit Linux, FreeBSD, NetBSD, OpenBSD, etc.) - B. HP-UX B.11.* - C. Ultrix - D. Mac OS X - E. AIX - F. IRIX - G. Solaris / SunOS - H. Cygwin / Windows - I. Tcl Detection and Installation - - A. Standard compile process (32-bit Linux, FreeBSD, NetBSD, OpenBSD, etc.) - 1. Type './configure' from the Eggdrop directory. Some of the options - that can be given to ./configure are explained below. - - --enable-strip - If you want to create a smaller binary, you can use this option. - HOWEVER, this will remove debugging symbols and make bug reports - almost completely useless, and is not recommended. If disk space - is very limited, however, it might help to enable this. - - --with-tcllib - --with-tclinc - See 'I. Tcl Detection and Installation' below (at the end of this - compile guide). - - --with-handlen= - Configure the handle length of the bot. Allowed values are - numbers from 9 to 32 inclusive. - - --disable-tls - --with-sslinc= - --with-ssllib= - You can disable TLS or specify the paths to the header and - library files. Look at doc/TLS for more information. - - 2. Type either 'make config', or 'make iconfig' to determine which - modules will be compiled. - - 3. Type 'make' from the Eggdrop directory, or to force a statically - linked module bot, type 'make static'. Otherwise, the Makefile will - use whatever type of compile the configure script determined your - system will support. Dynamic is always the better way to go if - possible. You can force a dynamic build with 'make eggdrop'. There - are also the 'debug' and 'sdebug' (static-debug) options, which will - give more detailed output on a crash. This will help the development - team track down the crash and fix the bug. Debug and sdebug will take - a little longer to compile and will enlarge the binary a bit, but - it's worth it if you want to support Eggdrop development. - - 4. Eggdrop must be installed in a directory somewhere. This is - accomplished by typing 'make install'. - - This will install the Eggdrop in your home directory in a directory - called 'eggdrop' (i.e. /home/user/eggdrop). - - If you want to install to a different directory, use: - - make install DEST= - - For example: - - make install DEST=/home/user/otherdir - - B. HP-UX B.11.* - Follow the standard compile process in Section A. To compile dynamically - (with module support), use 'make eggdrop' instead of 'make'. - - During a linking in a dynamic build, you may experience an error such as: - - gcc -pipe -fPIC -shared -o ../eggdrop bg.o botcmd.o botmsg.o botnet.o - chanprog.o cmds.o dcc.o dccutil.o dns.o flags.o language.o match.o - main.o mem.o misc.o misc_file.o modules.o net.o rfc1459.o tcl.o - tcldcc.o tclhash.o tclmisc.o tcluser.o userent.o userrec.o users.o - -L/usr/local/lib -ltcl8.4 -lm -ldld -lnsl md5/md5c.o compat/*.o `cat - mod/mod.xlibs` - /usr/ccs/bin/ld: DP relative code in file bg.o - shared library must be - position independent. Use +z or +Z to recompile. - collect2: ld returned 1 exit status - *** Error exit code 1 - - If you know the cause of this error, please contact the Eggheads - Development Team at eggdev@eggheads.org. - - Note that on HP-UX, the SHLIB_PATH environment variable should be used - instead of LD_LIBRARY_PATH. - - - C. Ultrix - There are some known problems with 'make' and Eggdrop on Ultrix systems. - We recommend using 'gmake' (GNU make) for this reason, as in the steps - below. - - If your system does not have 'gmake', you can download it from: - - http://ftp.gnu.org/pub/gnu/make/ - - It can be installed in your home directory, as with Tcl, but that is - beyond the scope of this document. Read the INSTALL file that comes with - gmake. - - Following these steps should work: - - 1. Depending on what shell your using: - - bash/ksh: - export LD_LIBRARY_PATH=:${LD_LIBRARY_PATH} - - csh/tcsh/tclsh: - setenv LD_LIBRARY_PATH :${LD_LIBRARY_PATH} - - 2. Run the following command from your Eggdrop compilation directory - (this is all one command): - - sh5 ./configure --with-tclinc='' - --with-tcllib='' - - 3. Type 'gmake config' or 'gmake iconfig' to configure modules. - - 4. Type 'gmake'. If you experience problems during linking, or while - building modules, try using 'gmake static', for a static build, - instead. - - 5. To install Eggdrop, type 'gmake install'. - - This will install the Eggdrop in your home directory in a - directory called 'eggdrop' (i.e. /home/user/eggdrop). - - If you want to install to a different directory, use: - - gmake install DEST= - - For example: - - gmake install DEST=/home/user/otherdir - - - D. Mac OS X - Follow the standard compile process in Section A. To compile dynamically - (with module support), use 'make eggdrop' instead of 'make'. - - To get third-party modules to compile, you may need to edit the module's - Makefile and add "$(XLIBS) $(MODULE_XLIBS)" to the end of the - ../../../MODULE.$(MOD_EXT) target's $(LD) line. - - For example: - - ../../../mymodule.$(MOD_EXT): ../mymodule.o - $(LD) -o ../../../mymodule.$(MOD_EXT) ../mymodule.o - $(STRIP) ../../../mymodule.$(MOD_EXT) - - Would become: - - ../../../mymodule.$(MOD_EXT): ../mymodule.o - $(LD) -o ../../../mymodule.$(MOD_EXT) ../mymodule.o $(XLIBS) $(MODULE_XLIBS) - $(STRIP) ../../../mymodule.$(MOD_EXT) - - If you notice a module that requires these changes, it would probably be - a good idea to let the module's developer know, so it can be fixed. - - - Note that on Mac OS X, the DYLD_LIBRARY_PATH environment variable should - be used instead of LD_LIBRARY_PATH. - - - E. AIX - Follow the standard compile process in Section A. To compile dynamically - (with module support), use 'make eggdrop' instead of 'make'. - - Note that on AIX, the LIBPATH environment variable should be used instead - of LD_LIBRARY_PATH. - - - F. IRIX - Follow the standard compile process in Section A. To compile dynamically - (with module support), use 'make eggdrop' instead of 'make'. - - Note that on IRIX, the LD_LIBRARYN32_PATH and LD_LIBRARY64_PATH environment - variables should be used instead of LD_LIBRARY_PATH. - - - G. Solaris / SunOS - Follow the standard compile process in Section A. To compile dynamically - (with module support), use 'make eggdrop' instead of 'make'. - - Note that on Solaris / SunOS, the LD_LIBRARY_PATH_32 and LD_LIBRARY_PATH_64 - environment variables may need to be set instead of (or in addition to, to - be safe) LD_LIBRARY_PATH. - - - H. Cygwin / Windows - To compile and install Eggdrop on windows, perform the steps listed - below. - - 1. Download and install Cygwin (www.cygwin.com). Make sure to install - things like GCC, zlib, minires, autoconf, and automake. DO NOT - install the Tcl provided by Cygwin's installer. After installing, - open the Cygwin bash prompt. - - 2. Download and install TCL 8.5.9. You can get Tcl for Cygwin at - http://prdownloads.sourceforge.net/windrop/tcl-8.5.9.tar.gz. - http://prdownloads.sourceforge.net/windrop/tcl-8.4.1.tar.gz. - Extract this to the Cygwin root directory: - - cd / - tar -zxf tcl-8.5.9.tar.gz - - 3. Download Eggdrop from geteggdrop.com to your home directory. - This is usually something like 'C:\cygwin\home\\'. After - downloading, extract the Eggdrop tarball: - - tar -zxf eggdrop1.8.0.tar.gz - - 4. Run './configure --enable-strip'. Debugging information under - Windows is basically useless to the development team, and this will - reduce the size of your Eggdrop binary. - - 5. Type either 'make config', or 'make iconfig' to determine which - modules will be compiled. - - 6. Compile the bot using 'make eggdrop'. - - 7. Install the bot by typing 'make install DEST='. - For example: - - make install DEST='C:/eggdrop/' - - Make sure to enclose the destination directory/folder in single - quotes (''), especially if it contains spaces. - - 8. Perform the following commands: - - cd 'C://' (example: cd 'C:/eggdrop') - rm modules - rm eggdrop.exe - mv eggdrop.exe-1.8.0 eggdrop.exe - mv modules-1.8.0 modules - - 9. Create a 'lib' directory and copy needed libraries using the - following commands. This assumes that you installed your Eggdrop in - 'C:\eggdrop'. If you chose a different installation path, replace - 'C:/eggdrop' in the following steps with your installation - directory, replacing all '\'s with '/'s. - - cp /bin/cygwin1.dll 'C:/eggdrop' - cp /usr/local/bin/libtcl8.5.dll 'C:/eggdrop' - cp /usr/local/bin/tclpip84.dll 'C:/eggdrop' - cp /bin/cyggcc_s-1.dll 'C:/eggdrop' - - cp /bin/cygcrypto-0.9.8.dll 'C:/eggdrop' (if compiled with ssl) - cp /bin/cygssl-0.9.8.dll 'C:/eggdrop' (if compiled with ssl) - - mkdir C:/eggdrop/lib - cp -r /usr/local/lib/tcl 'C:/eggdrop/lib' - cp -r /usr/local/lib/tcl8.5 'C:/eggdrop/lib' - - cp /bin/cygz.dll 'C:/eggdrop' (if you selected compress.mod) - - - I. Tcl Detection and Installation - If ./configure does not correctly detect the location of your Tcl - library and header file, or if you experience errors related to Tcl - during linking, perform these steps: - - 1. Depending on what shell your using: - - bash/ksh: - export LD_LIBRARY_PATH=:${LD_LIBRARY_PATH} - - csh/tcsh/tclsh: - setenv LD_LIBRARY_PATH :${LD_LIBRARY_PATH} - - Note that some OS's use a different environment variable to tell - ld where to look for a library. See the notes for your specific OS - above (if applicable). - - 2. Run the following command from your Eggdrop compilation directory - (this is all one command): - - ./configure --with-tclinc='' - --with-tcllib='' - - 3. Continue compiling the bot as outlined in Section A., starting - with 'make config'. - - If you do not have Tcl installed on your system, you can compile it in - your /home directory. Download Tcl from Tcl's SourceForge project page - at http://www.sourceforge.net/projects/tcl/, or from ActiveState at - ftp://tcl.activestate.com/pub/tcl/tcl8_4/. Read Tcl's README file for - help with compiling and installing it. After you compile Tcl, follow - the steps above to allow Eggdrop to detect Tcl. - - - Frequently Asked Questions - 1. I get a lot of warnings. - - Warnings do not necessarily mean anything bad. As long as the compile - completes, there is really nothing to worry about. Generally, we try to - avoid warnings. We try to fix the warnings we are aware of. If you - experience warnings, you can let us know by e-mailing bugs@eggheads.org. - If you feel like fixing them yourself, please do so and send us a patch - (as described in doc/PATCH_HOWTO). Thanks. - - - 2. I get a 'strip terminated with signal 6' error during compile/install, - or another error related to 'strip'. - - collect2: strip terminated with signal 6 [IOT/Abort trap] - *** Exit 1 - Stop. - *** Exit 1 - Stop. - - Don't use the --enable-strip ./configure option. - - - 3. 'DIR' undeclared (and a whole bunch of others) (AIX 4) - - gcc -c -O2 -fno-strength-reduce -I.. -DHAVE_CONFIG_H filedb.c - filedb.c: In function `filedb_update': - filedb.c:209: `DIR' undeclared (first use this function) - filedb.c:209: (Each undeclared identifier is reported only once - filedb.c:209: for each function it appears in.) - filedb.c:209: `dir' undeclared (first use this function) - filedb.c:209: parse error before `*' - filedb.c:217: warning: assignment makes pointer from integer without a cast - filedb.c:218: `name' undeclared (first use this function) - filedb.c:218: dereferencing pointer to incomplete type - filedb.c:220: dereferencing pointer to incomplete type - filedb.c:220: dereferencing pointer to incomplete type - filedb.c:224: dereferencing pointer to incomplete type - filedb.c:224: dereferencing pointer to incomplete type - filedb.c:225: dereferencing pointer to incomplete type - filedb.c:230: `s' undeclared (first use this function) - filedb.c:231: `st' undeclared (first use this function) - filedb.c:232: `fdb' undeclared (first use this function) - filedb.c:232: `where' undeclared (first use this function) - filedb.c:237: `fdb1' undeclared (first use this function) - filedb.c:253: warning: assignment makes pointer from integer without a cast - make: The error code from the last command is 1. - - The configure script didn't detect that this particular system had dirent.h - and sys/dir.h. The solution is to add -DHAVE_DIRENT_H -DHAVE_SYS_DIR_H to - the Makefile's CFLGS line: - - CFLGS = -DHAVE_DIRENT_H -DHAVE_SYS_DIR_H - - - 4. 'fd_set' undeclared (and a whole bunch of others) (AIX 4) - - gcc -c -O2 -fno-strength-reduce -I.. -DHAVE_CONFIG_H -DHAVE_DIRENT_H -DHAVE_SYS_DIR_H net.c - net.c: In function `sockread': - net.c:390: `fd_set' undeclared (first use this function) - net.c:390: (Each undeclared identifier is reported only once - net.c:390: for each function it appears in.) - net.c:390: parse error before `fd' - net.c:396: `fd' undeclared (first use this function) - make: The error code from the last command is 1. - - Again, this seems that one of configure's components (sed, awk, - or something along those lines) is broken, and configure failed to - detect that this system needed sys/select.h. The solution is to add - -DHAVE_SYS_SELECT_H to the Makefile's CFLGS line: - - CFLGS = -DHAVE_DIRENT_H -DHAVE_SYS_DIR_H -DHAVE_SYS_SELECT_H - - - 5. Unresolved or undefined symbols: ldclose, ldopen, ldnshread (AIX 3) - - cc -s -o eggdrop chan.o chanprog.o chanset.o cmds.o dcc.o dccutil.o - filedb.o fileq.o files.o gotdcc.o hash.o main.o match.o mem.o misc.o - mode.o msgcmds.o msgnotice.o net.o tandcmd.o tandem.o tcl.o tclhash.o - userrec.o users.o -L/home2/f/foster/lib -ltcl7.5 -lm - 0706-317 ERROR: Unresolved or undefined symbols detected: - Symbols in error (followed by references) are dumped to the load map. - The -bloadmap: option will create a load map. - .ldclose - .ldopen - .ldnshread - make: 1254-004 The error code from the last command is 8. - - Apparently, what is happening is a library called ld is required. Either - configure doesn't know it is needed, it simply can't find it, or maybe - this is a unique case. The solution is to have ld linked in with the final - binary. - - Edit your Makefile and find the line that looks something like this: - - GMAKE = ${MAKE} 'CC=cc' 'AWK=awk' 'OBJS=${OBJS}' 'TCLLIBFN=tcl7.5.a'\ - 'CFLAGS=${CFLAGS}' 'XREQ=${XREQ}' 'XLIBS= -L/home2/f/foster/lib -ltcl7.5 -lm'\ - 'TCLLIB=${TCLLIB}' 'RANLIB=ranlib' 'STRIP=-s' - - Add in -lld into the XLIBS assignment, like this: - - GMAKE = ${MAKE} 'CC=cc' 'AWK=awk' 'OBJS=${OBJS}' 'TCLLIBFN=tcl7.5.a'\ - 'CFLAGS=${CFLAGS}' 'XREQ=${XREQ}' 'XLIBS=-lld -L/home2/f/foster/lib -ltcl7.5 -lm'\ - 'TCLLIB=${TCLLIB}' 'RANLIB=ranlib' 'STRIP=-s' - - - 6. Unsatisfied symbols 'shl_findsym' and 'shl_load' (HP-UX 9) - - gcc -s -o eggdrop chan.o chanprog.o chanset.o cmds.o dcc.o - dccutil.o filedb.o fileq.o files.o gotdcc.o hash.o main.o match.o - mem.o misc.o mode.o msgcmds.o msgnotice.o net.o tandcmd.o tandem.o - tcl.o tclhash.o userrec.o users.o -L/home/hltran/tcl/lib -ltcl7.5 -lm - /bin/ld: Unsatisfied symbols: - shl_findsym (code) - shl_load (code) - collect2: ld returned 1 exit status - *** Error code 1 - Stop. - - Upgrade to a later version of Tcl. The following should also work. - - Edit your Makefile and find the line that looks something like this: - - GMAKE = ${MAKE} 'CC=gcc' 'AWK=awk' 'OBJS=${OBJS}' 'TCLLIBFN=tcl7.5.a'\ - 'CFLAGS=${CFLAGS}' 'XREQ=${XREQ}' 'XLIBS= -L/usr/local/lib -ltcl7.5 -lm'\ - 'TCLLIB=${TCLLIB}' 'RANLIB=:' 'STRIP=' - - Add in -ldl into the XLIBS assignment, like this: - - GMAKE = ${MAKE} 'CC=gcc' 'AWK=awk' 'OBJS=${OBJS}' 'TCLLIBFN=tcl7.5.a'\ - 'CFLAGS=${CFLAGS}' 'XREQ=${XREQ}' 'XLIBS=-ldl -L/usr/local/lib -ltcl7.5 -lm'\ - 'TCLLIB=${TCLLIB}' 'RANLIB=:' 'STRIP=' - - - 7. Compile stops at the last minute with "ld fatal signal 11"! (Linux) - - This seems to be caused by a non-ELF Tcl library binary, and the compiler - doesn't seem to like it. Download and install Tcl in your home directory - using the steps in 'E. Tcl Detection and Installation' in the Compile - Guide above. - - - 8. Undefined references in net.o (SunOS) - - First - Undefined Referenced - Symbol In file - - socket net.o - gethostbyname net.o - accept net.o - bind net.o - setsockopt net.o - gethostbyaddr net.o - getsockname net.o - gethostname net.o - listen net.o - connect net.o - ld: fatal: Symbol referencing errors. No output written to eggdrop - - This seems to be caused by a few libraries not being detected by the - auto-configure script; it is relatively easy to fix. Edit your Makefile. - Note that yours may be slightly different than this one when it comes to - the Tcl library, but here is the way it probably is: - - GMAKE = ${MAKE} 'CC=gcc' 'AWK=awk' 'OBJS=${OBJS}' 'TCLLIBFN=tcl.a'\ - 'CFLAGS=${CFLAGS}' 'XREQ=${XREQ}' 'XLIBS= -L/usr/local/lib -ltcl -lm'\ - 'TCLLIB=${TCLLIB}' 'RANLIB=:' 'STRIP=' - - Here is what you need to change it to: - - GMAKE = ${MAKE} 'CC=gcc' 'AWK=awk' 'OBJS=${OBJS}' 'TCLLIBFN=tcl.a'\ - 'CFLAGS=${CFLAGS}' 'XREQ=${XREQ}' 'XLIBS=-lsocket -ldl -lnsl -L/usr/local/lib -ltcl -lm'\ - 'TCLLIB=${TCLLIB}' 'RANLIB=:' 'STRIP=' - - You are adding three libraries to be linked in: socket, dl, and nsl. This - will resolve the net.o errors. - - - 9. I experience problems starting the configure script (AIX/various) - - If you receive file descriptor or bad interpreter errors when attempting - to run the configure script, try running 'sh configure' or 'bash configure' - instead of './configure'. This problem seems to show up on many AIX - machines. - - - 10. I get a 'make: Permission denied' error when I type 'make config' or - 'make' (FreeBSD / *BSD) - - This is caused by a bug in FreeBSD (and possibly other BSDs as well). - A simple 'cd .', or changing to a different directory and then changing - back, usually fixes this. - _____________________________________________________________________ - - Copyright (C) 1997 Robey Pointer - Copyright (C) 1999 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/INSTALL.txt b/doc/html/_sources/INSTALL.txt deleted file mode 100644 index d77b2e839..000000000 --- a/doc/html/_sources/INSTALL.txt +++ /dev/null @@ -1,158 +0,0 @@ -Compilation and Installation of Eggdrop -Last revised: July 24, 2004 - -======================================= -Installing Eggdrop -======================================= - -This is the quick install guide; if you have had little or no experience -with UNIX or Eggdrop, READ THE README FILE NOW! This file is only for -experienced users. - -For more information on compiling Eggdrop, see the Compile Guide in -doc/COMPILE-GUIDE (and of course, the README FILE). - -What is Eggdrop? ----------------- - -Please, read the README file before attempting to set up this bot. This -file is a quick setup guide, not a miracle worker. If you enter this file -without basic Eggdrop knowledge, you will NOT leave with a working bot! -Before asking ANY questions, READ THE README FILE OR YOU WILL BE BURNED -TO A HORRIBLE DEATH! IF YOU DO NOT READ THAT FILE I WILL PERSONALLY WALK -TO YOUR TERMINAL AND BEAT IT WITH A SMELLY SNEAKER! By the way, read the -README file. - -Quick Startup -------------- - -Eggdrop uses the GNU autoconfigure scripts to make things easier. - -1. Type './configure' from the Eggdrop directory. The configure script - will determine how your system is set up and figure out how to - correctly compile Eggdrop. It will also try to find Tcl, which is - required to compile. - -2. Type either 'make config' or 'make iconfig' to determine which - modules will be compiled. 'make config' compiles the default modules - (everything but woobie.mod). If you want to choose which modules to - compile, use 'make iconfig'. - -3. Type 'make' from the Eggdrop directory, or to force a statically - linked module bot, type 'make static'. Otherwise, the Makefile will - compile whatever type of bot the configure script determined your - system will support. Dynamic is always the better way to go if - possible. There are also the 'debug' and 'sdebug' (static-debug) - options, which will give more detailed output on a (highly unlikely :) - crash. This will help the development team track down the crash and - fix the bug. Debug and sdebug will take a little longer to compile - and will enlarge the binary a bit, but it's worth it if you want to - support Eggdrop development. - -4. Eggdrop must be installed in a directory somewhere. This is - accomplished by entering the UNIX command:: - - make install - - This will install the Eggdrop in your home directory in a directory - called 'eggdrop' (i.e. /home/user/eggdrop). - - If you want to install to a different directory, use:: - - make install DEST= - - For example:: - - make install DEST=/home/user/otherdir - - Note that you must use full path for every file to be correctly - installed. - - [The following is performed from the directory installed above.] - -5. By default, version 1.8 uses SSL to protect botnet links. If you intend - on linking 1.8 bots together, you must run:: - - make ssl-cert - - Or, if you installed your eggdrop to a different directory in step 4, you - will want to run: - - make ssl-cert DEST= - - Read docs/TLS for more info on this process. - -6. Edit your config file completely. - -7. Start the bot with the "-m" option to create a user file, i.e. :: - - ./eggdrop -m LamestBot.conf - -8. When starting the bot in the future, drop the "-m". If you have edited - your config file correctly, you can type:: - - chmod u+x - - For example:: - - chmod u+x LamestBot.conf - - From then on, you will be able to use your config file as a shell - script. You can just type "./LamestBot.conf" from your shell prompt - to start up your bot. For this to work, the top line of your script - MUST contain the correct path to the Eggdrop executable. - -9. It's advisable to run your bot via crontab, so that it will - automatically restart if the machine goes down or (heaven forbid) - the bot should crash. Look at 'scripts/botchk' and 'scripts/autobotchk' - for a great start with crontabbing the bot. - -10. Smile, and if you haven't already read the README file in its - entirety, go take a long walk off a short pier. - -Modules -------- - -Modules are small pieces of code that can either be compiled into the -binary or can be compiled separately into a file. This allows for a much -smaller binary. - -If there are any modules that you have made or downloaded, you can add -them to the bot by placing them in the /src/mod directory with a mod -extension. They will be automatically compiled during make for you. -They must have a valid Makefile and, of course, be compatible with -the rest of the Eggdrop source. - -If you wish to add a module at a later time, follow the same steps in -paragraph 2. After you have moved the appropriate files, you will only -need to type 'make modules' to compile only the modules portion of the -bot. - -FREQUENTLY ASKED QUESTIONS --------------------------- - - (Q) What do I do if...? - - (A) READ THE README FILE! - - (Q) The readme does not answer...! - - (A) READ THE README FILE AGAIN! - - (Q) I still don't know how to... - - (A) MEMORIZE THE README FILE! - - (Q) But... - - (A) Well, go to www.egghelp.org or www.eggheads.org and see if you can - find there what you're looking for. There are also lots of IRC help - channels and various mailing lists, as seen in the README FILE. - -This is the end. If you read to this point, hopefully you have also read -the README file. If not, then READ IT!&@#%@! - -Have fun with Eggdrop! - - Copyright (C) 1997 Robey Pointer - Copyright (C) 1999 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/KNOWN-PROBLEMS.txt b/doc/html/_sources/KNOWN-PROBLEMS.txt deleted file mode 100644 index 5afbc00b6..000000000 --- a/doc/html/_sources/KNOWN-PROBLEMS.txt +++ /dev/null @@ -1,25 +0,0 @@ -Known Problems -Last revised: April 16, 2003 - -============== -Known Problems -============== - - Things that are broken, but aren't getting fixed anytime soon: - - * Non-working alarm(10) in Linux (calls to gethostbyaddr/name() have - blocked for long periods when bind/named doesn't resolve quickly, and - the alarm does not interrupt it). - - Note: This should now work if you use the dns module. - - * High-bit characters are being filtered from channel names. This is a - fault of the Tcl interpreter, and not Eggdrop. The Tcl interpreter - filters the characters when it reads a file for interpreting. Update - your Tcl to version 8.1 or higher. - - * Version 8.1 of Tcl doesn't support unicode characters. - If those characters are handled in a script as text, you run into errors. - Eggdrop can't handle these errors at the moment. - - Copyright (C) 2003 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/README.txt b/doc/html/_sources/README.txt deleted file mode 100644 index fb447c8c2..000000000 --- a/doc/html/_sources/README.txt +++ /dev/null @@ -1,529 +0,0 @@ -Last revised: Jul 2, 2016 - -====== -README -====== - - Please at least SKIM this document before asking questions. In fact, READ IT - if you've never successfully set up an Eggdrop bot before. PLEASE! READ IT! - ------- -NOTICE ------- - - Please read this file carefully before trying to set up Eggdrop. Also, - make SURE that you select your +n (owner) users wisely! They have 100% - access to your bot and account! ONLY GIVE THIS POWER TO SOMEONE YOU - TRUST COMPLETELY!! - ----------------- -What is Eggdrop? ----------------- - - Eggdrop is the World's most popular Internet Relay Chat (IRC) bot; it is - freely distributable under the GNU General Public License (GPL). Eggdrop - is a feature rich program designed to be easily used and expanded upon by - both novice and advanced IRC users on a variety of hardware and software - platforms. - - An IRC bot is a program that sits on an IRC channel and performs automated - tasks while looking just like a normal user on the channel. Some of these - functions include protecting the channel from abuse, allowing privileged - users to gain op or voice status, logging channel events, providing - information, hosting games, etc. - - One of the features that makes Eggdrop stand out from other bots is module - and Tcl scripting support. With scripts and modules, you can make the bot - perform almost any task you want. They can do anything from preventing - floods to greeting users and banning advertisers from channels. - - You can also link multiple Eggdrop bots together to form a botnet. This - can allow bots to op each other securely, control floods efficiently, and - even link channels across multiple IRC networks. It also allows the - Eggdrops share user lists, ban lists, exempt/invite lists, and ignore - lists with other bots if userfile sharing is enabled. This allows users - to have the same access on every bot on your botnet. It also allows the - bots to distribute tasks such as opping and banning users. See doc/BOTNET - for information on setting up a botnet. - - Eggdrop is always being improved and adjusted because there are bugs to - be fixed and features to be added (if the users demand them, and they make - actually sense). In fact, it existed for several years as v0.7 - v0.9 - before finally going 1.0. This version of Eggdrop is part of the 1.8 tree. - A valiant effort has been made to chase down and destroy bugs. - - This README file contains information about how to get Eggdrop, command - line options for Eggdrop, what you may need to do when upgrading from - older versions, a list of frequently asked questions, how to set up a - crontab, some boring legal stuff, info about the mailing list (a great - place to ask questions, and a good place to report bugs, too), some basics - about CVS usage, and some channels where you might get help with Eggdrop. - ------------------- -HOW TO GET EGGDROP ------------------- - - Before you can compile Eggdrop, you need to have Tcl installed on your - system. Most systems should have Tcl on them by now -- you can check by - trying the command "tclsh". If it works, you will be given a "%" prompt, - and you can type "exit" to exit the program. This means Tcl is installed - on your system. If tclsh doesn't load, then Tcl probably isn't on your - system, and you will need to install it. The best ftp site for Tcl is - ftp://tcl.activestate.com/pub/tcl/. - - Currently, the 1.8 tree of Eggdrop is developed at eggheads.org. You can - get the latest STABLE version of Eggdrop from the following url: - - http://geteggdrop.com/ - - You might try www.eggheads.org for help and information. - ---------- -Git Usage ---------- - - Eggdrop development has moved from a CVS-based version control system to - git. If you are interested in trying out the VERY LATEST updates to - eggdrop, you may want be interested in pulling the most recent code from - there. BE WARNED, the development branch of Eggdrop is not to be - considered stable, and may (haha) have some significant bugs in it. The - Eggheads Development Team will in NO WAY take any responsibility for - whatever might happen to you or your shell if you use the development - branch of Eggdrop! - - To obtain Eggdrop via the git repository (hosted by GitHub), you can - either clone the repository via git, or download a development snapshot. - - To clone the repository, simply type:: - - git clone https://github.com/eggheads/eggdrop.git - - Otherwise, you can download the development snapshot as a tar archive - from: - - https://github.com/eggheads/eggdrop/archive/develop.tar.gz - -------------- -Quick Startup -------------- - - Please see the 'INSTALL' file AFTER you finish reading this file. - ---------- -Upgrading ---------- - - -**UPGRADING FROM A PRE-1.3 VERSION TO 1.8** - - First of all- why are you still running pre-1.3?!?! - - #### BACK UP YOUR USERFILE #### - - We can't stress this enough. If you are upgrading and you have even a - slight possibility of downgrading again later, you will HAVE to back up - your userfile, or you will lose it. v1.3 of Eggdrop radically changed a - lot of things. - - There are many major changes between v0.9, v1.0, v1.1 and v1.8, so PAY - ATTENTION to this part if you have a v0.9, 1.0 or 1.1 bot currently. If - you're just starting out, you can skip this section. - - If you run share bots, you will need to upgrade them all at the same time - because of the new userfile format. Older bots will be able to link in, - but will not get or send a userfile. MAKE A NEW CONFIG FILE from the - example; there are some radical changes. - - If you are upgrading from 0.9/1.0 to 1.8, just redo the whole thing. - Absolutely everything has changed, including the userfile and config file - formats. - - If you are upgrading from 1.1/1.2 to 1.8, you will likely want to redo - the config file, as much as changed. BACK UP! You will need to run 'tclsh - scripts/weed/ c' to convert your userfile from v3 (1.1/1.2) to - v4 (1.3/1.4/1.5/1.6/1.8). - - -**UPGRADING FROM AN OLDER 1.3/1.4/1.5/1.6 VERSION TO A NEWER 1.8 VERSION** - - If you followed the 'INSTALL' file and did a 'make install' (or 'make - install DEST="path"') after 'make', this will be pretty easy. Just upload - the new eggdrop1.8.x.tar.gz file to your home dir on your shell, gunzip - and untar it, and type 'cd ~/eggdrop1.8.x'. Next, type './configure', - 'make config' or 'make iconfig', then 'make'. Then, kill the bot ('.die' - on the party line), and 'make install' to the same directory your bot - is currently in. After that, you can just restart your bot. You may wish - to delete the old Eggdrop executable and modules as well, especially if - you have limited disk space. - - You should read through the new eggdrop.conf file for all of the new - options in Eggdrop 1.8.x. You can copy and paste any of these settings - into you current conf file if you do not want to use the default settings. - ------------- -Command Line ------------- - - Eggdrop has some command-line options -- not many, because most things - should be defined through the config file. However, sometimes you may - want to start up the bot in a different mode, and the command-line - options let you do that. Basically, the command line for Eggdrop is:: - - % eggdrop [options] [config-file] - - The options available are: - - -n: Don't background. Normally, Eggdrop will move itself into the - background when you start it up, meaning you'll get another shell - prompt, and you can do other things while the bot is running. With - -n, you won't return to the shell prompt until the bot exits (which - won't normally happen until it's killed). By default, -n will send - all log entries to the console. - - -nt: Don't background, use terminal. This is just like -n, except that - instead of seeing log entries, your console will simulate a DCC - chat with the bot. - - -nc: Don't background, show channel info. This is just like -n, except - that instead of seeing log entries, every 10 seconds your screen - will clear and you will see the current channel status, sort of - like "top". - - -m: Create userfile. If you don't have a userfile, this will make Eggdrop - create one and give owner status to the first person that introduces - himself or herself to it. You'll need to do this when you first set - up your bot. - - -h: Show help. - - -v: Show version info, then quit. - - Most people never use any of the options except -m, and you usually only - need to use that once. - --------------------------- -Frequently Asked Questions --------------------------- -(a.k.a. Why doesn't this thing work?!") - -WHAT DO I DO IF I GET THE ERROR "USER FILE NOT FOUND"? - - 1. Run Eggdrop with the "-m" option (i.e. "eggdrop -m eggdrop.conf"). - - 2. Go to IRC and send "hello" to your bot (i.e. "/msg mybot hello"). - - 3. You will become an owner on your bot. You can leave the bot running - (nobody else will become an owner if they say "hello"), but in the - future, don't use the "-m" option when running the bot. - -WHAT THE HECK IS Tcl? - - Tcl is a scripting language written by John Ousterhout. It's much better - than most "built-in" script languages (like the one in ircII) and is - meant to be linked with anything needing a scripting language, so I - linked it with Eggdrop. The file "tcl-commands.doc" in the doc directory - contains a list of additional Tcl commands provided by Eggdrop. There - are also several example scripts in the scripts/ directory, and one in - the doc directory called first_script.txt. Hundreds of scripts floating - around on the ftp/web sites if you like working by example (which is - typically the best way). - -MY BOT DIES, AND THE LAST ENTRY IN THE LOGFILE IS "RECEIVED TERMINATE -SIGNAL". WHAT DOES THAT MEAN, AND CAN I PREVENT IT? - - There's nothing you can do to prevent it. It means the system - administrator is killing the Eggdrop process. Most of the time, it's an - automatic thing that happens when the system is being rebooted, so it's - harmless. If you have a crontab running, the bot will get restarted when - the system is back online. Occasionally, the system administrator will - kill the bot manually. For example, if he/she doesn't want bots running - on the system. - -SOMEONE ELSE SET UP A BOT I DON'T LIKE. ARE THERE ANY BACKDOORS I CAN -USE TO TAKE THEIR BOT DOWN? - - No, there have never been any backdoors and there never will be, so - please stop asking. Every once in a while, someone finds a way to - exploit a bug in Eggdrop, but we fix these bugs as soon as we find out - about them. If you want to bring down someone else's bot, you will not - have my/our help. - -WHAT ARE MODULES? - - Modules are a way of adding extra features to the bot, much like Tcl - scripts, without requiring the bot to be recompiled. See doc/MODULES - for more information. - -CAN I COMPILE EGGDROP WITHOUT DYNAMIC MODULES? - - Yes, you can. If the configure script detects that your system CAN'T - run modules, it will setup 'make' to link the modules in statically - for you. You can choose this option yourself by using 'make static'. - You can also try to compile dynamic modules on a static-only system - by using 'make eggdrop'. - -DO I STILL NEED TO 'loadmodule' MODULES? - - YES, when you compile statically, all the modules are linked into the - main executable. HOWEVER, they are not enabled until you use loadmodule - to enable them, hence you get nearly the same functionality with static - modules as with dynamic modules. - -WHERE CAN I GET A PRE-COMPILED EGGDROP FOR MY COMPUTER? - - It is HIGHLY recommended AGAINST using pre-compiled Eggdrops from - un-trusted sources. Eggdrop has been a regular target for hacking and - crashing. Distribution of pre-compiled (binary) versions of Eggdrop are - the easiest way for hackers to provide you with the easiest (and most - dangerous) way of gaining access to, not only your bot, but to your - computer account directly. Don't advertise your pre-compiled Eggdrop - binary sites on the Eggdrop list either. =P - -I GET 'Makefile:3 :invalid operator' OR SOME-SUCH-THING WHEN I TRY -TO 'make'. - - Try 'gmake'. - -WHEN I 'tclsh scripts/weed c' IT BARFS CHUNKS AT ME AND -DIES. :( - - Upgrade your Tcl. You are probably using Tcl 7.5 or earlier. Some of the - commands in weed require Tcl7.6 to run, so either upgrade it or remove - the offending lines from you userfile manually (those starting with '.' - generally) and accept the loss of that data. - -I GET "ld-elf.so.1: Shared object "libtcl80.so.1" not found" or -"eggdrop: error in loading shared libraries libtcl8.1.so: \ -cannot open shared object file: No such file or directory" WHEN I TRY -TO START MY BOT. - - './configure' is looking in the wrong place for Tcl; it looks like it - compiled with one version of Tcl and tries to load another. Maybe your - sysadmin upgraded Tcl and didn't tell you. In that case, you should just - need to recompile your bot. - - Maybe, when upgrading, he didn't clean the old version of Tcl and - './configure' is looking for the files in the wrong places, or trying - to use different versions of tcl.h and libtcl*. Smack your admin and - have him install Tcl properly. ;) - - You can also try:: - - ./configure --with-tcllib= - --with-tclinc= - - This will tell configure where to look for the Tcl files. - - Try looking for libtcl by:: - - ls /usr/lib/libtcl* - ls /usr/local/lib/libtcl* - - Try looking for tcl.h by:: - - ls /usr/include/tcl.h - ls /usr/local/include/tcl.h - - If everything else fails, try to install Tcl to your home dir ;) - (Suggested by dw@Undernet, dw@lixom.nu) - -I GET A WHOLE PILE OF "Unresolved symbol 'Tcl_AppendResult'" (OR SOME -OTHER SYMBOL) WHEN I TRY TO LOAD A MODULES. - - POSSIBILITY A: See previous section. - - POSSIBILITY B: - - Some of the standard libraries have been compiled for static linking - only on your machine, you have 3 options: - - 1. If it's your own machine, recompile Tcl using dynamic linking by - using './configure --enable-shared' when you configure Tcl (not - the bot) and then remake, and reinstall. - - 2. If it's not your machine, you may have to resort to 'make static' - and 'make install DEST="path"' to make and install your bot. - - 3. If you are of a more aggressive sense of mind, go beat the - stuffing out of your admin for having lame static libraries. :) - --------------------- -Setting up a Crontab --------------------- - - Eggdrop has become more stable with time, thanks mostly to people - reporting bug details and helping find places where it crashes. However, - there are still a -few- places where things aren't perfect. Few, if any, - things in life are. - - Also, most systems go down from time to time. These things cause your bot - to disappear from IRC, and you have to restart it. - - Eggdrop comes with a shell script called 'botchk' that will help keep the - bot online. It will make the machine check every ten minutes to make sure - your bot is still running. To use it, you have to add a line to your - crontab. First, edit 'botchk' and change the directory and command line - parameters so that it will be able to start up your bot. Then, add this - line to your crontab:: - - 0,10,20,30,40,50 * * * * /home/mydir/botchk - - If you don't want to get e-mails from cron, use this:: - - 0,10,20,30,40,50 * * * * /home/mydir/botchk >/dev/null 2>&1 - - Naturally, you need to change the path to the correct path for botchk. If - you've never used crontab before, here is a simple way to add that line: - - 1. Create a new file called 'mycron' and put the above line into it. - - 2. From your shell prompt, type '% crontab mycron'. - - That will create a new crontab entry for you with a line that runs botchk - every ten minutes. Botchk will then restart the bot when necessary (and - send you email informing you). - -------------------------------------- -Setting up a Crontab using autobotchk -------------------------------------- - - Included with your Eggdrop is an Eggdrop utility called 'autobotchk'. - Using autobotchk is probably the fastest way of creating your botchk and - crontabbing it with just a few required steps: - - 1. Type:: - - cp scripts/autobotchk .. - - 2. Type:: - - ./autobotchk - - This will hopefully crontab your bot using the default setup. If you want - a list of autobotchk options, type './autobotchk'. An example with options - would be:: - - ./autobotchk -noemail -5 - - This would setup crontab to run the botchk every 5 minutes and also to - not send you e-mail saying that it restarted your bot. - ------------------- -Boring Legal Stuff ------------------- - - The Eggdrop bot is Copyright (C) by Robey Pointer. As of January, 1997, - Eggdrop is distributed according to the GNU General Public License. There - should be a copy of this license in the file 'COPYING'. If not, write to - the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - As of Eggdrop 1.3.28, all changes made by the Eggheads Development Team to - the Eggdrop source code and any related files are Copyright (C) by Eggheads - Development Team. The source code will still be distributed according to - the GNU General Public License as Robey Pointer did in the past. - - Releases previous to 1.0m were made using a different licensing scheme. - You may, at your option, use the GNU General Public License on those - versions (instead of the license packaged with them) with my blessing. - For any versions bearing a copyright date of 1997 or later, you have - no choice -- you must use the GNU General Public License. - - The files "match.c", "net.c", and "blowfish.c" are exempt from the above - restrictions. "match.c" is original code by Chris Fuller (email: - crf@cfox.bchs.uh.edu) and has been placed by him into the public domain. - "net.c" is by me, and I [Robey Pointer] also choose to place it in the - public domain. "blowfish.c" is by various sources and is in the public - domain as well. All 3 files contain useful functions that could easily - be ported to other applications. - - Tcl is by John Ousterhout and is in no way affiliated with Eggdrop. It - likely has its own set of copyrights and whatnots. - - There is no warranty, implied or whatever. You use this software at your - own risk, no matter what purpose you put it to. - ------------- -Mailing List ------------- - - There are currently a couple of mailing lists about Eggdrop. - eggheads@eggheads.org is the one relevant for posts about Eggdrop 1.8 and - up (suggestions, help, etc). - - To subscribe to the eggheads mailing list, send e-mail to - eggheads-request@eggheads.org. In the body of the message, put "subscribe - eggheads". You can also go to the following url: - - http://lists.eggheads.org/mailman/listinfo/eggheads - - ### DO NOT SEND ROBEY EMAIL ABOUT EGGDROP! ### - - Robey is no longer developing the Eggdrop code, so don't bother e-mailing - him. If you have a serious problem, email the eggheads mailing list and - it will get to the coders. - - Please, before posting to this list, see what things are like. When you do - post, read over your post for readability, spelling, and grammar mistakes. - Obviously, we're all human (or are we?) and we all make mistakes (heck, - look at this document! ;). - - Open discussion and debate is integral to change and progress. Don't flame - others over mere form (grammar and spelling), or even substantive issues - for that matter. Please read and follow the mailing list rules. - - The eggheads@eggheads.org mailing list is not dedicated to those all too - common questions we have all seen on other lists... For example: - - o "Why does my bot say this: Please edit your config file." - o "How do I telnet my bot?" - o "Where do I get Eggdrop for windows??????" - - Technical questions, your thoughts or suggestions on new features being - added to Eggdrop, things that should be removed or fixed, amazing problems - that even stump the guru's, etc. are what we want to see here. - - Bug reports should be sent to bugs@eggheads.org. Please read and fill out - the BUG-REPORT file in the doc directory. - - DO NOT SEND HTML E-MAILS TO ANY OF THE EGGHEADS.ORG MAILING LISTS. ANYONE - CAUGHT SENDING HTML E-MAILS TO ONE OF THESE LISTS WILL BE REMOVED - IMMEDIATELY! - -------------- -Documentation -------------- - - We're trying to keep the documentation up to date. If you feel that - anything is missing here or that anything should be added, etc, please - e-mail bugs@eggheads.org about it. Thank you. - --------------- -Obtaining Help --------------- - - You can obtain help with Eggdrop in the following IRC channels: - - * Undernet - #eggdrop (official channel) - * FreeNode - #eggdrop (official channel), #egghelp - * EFnet - #egghelp - * IRCnet - #eggdrop - * DALnet - #eggdrop - * QuakeNet - #eggdrop.support - - If you plan to ask questions in any of the above channels, you should be - familiar with and follow IRC etiquette. - - o Don't type using CAPITAL letters, colors, or bold. - - o Don't use "!" and "?" excessively. - - o Don't /msg people without their permission. - - o Don't repeat or paste large amounts of text to the channel. - - If there are any other serious Eggdrop related channels that should be - added to the above list, please let us know. - - -Copyright (C) 1997 Robey Pointer -Copyright (C) 1999 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/TEXT-SUBSTITUTIONS.txt b/doc/html/_sources/TEXT-SUBSTITUTIONS.txt deleted file mode 100644 index 1a1ad7823..000000000 --- a/doc/html/_sources/TEXT-SUBSTITUTIONS.txt +++ /dev/null @@ -1,79 +0,0 @@ -Textfile Substitutions -Last revised: March 08, 2002 - -====================== -Textfile Substitutions -====================== - -These %-variables can be inserted into help files, the banner, the MOTD, -and other text files. There are four variables that can be used to format -text: - -+------+---------------------------------------------------------+ -| %b | display bold | -+------+---------------------------------------------------------+ -| %v | display inverse | -+------+---------------------------------------------------------+ -| %_ | display underline | -+------+---------------------------------------------------------+ -| %f | display flashing via telnet; bold underline via IRC | -+------+---------------------------------------------------------+ - -These variables will be interpreted by Eggdrop and replaced by their -respective values: - -+------+---------------------------------------------------------+ -| %B | bot's nickname (i.e. "LamestBot") | -+------+---------------------------------------------------------+ -| %V | current Eggdrop version (i.e. "eggdrop v1.8.0") | -+------+---------------------------------------------------------+ -| %E | long form of %V (i.e. "Eggdrop v1.8.0 (C) 1997 Robey | -| | Pointer (C) 2010 Eggheads Development Team") | -+------+---------------------------------------------------------+ -| %C | channels the bot is on (i.e. "#lamest, #botnetcentral") | -+------+---------------------------------------------------------+ -| %A | whatever is set in the config file by 'set admin' | -+------+---------------------------------------------------------+ -| %n | whatever is set in the config file by 'set network' | -+------+---------------------------------------------------------+ -| %T | the current time (i.e. "15:00") | -+------+---------------------------------------------------------+ -| %N | the current user's nickname (i.e. "Robey") | -+------+---------------------------------------------------------+ -| %U | the current operating system the bot is running on | -+------+---------------------------------------------------------+ -| %% | a percent sign ("%") | -+------+---------------------------------------------------------+ - -You can also encode messages which can only be read by people -with certain flags: - - %{+m} - Only masters would see this. - %{-} - - %{+A} - Only people with the user flag A see this. - %{-} - - %{+b} - This is only displayed to users doing a remote '.motd' from another bot. - %{-} - - %{+|m} - Only channel masters would see this. - %{-} - -Other variables: - -+-------------+---------------------------------------------------------+ -| %{cols=N} | start splitting output into N columns | -+-------------+---------------------------------------------------------+ -| %{cols=N/W} | same as above, but use a screen width of W | -+-------------+---------------------------------------------------------+ -| %{end} | end columnated or restricted (i.e. %{+m}) block | -+-------------+---------------------------------------------------------+ -| %{center} | center the following text (70 columns) | -+-------------+---------------------------------------------------------+ - - Copyright (C) 1999 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/TRICKS.txt b/doc/html/_sources/TRICKS.txt deleted file mode 100644 index fd3dd32db..000000000 --- a/doc/html/_sources/TRICKS.txt +++ /dev/null @@ -1,47 +0,0 @@ -Eggdrop Tricks -Last revised: December 08, 2003 - -============== -Eggdrop Tricks -============== - - - Here are some little tricks that you may or may not know about, which aren't - documented in other areas. - - - You can rename a built-in command by binding over it. To rename '.status' - to '.report', you'd do:: - - unbind dcc - status *dcc:status - bind dcc m report *dcc:status - - The first line removes the built-in binding on '.status', and the second - line binds '.report' to the built-in status function. - - - If you don't want your logfiles to be deleted after two days and don't - want the bot to create a new logfile each new day, then set 'keep-all-logs' - to 0 and 'switch-logfiles-at' to 2500 in your bot's config file to make it - keeping one logfile all the time. This is not recommended on high traffic - channels. - - - You can modify Eggdrop's output in the partyline, kick messages, and other - texts by editing core.english.lang in the language directory. - - - You can export parts of your config file to separate files. For example, - if you have several config files which differ from themselves only by - the nickname and the used servers, you can export them to an own file - and link it with the 'source' Tcl command, similar to a script. The - advantage of this is that you have to edit/upload only the small file - instead of the big one. This technique is also useful if you want to - maintain the same channel settings, etc across your botnet. - - - You can use variables in your config file, since it's really just a normal - Tcl file. For example, you can set 'userfile' and 'chanfile' to - "yourbot.user" and "yourbot.chan" using the following method:: - - set myvar "yourbot" - set userfile "$myvar.user" - set chanfile "$myvar.chan" - - Copyright (C) 1999 - 2016 Eggheads Development Team - diff --git a/doc/html/_sources/WEIRD-MESSAGES.txt b/doc/html/_sources/WEIRD-MESSAGES.txt deleted file mode 100644 index 962c3418b..000000000 --- a/doc/html/_sources/WEIRD-MESSAGES.txt +++ /dev/null @@ -1,54 +0,0 @@ -Weird Messages That Get Logged -Last revised: March 10, 2003 - -============================== -Weird Messages That Get Logged -============================== - - - Shown below are some messages that Eggdrop might log from time to time - that may seem a bit strange and have meanings which may not be obvious. - - (!) timer drift -- spun N minutes - - This can be caused by one of several reasons. - - - Your bot could have been swapped out of memory for a while, or for - some reason the computer could have stopped letting the bot run. Once - a minute, Eggdrop does a few maintenance things, including counting - down any active Tcl timers. If for some reason, several minutes pass - without Eggdrop being able to do this, it logs this message to let - you know what happened. It's generally a bad thing, because it means - that the system your bot is on is very busy, and the bot can hardly - keep track of the channel very well when it gets swapped out for - minutes at a time. - - - On some systems (at least Linux), if the DNS your bot is using to - lookup hostnames is broken and *very* slow in responding (this can - occur if the DNS server's uplink doesn't exist), then you will get - 4-5 minute timer drifts continuously. This can be fixed by loading - the dns module. - - - The clock on your machine has just been changed. It may have been - running behind by several minutes and was just corrected. - - (!) killmember(Nickname) -> nonexistent - We have yet to track this down. It's a mildly bad thing, however. It - means the bot just got informed by the server that someone left the - channel -- but the bot has no record of that person ever being ON the - channel. - - jwilkinson@mail.utexas.edu had some insight into this one: - - This is not an Eggdrop bug, at least not most of the time. This is a - bug in all but perhaps the very latest ircd systems. It's not uncommon - during netsplits and other joins for the server to lose track of killed - or collided join notices. Also, in some servers, it is possible to - specify non-standard characters, such as caret symbols, which get - falsely interpreted as capital letters. - - When converted to lowercase, these symbols fail to get processed, and - joins are not reported, although parts are. - - - Copyright (C) 2003 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/appendices/first-script.txt b/doc/html/_sources/appendices/first-script.txt deleted file mode 100644 index dc421775f..000000000 --- a/doc/html/_sources/appendices/first-script.txt +++ /dev/null @@ -1,100 +0,0 @@ -Your First Eggdrop Script -Last revised: December 07, 2003 - -========================= -Your First Eggdrop Script -========================= - - - -So you want to write an Eggdrop script, but you don't really know where -to begin. This file will give you a very basic idea about what Eggdrop -scripting is like. There are far too many topics to be covered all at -once, but this may help you get started with your own scripts. - -This guide assumes you know a bit about Eggdrops and IRC. You should have -already installed Eggdrop. The bot should not be on any important or busy -channels (development bots can be annoying if your script has bugs). If you -plan on doing a lot of development, enable the .tcl and .set commands, and -make sure nobody else has access to your bot. The .tcl and .set commands -are helpful in debugging and testing your code. - -First, read through the script. You may be unfamiliar with some of the -commands, especially if you haven't at least browsed through -tcl-commands.doc. You may find it helpful to open up tcl-commands.doc in -another window so that you can immediately look up commands you don't know. - -Then, open up another window and copy the script into its own file. If you -have the .tcl command enabled, you can type '.tcl source scripts/file.tcl' -to load it. Otherwise, add it to your config file like normal and '.rehash' -or '.restart' your bot. - -From your own IRC client, join the bot's channel and type some lines that -start with "hello". Example: hello I love you won't you tell me your name - -After your thrill abates, try playing around with your copy of the script. -Get it to change the text it says, make it send notices instead of messages. -Try changing the names of some variables (uhost -> userhost maybe). - -:: - - # - # Here's the start of the script. - # The '#' in Tcl means this line is a comment and doesn't get executed. - # - - # - # Most scripts start off with a configuration section. - # - - # Change this to the channel you want this script to work on. - set our_chan "#baa" - - # After configuration, scripts generally do a bit of initialization work. - # This could include checking the validity of the config variables, setting - # timers, loading helper scripts, establishing database connections, or - # most frequently, creating our Eggdrop binds. - # - # A bind lets you attach your script to events that Eggdrop encounters. Events - # include IRC events (someone joining a channel, talking, etc), botnet events, - # and internal events (like receiving signals via the kill command). - # - - # This bind will make Eggdrop call "my_talk_handler" whenever someone - # says hello on one of our channels. - bind pub - hello my_talk_handler - - # Here is where we define "my_talk_handler" - proc my_talk_handler {nick uhost hand chan text} { - # - # nick - the person's nickname - # uhost - the person's user@host - # hand - the person's bothandle (if he is a valid user) - # chan - the channel this event happened on - # text - the text the person said (not counting the trigger word) - # - # You can name these variables any way you want, but these names - # are pretty much standard. - # - - # The 'global' command imports global variables into our local scope. - # Any variable set outside of a procedure (like in the config section) - # is a global variable. - global our_chan - - # We only want to respond on the $our_chan channel. - # The string tolower command converts a string to lowercase. - if {[string tolower $chan] != $our_chan} { - return 0 - } - - # The putserv commands lets us send text to the server. - putserv "privmsg $chan :$text too!" - - # All done! Log this command by returning 1. - return 1 - } - - # Here's the end of the script. - -Copyright (C) 2003 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/appendices/index.txt b/doc/html/_sources/appendices/index.txt deleted file mode 100644 index 5e70c306f..000000000 --- a/doc/html/_sources/appendices/index.txt +++ /dev/null @@ -1,15 +0,0 @@ -.. Eggdrop documentation master file, created by - sphinx-quickstart on Tue Jun 28 18:48:35 2016. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Contents: - -.. toctree:: - :maxdepth: 2 - - known-probs - tricks - text-sub - weird-msgs - first-script diff --git a/doc/html/_sources/appendices/known-probs.txt b/doc/html/_sources/appendices/known-probs.txt deleted file mode 100644 index 5afbc00b6..000000000 --- a/doc/html/_sources/appendices/known-probs.txt +++ /dev/null @@ -1,25 +0,0 @@ -Known Problems -Last revised: April 16, 2003 - -============== -Known Problems -============== - - Things that are broken, but aren't getting fixed anytime soon: - - * Non-working alarm(10) in Linux (calls to gethostbyaddr/name() have - blocked for long periods when bind/named doesn't resolve quickly, and - the alarm does not interrupt it). - - Note: This should now work if you use the dns module. - - * High-bit characters are being filtered from channel names. This is a - fault of the Tcl interpreter, and not Eggdrop. The Tcl interpreter - filters the characters when it reads a file for interpreting. Update - your Tcl to version 8.1 or higher. - - * Version 8.1 of Tcl doesn't support unicode characters. - If those characters are handled in a script as text, you run into errors. - Eggdrop can't handle these errors at the moment. - - Copyright (C) 2003 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/appendices/text-sub.txt b/doc/html/_sources/appendices/text-sub.txt deleted file mode 100644 index 1a1ad7823..000000000 --- a/doc/html/_sources/appendices/text-sub.txt +++ /dev/null @@ -1,79 +0,0 @@ -Textfile Substitutions -Last revised: March 08, 2002 - -====================== -Textfile Substitutions -====================== - -These %-variables can be inserted into help files, the banner, the MOTD, -and other text files. There are four variables that can be used to format -text: - -+------+---------------------------------------------------------+ -| %b | display bold | -+------+---------------------------------------------------------+ -| %v | display inverse | -+------+---------------------------------------------------------+ -| %_ | display underline | -+------+---------------------------------------------------------+ -| %f | display flashing via telnet; bold underline via IRC | -+------+---------------------------------------------------------+ - -These variables will be interpreted by Eggdrop and replaced by their -respective values: - -+------+---------------------------------------------------------+ -| %B | bot's nickname (i.e. "LamestBot") | -+------+---------------------------------------------------------+ -| %V | current Eggdrop version (i.e. "eggdrop v1.8.0") | -+------+---------------------------------------------------------+ -| %E | long form of %V (i.e. "Eggdrop v1.8.0 (C) 1997 Robey | -| | Pointer (C) 2010 Eggheads Development Team") | -+------+---------------------------------------------------------+ -| %C | channels the bot is on (i.e. "#lamest, #botnetcentral") | -+------+---------------------------------------------------------+ -| %A | whatever is set in the config file by 'set admin' | -+------+---------------------------------------------------------+ -| %n | whatever is set in the config file by 'set network' | -+------+---------------------------------------------------------+ -| %T | the current time (i.e. "15:00") | -+------+---------------------------------------------------------+ -| %N | the current user's nickname (i.e. "Robey") | -+------+---------------------------------------------------------+ -| %U | the current operating system the bot is running on | -+------+---------------------------------------------------------+ -| %% | a percent sign ("%") | -+------+---------------------------------------------------------+ - -You can also encode messages which can only be read by people -with certain flags: - - %{+m} - Only masters would see this. - %{-} - - %{+A} - Only people with the user flag A see this. - %{-} - - %{+b} - This is only displayed to users doing a remote '.motd' from another bot. - %{-} - - %{+|m} - Only channel masters would see this. - %{-} - -Other variables: - -+-------------+---------------------------------------------------------+ -| %{cols=N} | start splitting output into N columns | -+-------------+---------------------------------------------------------+ -| %{cols=N/W} | same as above, but use a screen width of W | -+-------------+---------------------------------------------------------+ -| %{end} | end columnated or restricted (i.e. %{+m}) block | -+-------------+---------------------------------------------------------+ -| %{center} | center the following text (70 columns) | -+-------------+---------------------------------------------------------+ - - Copyright (C) 1999 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/appendices/tricks.txt b/doc/html/_sources/appendices/tricks.txt deleted file mode 100644 index fd3dd32db..000000000 --- a/doc/html/_sources/appendices/tricks.txt +++ /dev/null @@ -1,47 +0,0 @@ -Eggdrop Tricks -Last revised: December 08, 2003 - -============== -Eggdrop Tricks -============== - - - Here are some little tricks that you may or may not know about, which aren't - documented in other areas. - - - You can rename a built-in command by binding over it. To rename '.status' - to '.report', you'd do:: - - unbind dcc - status *dcc:status - bind dcc m report *dcc:status - - The first line removes the built-in binding on '.status', and the second - line binds '.report' to the built-in status function. - - - If you don't want your logfiles to be deleted after two days and don't - want the bot to create a new logfile each new day, then set 'keep-all-logs' - to 0 and 'switch-logfiles-at' to 2500 in your bot's config file to make it - keeping one logfile all the time. This is not recommended on high traffic - channels. - - - You can modify Eggdrop's output in the partyline, kick messages, and other - texts by editing core.english.lang in the language directory. - - - You can export parts of your config file to separate files. For example, - if you have several config files which differ from themselves only by - the nickname and the used servers, you can export them to an own file - and link it with the 'source' Tcl command, similar to a script. The - advantage of this is that you have to edit/upload only the small file - instead of the big one. This technique is also useful if you want to - maintain the same channel settings, etc across your botnet. - - - You can use variables in your config file, since it's really just a normal - Tcl file. For example, you can set 'userfile' and 'chanfile' to - "yourbot.user" and "yourbot.chan" using the following method:: - - set myvar "yourbot" - set userfile "$myvar.user" - set chanfile "$myvar.chan" - - Copyright (C) 1999 - 2016 Eggheads Development Team - diff --git a/doc/html/_sources/appendices/weird-msg.txt b/doc/html/_sources/appendices/weird-msg.txt deleted file mode 100644 index 962c3418b..000000000 --- a/doc/html/_sources/appendices/weird-msg.txt +++ /dev/null @@ -1,54 +0,0 @@ -Weird Messages That Get Logged -Last revised: March 10, 2003 - -============================== -Weird Messages That Get Logged -============================== - - - Shown below are some messages that Eggdrop might log from time to time - that may seem a bit strange and have meanings which may not be obvious. - - (!) timer drift -- spun N minutes - - This can be caused by one of several reasons. - - - Your bot could have been swapped out of memory for a while, or for - some reason the computer could have stopped letting the bot run. Once - a minute, Eggdrop does a few maintenance things, including counting - down any active Tcl timers. If for some reason, several minutes pass - without Eggdrop being able to do this, it logs this message to let - you know what happened. It's generally a bad thing, because it means - that the system your bot is on is very busy, and the bot can hardly - keep track of the channel very well when it gets swapped out for - minutes at a time. - - - On some systems (at least Linux), if the DNS your bot is using to - lookup hostnames is broken and *very* slow in responding (this can - occur if the DNS server's uplink doesn't exist), then you will get - 4-5 minute timer drifts continuously. This can be fixed by loading - the dns module. - - - The clock on your machine has just been changed. It may have been - running behind by several minutes and was just corrected. - - (!) killmember(Nickname) -> nonexistent - We have yet to track this down. It's a mildly bad thing, however. It - means the bot just got informed by the server that someone left the - channel -- but the bot has no record of that person ever being ON the - channel. - - jwilkinson@mail.utexas.edu had some insight into this one: - - This is not an Eggdrop bug, at least not most of the time. This is a - bug in all but perhaps the very latest ircd systems. It's not uncommon - during netsplits and other joins for the server to lose track of killed - or collided join notices. Also, in some servers, it is possible to - specify non-standard characters, such as caret symbols, which get - falsely interpreted as capital letters. - - When converted to lowercase, these symbols fail to get processed, and - joins are not reported, although parts are. - - - Copyright (C) 2003 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/appendices/weird-msgs.txt b/doc/html/_sources/appendices/weird-msgs.txt deleted file mode 100644 index 962c3418b..000000000 --- a/doc/html/_sources/appendices/weird-msgs.txt +++ /dev/null @@ -1,54 +0,0 @@ -Weird Messages That Get Logged -Last revised: March 10, 2003 - -============================== -Weird Messages That Get Logged -============================== - - - Shown below are some messages that Eggdrop might log from time to time - that may seem a bit strange and have meanings which may not be obvious. - - (!) timer drift -- spun N minutes - - This can be caused by one of several reasons. - - - Your bot could have been swapped out of memory for a while, or for - some reason the computer could have stopped letting the bot run. Once - a minute, Eggdrop does a few maintenance things, including counting - down any active Tcl timers. If for some reason, several minutes pass - without Eggdrop being able to do this, it logs this message to let - you know what happened. It's generally a bad thing, because it means - that the system your bot is on is very busy, and the bot can hardly - keep track of the channel very well when it gets swapped out for - minutes at a time. - - - On some systems (at least Linux), if the DNS your bot is using to - lookup hostnames is broken and *very* slow in responding (this can - occur if the DNS server's uplink doesn't exist), then you will get - 4-5 minute timer drifts continuously. This can be fixed by loading - the dns module. - - - The clock on your machine has just been changed. It may have been - running behind by several minutes and was just corrected. - - (!) killmember(Nickname) -> nonexistent - We have yet to track this down. It's a mildly bad thing, however. It - means the bot just got informed by the server that someone left the - channel -- but the bot has no record of that person ever being ON the - channel. - - jwilkinson@mail.utexas.edu had some insight into this one: - - This is not an Eggdrop bug, at least not most of the time. This is a - bug in all but perhaps the very latest ircd systems. It's not uncommon - during netsplits and other joins for the server to lose track of killed - or collided join notices. Also, in some servers, it is possible to - specify non-standard characters, such as caret symbols, which get - falsely interpreted as capital letters. - - When converted to lowercase, these symbols fail to get processed, and - joins are not reported, although parts are. - - - Copyright (C) 2003 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/coreDocs/assoc.txt b/doc/html/_sources/coreDocs/assoc.txt deleted file mode 100644 index 67de1538d..000000000 --- a/doc/html/_sources/coreDocs/assoc.txt +++ /dev/null @@ -1,18 +0,0 @@ -Last revised: January 1, 2002 - -.. _assoc: - -============ -Assoc Module -============ - -This module provides assoc support, i.e. naming channels on the botnet. - -This module requires: none - -Put this line into your Eggdrop configuration file to load the assoc -module:: - - loadmodule assoc - -Copyright (C) 2000 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/coreDocs/blowfish.txt b/doc/html/_sources/coreDocs/blowfish.txt deleted file mode 100644 index 293e3aa0f..000000000 --- a/doc/html/_sources/coreDocs/blowfish.txt +++ /dev/null @@ -1,21 +0,0 @@ -Last revised: January 28, 2003 - -.. _blowfish: - -=============== -Blowfish Module -=============== - - Eggdrop can encrypt your userfile, so users can have secure passwords. - Please note that when you change your encryption method later (i.e. using - other modules like a md5 module), you can't use your current userfile - anymore. Eggdrop will not start without an encryption module. - - This module requires: none - - Put this line into your Eggdrop configuration file to load the blowfish - module:: - - loadmodule blowfish - - Copyright (C) 2000 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/coreDocs/channels.txt b/doc/html/_sources/coreDocs/channels.txt deleted file mode 100644 index c9f952c81..000000000 --- a/doc/html/_sources/coreDocs/channels.txt +++ /dev/null @@ -1,395 +0,0 @@ -Last revised: October 25, 2010 - -.. _channels: - -=============== -Channels Module -=============== - -This module provides channel related support for the bot. Without it, -you won't be able to make the bot join a channel or save channel specific -userfile information. - -This module requires: none - -Put this line into your Eggdrop configuration file to load the channels -module:: - - loadmodule channels - -There are also some variables you can set in your config file: - - set chanfile "LamestBot.chan" - Enter here the filename where dynamic channel settings are stored. - - - set force-expire 0 - Set this setting to 1 if you want your bot to expire bans/exempts/invites - set by other opped bots on the channel. - - - set share-greet 0 - Set this setting to 1 if you want your bot to share user greets with - other bots on the channel if sharing user data. - - - set use-info 1 - Set this setting to 1 if you want to allow users to store an info line. - - set allow-ps 0 - Set this setting to 1 if you want to allow both +p and +s channel modes - to be enforced at the same time by the chanmode channel setting. - Make sure your server supports +ps mixing or you may get endless mode - floods. - - channel add #channel { SETTINGS } - Add each static channel you want your bot to sit in using this command. - There are many different possible settings you can insert into this - command, which are explained below. - - chanmode +/- - This setting makes the bot enforce channel modes. It will always add - the + and remove the - modes. - - idle-kick 0 - This setting will make the bot check every minute for idle users. Set - this to 0 to disable idle check. - - stopnethack-mode 0 - This setting will make the bot de-op anyone who enters the channel - with serverops. There are seven different modes for this settings: - - +---+--------------------------------------------------------+ - | 0 | turn off | - +---+--------------------------------------------------------+ - | 1 | isoptest (allow serverop if registered op) | - +---+--------------------------------------------------------+ - | 2 | wasoptest (allow serverop if user had op before split) | - +---+--------------------------------------------------------+ - | 3 | allow serverop if isop or wasop | - +---+--------------------------------------------------------+ - | 4 | allow serverop if isop and wasop. | - +---+--------------------------------------------------------+ - | 5 | If the channel is -bitch, see stopnethack-mode 3 | - | +--------------------------------------------------------+ - | | If the channel is +bitch, see stopnethack-mode 1 | - +---+--------------------------------------------------------+ - | 6 | If the channel is -bitch, see stopnethack-mode 2 | - | +--------------------------------------------------------+ - | | If the channel is +bitch, see stopnethack-mode 4 | - +---+--------------------------------------------------------+ - - revenge-mode 0 - This settings defines how the bot should punish bad users when - revenging. There are four possible settings: - - +---+--------------------------------------------------------------------------+ - | 0 | Deop the user. | - +---+--------------------------------------------------------------------------+ - | 1 | Deop the user and give them the +d flag for the channel. | - +---+--------------------------------------------------------------------------+ - | 2 | Deop the user, give them the +d flag for the channel, and kick them. | - +---+--------------------------------------------------------------------------+ - | 3 | Deop the user, give them the +d flag for the channel, kick, and ban them.| - +---+--------------------------------------------------------------------------+ - - ban-type 3 - This setting defines what type of bans should eggdrop place for - +k users or when revenge-mode is 3. Available types are: - - +---+------------------------+ - | 0 \*!user\@host | - +---+------------------------+ - | 1 \*!\*user\@host | - +---+------------------------+ - | 2 \*!\*\@host | - +---+------------------------+ - | 3 \*!\*user\@\*.host | - +---+------------------------+ - | 4 \*!\*\@*.host | - +---+------------------------+ - | 5 nick!user\@host | - +---+------------------------+ - | 6 nick!\*user\@host | - +---+------------------------+ - | 7 nick!\*\@host | - +---+------------------------+ - | 8 nick!\*user\@*.host | - +---+------------------------+ - | 9 nick!\*\@*.host | - +---+------------------------+ - - You can also specify types from 10 to 19 which correspond to types - 0 to 9, but instead of using a * wildcard to replace portions of the - host, only numbers in hostnames are replaced with the '?' wildcard. - Same is valid for types 20-29, but instead of '?', the '*' wildcard - will be used. - - ban-time 120 - Set here how long temporary bans will last (in minutes). If you - set this setting to 0, the bot will never remove them. - - exempt-time 60 - Set here how long temporary exempts will last (in minutes). If you set - this setting to 0, the bot will never remove them. The bot will check - the exempts every X minutes, but will not remove the exempt if a ban is - set on the channel that matches that exempt. Once the ban is removed, - then the exempt will be removed the next time the bot checks. Please - note that this is an IRCnet feature. - - invite-time 60 - Set here how long temporary invites will last (in minutes). If you set - this setting to 0, the bot will never remove them. The bot will check - the invites every X minutes, but will not remove the invite if a - channel is set to +i. Once the channel is -i then the invite will be - removed the next time the bot checks. Please note that this is an - IRCnet feature. - - aop-delay (minimum:maximum) - This is used for autoop, autohalfop, autovoice. If an op or voice joins - a channel while another op or voice is pending, the bot will attempt to - put both modes on one line. - - +--------------+-----------------------------------------+ - | aop-delay 0 | No delay is used. | - +--------------+-----------------------------------------+ - | aop-delay X | An X second delay is used. | - +--------------+-----------------------------------------+ - | aop-delay X:Y| A random delay between X and Y is used. | - +--------------+-----------------------------------------+ - - need-op { putserv "PRIVMSG #lamest :op me cos i'm lame!" } - This setting will make the bot run the script enclosed in braces - if it does not have ops. This must be shorter than 120 characters. - If you use scripts like getops.tcl or botnetop.tcl, you don't need - to set this setting. - - need-invite { putserv "PRIVMSG #lamest :let me in!" } - This setting will make the bot run the script enclosed in braces - if it needs an invite to the channel. This must be shorter than 120 - characters. If you use scripts like getops.tcl or botnetop.tcl, you - don't need to set this setting. - - need-key { putserv "PRIVMSG #lamest :let me in!" } - This setting will make the bot run the script enclosed in braces - if it needs the key to the channel. This must be shorter than 120 - characters. If you use scripts like getops.tcl or botnetop.tcl, you - don't need to set this setting. - - need-unban { putserv "PRIVMSG #lamest :let me in!" } - This setting will make the bot run the script enclosed in braces - if it needs to be unbanned on the channel. This must be shorter than - 120 characters. If you use scripts like getops.tcl or botnetop.tcl, - you don't need to set this setting. - - need-limit { putserv "PRIVMSG #lamest :let me in!" } - This setting will make the bot run the script enclosed in braces - if it needs the limit to be raised on the channel. This must be - shorter than 120 characters. If you use scripts like getops.tcl or - botnetop.tcl, you don't need to set this setting. - - flood-chan 15:60 - Set here how many channel messages in how many seconds from one - host constitutes a flood. Setting this to 0 or 0:0 disables text - flood protection for the channel. - - flood-deop 3:10 - Set here how many deops in how many seconds from one host constitutes - a flood. Setting this to 0 or 0:0 disables deop flood protection for - the channel. - - flood-kick 3:10 - Set here how many kicks in how many seconds from one host constitutes - a flood. Setting this to 0 or 0:0 disables kick flood protection for - the channel. - - flood-join 5:60 - Set here how many joins in how many seconds from one host constitutes - a flood. Setting this to 0 or 0:0 disables join flood protection for - the channel. - - flood-ctcp 3:60 - Set here how many channel ctcps in how many seconds from one host - constitutes a flood. Setting this to 0 or 0:0 disables ctcp flood - protection for the channel. - - flood-nick 5:60 - Set here how many nick changes in how many seconds from one host - constitutes a flood. Setting this to 0 or 0:0 disables nick flood - protection for the channel. - - - channel set +/- - There are many different options for channels which you can define. - They can be enabled or disabled by a plus or minus in front of them. - - A complete list of all available channel settings: - - enforcebans - When a ban is set, kick people who are on the channel and match - the ban? - - dynamicbans - Only activate bans on the channel when necessary? This keeps the - channel's ban list from getting excessively long. The bot still - remembers every ban, but it only activates a ban on the channel - when it sees someone join who matches that ban. - - userbans - Allow bans to be made by users directly? If turned off, the bot will - require all bans to be made through the bot's console. - - dynamicexempts - Only activate exempts on the channel when necessary? This keeps the - channel's exempt list from getting excessively long. The bot still - remembers every exempt, but it only activates a exempt on the channel - when it sees a ban set that matches the exempt. The exempt remains - active on the channel for as long as the ban is still active. - - userexempts - Allow exempts to be made by users directly? If turned off, the bot will - require all exempts to be made through the bot's console. - - dynamicinvites - Only activate invites on the channel when necessary? This keeps the - channel's invite list from getting excessively long. The bot still - remembers every invite, but the invites are only activated when the - channel is set to invite only and a user joins after requesting an - invite. Once set, the invite remains until the channel goes to -i. - - userinvites - Allow invites to be made by users directly? If turned off, the bot - will require all invites to be made through the bot's console. - - autoop - Op users with the +o flag as soon as they join the channel? - This is insecure and not recommended. - - autohalfop - Halfop users with the +l flag as soon as they join the channel? - This is insecure and not recommended. - - bitch - Only let users with the +o flag have op on the channel? - - greet - Say a user's info line when they join the channel? - - protectops - Re-op a user with the +o flag if they get deopped? - - protecthalfops - Re-halfop a user with the +l flag if they get dehalfopped? - - protectfriends - Re-op a user with the +f flag if they get deopped? - - statuslog - Log the channel status line every 5 minutes? This shows the bot's - status on the channel (op, voice, etc.), the channel's modes, and - the total number of members, ops, voices, regular users, and +b, - +e, and +I modes on the channel. A sample status line follows: - - [01:40] @#lamest (+istn) : [m/1 o/1 v/4 n/7 b/1 e/5 I/7] - - revenge - Remember people who deop/kick/ban the bot, valid ops, or friends - and punish them? Users with the +f flag are exempt from revenge. - - revengebot - This is similar to to the 'revenge' option, but it only triggers - if a bot gets deopped, kicked or banned. - - autovoice - Voice users with the +v flag when they join the channel? - - secret - Prevent this channel from being listed on the botnet? - - shared - Share channel-related user info for this channel? - - cycle - Cycle the channel when it has no ops? - - dontkickops - Do you want the bot not to be able to kick users who have the +o - flag, letting them kick-flood for instance to protect the channel - against clone attacks? - - inactive - This prevents the bot from joining the channel (or makes it leave the - channel if it is already there). It can be useful to make the bot leave - a channel without losing its settings, channel-specific user flags, - channel bans, and without affecting sharing. - - seen - Respond to seen requests in the channel? The seen module must be - loaded for this to work. - - nodesynch - Allow non-ops to perform channel modes? This can stop the bot from - fighting with services such as ChanServ, or from kicking IRCops when - setting channel modes without having ops. - - static - Allow only permanent owners to remove the channel? - - The following settings are used as default values when you .+chan #chan or .tcl - channel add #chan. Look in the section above for explanation of every option. - - set global-flood-chan 15:60 - - set global-flood-deop 3:10 - - set global-flood-kick 3:10 - - set global-flood-join 5:60 - - set global-flood-ctcp 3:60 - - set global-flood-nick 5:60 - - set global-chanmode "nt-likm" - - set global-stopnethack-mode 0 - - set global-revenge-mode 0 - - set global-ban-time 120 - - set global-exempt-time 60 - - set global-invite-time 60 - - set global-chanset { - | -autoop - | -autovoice - | -bitch - | +cycle - | +dontkickops - | +dynamicbans - | +dynamicexempts - | +dynamicinvites - | -enforcebans - | +greet - | -inactive - | -nodesynch - | -protectfriends - | +protectops - | -revenge - | -revengebot - | -secret - | -seen - | +shared - | -statuslog - | +userbans - | +userexempts - | +userinvites - | +protecthalfops - | +autohalfop - | -static - - } - - Copyright (C) 2000 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/coreDocs/compress.txt b/doc/html/_sources/coreDocs/compress.txt deleted file mode 100644 index 9ec1cc749..000000000 --- a/doc/html/_sources/coreDocs/compress.txt +++ /dev/null @@ -1,31 +0,0 @@ -Last revised: May 27, 2004 - -.. _compress: - -=============== -Compress Module -=============== - -This module provides provides support for file compression. It can be used -to compress files via Tcl or to transfer the userfile compressed during the -share process, saving bandwidth. - -This module requires: share - -Put this line into your Eggdrop configuration file to load the compress -module:: - - loadmodule compress - -There are also some variables you can set in your config file: - - set share-compressed 1 - Allow compressed sending of user files? The user files are compressed - with the compression level defined in 'compress-level'. - - set compress-level 9 - This is the default compression level used. These levels are the same - as those used by GNU gzip. - - -Copyright (C) 2000 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/coreDocs/console.txt b/doc/html/_sources/coreDocs/console.txt deleted file mode 100644 index 677196d36..000000000 --- a/doc/html/_sources/coreDocs/console.txt +++ /dev/null @@ -1,36 +0,0 @@ -Last revised: January 1, 2002 - -.. _console: - -============== -Console Module -============== - -This module provides storage of console settings when you exit the bot or -type .store on the partyline. - -This module requires: none - -Put this line into your Eggdrop configuration file to load the console -module:: - - loadmodule console - -There are also some variables you can set in your config file: - - set console-autosave 1 - Save users console settings automatically? Otherwise, they have - to use the .store command. - - - set force-channel 0 - If a user doesn't have any console settings saved, which channel - do you want them automatically put on? - - - set info-party 0 - Enable this setting if a user's global info line should be displayed - when they join a botnet channel. - - -Copyright (C) 2000 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/coreDocs/core.txt b/doc/html/_sources/coreDocs/core.txt deleted file mode 100644 index a51f92181..000000000 --- a/doc/html/_sources/coreDocs/core.txt +++ /dev/null @@ -1,652 +0,0 @@ -Last revised: October 25, 2010 - -===================== -Eggdrop Core Settings -===================== - -This file describes the syntax and all the settings of your Eggdrop -configuration file. Please note that you don't need to set all of these -variables to make your bot work properly. - -Executable Path ---------------- - -The first line in an Eggdrop configuration file should contain -a fully qualified path to your Eggdrop executable. It has to be -implemented in the way the example shows to make the config file -work as a shell script. - -Example:: - - #! /path/to/eggdrop - - -Basic Settings --------------- - -You can change the basic Eggdrop appearance and behavior in this section. - - set username "lamest" - This setting defines the username the bot uses on IRC. This setting has - no effect if an ident daemon is running on your bot's machine. - - set admin "Lamer " - This setting defines which contact person should be shown in .status, - /msg help, and other places. You really should include this information. - - set network "SomeIrcNetwork" - This setting is used only for info to share with others on your botnet. - Set this to the IRC network your bot is connected to. - - set timezone "EST" - This setting defines which timezone is your bot in. It's used for internal - routines as well as for logfile timestamping and scripting purposes. - The timezone string specifies the name of the timezone and must be three - or more alphabetic characters. For example, Central European Time(UTC+1) - should be "CET". - - set offset "5" - The offset setting specifies the time value to be added to the local - time to get Coordinated Universal Time (UTC aka GMT). The offset is - positive if the local timezone is west of the Prime Meridian and - negative if it is east. The value (in hours) must be between -23 and - 23. For example, if the timezone is UTC+1, the offset is -1. - - set env(TZ) "$timezone $offset" (disabled by default) - If you don't want to use the timezone setting for scripting purposes - only, but instead everywhere possible, then use this setting. - - | set vhost4 "99.99.0.0" - | set vhost4 "virtual.host.com" - | If you're using virtual hosting (your machine has more than 1 IP), you - may want to specify the particular IP to bind to. You can specify either - by hostname or by IP. Note that this is not used for listening. Use the - 'listen-addr' variable to specify the listening address. - - | set vhost6 "2001:db8:618:5c0:263::" - | set vhost6 "my.ipv6.host.com" - | IPv6 vhost to bind to for outgoing IPv6 connections. You can set it - to any valid IPv6 address or hostname, resolving to an IPv6 address. - Note that this is not used for listening. Use the 'listen-addr' - variable to specify the listening address. - - | set listen-addr "99.99.0.0" - | set listen-addr "2001:db8:618:5c0:263::" - | set listen-addr "virtual.host.com" - | IPv4/IPv6 address (or hostname) to bind for listening. - If you don't set this variable, eggdrop will listen on all available - IPv4 or IPv6 interfaces, depending on the 'prefer-ipv6' variable. - Note that on most platforms, IPv6 sockets are able to accept both - IPv4 and IPv6 connections. - - set prefer-ipv6 "1" - Prefer IPv6 over IPv4 for connections and dns resolution. - If the preferred protocol family is not suppored, other possible - families will be tried. - - addlang "english" - If you want to have your Eggdrop messages displayed in another language, - change this command to match your preferences. An alternative would be - to set the environment variable EGG_LANG to that value. - - Languages included with Eggdrop: Danish, English, French, Finnish, - German. - -Log Files ---------- - -Eggdrop is capable of logging various things, from channel chatter to -partyline commands and file transfers. - -Logfiles are normally kept for 24 hours. Afterwards, they will be renamed -to "(logfilename).yesterday". After 48 hours, they will be overwritten by -the logfile of the next day. - - set max-logs 20 - This is the maximum number of concurrent logfiles that can be opened - for writing at one time. At most, this value should be the maximum - number of channels you expect to create log files for. There is no - value for 'infinity'; very few cases should ever require more than 20. - A decrease to this value while running will require a restart (not rehash) - of the bot. However, don't decrease it below 5. - - set max-logsize 0 - This is the maximum size of your logfiles. Set it to 0 to disable. - This value is in kilobytes, so '550' would mean cycle logs when it - reaches the size of 550 kilobytes. Note that this only works if you - have keep-all-logs set to 0 (OFF). - - set quick-logs 0 - This could be good if you have had a problem with logfiles filling - your quota/hard disk or if you log +p and publish it to the web, and - you need more up-to-date info. Note that this setting might increase - the CPU usage of your bot (on the other hand it will decrease your RAM - usage). - - set raw-log 0 - This setting allows you the logging of raw incoming server traffic via - console/log flag 'r', raw outgoing server traffic via console/log mode - 'v', raw botnet traffic via console/log mode 't', and raw share traffic - via console/log mode 'h'. These flags can create a large security hole, - allowing people to see user passwords. This is now restricted to +n users - only. Please choose your owners with care. - -logfile "logs/logfile" - This setting tells the bot what should be logged, from where, and to - which file. - - Logfile flags: - - +---+------------------------------------------------------+ - | b | information about bot linking and userfile sharing | - +---+------------------------------------------------------+ - | c | commands | - +---+------------------------------------------------------+ - | d | misc debug information | - +---+------------------------------------------------------+ - | h | raw share traffic | - +---+------------------------------------------------------+ - | j | joins, parts, quits, and netsplits on the channel | - +---+------------------------------------------------------+ - | k | kicks, bans, and mode changes on the channel | - +---+------------------------------------------------------+ - | m | private msgs, notices and ctcps to the bot | - +---+------------------------------------------------------+ - | o | misc info, errors, etc (IMPORTANT STUFF) | - +---+------------------------------------------------------+ - | p | public text on the channel | - +---+------------------------------------------------------+ - | r | raw incoming server traffic | - +---+------------------------------------------------------+ - | s | server connects, disconnects, and notices | - +---+------------------------------------------------------+ - | t | raw botnet traffic | - +---+------------------------------------------------------+ - | v | raw outgoing server traffic | - +---+------------------------------------------------------+ - | w | wallops (make sure the bot sets +w in init-server) | - +---+------------------------------------------------------+ - | x | file transfers and file-area commands | - +---+------------------------------------------------------+ - - Note that modes d, h, r, t, and v can fill disk quotas quickly. There are - also eight user-defined levels (1-8) which can be used by Tcl scripts. - - Each logfile belongs to a certain channel. Events of type 'k', 'j', and - 'p' are logged to whatever channel they happened on. Most other events - are currently logged to every channel. You can make a logfile belong to - all channels by assigning it to channel "\*". - - Examples:: - - logfile mco * "logs/eggdrop.log" - logfile jpk #lamest "logs/lamest.log" - - In 'eggdrop.log', put private msgs/ctcps, commands, misc info, and errors - from any channel. - - In 'lamest.log', log all joins, parts, kicks, bans, public chatter, and - mode changes from #lamest. - - set log-time 1 - Use this feature to timestamp entries in the log file. - - set timestamp-format "[%H:%M:%S]" - Set the following to the timestamp for the logfile entries. Popular times - might be "[%H:%M]" (hour, min), or "[%H:%M:%S]" (hour, min, sec). - Read 'man strftime' for more formatting options. Keep it below 32 chars. - - set keep-all-logs 0 - If you want to keep your logfiles forever, turn this setting on. All - logfiles will get the suffix - ".[day, 2 digits][month, 3 letters][year, 4 digits]". Note that your - quota/hard-disk might be filled by this, so check your logfiles - often and download them. - - set switch-logfiles-at 300 - You can specify when Eggdrop should switch logfiles and start fresh. - use military time for this setting. 300 is the default, and describes - 03:00 (AM). - - set quiet-save 0 - "Writing user file..." and "Writing channel file..." messages won't be - logged anymore if this option is enabled. If you set it to 2, the - "Backing up user file..." and "Backing up channel file..." messages will - also not be logged. In addition to this, you can disable the "Switching - logfiles..." and the new date message at midnight, by setting this to 3. - - set logfile-suffix ".%d%b%Y" - If keep-all-logs is 1, this setting will define the suffix of the - logfiles. The default will result in a suffix like "04May2000". "%Y%m%d" - will produce the often used yyyymmdd format. Read the strftime manpages - for more options. NOTE: On systems which don't support strftime, the - default format will be used _always_. - -Console Settings ----------------- - - set console "mkcobxs" - This is the default console mode. It uses the same event flags as the - log files do. The console channel is automatically set to your "primary" - channel, which is set in the modules section of the config file. Masters - can change their console channel and modes with the '.console' command. - -File and Directory Settings ---------------------------- - - set userfile "LamestBot.user" - Specify here the filename your userfile should be saved as. - - - set pidfile "pid.LamestBot" - Specify here the filename Eggdrop will save its pid to. If no pidfile is - specified, pid.(botnet-nick) will be used. - - - set help-path "help/" - Specify here where Eggdrop should look for help files. Don't modify this - setting unless you know what you're doing! - - - set text-path "text/" - Specify here where Eggdrop should look for text files. This is used for - certain Tcl and DCC commands. - - - set temp-path "/tmp" - Set here a place to store temporary files. - - - set motd "text/motd" - The MOTD (Message Of The day) is displayed when people dcc chat or telnet - to the bot. Look at doc/TEXT-SUBSTITUTIONS for options. - - - set telnet-banner "text/banner" - This banner will be displayed on telnet connections. Look at - doc/text-substitutions.doc for options. - - - set userfile-perm 0600 - This specifies what permissions the user, channel, and notes files should - be set to. The octal values are the same as for the chmod system command. - - To remind you:: - - | u g o u g o u g o - |0600 rw------- 0400 r-------- 0200 -w------- u - user - |0660 rw-rw---- 0440 r--r----- 0220 -w--w---- g - group - |0666 rw-rw-rw- 0444 r--r--r-- 0222 -w--w--w- o - others - - Note that the default 0600 is the most secure one and should only be - changed if you need your files for shell scripting or other external - applications. - - set mod-path "modules/" - This path specifies the path were Eggdrop should look for its modules. - If you run the bot from the compilation directory, you will want to set - this to "". If you use 'make install' (like all good kiddies do ;), this - is a fine default. Otherwise, use your head :). - -Botnet/Dcc/Telnet Settings --------------------------- - -Settings in this section should be unimportant for you until you deal with -botnets (multiple Eggdrops connected together to maximize efficiency). You -should read doc/BOTNET before modifying these settings. - - set botnet-nick "LlamaBot" (disabled by default) - If you want to use a different nickname on the botnet than you use on - IRC (i.e. if you're on an un-trusted botnet), un-comment this line - and set it to the nick you would like to use. - - listen - This opens a telnet port by which you and other bots can interact with - the Eggdrop by telneting in. - - There are more options for the listen command in doc/tcl-commands.doc. - Note that if you are running more than one bot on the same machine, you - will want to space the telnet ports at LEAST 5 apart, although 10 is even - better. - - Valid ports are typically anything between 1025 and 65535 assuming the - port is not already in use. - - If you would like the bot to listen for users and bots in separate ports, - use the following format:: - - listen 3333 bots - listen 4444 users - - If you wish to use only one port, use this format:: - - listen 3333 all - - You can setup a SSL port by prepending a plus sign to it:: - - listen +5555 all - - You need to un-comment this line and change the port number in order to - open the listen port. You should not keep this set to 3333. - - set remote-boots 2 - This setting defines whether or not people can boot users on the Eggdrop - from other bots in your botnet. Valid settings are: - - +---+----------------------------+ - | 0 | allow *no* outside boots | - +---+----------------------------+ - | 1 | allow boots from sharebots | - +---+----------------------------+ - | 2 | allow any boots | - +---+----------------------------+ - - set share-unlinks 1 - This setting prohibits Eggdrop to unlink from share bots if an remote - bots tells so. - - set protect-telnet 0 - This setting will drop telnet connections not matching a known host. - - set dcc-sanitycheck 0 - This setting will make the bot ignore DCC chat requests which appear to - have bogus information on the grounds that the user may have been trying - to make the bot connect to somewhere that will get it into trouble, or - that the user has a broken client, in which case the connect wouldn't - work anyway. - - set ident-timeout 5 - This setting defines the time in seconds the bot should wait for ident reply - before the lookup fails. The default ident on timeout is 'telnet'. - - set require-p 0 - Define here whether or not a +o user still needs the +p flag to dcc the - bot. - - set open-telnets 0 - If you want people allow to telnet in and type 'NEW' to become a new user, - set this to 1. This is similar to the 'hello' msg command. The - protect-telnet setting must be set to 0 to use this. - - set stealth-telnets 0 - If you don't want Eggdrop to identify itself as an Eggdrop on a telnet - connection, set this setting to 1. Eggdrop will display 'Nickname' - instead. - - set use-telnet-banner 0 - If you want Eggdrop to display a banner when telneting in, set this - setting to 1. The telnet banner is set by 'set telnet-banner'. - - set connect-timeout 15 - This setting defines a time in seconds that the bot should wait before - a dcc chat, telnet, or relay connection times out. - - set dcc-flood-thr 3 - Specify here the number of lines to accept from a user on the partyline - within 1 second before they are considered to be flooding and therefore - get booted. - - set telnet-flood 5:60 - Define here how many telnet connection attempts in how many seconds from - the same host constitute a flood. The correct format is Attempts:Seconds. - - set paranoid-telnet-flood 1 - If you want telnet-flood to apply even to +f users, set this setting - to 1. - - set resolve-timeout 15 - Set here the amount of seconds before giving up on hostname/address - lookup (you might want to increase this if you are on a slow network). - -Advanced Settings ------------------ - - set firewall "!sun-barr.ebay:3666" - Set this to your socks host if your Eggdrop sits behind a firewall. If - you use a Sun "telnet passthru" firewall, prefix the host with a "!". - - set nat-ip "127.0.0.1" - If you have a NAT firewall (you box has an IP in one of the following - ranges: 192.168.0.0-192.168.255.255, 172.16.0.0-172.31.255.255, - 10.0.0.0-10.255.255.255 and your firewall transparently changes your - address to a unique address for your box) or you have IP masquerading - between you and the rest of the world, and /dcc chat, /ctcp chat or - userfile sharing aren't working, enter your outside IP here. This IP - is used for transfers only, and has nothing to do with the vhost4/6 or - listen-addr settings. You may still need to set them. - - set reserved-portrange 2010:2020 - If you want all dcc file transfers to use a particular portrange either - because you're behind a firewall, or for other security reasons, set it - here. - - set ignore-time 15 - Set the time in minutes that temporary ignores should last. - - set hourly-updates 00 - Define here what Eggdrop considers 'hourly'. All calls to it, including - such things as note notifying or userfile saving, are affected by this. - - Example:: - - set hourly-updates 15 - - The bot will save its userfile 15 minutes past every hour. - - set owner "MrLame, MrsLame" - Un-comment this line and set the list of owners of the bot. - You NEED to change this setting. - - set notify-newusers "$owner" - Who should a note be sent to when new users are learned? - - set default-flags "hp" - Enter the flags that all new users should get by default. See '.help - whois' on the partyline for a list of flags and their descriptions. - - set whois-fields "url birthday" - Enter all user-defined fields that should be displayed in a '.whois'. - This will only be shown if the user has one of these extra fields. - You might prefer to comment this out and use the userinfo1.0.tcl script - which provides commands for changing all of these. - - | unbind dcc n tcl \*dcc:tcl - | unbind dcc n set \*dcc:set - | Comment these two lines if you wish to enable the .tcl and .set commands. - If you select your owners wisely, you should be okay enabling these. - - set must-be-owner 1 - If you enable this setting, only permanent owners (owner setting) will - be able to use .tcl and .set. Moreover, if you want to only let permanent - owners use .dump, then set this to 2. - - unbind dcc n simul \*dcc:simul - Comment out this line to add the 'simul' partyline command (owners - can manipulate other people on the party line). Please select owners - wisely and use this command ethically! - - set max-dcc 50 - Set here the maximum number of dcc connections you will allow. You can - increase this later, but never decrease it. - - set allow-dk-cmds 1 - Enable this setting if you want +d & +k users to use commands bound - as -\|-. - - set dupwait-timeout 5 - If your Eggdrop rejects bots that actually have already disconnected - from another hub, but the disconnect information has not yet spread - over the botnet due to lag, use this setting. The bot will wait - dupwait-timeout seconds before it checks again and then finally - reject the bot. - - set strict-host 1 - Set this to 0 if you want the bot to strip '~+-^=' characters from - user@hosts before matching them. This setting is currently kept for - compatibility, but will be removed from the next release. Please leave - it set to 1 for now to avoid problems with your user files in the future. - - set cidr-support 0 - Enables cidr support for b/e/I modes if set to 1. This means the bot - will understand and match modes in cidr notation, and will be able to - put and enforce such bans or unban itself, if banned with a cidr mask. - Do NOT set this, if your network/server does not support cidr! - -SSL Settings ------------- - -Settings in this section take effect when eggdrop is compiled with TLS -support. - - set ssl-privatekey "eggdrop.key" - File containing your private key, needed for the SSL certificate - (see below). You can create one issuing the following command:: - - openssl genrsa -out eggdrop.key 4096 - - It will create a 4096 bit RSA key, strong enough for eggdrop. - This is required for SSL hubs/listen ports, secure file transfer and - /ctcp botnick schat - For your convenience, you can type 'make sslcert' after 'make install' - and you'll get a key and a certificate in your DEST directory. - - set ssl-certificate "eggdrop.crt" - Specify the filename where your SSL certificate is located. If you - don't set this, eggdrop will not be able to act as a server in SSL - connections, as with most ciphers a certificate and a private key - are required on the server side. Must be in PEM format. - If you don't have one, you can create it using the following command:: - - openssl req -new -key eggdrop.key -x509 -out eggdrop.crt -days 365 - - This is required for SSL hubs/listen ports, secure file transfer and - /ctcp botnick schat - For your convenience, you can type 'make sslcert' after 'make install' - and you'll get a key and a certificate in your DEST directory. - - set ssl-verify-depth 9 - Sets the maximum depth for the certificate chain verification that shall - be allowed for ssl. When certificate verification is enabled, any chain - exceeding this depth will fail verification. - - | set ssl-capath "/etc/ssl/" - | set ssl-cafile "" - | Specify the location at which CA certificates for verification purposes - are located. These certificates are trusted. If you don't set this, - certificate verification will not work. - - - set ssl-ciphers "" - Specify the list of ciphers (in order of preference) allowed for use with - ssl. The cipher list is one or more cipher strings separated by colons, - commas or spaces. Unavailable ciphers are silently ignored unless no - useable cipher could be found. For the list of possible cipher strings - and their meanings, please refer to the ciphers(1) manual. - Note: if you set this, the value replaces any ciphers OpenSSL might use by - default. To include the default ciphers, you can put DEFAULT as a cipher - string in the list. - For example:: - - set ssl-ciphers "DEFAULT ADH" - - ... will make eggdrop allow the default OpenSSL selection plus anonymous - DH ciphers. - - :: - - set ssl-ciphers "ALL" - - ... will make eggdrop allow all ciphers supported by OpenSSL, in a - reasonable order. - - - set ssl-cert-auth 0 - Enable certificate authorization. Set to 1 to allow users and bots to - identify automatically by their certificate fingerprints. Setting it - to 2 to will force fingerprint logins. With a value of 2, users without - a fingerprint set or with a certificate UID not matching their handle - won't be allowed to login on SSL enabled telnet ports. Fingerprints - must be set in advance with the .fprint and .chfinger commands. - NOTE: this setting has no effect on plain-text ports. - - You can control SSL certificate verification using the following variables. - All of them are flag-based. You can set them by adding together the numbers - for all exceptions you want to enable. By default certificate verification - is disabled and all certificates are assumed to be valid. - - The options are the following: - - +---+---------------------------------------------+ - | 0 | disable verification | - +---+---------------------------------------------+ - | 1 | enable certificate verification | - +---+---------------------------------------------+ - | 2 | allow self-signed certificates | - +---+---------------------------------------------+ - | 4 | don't check peer common or alt names | - +---+---------------------------------------------+ - | 8 | allow expired certificates | - +---+---------------------------------------------+ - | 16| allow certificates which are not valid yet | - +---+---------------------------------------------+ - | 32| allow revoked certificates | - +---+---------------------------------------------+ - - set ssl-verify-dcc 0 - Control certificate verification for DCC chats (only /dcc chat botnick) - - set ssl-verify-bots 0 - Control certificate verification for linking to hubs - - set ssl-verify-clients 0 - Control cerfificate verification for SSL listening ports. This includes - leaf bots connecting, users telneting in and /ctcp bot chat. - -Modules -------- - -After the core settings, you should start loading modules. Modules are -loaded by the command "loadmodule ". Eggdrop looks for modules -in the directory you specified by the module-path setting in the files -and directories section. - -Please note that for different configurations, different modules are needed. -Four examples: - - Channel Security Bot: - This bot needs the channels, blowfish, console, dns, irc, and (if you - like) ctcp modules loaded. More is not needed and makes the bot slower. - - Public IRC Bot: - A public bot should have all modules available loaded since they provide - all functions for everyday use. - - Secure Filesys Bot: - This bot needs all normal IRC operating modules, but not the notes, seen, - ctcp or share modules. - - Limbo Bot: - A limbo bot (serves as a botnet hub outside IRC) just needs the - channels, console, dns, and maybe notes or share modules loaded. Of - course, blowfish needs to be loaded here, too. - -Scripts -------- - -The scripts section should be placed at the end of the config file. All -modules should be loaded and their variables should be set at this point. - - source scripts/script.tcl - This line loads script.tcl from the scripts directory inside your - Eggdrop's directory. All scripts should be put there, although you can - place them where you like as long as you can supply a fully qualified - path to them. - - Some commonly loaded scripts are alltools.tcl and action.fix.tcl. - - The appropriate source lines are:: - - source scripts/alltools.tcl - source scripts/action.fix.tcl - -Copyright (C) 2000 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/coreDocs/ctcp.txt b/doc/html/_sources/coreDocs/ctcp.txt deleted file mode 100644 index f73718911..000000000 --- a/doc/html/_sources/coreDocs/ctcp.txt +++ /dev/null @@ -1,40 +0,0 @@ -Last revised: February 12, 2002 - -.. _ctcp: - -=========== -CTCP Module -=========== - -This module provides the normal ctcp replies that you would expect. -Without it loaded, CTCP CHAT will not work. - -This module requires: server - -Put this line into your Eggdrop configuration file to load the ctcp -module:: - - loadmodule ctcp - -There are also some variables you can set in your config file: - - set ctcp-mode 0 - Set here how the ctcp module should answer ctcps. There are 3 possible - operating modes: - - +---+--------------------------------------------------------------+ - | 0 | Normal behavior is used. | - +---+--------------------------------------------------------------+ - | 1 | The bot ignores all ctcps, except for CHAT and PING requests | - | | by users with the +o flag. | - +---+--------------------------------------------------------------+ - | 2 | Normal behavior is used, however the bot will not answer more| - | | than X ctcps in Y seconds (defined by 'set flood-ctcp'). | - +---+--------------------------------------------------------------+ - -There are also several variables to help make your bot less noticeable. -They are: ctcp-version, ctcp-finger, and ctcp-userinfo. You can use set -to set them to values you'd like. - - -Copyright (C) 2000 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/coreDocs/dns.txt b/doc/html/_sources/coreDocs/dns.txt deleted file mode 100644 index 9aa3f82a2..000000000 --- a/doc/html/_sources/coreDocs/dns.txt +++ /dev/null @@ -1,49 +0,0 @@ -Last revised: September 26, 2010 - -.. _dns: - -========== -DNS Module -========== - -This module provides asynchronous dns support. This will avoid long periods -where the bot just hangs there, waiting for a hostname to resolve, which will -often let it timeout on all other connections. - -This module requires: none - -Put this line into your Eggdrop configuration file to load the dns -module:: - - loadmodule dns - -There are also some variables you can set in your config file: - - set dns-servers "8.8.8.8 8.8.4.4" - In case your bot has trouble finding dns servers or you want to use - specific ones, you can set them here. The value is a list of dns servers. - The relative order doesn't matter. You can also specify a non-standard - port. - The default is to use the system specified dns servers. You don't need to - modify this normally. - - set dns-cache 86400 - Specify how long should the DNS module cache replies at maximum. The - value must be in seconds. - Note that it will respect the TTL of the reply and this is just an upper - boundary. - - set dns-negcache 600 - Specify how long should the DNS module cache negative replies (NXDOMAIN, - DNS Lookup failed). The value must be in seconds. - - set dns-maxsends 4 - How many times should the DNS module resend the query for a given domain - if it receives no reply? - - set dns-retrydelay 3 - Specify how long should the DNS module wait for a reply before resending - the query. The value must be in seconds. - - -Copyright (C) 2000 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/coreDocs/filesys.txt b/doc/html/_sources/coreDocs/filesys.txt deleted file mode 100644 index 90872b822..000000000 --- a/doc/html/_sources/coreDocs/filesys.txt +++ /dev/null @@ -1,49 +0,0 @@ -Last revised: May 26, 2004 - -.. _filesys: - -============== -Filesys Module -============== - -This module provides an area within the bot where users can store and manage -files. With this module, the bot is usable as a file server. - -This module requires: transfer - -Put this line into your Eggdrop configuration file to load the filesys -module:: - - loadmodule filesys - -There are also some variables you can set in your config file: - - set files-path "/home/mydir/eggdrop/filesys" - Set here the 'root' directory for the file system. - - set incoming-path "/home/mydir/eggdrop/filesys/incoming" - If you want to allow uploads, set this to the directory uploads should be - put into. Set this to "" if you don't want people to upload files to your - bot. - - set upload-to-pwd 0 - If you don't want to have a central incoming directory, but instead - want uploads to go to the current directory that a user is in, set this - setting to 1. - - set filedb-path "" - Eggdrop creates a '.filedb' file in each subdirectory of your file area - to keep track of its own file system information. If you can't do that - (for example, if the dcc path isn't owned by you, or you just don't want - it to do that) specify a path here where you'd like all of the database - files to be stored instead. - - set max-file-users 20 - Set here the maximum number of people that can be in the file area at - once. Setting this to 0 makes it effectively infinite. - - set max-filesize 1024 - Set here the maximum allowable file size that will be received (in KB). - Setting this to 0 makes it effectively infinite. - -Copyright (C) 2000 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/coreDocs/index.txt b/doc/html/_sources/coreDocs/index.txt deleted file mode 100644 index 5377ce763..000000000 --- a/doc/html/_sources/coreDocs/index.txt +++ /dev/null @@ -1,28 +0,0 @@ -.. Eggdrop documentation master file, created by - sphinx-quickstart on Tue Jun 28 18:48:35 2016. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Contents: - -.. toctree:: - :maxdepth: 2 - - core - modules - assoc - blowfish - channels - compress - console - ctcp - dns - filesys - irc - notes - seen - server - share - transfer - uptime - woobie diff --git a/doc/html/_sources/coreDocs/irc.txt b/doc/html/_sources/coreDocs/irc.txt deleted file mode 100644 index 8402600d3..000000000 --- a/doc/html/_sources/coreDocs/irc.txt +++ /dev/null @@ -1,154 +0,0 @@ -Last revised: August 21, 2004 - -.. _irc: - -========== -IRC Module -========== - -This module controls the bots interaction on IRC. It allows the bot to -join channels, etc. You have to load this if you want your bot to come on -irc. - - This module requires: server, channels - -Put this line into your Eggdrop configuration file to load the irc -module:: - - loadmodule irc - -There are also some variables you can set in your config file: - - set bounce-bans 1 - Set this to 1 if you want to bounce all server bans. - - set bounce-exempts 0 - Set this to 1 if you want to bounce all server exemptions (+e modes). - This is disabled if use-exempts is disabled. - - set bounce-invites 0 - Set this to 1 if you want to bounce all server invitations (+I modes). - This is disabled if use-invites is disabled. - - set bounce-modes 0 - Set this to 1 if you want to bounce all server modes. - - set max-modes 30 - There is a global limit for +b/+e/+I modes. This limit should be set to - the same value as max-bans for networks that do not support +e/+I. - - set max-bans 30 - Set here the maximum number of bans you want the bot to set on a channel. - Eggdrop will not place any more bans if this limit is reached. Undernet - currently allows 45 bans, IRCnet allows 30, EFnet allows 100, and DALnet - allows 100. - - set max-exempts 20 - Set here the maximum number of exempts you want Eggdrop to set on a - channel. Eggdrop will not place any more exempts if this limit is - reached. - - set max-invites 20 - Set here the maximum number of invites you want Eggdrop to set on a - channel. Eggdrop will not place any more invites if this limit is - reached. - - | set use-exempts 0 - | set use-invites 0 - - These settings should be left commented unless the default values are - being overridden. By default, exempts and invites are on for EFnet and - IRCnet, but off for all other large networks. This behavior can be - modified with the following 2 flags. If your network doesn't support - +e/+I modes then you will be unable to use these features. - - set learn-users 0 - If you want people to be able to add themselves to the bot's userlist - with the default userflags (defined above in the config file) via the - 'hello' msg command, set this to 1. - - set wait-split 600 - Set here the time (in seconds) to wait for someone to return from a - netsplit (i.e. wasop will expire afterwards). Set this to 1500 on IRCnet - since its nick delay stops after 30 minutes. - - set wait-info 180 - Set here the time (in seconds) that someone must have been off-channel - before re-displaying their info line. - - set mode-buf-length 200 - Set this to the maximum number of bytes to send in the arguments of - modes sent to the server. Most servers default this to 200. - - | unbind msg - hello \*msg:hello - | bind msg - myword \*msg:hello - - Many IRCops find bots by seeing if they reply to 'hello' in a msg. You - can change this to another word by un-commenting thse two lines and - changing "myword" to the word wish to use instead of'hello'. It must be - a single word. - - - | unbind msg - ident \*msg:ident - | unbind msg - addhost \*msg:addhost - Many takeover attempts occur due to lame users blindly /msg ident'ing to - - the bot and attempting to guess passwords. We now unbind this command by - default to discourage them. You can enable this command by un-commenting - these two lines. - - | set opchars "@" - | #set opchars "@&~" - - Some IRC servers are using some non-standard op-like channel - prefixes/modes. Define them here so the bot can recognize them. Just - "@" should be fine for most networks. Un-comment the second line for - some UnrealIRCds. - - set no-chanrec-info 0 - If you are so lame you want the bot to display peoples info lines, even - when you are too lazy to add their chanrecs to a channel, set this to 1. - *NOTE* This means *every* user with an info line will have their info - line displayed on EVERY channel they join (provided they have been gone - longer than wait-info). - -These were the core irc module settings. There are more settings for -'net-type' 1 and 5. net-type has to be set in the server module config -section. - -Use the following settings only if you set 'net-type' to 1! - - set prevent-mixing 1 - At the moment, the current IRCnet IRCd version (2.10) doesn't support the - mixing of b, o and v modes with e and I modes. This might be changed in - the future, so use 1 at the moment for this setting. - - Use the following settings only if you set 'net-type' to 5! - - set kick-method 1 - If your network supports more users per kick command then 1, you can - change this behavior here. Set this to the number of users to kick at - once, or set this to 0 for all at once. - - set modes-per-line 3 - Some networks allow you to stack lots of channel modes into one line. - They're all guaranteed to support at least 3, so that's the default. - If you know your network supports more, you may want to adjust this. - This setting is limited to 6, although if you want to use a higher - value, you can modify this by changing the value of MODES_PER_LINE_MAX - in src/chan.h and recompiling the bot. - - set include-lk 1 - Some networks don't include the +l limit and +k or -k key modes in the - modes-per-line (see above) limitation. Set include-lk to 0 for these - networks. - - set use-354 0 - Set this to 1 if your network uses IRCu2.10.01 specific /who requests. - Eggdrop can, therefore, ask only for exactly what's needed. - - set rfc-compliant 1 - If your network doesn't use rfc 1459 compliant string matching routines, - set this to 0. - -Copyright (C) 2000 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/coreDocs/modules.txt b/doc/html/_sources/coreDocs/modules.txt deleted file mode 100644 index 5f3674fca..000000000 --- a/doc/html/_sources/coreDocs/modules.txt +++ /dev/null @@ -1,470 +0,0 @@ -Eggdrop Module Information -Last revised: Jul 25, 2016 - -========================== -Eggdrop Module Information -========================== - -The purpose of this document is to show you how to download, install, create, -and submit modules. - ------------------ -What are modules? ------------------ - -Modules are portions of code which are loaded separately to the bot itself -and provide extra services. For example, the filesys module provides the -entire file system. - ----------------- -Why use modules? ----------------- - -Modules allow C coders to add their own enhancements to the bot while -keeping them optional and without increasing the size of the Eggdrop core. - ------------------------ -How to install a module ------------------------ - -Please note that these are only basic instructions for compiling and -installing a module. Please read any and all directions included with -the module you wish to install. - - 1. Download and un-tar the Eggdrop source code. - - 2. Place the new module in its own directory (in the format of - (modulename).mod) in src/mod. - - 3. Run ./configure (from eggdrop1.8.x/). - - 4. Type 'make config' or 'make iconfig'. - - 5. Type 'make'. - - 6. Copy the compiled module file (modulename.so) into your bot's - modules folder. - - 7. Add 'loadmodule modulename' to your eggdrop.conf file (do not - add the .so suffix). - - 8. Rehash or restart your bot. - -To view your currently loaded modules, type '.module'. - ------------------------------ -Modules included with Eggdrop ------------------------------ - - :ref:`assoc` - This module provides assoc support, i.e. naming channels on the - botnet. - - :ref:`blowfish` - Eggdrop can encrypt your userfile, so users can have secure - passwords. Please note that when you change your encryption - method later (i.e. using other modules like a md5 module), - you can't use your current userfile anymore. Eggdrop will not - start without an encryption module. - - :ref:`channels` - This module provides channel related support for the bot. - Without it, you won't be able to make the bot join a channel - or save channel specific userfile information. - - :ref:`compress` - This module provides provides support for file compression. This - allows the bot to transfer compressed user files and, therefore, - save a significant amount of bandwidth. - - :ref:`console` - This module provides storage of console settings when you exit - the bot or type .store on the partyline. - - :ref:`ctcp` - This module provides the normal ctcp replies that you'd expect. - Without it loaded, CTCP CHAT will not work. - - :ref:`dns` - This module provides asynchronous dns support. This will avoid - long periods where the bot just hangs there, waiting for a - hostname to resolve, which will often let it timeout on all - other connections. - - :ref:`filesys` - This module provides an area within the bot where users can store - and manage files. With this module, the bot is usable as a file - server. - - :ref:`irc` - This module provides basic IRC support for your bot. You have to - load this if you want your bot to come on IRC. - - :ref:`notes` - This module provides support for storing of notes for users from - each other. Note sending between currently online users is - supported in the core, this is only for storing the notes for - later retrieval. - - :ref:`seen` - This module provides very basic seen commands via msg, on channel - or via dcc. This module works only for users in the bot's - userlist. If you are looking for a better and more advanced seen - module, try the gseen module by G'Quann. You can find it at - http://www.kreativrauschen.com/gseen.mod/. - - :ref:`server` - This module provides the core server support. You have to load - this if you want your bot to come on IRC. Not loading this is - equivalent to the old NO_IRC define. - - :ref:`share` - This module provides userfile sharing support between two - directly linked bots. - - :ref:`transfer` - The transfer module provides DCC SEND/GET support and userfile - transfer support for userfile sharing. - - :ref:`uptime` - This module reports uptime statistics to the uptime contest - web site at http://uptime.eggheads.org. Go look and see what - your uptime is! It takes about 9 hours to show up, so if your - bot isn't listed, try again later. See doc/settings/mod.uptime - for more information, including details on what information is - sent to the uptime server. - - :ref:`woobie` - This is for demonstrative purposes only. If you are looking for - starting point in writing modules, woobie is the right thing. - -------------------- -Programming modules -------------------- - -WARNING: This section is very likely to be out of date. - -Note: This is for a simple module of 1 source file. If you're doing a -multiple source file module, you shouldn't need to read this anyway. - - 1. Create a src/mod/MODULE.mod directory in your Eggdrop directory (where - MODULE is the module name) and cd to it. - - 2. Copy the file 'Makefile' from src/mod/woobie.mod and replace all - occurrences of 'woobie' with your module name. This should ensure - that your module gets compiled. - - 3. Next, you want to create a file called MODULE.c (MODULE is the module - name again). - - 4. You MUST include the following in your source code:: - - #define MODULE_NAME "module-name" - - This should be defined to the same name you will be using when you load - your module. - - :: - - #define MAKING_MODULENAME - - MODULENAME is the name of your module (MODULE_NAME), but in all caps. - - :: - - #include "../module.h" - - This provides access to Eggdrop's global function table. Examine - src/mod/module.h closely to find a list of functions available. - - :: - - #include any other standard c header files you might need. - - Note that stdio.h, string.h, stdlib.h, and sys/types.h are already included. - - :: - - Function *global; - - This variable provides access to all the Eggdrop functions; without it, - you can't call any Eggdrop functions (the module won't even load). - -------------------- -Module requirements -------------------- - -In most modules, all functions/variables (except global and MODULE_start) -should be static. This will drastically reduce the size of modules on -decent systems. - -Throughout this step, MODULE refers to the module name. Note that - "MODULE_NAME" should literally be "MODULE_NAME". - -^^^^^^^^^^^^ -MODULE_start -^^^^^^^^^^^^ -:: - - char *MODULE_start(Function *func_table) - - This function is called when the module is first loaded. There are - several things that need to be done in this function - -:: - - global = func_table; - - This allows you to make calls to the global function table. - -:: - - module_register(MODULE_NAME, MODULE_table, MAJOR, MINOR); - - This records details about the module for other modules and Eggdrop - itself to access. MAJOR and MINOR are ints, where MAJOR is the - module's major version number and MINOR is a minor version number. - MODULE_table is a function table (see below). - -:: - - module_depend(MODULE_NAME, "another-module", MAJOR, MINOR); - - This lets Eggdrop know that your module NEEDS "another-module" of - major version 'MAJOR' and at least minor version 'MINOR' to run, - and hence should try to load it if it's not already loaded. This - will return 1 on success, or 0 if it can't be done (at which stage - you should return an error). - -Any other initialization stuff you desire should also be included in -this function. See below for various things you can do. - -You also will need to return a value. Returning NULL implies the -module loaded successfully. Returning a non-NULL STRING is an error -message. The module (and any other dependant modules) will stop -loading and an error will be returned. - -^^^^^^^^^^^^ -MODULE_table -^^^^^^^^^^^^ - -:: - - static Function *MODULE_table = { - MODULE_start, - MODULE_close, - MODULE_expmem, - MODULE_report, - any_other_functions, - you_want_to_export - }; - - This is a table of functions which any other module can access. The - first 4 functions are FIXED. You MUST have them; they provide important - module information. - -^^^^^^^^^^^^^^^ -MODULE_close () -^^^^^^^^^^^^^^^ -:: - - static char *MODULE_close () - - This is called when the module is unloaded. Apart from tidying any - relevant data (I suggest you be thorough, we don't want any trailing - garbage from modules), you MUST do the following: - -:: - - module_undepend(MODULE_NAME); - - This lets Eggdrop know your module no longer depends on any other - modules. - - Return a value. NULL implies success; any non-NULL STRING implies - that the module cannot be unloaded for some reason, and hence the - bot should not unload it (see the blowfish module for an example). - -^^^^^^^^^^^^^ -MODULE_expmem -^^^^^^^^^^^^^ - -:: - - static int MODULE_expmem () - - This should tally all memory you allocate/deallocate within the module - (using nmalloc, nfree, etc) in bytes. It's used by memory debugging to - track memory faults, and it is used by .status to total up memory usage. - -^^^^^^^^^^^^^ -MODULE_report -^^^^^^^^^^^^^ - -:: - - static void MODULE_report (int idx) - - This should provide a relatively short report of the module's status - (for the module and status commands). - -These functions are available to modules. MANY more available functions -can be found in src/mod/module.h. - -^^^^^^^^^^^^^^^^^^^^ -Additional functions -^^^^^^^^^^^^^^^^^^^^ - -:: - - void *nmalloc(int j); - - This allocates j bytes of memory. - -:: - - void nfree(void *a); - - This frees an nmalloc'd block of memory. - -:: - - Context; - - Actually a macro -- records the current position in execution (for - debugging). Using Context is no longer recommended, because it uses - too many resources and a core file provides much more information. - -:: - - void dprintf(int idx, char *format, ...) - - This acts like a normal printf() function, but it outputs to - log/socket/idx. - - idx is a normal dcc idx, or if < 0 is a sock number. - - Other destinations: - DP_LOG - send to log file - DP_STDOUT - send to stdout - DP_MODE - send via mode queue to the server - DP_SERVER - send via normal queue to the server - DP_HELP - send via help queue to server - -:: - - const module_entry *module_find(char *module_name, int major, int minor); - - Searches for a loaded module (matching major, >= minor), and returns - info about it. - - Members of module_entry: - char *name; - module name - int major; - real major version - int minor; - real minor version - Function *funcs; - function table (see above) - - void module_rename(char *old_module_name, char *new_module_name) - - This renames a module frim old_module_name to new_module_name. - - void add_hook(int hook_num, Function *funcs) - void del_hook(int hook_num, Function *funcs) - - These are used for adding or removing hooks to/from Eggdrop code that - are triggered on various events. Valid hooks are: - HOOK_SECONDLY - called every second - HOOK_MINUTELY - called every minute - HOOK_5MINUTELY - called every 5 minutes - HOOK_HOURLY - called every hour (hourly-updates minutes past) - HOOK_DAILY - called when the logfiles are switched - - HOOK_READ_USERFILE - called when the userfile is read - HOOK_USERFILE - called when the userfile is written - HOOK_PRE_REHASH - called just before a rehash - HOOK_REHASH - called just after a rehash - HOOK_IDLE - called whenever the dcc connections have been - idle for a whole second - HOOK_BACKUP - called when a user/channel file backup is done - HOOK_LOADED - called when Eggdrop is first loaded - HOOK_DIE - called when Eggdrop is about to die - - char *module_unload (char *module_name); - char *module_load (char *module_name); - - Tries to load or unload the specified module; returns 0 on success, or - an error message. - - void add_tcl_commands(tcl_cmds *tab); - void rem_tcl_commands(tcl_cmds *tab); - - Provides a quick way to create and remove a table of Tcl commands. The - table is in the form of: - - {char *func_name, Function *function_to_call} - - Use { NULL, NULL } to indicate the end of the list. - - void add_tcl_ints(tcl_ints *); - void rem_tcl_ints(tcl_ints *); - - Provides a quick way to create and remove a table of links from C - int variables to Tcl variables (add_tcl_ints checks to see if the Tcl - variable exists and copies it over the C one). The format of table is: - - {char *variable_name, int *variable, int readonly} - - Use {NULL, NULL, 0} to indicate the end of the list. - - void add_tcl_strings(tcl_strings *); - void rem_tcl_strings(tcl_strings *); - - Provides a quick way to create and remove a table of links from C - string variables to Tcl variables (add_tcl_ints checks to see if the - Tcl variable exists and copies it over the C one). The format of table - is: - - {char *variable_name, char *string, int length, int flags} - - Use {NULL, NULL, 0, 0} to indicate the end of the list. Use 0 for - length if you want a const string. Use STR_DIR for flags if you want a - '/' constantly appended; use STR_PROTECT if you want the variable set - in the config file, but not during normal usage. - - void add_builtins(p_tcl_hash_list table, cmd_t *cc); - void rem_builtins(p_tcl_hash_list table, cmd_t *cc); - - This adds binds to one of Eggdrop's bind tables. The format of the - table is: - - {char *command, char *flags, Function *function, char *displayname} - - Use {NULL, NULL, NULL, NULL} to indicate the end of the list. - - This works EXACTLY like the Tcl 'bind' command. displayname is what Tcl - sees this function's proc name as (in .binds all). - - function is called with exactly the same args as a Tcl binding is with - type conversion taken into account (e.g. idx's are ints). Return values - are much the same as Tcl bindings. Use int 0/1 for those which require - 0/1, or char * for those which require a string (auch as filt). Return - nothing if no return value is required. - - void putlog (int logmode, char *channel, char *format, ...) - - Adds text to a logfile (determined by logmode and channel). This text - will also output to any users' consoles if they have the specified - console mode enabled. - -------------------------- -What to do with a module? -------------------------- - - If you have written a module and feel that you wish to share it with the - rest of the Eggdrop community, upload it to the incoming directory on - incoming.eggheads.org (/incoming/modules/1.8). Place a nice descriptive - text (modulename.desc) with it, and it'll make its way to the modules - directory on ftp.eggheads.org. Don't forget to mention in your text file - which version Eggdrop the module is written for. - -Copyright (C) 1999 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/coreDocs/notes.txt b/doc/html/_sources/coreDocs/notes.txt deleted file mode 100644 index 718dbaadc..000000000 --- a/doc/html/_sources/coreDocs/notes.txt +++ /dev/null @@ -1,45 +0,0 @@ -Last revised: January 1, 2002 - -.. _notes: - -============ -Notes Module -============ - -This module provides support for storing of notes for users from each other. -Note sending between currently online users is supported in the core, this -is only for storing the notes for later retrieval. - -This module requires: none - -Put this line into your Eggdrop configuration file to load the notes -module:: - - loadmodule notes - -There are also some variables you can set in your config file: - - set notefile "LamestBot.notes" - Set here the filename where private notes between users are stored. - - set max-notes 50 - Set here the maximum number of notes to allow to be stored for each user - (to prevent flooding). - - set note-life 60 - Set here how long (in days) to store notes before expiring them. - - set allow-fwd 0 - Set this to 1 if you want to allow users to specify a forwarding address - for forwarding notes to another account on another bot. - - set notify-users 1 - Set this to 1 if you want the bot to let people know hourly if they have - any notes. - - set notify-onjoin 1 - Set this to 1 if you want the bot to let people know on join if they have - any notes. - - -Copyright (C) 2000 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/coreDocs/seen.txt b/doc/html/_sources/coreDocs/seen.txt deleted file mode 100644 index 3deaf19dc..000000000 --- a/doc/html/_sources/coreDocs/seen.txt +++ /dev/null @@ -1,21 +0,0 @@ -Last revised: January 1, 2002 - -.. _seen: - -=========== -Seen Module -=========== - -This module provides very basic seen commands via msg, on channel or via dcc. -This module works only for users in the bot's userlist. If you are looking -for a better and more advanced seen module, try the gseen module by G'Quann. -You can find it at http://www.kreativrauschen.com/gseen.mod/. - -This module requires: none - -Put this line into your Eggdrop configuration file to load the seen module:: - - loadmodule seen - - -Copyright (C) 2000 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/coreDocs/server.txt b/doc/html/_sources/coreDocs/server.txt deleted file mode 100644 index 89ac8631d..000000000 --- a/doc/html/_sources/coreDocs/server.txt +++ /dev/null @@ -1,252 +0,0 @@ -Last revised: October 25, 2010 - -.. _server: - -============= -Server Module -============= - -This module provides the core server support. You have to load this if -you want your bot to come on IRC. Not loading this is equivalent to the -old NO_IRC define. - -This module requires: none - -Put this line into your Eggdrop configuration file to load the server -module:: - - loadmodule server - -There are also some variables you can set in your config file: - - set net-type 0 - What is your network? - - +---+---------------------------+ - | 0 | EFnet | - +---+---------------------------+ - | 1 | IRCnet | - +---+---------------------------+ - | 2 | Undernet | - +---+---------------------------+ - | 3 | DALnet | - +---+---------------------------+ - | 4 | +e/+I/max-bans 20 Hybrid | - +---+---------------------------+ - | 5 | Others | - +---+---------------------------+ - - set nick "LamestBot" - Set the nick the bot uses on IRC, and on the botnet unless you specify a - separate botnet-nick, here. - - set altnick "L?m?stB?t" - Set the alternative nick which the bot uses on IRC if the nick specified - by 'set nick' is unavailable. All '?' characters will be replaced by - random numbers. - - set keep-nick 1 - This setting makes the bot try to get his original nickname back if its - primary nickname is already in use. - - set realname "/msg LamestBot hello" - Set here what to display in the real-name field for the bot. - - :: - - bind evnt - init-server evnt:init_server - proc evnt:init_server {type} { - global botnick - putquick "MODE $botnick +i-ws" - } - - ... is Tcl scripting that is run immediately after connecting to a server. - - :: - - set init-server { putquick "MODE $botnick +i-ws" } - - ... is Tcl scripting that is run immediately after connecting to a server. - It is limited to 120 characters, and is depriciated due to the EVNT bind - (see doc/tcl-commands.doc). - - :: - - set connect-server { putlog "Connecting to server." } - - ... is Tcl scripting that is run immediately before connecting to a server. - It is limited to 120 characters, and is depriciated due to the EVNT bind - (see doc/tcl-commands.doc). - - :: - - set disconnect-server { putlog "Disconnected from server." } - - ... is a Tcl script that is run immediately after disconnecting from a - server. It is limited to 120 characters, and is depriciated due to the - EVNT bind (see doc/tcl-commands.doc). - - :: - - set servers { - you.need.to.change.this:6667 - another.example.com:7000:password - [2001:db8:618:5c0:263::]:6669:password - ssl.example.net:+6697 - } - - ... is the bot's server list. The bot will start at the first server - listed, and cycle through them whenever it gets disconnected. You need - to change these servers to YOUR network's servers. - - The format is: - server[:port[:password]] - Prefix the port with a plus sign to attempt a SSL connection: - server:+port[:password] - - Both the port and password fields are optional; however, if you want to - set a password or use SSL you must also set a port. If a port isn't - specified it will default to your default-port setting. - - set default-port 6667 - Set the default port which should be used if none is specified with - '.jump' or in 'set servers'. - - set msg-rate 2 - Number of seconds to wait between transmitting queued lines to the - server. Lower this value at your own risk. ircd is known to start - flood control at 512 bytes/2 seconds. - - set ssl-verify-servers 0 - Control certificate verification for servers. You can set this by adding - together the numbers for all exceptions you want to enable. By default - certificate verification is disabled and all certificates are assumed to - be valid. The numbers are the following: - - The numbers are the following: - - +---+---------------------------------------------+ - | 0 | disable verification | - +---+---------------------------------------------+ - | 1 | enable certificate verification | - +---+---------------------------------------------+ - | 2 | allow self-signed certificates | - +---+---------------------------------------------+ - | 4 | don't check peer common or alt names | - +---+---------------------------------------------+ - | 8 | allow expired certificates | - +---+---------------------------------------------+ - | 16| allow certificates which are not valid yet | - +---+---------------------------------------------+ - | 32| allow revoked certificates | - +---+---------------------------------------------+ - - set server-cycle-wait 60 - This setting defines how long Eggdrop should wait before moving from one - server to another on disconnect. If you set 0 here, Eggdrop will not wait - at all and will connect instantly. Setting this too low could result in - your bot being K:Lined. - - set server-timeout 60 - Set here how long Eggdrop should wait for a response when connecting to - a server before giving up and moving on to next server. - - set check-stoned 1 - Set this to 1 if Eggdrop should check for stoned servers? (where the - server connection has died, but Eggdrop hasn't been notified yet). - - set serverror-quit 1 - If you want your bot to exit the server if it receives an ERROR message, - set this to 1. - - set max-queue-msg 300 - Set here the maximum number of lines to queue to the server. If you're - going to dump large chunks of text to people over IRC, you will probably - want to raise this. 300 is fine for most people though. - - set quiet-reject 1 - This setting makes the bot squelch the error message when rejecting a - DCC CHAT, SEND or message command. Normally, Eggdrop notifies the user - that the command has been rejected because they don't have access. Note - that sometimes IRC server operators detect bots that way. - - set flood-msg 5:60 - Set here how many msgs in how many seconds from one host constitutes - a flood. If you set this to 0:0, msg flood protection will be disabled. - - set flood-ctcp 3:60 - Set here how many ctcps in how many seconds from one host are - recognized as a flood. Not specifying or using number = 0 - will not check against ctcp floods. - - set answer-ctcp 3 - Set how many ctcps should be answered at once here. - - set lowercase-ctcp 0 - If you want your bot to answer lower case ctcp requests (non rfc- - compliant), set this setting to 1. mIRC will do this, most other - clients will not. - - set trigger-on-ignore 0 - If you want Eggdrop to trigger binds for ignored users, set this to 1. - - set exclusive-binds 0 - This setting configures PUBM and MSGM binds to be exclusive of PUB - and MSG binds. This means if a MSGM bind with the mask "*help*" exists - and is triggered, any MSG bindings with "help" in their mask will not - be triggered. Don't enable this unless you know what you are doing! - - set double-mode 0 - Allow identical messages in the mode queue? - - set double-server 0 - Allow identical messages in the server queue? - - set double-help 0 - Allow identical messages in the help queue? - - set use-penalties 1 (default on net-type 1) - This enables Eggdrop's penalty calculation. Every command Eggdrop sends - to the IRC server raises its penalty points. If Eggdrop reaches a server - limit, it gets disconnected with "excess flood" message. Eggdrop is able - to count internal those penalty points, too and take measures against - excess flooding. Note: it's highly advised to turn this on! - - set optimize-kicks 1 - This optimizes the kick queue. It also traces nick changes and parts in - the channel and changes the kick queue accordingly. There are three - different options for this setting: - - +---+------------------------------------------------------------------+ - | 0 | Turn it off. | - +---+------------------------------------------------------------------+ - | 1 | Optimize the kick queue by summarizing kicks. | - +---+------------------------------------------------------------------+ - | 2 | Trace nick changes and parts on the channel and change the queue | - | | accordingly. For example, bot will not try to kick users who have| - | | already parted the channel. | - +---+------------------------------------------------------------------+ - - ATTENTION: Setting 2 is very CPU intensive. - -There are additional settings for 'net-type' 5. - - *net-type 5 specific features:* - - Attention: Use this settings *only* if you set 'net-type' to 5! - - set check-mode-r 1 - This settings defines how umode +r is understood by Eggdrop. Some - networks use +r to indicate a restricted connection. If this is your - case, and you want your bot to leave restricted servers and jump to - the next server on its list, then set it to 1. - Please note, this setting is automatically set to 0 for net-type 0/2/3/4, - and set to 1 for net-type 1. - - set nick-len 9 - This setting allows you to specify the maximum nick-length supported by - your network. The default setting is 9. The maximum supported length by - Eggdrop is 32. - - Copyright (C) 2000 - 2016 Eggheads Development Team - diff --git a/doc/html/_sources/coreDocs/share.txt b/doc/html/_sources/coreDocs/share.txt deleted file mode 100644 index fffb8d559..000000000 --- a/doc/html/_sources/coreDocs/share.txt +++ /dev/null @@ -1,53 +0,0 @@ -Last revised: November 27, 2003 - -.. _share: - -============ -Share Module -============ - -This module provides userfile sharing support between two directly linked -bots. - -This module requires: transfer, channels - -Put this line into your Eggdrop configuration file to load the share module:: - - loadmodule share - -There are also some variables you can set in your config file: - - set allow-resync 0 - When two bots get disconnected, this setting allows them to create a - resync buffer which saves all changes done to the userfile during - the disconnect. When they reconnect, they will not have to transfer - the complete user file, but, instead, just send the resync buffer. - - set resync-time 900 - This setting specifies how long to hold another bots resync data - before flushing it. - This is a setting for allow-resync. - - set private-global 0 - When sharing user lists, DON'T ACCEPT global flag changes from other - bots? NOTE: The bot will still send changes made on the bot, it just - won't accept any global flag changes from other bots. This overrides - the private-globals setting (below). - - set private-globals "mnot" - When sharing user lists, if private-global isn't set, which global flag - changes from other bots should be ignored? - - set private-user 0 - When sharing user lists, don't accept ANY userfile changes from other - bots? Paranoid people should use this feature on their hub bot. This - will force all userlist changes to be made via the hub. - - set override-bots 0 - This setting makes the bot discard its own bot records in favor of - the ones sent by the hub. - NOTE: No passwords or botflags are shared, only ports and - address are added to sharing procedure. This only works with hubs that - are v1.5.1 or higher. - -Copyright (C) 2000 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/coreDocs/transfer.txt b/doc/html/_sources/coreDocs/transfer.txt deleted file mode 100644 index e0dbc4b16..000000000 --- a/doc/html/_sources/coreDocs/transfer.txt +++ /dev/null @@ -1,41 +0,0 @@ -Last revised: January 1, 2002 - -.. _transfer: - -=============== -Transfer Module -=============== - -The transfer module provides DCC SEND/GET support and userfile transfer -support for userfile sharing. - -This module requires: none - -Put this line into your Eggdrop configuration file to load the transfer -module:: - - loadmodule transfer - -There are also some variables you can set in your config file: - - set max-dloads 3 - Set here the maximum number of simultaneous downloads to allow for - each user. - - set dcc-block 0 - Set here the block size for dcc transfers. ircII uses 512 bytes, - but admits that may be too small. 1024 is standard these days. - Set this to 0 to use turbo-dcc (recommended). - - set copy-to-tmp 1 - Enable this setting if you want to copy files into the /tmp directory - before sending them. This is useful on most systems for file stability, - but if your directories are NFS mounted, it's a pain, and you'll want - to set this to 0. If you are low on disk space, you may also want to - set this to 0. - - set xfer-timeout 30 - Set here the time (in seconds) to wait before an inactive transfer - times out. - -Copyright (C) 2000 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/coreDocs/uptime.txt b/doc/html/_sources/coreDocs/uptime.txt deleted file mode 100644 index b0fbce2da..000000000 --- a/doc/html/_sources/coreDocs/uptime.txt +++ /dev/null @@ -1,27 +0,0 @@ -Last revised: January 1, 2002 - -.. _uptime: - -============= -Uptime Module -============= - -This module reports uptime statistics to http://uptime.eggheads.org. Go look -and see what your uptime is! It takes about 9 hours to show up, so if your -bot isn't listed, try again later. - -Information sent to the server includes the bot's uptime, botnet-nick, -server, version, and IP address. This information is stored in a temporary -logfile for debugging purposes only. The only publicly available information -will be the bot's botnet-nick, version and uptime. If you do not wish for -this information to be sent, comment out the 'loadmodule uptime' line in your -bot's config file. - -This module requires: server - -Put this line into your Eggdrop configuration file to load the uptime -module:: - - loadmodule uptime - -Copyright (C) 2001 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/coreDocs/woobie.txt b/doc/html/_sources/coreDocs/woobie.txt deleted file mode 100644 index 27f89f82b..000000000 --- a/doc/html/_sources/coreDocs/woobie.txt +++ /dev/null @@ -1,19 +0,0 @@ -Last revised: December 31, 2001 - -.. _woobie: - -============= -Woobie Module -============= - -This is for demonstrative purposes only. If you are looking for starting -point in writing modules, woobie is the right thing. - -This module requires: none - -Put this line into your Eggdrop configuration file to load the woobie -module:: - - loadmodule woobie - -Copyright (C) 2000 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/index.txt b/doc/html/_sources/index.txt deleted file mode 100644 index 0f664a3e4..000000000 --- a/doc/html/_sources/index.txt +++ /dev/null @@ -1,43 +0,0 @@ -.. Eggdrop documentation master file, created by - sphinx-quickstart on Tue Jun 28 18:48:35 2016. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Welcome to Eggdrop's documentation! -=================================== - ----------------------- -Installation and Setup ----------------------- - -.. toctree:: - :maxdepth: 1 - - installAndSetup/index - ------------------- -Main Documentation ------------------- - -.. toctree:: - :maxdepth: 1 - - mainDocs/index - ------------------------- -Core and Module settings ------------------------- - -.. toctree:: - :maxdepth: 1 - - coreDocs/index - ----------- -Appendices ----------- - -.. toctree:: - :maxdepth: 1 - - appendices/index diff --git a/doc/html/_sources/installAndSetup/INSTALL.txt b/doc/html/_sources/installAndSetup/INSTALL.txt deleted file mode 100644 index d77b2e839..000000000 --- a/doc/html/_sources/installAndSetup/INSTALL.txt +++ /dev/null @@ -1,158 +0,0 @@ -Compilation and Installation of Eggdrop -Last revised: July 24, 2004 - -======================================= -Installing Eggdrop -======================================= - -This is the quick install guide; if you have had little or no experience -with UNIX or Eggdrop, READ THE README FILE NOW! This file is only for -experienced users. - -For more information on compiling Eggdrop, see the Compile Guide in -doc/COMPILE-GUIDE (and of course, the README FILE). - -What is Eggdrop? ----------------- - -Please, read the README file before attempting to set up this bot. This -file is a quick setup guide, not a miracle worker. If you enter this file -without basic Eggdrop knowledge, you will NOT leave with a working bot! -Before asking ANY questions, READ THE README FILE OR YOU WILL BE BURNED -TO A HORRIBLE DEATH! IF YOU DO NOT READ THAT FILE I WILL PERSONALLY WALK -TO YOUR TERMINAL AND BEAT IT WITH A SMELLY SNEAKER! By the way, read the -README file. - -Quick Startup -------------- - -Eggdrop uses the GNU autoconfigure scripts to make things easier. - -1. Type './configure' from the Eggdrop directory. The configure script - will determine how your system is set up and figure out how to - correctly compile Eggdrop. It will also try to find Tcl, which is - required to compile. - -2. Type either 'make config' or 'make iconfig' to determine which - modules will be compiled. 'make config' compiles the default modules - (everything but woobie.mod). If you want to choose which modules to - compile, use 'make iconfig'. - -3. Type 'make' from the Eggdrop directory, or to force a statically - linked module bot, type 'make static'. Otherwise, the Makefile will - compile whatever type of bot the configure script determined your - system will support. Dynamic is always the better way to go if - possible. There are also the 'debug' and 'sdebug' (static-debug) - options, which will give more detailed output on a (highly unlikely :) - crash. This will help the development team track down the crash and - fix the bug. Debug and sdebug will take a little longer to compile - and will enlarge the binary a bit, but it's worth it if you want to - support Eggdrop development. - -4. Eggdrop must be installed in a directory somewhere. This is - accomplished by entering the UNIX command:: - - make install - - This will install the Eggdrop in your home directory in a directory - called 'eggdrop' (i.e. /home/user/eggdrop). - - If you want to install to a different directory, use:: - - make install DEST= - - For example:: - - make install DEST=/home/user/otherdir - - Note that you must use full path for every file to be correctly - installed. - - [The following is performed from the directory installed above.] - -5. By default, version 1.8 uses SSL to protect botnet links. If you intend - on linking 1.8 bots together, you must run:: - - make ssl-cert - - Or, if you installed your eggdrop to a different directory in step 4, you - will want to run: - - make ssl-cert DEST= - - Read docs/TLS for more info on this process. - -6. Edit your config file completely. - -7. Start the bot with the "-m" option to create a user file, i.e. :: - - ./eggdrop -m LamestBot.conf - -8. When starting the bot in the future, drop the "-m". If you have edited - your config file correctly, you can type:: - - chmod u+x - - For example:: - - chmod u+x LamestBot.conf - - From then on, you will be able to use your config file as a shell - script. You can just type "./LamestBot.conf" from your shell prompt - to start up your bot. For this to work, the top line of your script - MUST contain the correct path to the Eggdrop executable. - -9. It's advisable to run your bot via crontab, so that it will - automatically restart if the machine goes down or (heaven forbid) - the bot should crash. Look at 'scripts/botchk' and 'scripts/autobotchk' - for a great start with crontabbing the bot. - -10. Smile, and if you haven't already read the README file in its - entirety, go take a long walk off a short pier. - -Modules -------- - -Modules are small pieces of code that can either be compiled into the -binary or can be compiled separately into a file. This allows for a much -smaller binary. - -If there are any modules that you have made or downloaded, you can add -them to the bot by placing them in the /src/mod directory with a mod -extension. They will be automatically compiled during make for you. -They must have a valid Makefile and, of course, be compatible with -the rest of the Eggdrop source. - -If you wish to add a module at a later time, follow the same steps in -paragraph 2. After you have moved the appropriate files, you will only -need to type 'make modules' to compile only the modules portion of the -bot. - -FREQUENTLY ASKED QUESTIONS --------------------------- - - (Q) What do I do if...? - - (A) READ THE README FILE! - - (Q) The readme does not answer...! - - (A) READ THE README FILE AGAIN! - - (Q) I still don't know how to... - - (A) MEMORIZE THE README FILE! - - (Q) But... - - (A) Well, go to www.egghelp.org or www.eggheads.org and see if you can - find there what you're looking for. There are also lots of IRC help - channels and various mailing lists, as seen in the README FILE. - -This is the end. If you read to this point, hopefully you have also read -the README file. If not, then READ IT!&@#%@! - -Have fun with Eggdrop! - - Copyright (C) 1997 Robey Pointer - Copyright (C) 1999 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/installAndSetup/README.txt b/doc/html/_sources/installAndSetup/README.txt deleted file mode 100644 index fb447c8c2..000000000 --- a/doc/html/_sources/installAndSetup/README.txt +++ /dev/null @@ -1,529 +0,0 @@ -Last revised: Jul 2, 2016 - -====== -README -====== - - Please at least SKIM this document before asking questions. In fact, READ IT - if you've never successfully set up an Eggdrop bot before. PLEASE! READ IT! - ------- -NOTICE ------- - - Please read this file carefully before trying to set up Eggdrop. Also, - make SURE that you select your +n (owner) users wisely! They have 100% - access to your bot and account! ONLY GIVE THIS POWER TO SOMEONE YOU - TRUST COMPLETELY!! - ----------------- -What is Eggdrop? ----------------- - - Eggdrop is the World's most popular Internet Relay Chat (IRC) bot; it is - freely distributable under the GNU General Public License (GPL). Eggdrop - is a feature rich program designed to be easily used and expanded upon by - both novice and advanced IRC users on a variety of hardware and software - platforms. - - An IRC bot is a program that sits on an IRC channel and performs automated - tasks while looking just like a normal user on the channel. Some of these - functions include protecting the channel from abuse, allowing privileged - users to gain op or voice status, logging channel events, providing - information, hosting games, etc. - - One of the features that makes Eggdrop stand out from other bots is module - and Tcl scripting support. With scripts and modules, you can make the bot - perform almost any task you want. They can do anything from preventing - floods to greeting users and banning advertisers from channels. - - You can also link multiple Eggdrop bots together to form a botnet. This - can allow bots to op each other securely, control floods efficiently, and - even link channels across multiple IRC networks. It also allows the - Eggdrops share user lists, ban lists, exempt/invite lists, and ignore - lists with other bots if userfile sharing is enabled. This allows users - to have the same access on every bot on your botnet. It also allows the - bots to distribute tasks such as opping and banning users. See doc/BOTNET - for information on setting up a botnet. - - Eggdrop is always being improved and adjusted because there are bugs to - be fixed and features to be added (if the users demand them, and they make - actually sense). In fact, it existed for several years as v0.7 - v0.9 - before finally going 1.0. This version of Eggdrop is part of the 1.8 tree. - A valiant effort has been made to chase down and destroy bugs. - - This README file contains information about how to get Eggdrop, command - line options for Eggdrop, what you may need to do when upgrading from - older versions, a list of frequently asked questions, how to set up a - crontab, some boring legal stuff, info about the mailing list (a great - place to ask questions, and a good place to report bugs, too), some basics - about CVS usage, and some channels where you might get help with Eggdrop. - ------------------- -HOW TO GET EGGDROP ------------------- - - Before you can compile Eggdrop, you need to have Tcl installed on your - system. Most systems should have Tcl on them by now -- you can check by - trying the command "tclsh". If it works, you will be given a "%" prompt, - and you can type "exit" to exit the program. This means Tcl is installed - on your system. If tclsh doesn't load, then Tcl probably isn't on your - system, and you will need to install it. The best ftp site for Tcl is - ftp://tcl.activestate.com/pub/tcl/. - - Currently, the 1.8 tree of Eggdrop is developed at eggheads.org. You can - get the latest STABLE version of Eggdrop from the following url: - - http://geteggdrop.com/ - - You might try www.eggheads.org for help and information. - ---------- -Git Usage ---------- - - Eggdrop development has moved from a CVS-based version control system to - git. If you are interested in trying out the VERY LATEST updates to - eggdrop, you may want be interested in pulling the most recent code from - there. BE WARNED, the development branch of Eggdrop is not to be - considered stable, and may (haha) have some significant bugs in it. The - Eggheads Development Team will in NO WAY take any responsibility for - whatever might happen to you or your shell if you use the development - branch of Eggdrop! - - To obtain Eggdrop via the git repository (hosted by GitHub), you can - either clone the repository via git, or download a development snapshot. - - To clone the repository, simply type:: - - git clone https://github.com/eggheads/eggdrop.git - - Otherwise, you can download the development snapshot as a tar archive - from: - - https://github.com/eggheads/eggdrop/archive/develop.tar.gz - -------------- -Quick Startup -------------- - - Please see the 'INSTALL' file AFTER you finish reading this file. - ---------- -Upgrading ---------- - - -**UPGRADING FROM A PRE-1.3 VERSION TO 1.8** - - First of all- why are you still running pre-1.3?!?! - - #### BACK UP YOUR USERFILE #### - - We can't stress this enough. If you are upgrading and you have even a - slight possibility of downgrading again later, you will HAVE to back up - your userfile, or you will lose it. v1.3 of Eggdrop radically changed a - lot of things. - - There are many major changes between v0.9, v1.0, v1.1 and v1.8, so PAY - ATTENTION to this part if you have a v0.9, 1.0 or 1.1 bot currently. If - you're just starting out, you can skip this section. - - If you run share bots, you will need to upgrade them all at the same time - because of the new userfile format. Older bots will be able to link in, - but will not get or send a userfile. MAKE A NEW CONFIG FILE from the - example; there are some radical changes. - - If you are upgrading from 0.9/1.0 to 1.8, just redo the whole thing. - Absolutely everything has changed, including the userfile and config file - formats. - - If you are upgrading from 1.1/1.2 to 1.8, you will likely want to redo - the config file, as much as changed. BACK UP! You will need to run 'tclsh - scripts/weed/ c' to convert your userfile from v3 (1.1/1.2) to - v4 (1.3/1.4/1.5/1.6/1.8). - - -**UPGRADING FROM AN OLDER 1.3/1.4/1.5/1.6 VERSION TO A NEWER 1.8 VERSION** - - If you followed the 'INSTALL' file and did a 'make install' (or 'make - install DEST="path"') after 'make', this will be pretty easy. Just upload - the new eggdrop1.8.x.tar.gz file to your home dir on your shell, gunzip - and untar it, and type 'cd ~/eggdrop1.8.x'. Next, type './configure', - 'make config' or 'make iconfig', then 'make'. Then, kill the bot ('.die' - on the party line), and 'make install' to the same directory your bot - is currently in. After that, you can just restart your bot. You may wish - to delete the old Eggdrop executable and modules as well, especially if - you have limited disk space. - - You should read through the new eggdrop.conf file for all of the new - options in Eggdrop 1.8.x. You can copy and paste any of these settings - into you current conf file if you do not want to use the default settings. - ------------- -Command Line ------------- - - Eggdrop has some command-line options -- not many, because most things - should be defined through the config file. However, sometimes you may - want to start up the bot in a different mode, and the command-line - options let you do that. Basically, the command line for Eggdrop is:: - - % eggdrop [options] [config-file] - - The options available are: - - -n: Don't background. Normally, Eggdrop will move itself into the - background when you start it up, meaning you'll get another shell - prompt, and you can do other things while the bot is running. With - -n, you won't return to the shell prompt until the bot exits (which - won't normally happen until it's killed). By default, -n will send - all log entries to the console. - - -nt: Don't background, use terminal. This is just like -n, except that - instead of seeing log entries, your console will simulate a DCC - chat with the bot. - - -nc: Don't background, show channel info. This is just like -n, except - that instead of seeing log entries, every 10 seconds your screen - will clear and you will see the current channel status, sort of - like "top". - - -m: Create userfile. If you don't have a userfile, this will make Eggdrop - create one and give owner status to the first person that introduces - himself or herself to it. You'll need to do this when you first set - up your bot. - - -h: Show help. - - -v: Show version info, then quit. - - Most people never use any of the options except -m, and you usually only - need to use that once. - --------------------------- -Frequently Asked Questions --------------------------- -(a.k.a. Why doesn't this thing work?!") - -WHAT DO I DO IF I GET THE ERROR "USER FILE NOT FOUND"? - - 1. Run Eggdrop with the "-m" option (i.e. "eggdrop -m eggdrop.conf"). - - 2. Go to IRC and send "hello" to your bot (i.e. "/msg mybot hello"). - - 3. You will become an owner on your bot. You can leave the bot running - (nobody else will become an owner if they say "hello"), but in the - future, don't use the "-m" option when running the bot. - -WHAT THE HECK IS Tcl? - - Tcl is a scripting language written by John Ousterhout. It's much better - than most "built-in" script languages (like the one in ircII) and is - meant to be linked with anything needing a scripting language, so I - linked it with Eggdrop. The file "tcl-commands.doc" in the doc directory - contains a list of additional Tcl commands provided by Eggdrop. There - are also several example scripts in the scripts/ directory, and one in - the doc directory called first_script.txt. Hundreds of scripts floating - around on the ftp/web sites if you like working by example (which is - typically the best way). - -MY BOT DIES, AND THE LAST ENTRY IN THE LOGFILE IS "RECEIVED TERMINATE -SIGNAL". WHAT DOES THAT MEAN, AND CAN I PREVENT IT? - - There's nothing you can do to prevent it. It means the system - administrator is killing the Eggdrop process. Most of the time, it's an - automatic thing that happens when the system is being rebooted, so it's - harmless. If you have a crontab running, the bot will get restarted when - the system is back online. Occasionally, the system administrator will - kill the bot manually. For example, if he/she doesn't want bots running - on the system. - -SOMEONE ELSE SET UP A BOT I DON'T LIKE. ARE THERE ANY BACKDOORS I CAN -USE TO TAKE THEIR BOT DOWN? - - No, there have never been any backdoors and there never will be, so - please stop asking. Every once in a while, someone finds a way to - exploit a bug in Eggdrop, but we fix these bugs as soon as we find out - about them. If you want to bring down someone else's bot, you will not - have my/our help. - -WHAT ARE MODULES? - - Modules are a way of adding extra features to the bot, much like Tcl - scripts, without requiring the bot to be recompiled. See doc/MODULES - for more information. - -CAN I COMPILE EGGDROP WITHOUT DYNAMIC MODULES? - - Yes, you can. If the configure script detects that your system CAN'T - run modules, it will setup 'make' to link the modules in statically - for you. You can choose this option yourself by using 'make static'. - You can also try to compile dynamic modules on a static-only system - by using 'make eggdrop'. - -DO I STILL NEED TO 'loadmodule' MODULES? - - YES, when you compile statically, all the modules are linked into the - main executable. HOWEVER, they are not enabled until you use loadmodule - to enable them, hence you get nearly the same functionality with static - modules as with dynamic modules. - -WHERE CAN I GET A PRE-COMPILED EGGDROP FOR MY COMPUTER? - - It is HIGHLY recommended AGAINST using pre-compiled Eggdrops from - un-trusted sources. Eggdrop has been a regular target for hacking and - crashing. Distribution of pre-compiled (binary) versions of Eggdrop are - the easiest way for hackers to provide you with the easiest (and most - dangerous) way of gaining access to, not only your bot, but to your - computer account directly. Don't advertise your pre-compiled Eggdrop - binary sites on the Eggdrop list either. =P - -I GET 'Makefile:3 :invalid operator' OR SOME-SUCH-THING WHEN I TRY -TO 'make'. - - Try 'gmake'. - -WHEN I 'tclsh scripts/weed c' IT BARFS CHUNKS AT ME AND -DIES. :( - - Upgrade your Tcl. You are probably using Tcl 7.5 or earlier. Some of the - commands in weed require Tcl7.6 to run, so either upgrade it or remove - the offending lines from you userfile manually (those starting with '.' - generally) and accept the loss of that data. - -I GET "ld-elf.so.1: Shared object "libtcl80.so.1" not found" or -"eggdrop: error in loading shared libraries libtcl8.1.so: \ -cannot open shared object file: No such file or directory" WHEN I TRY -TO START MY BOT. - - './configure' is looking in the wrong place for Tcl; it looks like it - compiled with one version of Tcl and tries to load another. Maybe your - sysadmin upgraded Tcl and didn't tell you. In that case, you should just - need to recompile your bot. - - Maybe, when upgrading, he didn't clean the old version of Tcl and - './configure' is looking for the files in the wrong places, or trying - to use different versions of tcl.h and libtcl*. Smack your admin and - have him install Tcl properly. ;) - - You can also try:: - - ./configure --with-tcllib= - --with-tclinc= - - This will tell configure where to look for the Tcl files. - - Try looking for libtcl by:: - - ls /usr/lib/libtcl* - ls /usr/local/lib/libtcl* - - Try looking for tcl.h by:: - - ls /usr/include/tcl.h - ls /usr/local/include/tcl.h - - If everything else fails, try to install Tcl to your home dir ;) - (Suggested by dw@Undernet, dw@lixom.nu) - -I GET A WHOLE PILE OF "Unresolved symbol 'Tcl_AppendResult'" (OR SOME -OTHER SYMBOL) WHEN I TRY TO LOAD A MODULES. - - POSSIBILITY A: See previous section. - - POSSIBILITY B: - - Some of the standard libraries have been compiled for static linking - only on your machine, you have 3 options: - - 1. If it's your own machine, recompile Tcl using dynamic linking by - using './configure --enable-shared' when you configure Tcl (not - the bot) and then remake, and reinstall. - - 2. If it's not your machine, you may have to resort to 'make static' - and 'make install DEST="path"' to make and install your bot. - - 3. If you are of a more aggressive sense of mind, go beat the - stuffing out of your admin for having lame static libraries. :) - --------------------- -Setting up a Crontab --------------------- - - Eggdrop has become more stable with time, thanks mostly to people - reporting bug details and helping find places where it crashes. However, - there are still a -few- places where things aren't perfect. Few, if any, - things in life are. - - Also, most systems go down from time to time. These things cause your bot - to disappear from IRC, and you have to restart it. - - Eggdrop comes with a shell script called 'botchk' that will help keep the - bot online. It will make the machine check every ten minutes to make sure - your bot is still running. To use it, you have to add a line to your - crontab. First, edit 'botchk' and change the directory and command line - parameters so that it will be able to start up your bot. Then, add this - line to your crontab:: - - 0,10,20,30,40,50 * * * * /home/mydir/botchk - - If you don't want to get e-mails from cron, use this:: - - 0,10,20,30,40,50 * * * * /home/mydir/botchk >/dev/null 2>&1 - - Naturally, you need to change the path to the correct path for botchk. If - you've never used crontab before, here is a simple way to add that line: - - 1. Create a new file called 'mycron' and put the above line into it. - - 2. From your shell prompt, type '% crontab mycron'. - - That will create a new crontab entry for you with a line that runs botchk - every ten minutes. Botchk will then restart the bot when necessary (and - send you email informing you). - -------------------------------------- -Setting up a Crontab using autobotchk -------------------------------------- - - Included with your Eggdrop is an Eggdrop utility called 'autobotchk'. - Using autobotchk is probably the fastest way of creating your botchk and - crontabbing it with just a few required steps: - - 1. Type:: - - cp scripts/autobotchk .. - - 2. Type:: - - ./autobotchk - - This will hopefully crontab your bot using the default setup. If you want - a list of autobotchk options, type './autobotchk'. An example with options - would be:: - - ./autobotchk -noemail -5 - - This would setup crontab to run the botchk every 5 minutes and also to - not send you e-mail saying that it restarted your bot. - ------------------- -Boring Legal Stuff ------------------- - - The Eggdrop bot is Copyright (C) by Robey Pointer. As of January, 1997, - Eggdrop is distributed according to the GNU General Public License. There - should be a copy of this license in the file 'COPYING'. If not, write to - the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - As of Eggdrop 1.3.28, all changes made by the Eggheads Development Team to - the Eggdrop source code and any related files are Copyright (C) by Eggheads - Development Team. The source code will still be distributed according to - the GNU General Public License as Robey Pointer did in the past. - - Releases previous to 1.0m were made using a different licensing scheme. - You may, at your option, use the GNU General Public License on those - versions (instead of the license packaged with them) with my blessing. - For any versions bearing a copyright date of 1997 or later, you have - no choice -- you must use the GNU General Public License. - - The files "match.c", "net.c", and "blowfish.c" are exempt from the above - restrictions. "match.c" is original code by Chris Fuller (email: - crf@cfox.bchs.uh.edu) and has been placed by him into the public domain. - "net.c" is by me, and I [Robey Pointer] also choose to place it in the - public domain. "blowfish.c" is by various sources and is in the public - domain as well. All 3 files contain useful functions that could easily - be ported to other applications. - - Tcl is by John Ousterhout and is in no way affiliated with Eggdrop. It - likely has its own set of copyrights and whatnots. - - There is no warranty, implied or whatever. You use this software at your - own risk, no matter what purpose you put it to. - ------------- -Mailing List ------------- - - There are currently a couple of mailing lists about Eggdrop. - eggheads@eggheads.org is the one relevant for posts about Eggdrop 1.8 and - up (suggestions, help, etc). - - To subscribe to the eggheads mailing list, send e-mail to - eggheads-request@eggheads.org. In the body of the message, put "subscribe - eggheads". You can also go to the following url: - - http://lists.eggheads.org/mailman/listinfo/eggheads - - ### DO NOT SEND ROBEY EMAIL ABOUT EGGDROP! ### - - Robey is no longer developing the Eggdrop code, so don't bother e-mailing - him. If you have a serious problem, email the eggheads mailing list and - it will get to the coders. - - Please, before posting to this list, see what things are like. When you do - post, read over your post for readability, spelling, and grammar mistakes. - Obviously, we're all human (or are we?) and we all make mistakes (heck, - look at this document! ;). - - Open discussion and debate is integral to change and progress. Don't flame - others over mere form (grammar and spelling), or even substantive issues - for that matter. Please read and follow the mailing list rules. - - The eggheads@eggheads.org mailing list is not dedicated to those all too - common questions we have all seen on other lists... For example: - - o "Why does my bot say this: Please edit your config file." - o "How do I telnet my bot?" - o "Where do I get Eggdrop for windows??????" - - Technical questions, your thoughts or suggestions on new features being - added to Eggdrop, things that should be removed or fixed, amazing problems - that even stump the guru's, etc. are what we want to see here. - - Bug reports should be sent to bugs@eggheads.org. Please read and fill out - the BUG-REPORT file in the doc directory. - - DO NOT SEND HTML E-MAILS TO ANY OF THE EGGHEADS.ORG MAILING LISTS. ANYONE - CAUGHT SENDING HTML E-MAILS TO ONE OF THESE LISTS WILL BE REMOVED - IMMEDIATELY! - -------------- -Documentation -------------- - - We're trying to keep the documentation up to date. If you feel that - anything is missing here or that anything should be added, etc, please - e-mail bugs@eggheads.org about it. Thank you. - --------------- -Obtaining Help --------------- - - You can obtain help with Eggdrop in the following IRC channels: - - * Undernet - #eggdrop (official channel) - * FreeNode - #eggdrop (official channel), #egghelp - * EFnet - #egghelp - * IRCnet - #eggdrop - * DALnet - #eggdrop - * QuakeNet - #eggdrop.support - - If you plan to ask questions in any of the above channels, you should be - familiar with and follow IRC etiquette. - - o Don't type using CAPITAL letters, colors, or bold. - - o Don't use "!" and "?" excessively. - - o Don't /msg people without their permission. - - o Don't repeat or paste large amounts of text to the channel. - - If there are any other serious Eggdrop related channels that should be - added to the above list, please let us know. - - -Copyright (C) 1997 Robey Pointer -Copyright (C) 1999 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/installAndSetup/faq.txt b/doc/html/_sources/installAndSetup/faq.txt deleted file mode 100644 index 9cdae357f..000000000 --- a/doc/html/_sources/installAndSetup/faq.txt +++ /dev/null @@ -1,146 +0,0 @@ -========================== -Frequently Asked Questions -========================== - -(a.k.a. Why doesn't this thing work?!") - -WHAT DO I DO IF I GET THE ERROR "USER FILE NOT FOUND"? - - 1. Run Eggdrop with the "-m" option (i.e. "eggdrop -m eggdrop.conf"). - - 2. Go to IRC and send "hello" to your bot (i.e. "/msg mybot hello"). - - 3. You will become an owner on your bot. You can leave the bot running - (nobody else will become an owner if they say "hello"), but in the - future, don't use the "-m" option when running the bot. - -WHAT THE HECK IS Tcl? - - Tcl is a scripting language written by John Ousterhout. It's much better - than most "built-in" script languages (like the one in ircII) and is - meant to be linked with anything needing a scripting language, so I - linked it with Eggdrop. The file "tcl-commands.doc" in the doc directory - contains a list of additional Tcl commands provided by Eggdrop. There - are also several example scripts in the scripts/ directory, and one in - the doc directory called first_script.txt. Hundreds of scripts floating - around on the ftp/web sites if you like working by example (which is - typically the best way). - -MY BOT DIES, AND THE LAST ENTRY IN THE LOGFILE IS "RECEIVED TERMINATE -SIGNAL". WHAT DOES THAT MEAN, AND CAN I PREVENT IT? - - There's nothing you can do to prevent it. It means the system - administrator is killing the Eggdrop process. Most of the time, it's an - automatic thing that happens when the system is being rebooted, so it's - harmless. If you have a crontab running, the bot will get restarted when - the system is back online. Occasionally, the system administrator will - kill the bot manually. For example, if he/she doesn't want bots running - on the system. - -SOMEONE ELSE SET UP A BOT I DON'T LIKE. ARE THERE ANY BACKDOORS I CAN -USE TO TAKE THEIR BOT DOWN? - - No, there have never been any backdoors and there never will be, so - please stop asking. Every once in a while, someone finds a way to - exploit a bug in Eggdrop, but we fix these bugs as soon as we find out - about them. If you want to bring down someone else's bot, you will not - have my/our help. - -WHAT ARE MODULES? - - Modules are a way of adding extra features to the bot, much like Tcl - scripts, without requiring the bot to be recompiled. See doc/MODULES - for more information. - -CAN I COMPILE EGGDROP WITHOUT DYNAMIC MODULES? - - Yes, you can. If the configure script detects that your system CAN'T - run modules, it will setup 'make' to link the modules in statically - for you. You can choose this option yourself by using 'make static'. - You can also try to compile dynamic modules on a static-only system - by using 'make eggdrop'. - -DO I STILL NEED TO 'loadmodule' MODULES? - - YES, when you compile statically, all the modules are linked into the - main executable. HOWEVER, they are not enabled until you use loadmodule - to enable them, hence you get nearly the same functionality with static - modules as with dynamic modules. - -WHERE CAN I GET A PRE-COMPILED EGGDROP FOR MY COMPUTER? - - It is HIGHLY recommended AGAINST using pre-compiled Eggdrops from - un-trusted sources. Eggdrop has been a regular target for hacking and - crashing. Distribution of pre-compiled (binary) versions of Eggdrop are - the easiest way for hackers to provide you with the easiest (and most - dangerous) way of gaining access to, not only your bot, but to your - computer account directly. Don't advertise your pre-compiled Eggdrop - binary sites on the Eggdrop list either. =P - -I GET 'Makefile:3 :invalid operator' OR SOME-SUCH-THING WHEN I TRY -TO 'make'. - - Try 'gmake'. - -WHEN I 'tclsh scripts/weed c' IT BARFS CHUNKS AT ME AND -DIES. :( - - Upgrade your Tcl. You are probably using Tcl 7.5 or earlier. Some of the - commands in weed require Tcl7.6 to run, so either upgrade it or remove - the offending lines from you userfile manually (those starting with '.' - generally) and accept the loss of that data. - -I GET "ld-elf.so.1: Shared object "libtcl80.so.1" not found" or -"eggdrop: error in loading shared libraries libtcl8.1.so: \ -cannot open shared object file: No such file or directory" WHEN I TRY -TO START MY BOT. - - './configure' is looking in the wrong place for Tcl; it looks like it - compiled with one version of Tcl and tries to load another. Maybe your - sysadmin upgraded Tcl and didn't tell you. In that case, you should just - need to recompile your bot. - - Maybe, when upgrading, he didn't clean the old version of Tcl and - './configure' is looking for the files in the wrong places, or trying - to use different versions of tcl.h and libtcl*. Smack your admin and - have him install Tcl properly. ;) - - You can also try:: - - ./configure --with-tcllib= - --with-tclinc= - - This will tell configure where to look for the Tcl files. - - Try looking for libtcl by:: - - ls /usr/lib/libtcl* - ls /usr/local/lib/libtcl* - - Try looking for tcl.h by:: - - ls /usr/include/tcl.h - ls /usr/local/include/tcl.h - - If everything else fails, try to install Tcl to your home dir ;) - (Suggested by dw@Undernet, dw@lixom.nu) - -I GET A WHOLE PILE OF "Unresolved symbol 'Tcl_AppendResult'" (OR SOME -OTHER SYMBOL) WHEN I TRY TO LOAD A MODULES. - - POSSIBILITY A: See previous section. - - POSSIBILITY B: - - Some of the standard libraries have been compiled for static linking - only on your machine, you have 3 options: - - 1. If it's your own machine, recompile Tcl using dynamic linking by - using './configure --enable-shared' when you configure Tcl (not - the bot) and then remake, and reinstall. - - 2. If it's not your machine, you may have to resort to 'make static' - and 'make install DEST="path"' to make and install your bot. - - 3. If you are of a more aggressive sense of mind, go beat the - stuffing out of your admin for having lame static libraries. :) diff --git a/doc/html/_sources/installAndSetup/index.txt b/doc/html/_sources/installAndSetup/index.txt deleted file mode 100644 index cf24258ec..000000000 --- a/doc/html/_sources/installAndSetup/index.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. Eggdrop documentation master file, created by - sphinx-quickstart on Tue Jun 28 18:48:35 2016. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Contents: - -.. toctree:: - :maxdepth: 1 - - readme.rst - install.rst - faq.rst diff --git a/doc/html/_sources/installAndSetup/install.txt b/doc/html/_sources/installAndSetup/install.txt deleted file mode 100644 index d77b2e839..000000000 --- a/doc/html/_sources/installAndSetup/install.txt +++ /dev/null @@ -1,158 +0,0 @@ -Compilation and Installation of Eggdrop -Last revised: July 24, 2004 - -======================================= -Installing Eggdrop -======================================= - -This is the quick install guide; if you have had little or no experience -with UNIX or Eggdrop, READ THE README FILE NOW! This file is only for -experienced users. - -For more information on compiling Eggdrop, see the Compile Guide in -doc/COMPILE-GUIDE (and of course, the README FILE). - -What is Eggdrop? ----------------- - -Please, read the README file before attempting to set up this bot. This -file is a quick setup guide, not a miracle worker. If you enter this file -without basic Eggdrop knowledge, you will NOT leave with a working bot! -Before asking ANY questions, READ THE README FILE OR YOU WILL BE BURNED -TO A HORRIBLE DEATH! IF YOU DO NOT READ THAT FILE I WILL PERSONALLY WALK -TO YOUR TERMINAL AND BEAT IT WITH A SMELLY SNEAKER! By the way, read the -README file. - -Quick Startup -------------- - -Eggdrop uses the GNU autoconfigure scripts to make things easier. - -1. Type './configure' from the Eggdrop directory. The configure script - will determine how your system is set up and figure out how to - correctly compile Eggdrop. It will also try to find Tcl, which is - required to compile. - -2. Type either 'make config' or 'make iconfig' to determine which - modules will be compiled. 'make config' compiles the default modules - (everything but woobie.mod). If you want to choose which modules to - compile, use 'make iconfig'. - -3. Type 'make' from the Eggdrop directory, or to force a statically - linked module bot, type 'make static'. Otherwise, the Makefile will - compile whatever type of bot the configure script determined your - system will support. Dynamic is always the better way to go if - possible. There are also the 'debug' and 'sdebug' (static-debug) - options, which will give more detailed output on a (highly unlikely :) - crash. This will help the development team track down the crash and - fix the bug. Debug and sdebug will take a little longer to compile - and will enlarge the binary a bit, but it's worth it if you want to - support Eggdrop development. - -4. Eggdrop must be installed in a directory somewhere. This is - accomplished by entering the UNIX command:: - - make install - - This will install the Eggdrop in your home directory in a directory - called 'eggdrop' (i.e. /home/user/eggdrop). - - If you want to install to a different directory, use:: - - make install DEST= - - For example:: - - make install DEST=/home/user/otherdir - - Note that you must use full path for every file to be correctly - installed. - - [The following is performed from the directory installed above.] - -5. By default, version 1.8 uses SSL to protect botnet links. If you intend - on linking 1.8 bots together, you must run:: - - make ssl-cert - - Or, if you installed your eggdrop to a different directory in step 4, you - will want to run: - - make ssl-cert DEST= - - Read docs/TLS for more info on this process. - -6. Edit your config file completely. - -7. Start the bot with the "-m" option to create a user file, i.e. :: - - ./eggdrop -m LamestBot.conf - -8. When starting the bot in the future, drop the "-m". If you have edited - your config file correctly, you can type:: - - chmod u+x - - For example:: - - chmod u+x LamestBot.conf - - From then on, you will be able to use your config file as a shell - script. You can just type "./LamestBot.conf" from your shell prompt - to start up your bot. For this to work, the top line of your script - MUST contain the correct path to the Eggdrop executable. - -9. It's advisable to run your bot via crontab, so that it will - automatically restart if the machine goes down or (heaven forbid) - the bot should crash. Look at 'scripts/botchk' and 'scripts/autobotchk' - for a great start with crontabbing the bot. - -10. Smile, and if you haven't already read the README file in its - entirety, go take a long walk off a short pier. - -Modules -------- - -Modules are small pieces of code that can either be compiled into the -binary or can be compiled separately into a file. This allows for a much -smaller binary. - -If there are any modules that you have made or downloaded, you can add -them to the bot by placing them in the /src/mod directory with a mod -extension. They will be automatically compiled during make for you. -They must have a valid Makefile and, of course, be compatible with -the rest of the Eggdrop source. - -If you wish to add a module at a later time, follow the same steps in -paragraph 2. After you have moved the appropriate files, you will only -need to type 'make modules' to compile only the modules portion of the -bot. - -FREQUENTLY ASKED QUESTIONS --------------------------- - - (Q) What do I do if...? - - (A) READ THE README FILE! - - (Q) The readme does not answer...! - - (A) READ THE README FILE AGAIN! - - (Q) I still don't know how to... - - (A) MEMORIZE THE README FILE! - - (Q) But... - - (A) Well, go to www.egghelp.org or www.eggheads.org and see if you can - find there what you're looking for. There are also lots of IRC help - channels and various mailing lists, as seen in the README FILE. - -This is the end. If you read to this point, hopefully you have also read -the README file. If not, then READ IT!&@#%@! - -Have fun with Eggdrop! - - Copyright (C) 1997 Robey Pointer - Copyright (C) 1999 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/installAndSetup/readme.txt b/doc/html/_sources/installAndSetup/readme.txt deleted file mode 100644 index cf579179d..000000000 --- a/doc/html/_sources/installAndSetup/readme.txt +++ /dev/null @@ -1,383 +0,0 @@ -Last revised: Jul 2, 2016 - -====== -README -====== - - Please at least SKIM this document before asking questions. In fact, READ IT - if you've never successfully set up an Eggdrop bot before. PLEASE! READ IT! - ------- -NOTICE ------- - - Please read this file carefully before trying to set up Eggdrop. Also, - make SURE that you select your +n (owner) users wisely! They have 100% - access to your bot and account! ONLY GIVE THIS POWER TO SOMEONE YOU - TRUST COMPLETELY!! - ----------------- -What is Eggdrop? ----------------- - - Eggdrop is the World's most popular Internet Relay Chat (IRC) bot; it is - freely distributable under the GNU General Public License (GPL). Eggdrop - is a feature rich program designed to be easily used and expanded upon by - both novice and advanced IRC users on a variety of hardware and software - platforms. - - An IRC bot is a program that sits on an IRC channel and performs automated - tasks while looking just like a normal user on the channel. Some of these - functions include protecting the channel from abuse, allowing privileged - users to gain op or voice status, logging channel events, providing - information, hosting games, etc. - - One of the features that makes Eggdrop stand out from other bots is module - and Tcl scripting support. With scripts and modules, you can make the bot - perform almost any task you want. They can do anything from preventing - floods to greeting users and banning advertisers from channels. - - You can also link multiple Eggdrop bots together to form a botnet. This - can allow bots to op each other securely, control floods efficiently, and - even link channels across multiple IRC networks. It also allows the - Eggdrops share user lists, ban lists, exempt/invite lists, and ignore - lists with other bots if userfile sharing is enabled. This allows users - to have the same access on every bot on your botnet. It also allows the - bots to distribute tasks such as opping and banning users. See doc/BOTNET - for information on setting up a botnet. - - Eggdrop is always being improved and adjusted because there are bugs to - be fixed and features to be added (if the users demand them, and they make - actually sense). In fact, it existed for several years as v0.7 - v0.9 - before finally going 1.0. This version of Eggdrop is part of the 1.8 tree. - A valiant effort has been made to chase down and destroy bugs. - - This README file contains information about how to get Eggdrop, command - line options for Eggdrop, what you may need to do when upgrading from - older versions, a list of frequently asked questions, how to set up a - crontab, some boring legal stuff, info about the mailing list (a great - place to ask questions, and a good place to report bugs, too), some basics - about CVS usage, and some channels where you might get help with Eggdrop. - ------------------- -HOW TO GET EGGDROP ------------------- - - Before you can compile Eggdrop, you need to have Tcl installed on your - system. Most systems should have Tcl on them by now -- you can check by - trying the command "tclsh". If it works, you will be given a "%" prompt, - and you can type "exit" to exit the program. This means Tcl is installed - on your system. If tclsh doesn't load, then Tcl probably isn't on your - system, and you will need to install it. The best ftp site for Tcl is - ftp://tcl.activestate.com/pub/tcl/. - - Currently, the 1.8 tree of Eggdrop is developed at eggheads.org. You can - get the latest STABLE version of Eggdrop from the following url: - - http://geteggdrop.com/ - - You might try www.eggheads.org for help and information. - ---------- -Git Usage ---------- - - Eggdrop development has moved from a CVS-based version control system to - git. If you are interested in trying out the VERY LATEST updates to - eggdrop, you may want be interested in pulling the most recent code from - there. BE WARNED, the development branch of Eggdrop is not to be - considered stable, and may (haha) have some significant bugs in it. The - Eggheads Development Team will in NO WAY take any responsibility for - whatever might happen to you or your shell if you use the development - branch of Eggdrop! - - To obtain Eggdrop via the git repository (hosted by GitHub), you can - either clone the repository via git, or download a development snapshot. - - To clone the repository, simply type:: - - git clone https://github.com/eggheads/eggdrop.git - - Otherwise, you can download the development snapshot as a tar archive - from: - - https://github.com/eggheads/eggdrop/archive/develop.tar.gz - -------------- -Quick Startup -------------- - - Please see the 'INSTALL' file AFTER you finish reading this file. - ---------- -Upgrading ---------- - - -**UPGRADING FROM A PRE-1.3 VERSION TO 1.8** - - First of all- why are you still running pre-1.3?!?! - - #### BACK UP YOUR USERFILE #### - - We can't stress this enough. If you are upgrading and you have even a - slight possibility of downgrading again later, you will HAVE to back up - your userfile, or you will lose it. v1.3 of Eggdrop radically changed a - lot of things. - - There are many major changes between v0.9, v1.0, v1.1 and v1.8, so PAY - ATTENTION to this part if you have a v0.9, 1.0 or 1.1 bot currently. If - you're just starting out, you can skip this section. - - If you run share bots, you will need to upgrade them all at the same time - because of the new userfile format. Older bots will be able to link in, - but will not get or send a userfile. MAKE A NEW CONFIG FILE from the - example; there are some radical changes. - - If you are upgrading from 0.9/1.0 to 1.8, just redo the whole thing. - Absolutely everything has changed, including the userfile and config file - formats. - - If you are upgrading from 1.1/1.2 to 1.8, you will likely want to redo - the config file, as much as changed. BACK UP! You will need to run 'tclsh - scripts/weed/ c' to convert your userfile from v3 (1.1/1.2) to - v4 (1.3/1.4/1.5/1.6/1.8). - - -**UPGRADING FROM AN OLDER 1.3/1.4/1.5/1.6 VERSION TO A NEWER 1.8 VERSION** - - If you followed the 'INSTALL' file and did a 'make install' (or 'make - install DEST="path"') after 'make', this will be pretty easy. Just upload - the new eggdrop1.8.x.tar.gz file to your home dir on your shell, gunzip - and untar it, and type 'cd ~/eggdrop1.8.x'. Next, type './configure', - 'make config' or 'make iconfig', then 'make'. Then, kill the bot ('.die' - on the party line), and 'make install' to the same directory your bot - is currently in. After that, you can just restart your bot. You may wish - to delete the old Eggdrop executable and modules as well, especially if - you have limited disk space. - - You should read through the new eggdrop.conf file for all of the new - options in Eggdrop 1.8.x. You can copy and paste any of these settings - into you current conf file if you do not want to use the default settings. - ------------- -Command Line ------------- - - Eggdrop has some command-line options -- not many, because most things - should be defined through the config file. However, sometimes you may - want to start up the bot in a different mode, and the command-line - options let you do that. Basically, the command line for Eggdrop is:: - - % eggdrop [options] [config-file] - - The options available are: - - -n: Don't background. Normally, Eggdrop will move itself into the - background when you start it up, meaning you'll get another shell - prompt, and you can do other things while the bot is running. With - -n, you won't return to the shell prompt until the bot exits (which - won't normally happen until it's killed). By default, -n will send - all log entries to the console. - - -nt: Don't background, use terminal. This is just like -n, except that - instead of seeing log entries, your console will simulate a DCC - chat with the bot. - - -nc: Don't background, show channel info. This is just like -n, except - that instead of seeing log entries, every 10 seconds your screen - will clear and you will see the current channel status, sort of - like "top". - - -m: Create userfile. If you don't have a userfile, this will make Eggdrop - create one and give owner status to the first person that introduces - himself or herself to it. You'll need to do this when you first set - up your bot. - - -h: Show help. - - -v: Show version info, then quit. - - Most people never use any of the options except -m, and you usually only - need to use that once. - --------------------- -Setting up a Crontab --------------------- - - Eggdrop has become more stable with time, thanks mostly to people - reporting bug details and helping find places where it crashes. However, - there are still a -few- places where things aren't perfect. Few, if any, - things in life are. - - Also, most systems go down from time to time. These things cause your bot - to disappear from IRC, and you have to restart it. - - Eggdrop comes with a shell script called 'botchk' that will help keep the - bot online. It will make the machine check every ten minutes to make sure - your bot is still running. To use it, you have to add a line to your - crontab. First, edit 'botchk' and change the directory and command line - parameters so that it will be able to start up your bot. Then, add this - line to your crontab:: - - 0,10,20,30,40,50 * * * * /home/mydir/botchk - - If you don't want to get e-mails from cron, use this:: - - 0,10,20,30,40,50 * * * * /home/mydir/botchk >/dev/null 2>&1 - - Naturally, you need to change the path to the correct path for botchk. If - you've never used crontab before, here is a simple way to add that line: - - 1. Create a new file called 'mycron' and put the above line into it. - - 2. From your shell prompt, type '% crontab mycron'. - - That will create a new crontab entry for you with a line that runs botchk - every ten minutes. Botchk will then restart the bot when necessary (and - send you email informing you). - -------------------------------------- -Setting up a Crontab using autobotchk -------------------------------------- - - Included with your Eggdrop is an Eggdrop utility called 'autobotchk'. - Using autobotchk is probably the fastest way of creating your botchk and - crontabbing it with just a few required steps: - - 1. Type:: - - cp scripts/autobotchk .. - - 2. Type:: - - ./autobotchk - - This will hopefully crontab your bot using the default setup. If you want - a list of autobotchk options, type './autobotchk'. An example with options - would be:: - - ./autobotchk -noemail -5 - - This would setup crontab to run the botchk every 5 minutes and also to - not send you e-mail saying that it restarted your bot. - ------------------- -Boring Legal Stuff ------------------- - - The Eggdrop bot is Copyright (C) by Robey Pointer. As of January, 1997, - Eggdrop is distributed according to the GNU General Public License. There - should be a copy of this license in the file 'COPYING'. If not, write to - the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - As of Eggdrop 1.3.28, all changes made by the Eggheads Development Team to - the Eggdrop source code and any related files are Copyright (C) by Eggheads - Development Team. The source code will still be distributed according to - the GNU General Public License as Robey Pointer did in the past. - - Releases previous to 1.0m were made using a different licensing scheme. - You may, at your option, use the GNU General Public License on those - versions (instead of the license packaged with them) with my blessing. - For any versions bearing a copyright date of 1997 or later, you have - no choice -- you must use the GNU General Public License. - - The files "match.c", "net.c", and "blowfish.c" are exempt from the above - restrictions. "match.c" is original code by Chris Fuller (email: - crf@cfox.bchs.uh.edu) and has been placed by him into the public domain. - "net.c" is by me, and I [Robey Pointer] also choose to place it in the - public domain. "blowfish.c" is by various sources and is in the public - domain as well. All 3 files contain useful functions that could easily - be ported to other applications. - - Tcl is by John Ousterhout and is in no way affiliated with Eggdrop. It - likely has its own set of copyrights and whatnots. - - There is no warranty, implied or whatever. You use this software at your - own risk, no matter what purpose you put it to. - ------------- -Mailing List ------------- - - There are currently a couple of mailing lists about Eggdrop. - eggheads@eggheads.org is the one relevant for posts about Eggdrop 1.8 and - up (suggestions, help, etc). - - To subscribe to the eggheads mailing list, send e-mail to - eggheads-request@eggheads.org. In the body of the message, put "subscribe - eggheads". You can also go to the following url: - - http://lists.eggheads.org/mailman/listinfo/eggheads - - ### DO NOT SEND ROBEY EMAIL ABOUT EGGDROP! ### - - Robey is no longer developing the Eggdrop code, so don't bother e-mailing - him. If you have a serious problem, email the eggheads mailing list and - it will get to the coders. - - Please, before posting to this list, see what things are like. When you do - post, read over your post for readability, spelling, and grammar mistakes. - Obviously, we're all human (or are we?) and we all make mistakes (heck, - look at this document! ;). - - Open discussion and debate is integral to change and progress. Don't flame - others over mere form (grammar and spelling), or even substantive issues - for that matter. Please read and follow the mailing list rules. - - The eggheads@eggheads.org mailing list is not dedicated to those all too - common questions we have all seen on other lists... For example: - - o "Why does my bot say this: Please edit your config file." - o "How do I telnet my bot?" - o "Where do I get Eggdrop for windows??????" - - Technical questions, your thoughts or suggestions on new features being - added to Eggdrop, things that should be removed or fixed, amazing problems - that even stump the guru's, etc. are what we want to see here. - - Bug reports should be sent to bugs@eggheads.org. Please read and fill out - the BUG-REPORT file in the doc directory. - - DO NOT SEND HTML E-MAILS TO ANY OF THE EGGHEADS.ORG MAILING LISTS. ANYONE - CAUGHT SENDING HTML E-MAILS TO ONE OF THESE LISTS WILL BE REMOVED - IMMEDIATELY! - -------------- -Documentation -------------- - - We're trying to keep the documentation up to date. If you feel that - anything is missing here or that anything should be added, etc, please - e-mail bugs@eggheads.org about it. Thank you. - --------------- -Obtaining Help --------------- - - You can obtain help with Eggdrop in the following IRC channels: - - * Undernet - #eggdrop (official channel) - * FreeNode - #eggdrop (official channel), #egghelp - * EFnet - #egghelp - * IRCnet - #eggdrop - * DALnet - #eggdrop - * QuakeNet - #eggdrop.support - - If you plan to ask questions in any of the above channels, you should be - familiar with and follow IRC etiquette. - - o Don't type using CAPITAL letters, colors, or bold. - - o Don't use "!" and "?" excessively. - - o Don't /msg people without their permission. - - o Don't repeat or paste large amounts of text to the channel. - - If there are any other serious Eggdrop related channels that should be - added to the above list, please let us know. - - -Copyright (C) 1997 Robey Pointer -Copyright (C) 1999 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/mainDocs/TLS.txt b/doc/html/_sources/mainDocs/TLS.txt deleted file mode 100644 index 84e84eadd..000000000 --- a/doc/html/_sources/mainDocs/TLS.txt +++ /dev/null @@ -1,185 +0,0 @@ -TLS support -Last revised: Oct 17, 2010 - -=========== -TLS support -=========== - -This document provides information about TLS support which is a new -eggdrop feature since version 1.8.0. - ------ -About ------ - -Eggdrop can be optionally compiled with TLS support. This requires OpenSSL -0.9.8 or more recent installed on your system. -TLS support includes encryption for IRC, DCC, botnet, telnet and scripted -connections as well as certificate authentication for users and bots. - ------------- -Installation ------------- - -./configure and install as usual, the configure script will detect if your -system meets the requirements and will enable TLS automatically. You can -override the autodetection and manually disable TLS with -./configure --disable-tls. You can't forcefully enable it though. -The configure script will look for OpenSSL at the default system locations. -If you have it installed at a non-standard location or locally in your -home directory, you'll need to specify the paths to header and library -files with the --with-sslinc and --with-ssllib options. You can also use -these if you want to override the default OpenSSL installation with a -custom one, as they take precedence over any system-wide paths. - ------ -Usage ------ - -By default, without additional configuration, TLS support will provide -opportunistic encryption for botnet links. For other connection types, -TLS must be requested explicitly. - -Secure connections are created the same way as plaintext ones. The only -difference is that you must prefix the port number with a plus sign. -A port number that could be normally omitted, would have to be included -to enable TLS. Scripts can also switch a regular, plaintext connection -to TLS, using the starttls Tcl command. - -^^^ -IRC -^^^ - -To connect to IRC using SSL, specify the port number and prefix it with -a plus sign. Example: .jump irc.server.com +6697. The same goes for -the server list in the config file. - -^^^^^^ -Botnet -^^^^^^ - -By default, eggdrop now automatically attempts to protect botnet links -with SSL if it is compiled with TLS support. If one of the bots linking -does not have TLS support enabled, the connection will fall back to plain -text. To explicitly require all links to a hub be SSL-only (ie, prevent -plain text connections from being allowed), prefix the listen port in the -hub configuration file with a plus (+) sign. Conversely, to force a leaf -to only allow SSL (not plain text) connections with a hub, you must -prefix the hub's listen port with a plus when adding it to the leaf via -+bot/chaddr commands. The nickname and password are sent before SSL -negotiation takes place (the password is not sent in plain text anyway). -If SSL negotiation fails and either the hub or leaf is set to require SSL, -the connection is deliberately aborted and no clear text is ever sent. - -^^^^^^^^^^ -Secure DCC -^^^^^^^^^^ - -Eggdrop supports the SDCC protocol, allowing you to establish DCC chat -and file transfers over SSL. Example: /ctcp bot schat -Note, that currently the only IRC client supporting SDCC is KVIrc. For -information on how to initiate secure DCC chat from KVIrc (rather than -from the bot with /ctcp bot chat), consult the KVIrc documentation. - -^^^^^^^ -Scripts -^^^^^^^ - -Scripts can open or connect to SSL ports the usual way specifying the -port with a plus sign. Alternatively, the connection could be -established as plaintext and later switched on with the starttls Tcl -command. (Note that the other side should also switch to SSL at the same -time - the synchronization is the script's job, not eggdrop's.) - -------------------------------------- -Keys, certificates and authentication -------------------------------------- - -You need a private key and a digital certificate whenever your bot will -act as a server in a connection of any type. Common examples are hub -bots and SSL listening ports. General information about certificates and -public key infrastructure can be obtained from Internet. This document -only contains eggdrop-specific information on the subject. -The easy way to create a key and a certificate is to type 'make sslcert' -after compiling your bot (If you installed eggdrop to a non-standard -location, use make sslcert DEST=/path/to/eggdrop). This will generate a -4096-bit private key (eggdrop.key) and a certificate (eggdrop.crt) after -you fill in therequired fields. - -To authenticate with a certificate instead of using password, you should -make a ssl certificate for yourself and enable ssl-cert-auth in the config -file. Then either connect to the bot using SSL and type ".fprint +" or -enter your certificate fingerprint with .fprint SHA1-FINGERPRINT. -To generate a ssl certificate for yourself, you can run the following -command from the eggdrop source directory:: - - openssl req -new -x509 -nodes -keyout my.key -out my.crt -config ssl.conf - -When asked about bot's handle, put your handle instead. How to use your -new certificate to connect to eggdrop, depends on your irc client. -To connect to your bot from the command line, you can use the OpenSSL -ssl client:: - - openssl s_client -cert my.crt -key my.key -connect host:sslport - ------------- -SSL Settings ------------- - -There are some new settings allowing control over certificate -verification and authorization. - - ssl-privatekey - - file containing Eggdrop's private key, required for the certificate. - - ssl-certificate - - Specify the filename where your SSL certificate is located. - if your bot will accept SSL connections, it must have a certificate. - - ssl-verify-depth - - maximum verification depth when checking certificate validity. - Determines the maximum certificate chain length to allow. - - | ssl-capath - | ssl-cafile - - specify the location of certificate authorities certificates. These - are used for verification. Both can be active at the same time. - If you don't set this, validation of the issuer won't be possible and - depending on verification settings, the peer certificate might fail - verification. - - ssl-ciphers - - specify the list of ciphers (in order of preference) allowed for - use with ssl. - - ssl-cert-auth - - enables or disables certificate authorization for partyline/botnet. - This works only for SSL connections (SDCC or telnet over SSL). - A setting of 1 means optional authorization: If the user/bot has a - fingerprint set and it matches the certificate SHA1 fingerprint, - access is granted, otherwise ordinary password authentication takes - place. - - If you set this to 2 however, users without a fingerprint set or - with a fingerprint not matching the certificate, will not be - allowed to enter the partyline with SSL. In addition to this user and - bot certificates will be required to have an UID field matching the - handle of the user/bot. - - | ssl-verify-dcc - | ssl-verify-bots - | ssl-verify-server - | ssl-verify-clients - - control ssl certificate verification. A value of 0 disables - verification completely. A value of 1 enables full verification. - Higher values enable specific exceptions like allowing self-signed - or expired certificates. Details are documented in eggdrop.conf. - -Copyright (C) 2010 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/mainDocs/about.txt b/doc/html/_sources/mainDocs/about.txt deleted file mode 100644 index acd7d2480..000000000 --- a/doc/html/_sources/mainDocs/about.txt +++ /dev/null @@ -1,64 +0,0 @@ -About Eggdrop -Last revised: July 27, 2010 - -============= -About Eggdrop -============= - - Eggdrop was created around December 1993 to help stop the incessant wars - on #gayteen. It spawned from another bot that was in the process of being - written at the time called "Unrest". The purpose of Unrest was to answer - help requests from other bots. The first public release of Eggdrop was - version 0.6, and since then, it has grown into what you have before you. - - Eggdrop is the World's most popular Internet Relay Chat (IRC) bot; it is - freely distributable under the GNU General Public License (GPL). Eggdrop - is a feature rich program designed to be easily used and expanded upon by - both novice and advanced IRC users on a variety of hardware and software - platforms. - - An IRC bot is a program that sits on an IRC channel and performs automated - tasks while looking just like a normal user on the channel. Some of these - functions include protecting the channel from abuse, allowing privileged - users to gain op or voice status, logging channel events, providing - information, hosting games, etc. - - One of the features that makes Eggdrop stand out from other bots is module - and Tcl scripting support. With scripts and modules, you can make the bot - perform almost any task you want. They can do anything from preventing - floods to greeting users and banning advertisers from channels. - - You can also link multiple Eggdrop bots together to form a botnet. - This can allow bots to op each other securely, control floods efficiently, - and even link channels across multiple IRC networks. It also allows the - Eggdrops share user lists, ban lists, exempt/invite lists, and ignore - lists with other bots if userfile sharing is enabled. This allows users - to have the same access on every bot on your botnet. It also allows the - bots to distribute tasks such as opping and banning users. See doc/BOTNET - for information on setting up a botnet. - - Eggdrop is always being improved and adjusted because there are bugs to - be fixed and features to be added (if the users demand them, and they - make actually sense). In fact, it existed for several years as v0.7 - - v0.9 before finally going 1.0. This version of Eggdrop is part of the - 1.8 tree. A valiant effort has been made to chase down and destroy bugs. - - To use Eggdrop, you need: - - * Some sort of Unix account - - * A pretty good knowledge of IRC and Unix, including how to compile - programs, how to read, and what DCC chat is, at absolute minimum. - - * About 5-7 MB of disk space. The Eggdrop tarball is about 5.4 MB - unpacked. - - * Tcl -- Eggdrop cannot compile without Tcl installed on your shell. - - Before starting, ask yourself if you really need a bot. Most IRC servers - allow only a handful of bots, and some forbid them outright. The reason? Too - many people run bots as "toys" or as a means of destruction. If you want to - use Eggdrop for destructive purposes, go ahead and erase this directory now. - It's almost impossible to do what you want with this bot. - - Copyright (C) 1999 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/mainDocs/bans.txt b/doc/html/_sources/mainDocs/bans.txt deleted file mode 100644 index 4193a9be3..000000000 --- a/doc/html/_sources/mainDocs/bans.txt +++ /dev/null @@ -1,76 +0,0 @@ -Bans, Invites and Exempts -Last revised: March 07, 2002 - -========================== -Bans, Invites, and Exempts -========================== - - - I assume that you know how bans work on IRC. Eggdrop handles bans, exempts - and invites in various ways, and this file is intended to help clarify how - these modes are used within the bot. From here on, 'mode' applies to all - three modes (bans, exempts, and invites) unless otherwise specified. There - are three types of modes: - - Global modes - These modes will be active on every channel the bot - monitors. Some will "expire" after a while (be removed - automatically). Others are considered "permanent" and - can only be removed by a master. - - Channel modes - These modes are active only on one channel, and are almost - always temporary modes that expire after an hour or so - (depending on how long you've specified in the config - file). Usually they're created by a Tcl script of some - sort. - - Non-bot modes - These are modes that were not placed by the bot. They - can be removed by anyone on the channel. The other two - types of modes are protected by the bot (unless the - channel settings specify otherwise), and have to be - removed via the bot. - - Bans can also be either sticky or unsticky: - - Sticky - These modes are usually set by a user using the ".stick" - command. Modes with this attribute are attempted to be kept - active on the channel at all times by the bot, even if the - channel is set to use dynamic modes. Obviously, if the channel - isn't set to use dynamic modes, this won't have any effect. - - Un-sticky - These modes are the style that Eggdrop sets by default when - a user uses one of the commands that result in a mode. This - attribute means that the ban will be removed if using dynamic - modes after a certain time. If a mode is "sticky" and you wish - to set it to be "un-sticky", use the ".unstick" command. - - Mode behavior: - - Bans - If the channel is supporting dynamic bans, then the ban is - set when a user with a matching hostmask joins the channel; - otherwise, the modes are permanently set. On a channel with - dynamic bans, the ban expires after 'ban-time' minutes (which - is specified in the config file). - - Exempts - If the channel is not supporting dynamic exempts, then they - are set at all times. Otherwise, the exemption is set when a - ban is placed whose host includes that covered by the exempt. - The exempt will remain in place for at least 'exempt-time' - minutes (defined in config file) or until after the - corresponding ban has been removed, whichever happens last. - - Invites - If the channel does not support dynamic invites, then they - are set at all times. Otherwise, the invite is set when the - channel is +i and a user requests an invite into the channel. - The invite then remains set for 'invite-time' minutes - (defined in config file) or until the channel goes -i again, - whichever happens last. - - Copyright (C) 1999 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/mainDocs/botnet.txt b/doc/html/_sources/mainDocs/botnet.txt deleted file mode 100644 index 4dcee0212..000000000 --- a/doc/html/_sources/mainDocs/botnet.txt +++ /dev/null @@ -1,296 +0,0 @@ -Botnet Sharing and Linking -Last revised: June 29, 2016 - -========================== -Botnet Sharing and Linking -========================== - - - The purpose of this document is to show you what a botnet is and how it - could be useful to you. It also covers botflags userfile sharing. - -What is a botnet? ------------------ - - A botnet consists of one or more bots linked together. This can allow bots to op each other securely, control floods efficiently, and share user lists, ban lists, exempt/invite lists, and ignore lists (if sharing is enabled). - -Terms ------ - -The following are some common terms used in this document: - -**Botnet** - A botnet consists of one or more bots connected together. - -**Link** - Link is the term used to describe a bot connecting to another bot. - -**Hub** - A bot is described as a hub-bot if one or more bots are linked to it. - - -**Leaf** - A leaf is a non-hub bot connecting to a hub-bot. A leaf has only one other bot connected to it, its hub. Leaf bots can be assigned the "l" botflag to prevent other bots from linking to them. - - -**Link Bot** - A link-bot is a bot that is linked to another bot. It may or may not be a hub-bot. - - -**Share** - Share is the term used to describe the sharing of user records. - - -**Share Bot** - A share-bot is a bot which shares user records with one or more linked bots. - - -**Aggressive Share** - Aggressive share is a term used to describe the direction of sharing user-files. Aggressive share bots will SEND userfiles to another passive bot. - - -**Passive Share** - Passive share is a term used to describe the direction of sharing user-files. Passive share bots will accept userfiles from an aggressive share bot. - -**Address** - The physical address, containing the address and port of the bot. For example: lame.org:3333. You can change a bot's address with:: - - .chaddr - -**Relay Port** - The relay port number of the bot is defined in the config file. Note that you can define one port for bots and another for user connections. - -**Relay** - A relay connection is used to relay (jump) to another bot via telnet or DCC chat. You can relay to another bot even if the remote bot is not linked. You can use:: - - .relay - - to relay to another bot. - -**Port** - The telnet port is used by the bot to communicate with other bots and/or users. Note that you can define separate ports for user and bot connections. - -Example bottree ---------------- - -:: - - BotA - |-+BotB - `-+BotC - -BotB is linked to a master sharebot, BotA, and a slave sharebot, BotC. BotB shares passively with [receives from] BotA and shares aggressively with [sends to] BotC. - - -Bot Flags ---------- - -Flags are attributes that determine what a bot can or is allowed to do. -Flags can be either global (such as +s) or channel specific (such as -\|+s #lamest). See '.help botattr' for help with setting these flags. - -The following is a list of valid bot flags: - -+------+---------------------------------------------------------------+ -| s | share aggressively (SEND userfile to a passive bot) | -+------+---------------------------------------------------------------+ -| p | share passively (ACCEPT userfile from an aggressive bot) | -+------+---------------------------------------------------------------+ -| g | global share (share all channels) | -+------+---------------------------------------------------------------+ -| h | hub (automatically link to this bot) | -+------+---------------------------------------------------------------+ -| a | alternate (automatically link to this bot if the hub bot can't| -| | be linked) | -+------+---------------------------------------------------------------+ -| l | leaf (bot is not allowed to link in other bots) | -+------+---------------------------------------------------------------+ -| r | reject (bot will not be allowed to link) | -+------+---------------------------------------------------------------+ -| i | isolate (isolate the party line across a bot link) | -+------+---------------------------------------------------------------+ -| 0-9 | user defined flags | -+------+---------------------------------------------------------------+ - -Adding and linking bots ------------------------ - -With the common terms out of the way, we can start with the process of linking two bots. Before you start, you need to know the address and port of each bot you wish to link. - -Here is an example scenario: - - BotA is on lame.org listening on port 3333, and BotB is on irc.org - listening on port 4444. First, you have to add each Bot to the other's - userfile. On BotA, you would type '.+bot BotB irc.org:4444'. If BotB is - on a common channel with BotA, BotB's hostmask is automatically added. - Otherwise, you have to add the hostmask manually with the '.+host' - command. On BotB, you would type '.+bot BotA lame.org:3333'. - -At this point, you can link the two bots by typing '.link BotA' on BotB (or '.link BotB' on BotA). The bots will now give themselves random passwords which are *not* stored encrypted in the userfile. Note that you can link as many bots as you wish to your botnet. - - -Using botflags --------------- - -Botflags are needed to assign special functions and tasks to your bots. -Bot flags are set with the '.botattr' command. See '.help botattr' for -help with this command. The following is a list of botflags and their -functions: - - "h" (hub) - If you want your bot(s) to automatically link/relink, you can assign - the +h botflag each bot's hub. Note that if you set multiple bots +h, - the bot only attempts to link to one. - - - "a" (alternate) - If your bots are, for some reason, unable to link to their hub, they - will attempt to connect to an alternate hub. You can assign a bot as - an alternate hub by giving it the +a botflag. - - - "l" (leaf) - This flag, assigned to a link bot, will prevent the link bot from linking - other bots to your botnet. - - - "r" (reject) - If you assign this flag to a link bot, the link bot will not be allowed - to link to the botnet. - - - "i" (isolate) - This flag isolates a link bot's partyline from the rest of the botnet. - Anything said on the link bot's partyline won't appear on the rest of - the botnet. - - - "s" (SEND userfile to) - \+s Giving a link bot this flag will make the bot share aggressively - with the link bot. See 'Aggressive Share' in section 2 of this - document for more information on aggressive sharing. - - "\|s" (channel-specific sharing) - +s bots need this flag for each channel you want to share. - - - "p" (ACCEPT userfile from) - Giving a link bot this flag will make the bot share passively with - the link bot. See 'Passive Share' in section 2 of this document for - more information on passive sharing. - - "g" (global share) - This flag allows the sharing of all channels with a link bot. - - "0-9" (user-defined) - These 10 flags are user-defined can be used by scripters. - - -Making bots share user records ------------------------------- - - Before you start preparing your bots for sharing, make sure that - you've loaded the transfer and share modules. You also have to ensure - that each channel you wish to share is set +shared (see '.help - chanset' and '.help chaninfo'). - - By using specific botflags, you can cause your bot to share - aggressively with some link bots, and passively with others. For - sharing to work, flags must be set properly on both the passive and - the aggressive bots. An aggressive bot will not share userfiles with - another aggressive bot; a passive bot will not share userfiles with - another passive bot. - - First off, let's say we have two bots we want to link. We will - call one Lamestbot, and the other Lameshare. The first thing that needs - to be done is each bot needs the other bot added to its user record. - Your botnet should have a hub bot. This will have them connect - automatically whenever they are started. Without a hub, you would have to - manually link them with the .link command. For this situation we will - make Lamestbot the hub for our small botnet. Let's also use a channel - called #eggdrop as the one we want to share user channel flags with. Do - the following: - - On Lamestbot:: - - .+bot Lameshare eggdrop.com:3333 - - This command adds a user record to - Lamestbot for Lameshare. Lameshare is running from eggdrop.com and is - on port 3333. If Lameshare were to have a separate port for users/relays - we would just add a '/' and the port number, i.e. 3333/5555:: - - .botattr Lameshare +s - - This tells us that Lamestbot will only send - user files to Lameshare; Lameshare will not send them to it:: - - .botattr Lameshare |s #eggdrop - - This sets up sharing of the channel - flags for #eggdrop between the bots. Without this, they will not share - channel flags only global flags for the users - - On Lameshare:: - - .+bot Lamestbot best.com:3333/5555 - - Again this will add a user on - Lameshare called Lamestbot with the domain of best.com. The bot has - two ports, 3333 for bot communications and 5555 for users/relays:: - - .botattr Lamestbot +hp - - This command sets Lamestbot as the hub and - also as a passive share, which means Lameshare will accept user files - from Lamestbot::: - - .botattr Lamestbot |s #eggdrop - - This sets #eggdrop as a share channel - - Our botnet:: - - Lamestbot - `-+Lameshare - - Let's add a third bot called beldin to this scenario: - - On Lamestbot:: - - .+bot beldin llama.com:3333 - - .botattr beldin s|s #eggdrop - - Notice how i piped (the | character) - the channel flag, also saving time.) - - Also note that you don't have to add beldin on Lameshare. Since - they are already sharing, it was added automatically. The one thing that - you should note is that no bot flags will be shared. If you set beldin as - +s (Aggressive share) on the hub (Lamestbot) he will not be set on the - other bots as that. The same with the channel +s flag. All other flags - will be shared such as the o, f, etc. Now that we have three bots, we - can also set up one as an alternate hub. The alternate hub is the bot - that the bots will auto-connect to in the event the hub goes down or - is unreachable. - - Let's make beldin an alternate hub for our little botnet. - - On Lameshare:: - - .botattr beldin +a - - That's all there is to it. Again, since bot flags are not shared, - you would have to add the bot flag +a for beldin on them all. The only - ones you would not have to do this on are beldin and the hub (Lamestbot). - Of course, if you had more bots, you would have to add beldin as a +a on - them, but you would not do it on the hub or beldin. - - Our botnet:: - - Lamestbot - |-+beldin - `-+Lameshare - -Copyright (C) 1999 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/mainDocs/features.txt b/doc/html/_sources/mainDocs/features.txt deleted file mode 100644 index e107f44d1..000000000 --- a/doc/html/_sources/mainDocs/features.txt +++ /dev/null @@ -1,59 +0,0 @@ -Last revised: June 05, 2002 - -================ -Eggdrop Features -================ - - Eggdrop is the most advanced IRC robot available. It has been under - development since December 1993, and unlike most other bots, it is still - regularly updated. Some of its features include: - - * Support for SSL-enabled IRC servers - - * Support for IPv6 users - - * Completely separate channel user lists like having a separate bot for - each channel. - - * A "party line" available through dcc chat or telnet, with multiple - channels, giving you the ability to talk to people without being - affected by netsplits. - - * A "botnet". A botnet consists of one or more bots linked together. This - can allow bots to op each other securely, control floods efficiently, - and share user lists, ban lists, exempt/invite lists, and ignore lists - (if sharing is enabled). - - * User records are saved on disk and alterable via dcc chat. Each user - can have a password (encrypted), a list of valid hostmasks, a set of - access flags, etc. - - * The ability to "learn" new users (if you choose to let the bot do so) - by letting users /MSG the bot "hello". The bot will grant them automatic - access of whatever type you specify (or even no access at all). - - * A file system where users can upload and download files in an - environment that looks and acts (for the most part) like a typical - UNIX system. It also has the ability to mark files and directories - as hidden -- unaccessible to people without certain user flags. - - * Console mode: you can view each channel through dcc chat or telnet, - selectively looking at mode changes, joins and parts, channel talk, - or any combination of the above. - - * A scripting language: commands and features can be easily added to - the bot by means of the Tcl scripting language, giving you the power - of TOTAL customization of your bot. - - * Module support: you can remove/add features to your bot by adding or - removing modules. - - NOTE: - - This bot is NOT intended for users of very limited MEMORY or DISK shell - accounts. The development of this latest design of Eggdrop is geared - towards features and flexibility. - -Copyright (C) 1997 Robey Pointer - -Copyright (C) 2000 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/mainDocs/index.txt b/doc/html/_sources/mainDocs/index.txt deleted file mode 100644 index aa4c4401a..000000000 --- a/doc/html/_sources/mainDocs/index.txt +++ /dev/null @@ -1,20 +0,0 @@ -.. Eggdrop documentation master file, created by - sphinx-quickstart on Tue Jun 28 18:48:35 2016. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Contents: - -.. toctree:: - :maxdepth: 2 - - about - features - users - partyline - bans - botnet - patch - tcl-commands - ipv6 - tls diff --git a/doc/html/_sources/mainDocs/ipv6.txt b/doc/html/_sources/mainDocs/ipv6.txt deleted file mode 100644 index f807b92a5..000000000 --- a/doc/html/_sources/mainDocs/ipv6.txt +++ /dev/null @@ -1,85 +0,0 @@ -IPv6 support -Last revised: Jul 29, 2010 - -============ -IPv6 support -============ - - -This document provides information about IPv6 support which is a new -eggdrop feature since version 1.8.0. - ------ -About ------ - -Eggdrop can be compiled with IPv6 support. To make use of this, you need an -IPv6-enabled OS and IPv6 connectivity. -Every possible type of TCP connection can be established over IPv6 now, -which includes IRC connections, DCC connections, file transfer, botnet -connections, Tcl script connections initiated with the listen/connect -commands, telnet and ident lookups. - ------------- -Installation ------------- - -./configure and install as usual, the configure script will detect if your -system supports IPv6 and will enable it automatically. You can override this -behavior and manually enable or disable IPv6 with ./configure --enable-ipv6 -or ./configure --disable-ipv6. -Older operating systems may have limited or no support for IPv6. Linux 2.4 & -2.6, FreeBSD, NetBSD, OpenBSD and Mac OS X all have full IPv6 support. -MS Windows has proper support beginning with Windows Vista. XP's IPv6 stack -has some limitations and needs to be manually installed and enabled. Cygwin -includes IPv6 only since version 1.7. Unofficial patches are available for -1.5.x. - ------ -Usage ------ - -You can use IPv6 addresses wherever you could specify IPv4 ones. IPs and -hostnames are interchangeable everywhere. For certain settings and -commands, you can enclose IPv6 addresses in square brackets to prevent -the colon character (:) from being interpreted as a port separator. These -are documented in the help files and the html documentation, so you can -consult them when in doubt. - --------- -Settings --------- - -There are four new IPv6 related config variables: - - vhost4 - - set this to use a specific vhost with IPv4 connections. Can contain - either an IP address or a hostname. - - vhost6 - - set this to use a specific vhost with IPv6 connections. Can contain - either an IPv6 address or a hostname. - - prefer-ipv6 - - when a connection can be established through both IPv4 and IPv6. - You can set this to 1 to prefer IPv6 or to 0 to prefer IPv4. - - listen-addr - - the address to bind to for listening (telnet/bot ports, /ctcp chat, - file send, script listen, etc.). Can be either an IPv4/IPv6 IP or a - hostname. If a hostname resolves to both type of addresses, - prefer-ipv6 will determine which to be used. - -Other affected variables: - - my-ip and my-hostname are removed now. Their function is split between - vhost4 and listen-addr. - - nat-ip works with IPv4 as it used to. It has no meaning for IPv6 and is - not queried for IPv6 connections. - -Copyright (C) 2010 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/mainDocs/partyline.txt b/doc/html/_sources/mainDocs/partyline.txt deleted file mode 100644 index 6d861d3b9..000000000 --- a/doc/html/_sources/mainDocs/partyline.txt +++ /dev/null @@ -1,39 +0,0 @@ -Last revised: December 31, 2001 - -============== -The Party Line -============== - -The most important way you will communicate with your bot is through -the party line. The party line is accessible via DCC chat or telnet. -It's pretty much just a miniature, lag-less IRC (see doc/BOTNET), but -it also consists of a console through which you can watch channel -activity and give commands. - -To enter the party line, DCC chat or open a telnet connection to your -bot. It should ask for your password if you've set one. If you don't -have one set, use the /msg PASS command to set one. - -The party line is actually split up into 200,000 "channels". The console -is available from each channel, but you can only talk to people who are -on your current channel (just like IRC). Channel 0 is the main party -line, while others are typically reserved for private conversations. -Channels 1-99,999 are botnet wide chat channels and any user joining -that channel anywhere on the botnet will be able to chat with you. -Channels \*0-\*99,999 are local channels (only people on the bot you -are on can chat with you on these channels). - -Console commands start with a dot (.), similar to the slash (/) used -for IRC commands. At any time, you can type ".help all" to get a list -of all possible commands. To find out what a command does, use ".help -". For example: ".help channel". - -When you're on the party line, anything you type that doesn't start with -a dot (.), a comma (,), or an apostrophe (') is considered to be -broadcast to everyone else, just like talking on a channel. A message -prefixed with a comma goes only to other bot owners (+n). A message -prefixed with an apostrophe is sent to all users on the local bot only. -You can change channels with the ".chat" command or even leave all -channels with ".chat off". - -Copyright (C) 2002 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/mainDocs/patch.txt b/doc/html/_sources/mainDocs/patch.txt deleted file mode 100644 index 7f9d992cb..000000000 --- a/doc/html/_sources/mainDocs/patch.txt +++ /dev/null @@ -1,131 +0,0 @@ -Last revised: July 10, 2016 - -Patch How-To -============ - -The purpose of this document is to show you what a patch is and how you -can create, apply, download, and submit a patch. - -A patch is an update to the source code of a program (here Eggdrop). -Be careful, every patch is designed for a special Eggdrop version -and cannot be applied on every bot! - ----------------- -Applying a patch ----------------- - - To apply a patch to an Eggdrop, you have to first obtain the Eggdrop - source code. You should always keep a tar.gz archive with the source of - your current Eggdrop on your shell. In the next step, you have to change - to your source directory (i.e.: /home/user/eggdrop1.8.0/) and type - the following command:: - - patch -p1 < ../path.to.the/patch - - Once this is complete, execute the following command: - - find . -name "\*.rej" -print - - If it returns a list with filenames ending with .rej extension, then the - patch didn't apply properly. Ensure that the patch is intended for your - version and that you have the original source. You should also try to - re-download the patch to ensure that the patch is not corrupted. - - If you get an error such as this:: - - |Index: Makefile.in - |=================================================================== - |RCS file: /usr/local/cvsroot/eggdrop1.8/Makefile.in,v - |retrieving revision 1.38 - |diff -u -r1.38 Makefile.in - |--- Makefile.in 17 Jun 2004 05:43:28 -0000 1.38 - |+++ Makefile.in 23 Jul 2004 21:58:23 -0000 - -------------------------- - File to patch: - - Then you should try using a different '-p' option. Try -p0 first, and then - -p2, -p3, etc. - - - If the patch applied properly, the only thing left to do is to recompile - your Eggdrop and install the new modules and binaries. - ---------------------------------------------------------- -Creating and submitting a patch (via GitHub - preferred!) ---------------------------------------------------------- -If you fixed a bug and/or changed something in Eggdrop's source code, it -would be really nice to let the dev team know about it, so we can -possibly apply it to next release of Eggdrop. - -To create a patch via github: - - 1. Fork the eggdrop git repo by logging in to your GitHub account and - clicking the fork button at the top of the screen. Follow the - directions it provides to configure your local repo. - - 2. Enter the local directory and create a new branch for your patch:: - - git checkout -b - - 3. Make your changes - - 4. Once you confirm your patch works, push the changes back to your - GitHub repo - this is usually done by something similar to:: - - git push origin - - 5. Create a pull request by clicking on the "Pull Request" button on - your GitHub page. Select the appropriate branches (usually eggheads/eggdrop/develop - and yourUserName/eggdrop/YourBranchName) - - 6. Fill in the Pull Request template and submit - - 7. Pour yourself a cold one and bask in the warm feeling of contributing - to the open source community! Karma++! - --------------------------------------------------------- -Creating and submitting a patch (via diff - old school!) --------------------------------------------------------- - -To create a patch using the diff tool: - - 1. Create a directory with original source tree and one with modified - source tree. - - 2. Run the following:: - - diff -urN eggdrop1.8.original eggdrop1.8.modified > patchname.patch - - DO NOT add any other diff options. - - 3. Send an e-mail to patches@eggheads.org with the patch attached. The - body should contain a detailed description of what you changed and - why you changed it. Don't forget to include the Eggdrop version for - which your patch was created. - - It helps if you include the major release number that the patch is - for in the subject line. For the 1.8.x series, the subject line - should look like this:: - - PATCH1.8: my-patch-filename.patch - - You should also include the nick/handle, name, and email address - you would like used for attribution in the Changes1.8 and THANKS - files. - - Never modify src/patch.h or one of the Changes files. We will do it. If - your patch includes changes related to autotools (./configure, etc), do - NOT run autoconf, autoheader, etc; we will do this as well. - - Also, please don't add credit lines all over the source when patching. - Patch contributors will receive credit in Changes1.8 and THANKS. - -------------------- -Downloading a patch -------------------- - - Some patches for Eggdrop 1.8.x can be found at the following location: - - ftp://ftp.eggheads.org/pub/eggdrop/patches/1.8 - -Copyright (C) 1999 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/mainDocs/tcl-commands.txt b/doc/html/_sources/mainDocs/tcl-commands.txt deleted file mode 100644 index 5be18892d..000000000 --- a/doc/html/_sources/mainDocs/tcl-commands.txt +++ /dev/null @@ -1,2870 +0,0 @@ -Eggdrop Tcl Commands -Last revised: June 20, 2016 - -==================== -Eggdrop Tcl Commands -==================== - - -This is an exhaustive list of all the Tcl commands added to Eggdrop. All -of the normal Tcl built-in commands are still there, of course, but you -can also use these to manipulate features of the bot. They are listed -according to category. - -This list is accurate for Eggdrop v1.8.0. Scripts written for v1.3, v1.4 -or 1.6 series of Eggdrop should probably work with a few minor modifications -depending on the script. Scripts which were written for v0.9, v1.0, v1.1 -or v1.2 will probably not work without modification. Commands which have -been changed in this version of Eggdrop (or are just new commands) are -marked with vertical bars (|) on the left. - -Output Commands ---------------- - -**putserv [options]** - - Description: sends text to the server, like '.dump' (intended for direct server commands); output is queued so that the bot won't flood itself off the server. - - Options: - -next push messages to the front of the queue - -normal no effect - - Returns: nothing - - Module: server - -**puthelp [options]** - - Description: sends text to the server, like 'putserv', but it uses a different queue intended for sending messages to channels or people. - - Options: - -next push messages to the front of the queue - -normal no effect - - Returns: nothing - - Module: server - -**putquick [options]** - - Description: sends text to the server, like 'putserv', but it uses a different (and faster) queue. - - Options: - -next push messages to the front of the queue - -normal no effect - - Returns: nothing - - Module: server - -**putnow [-oneline]** - - Description: sends text to the server immediately, bypassing all queues. Use with caution, as the bot may easily flood itself off the server. - - Options: - -oneline send text up to the first \r or \n, discarding the rest - - Returns: nothing - - Module: server - -**putkick [reason]** - - Description: sends kicks to the server and tries to put as many nicks into one kick command as possible. - - Returns: nothing - - Module: irc - -**putlog ** - - Description: sends text to the bot's logfile, marked as 'misc' (o) - - Returns: nothing - - Module: core - -**putcmdlog ** - - Description: sends text to the bot's logfile, marked as 'command' (c) - - Returns: nothing - - Module: core - -**putxferlog ** - Description: sends text to the bot's logfile, marked as 'file-area' (x) - - Returns: nothing - - Module: core - -**putloglev ** - Description: sends text to the bot's logfile, tagged with all of the valid levels given. Use "*" to indicate all log levels. - - Returns: nothing - - Module: core - -**dumpfile ** - - Description: dumps file from the help/text directory to a user on IRC via msg (one line per msg). The user has no flags, so the flag bindings won't work within the file. - - Returns: nothing - - Module: core - -**queuesize [queue]** - - Returns: the number of messages in all queues. If a queue is specified, only the size of this queue is returned. Valid queues are: mode, server, help. - - Module: server - -**clearqueue ** - - Description: removes all messages from a queue. Valid arguments are: mode, server, help, or all. - - Returns: the number of deleted lines from the specified queue. - - Module: server - -User Record Manipulation Commands ---------------------------------- - -**countusers** - - Returns: number of users in the bot's database - - Module: core - -**validuser ** - - Returns: 1 if a user by that name exists; 0 otherwise - - Module: core - -**finduser ** - - Description: finds the user record which most closely matches the given nick!user\@host - - Returns: the handle found, or "*" if none - - Module: core - -**userlist [flags]** - - Returns: a list of users on the bot. You can use the flag matching system here ([global]{&/\|}[chan]{&/\|}[bot]). '&' specifies "and"; '|' specifies "or". - - Module: core - -**passwdok ** - - Description: checks the password given against the user's password. Check against the password "" (a blank string) or "-" to find out if a user has no password set. - - Returns: 1 if the password matches for that user; 0 otherwise - - Module: core - -**getuser [extra info]** - - Description: an interface to the new generic userfile support. Valid entry types are: - - +----------+-------------------------------------------------------------------------------------+ - | BOTFL | returns the current bot-specific flags for the user (bot-only) | - +----------+-------------------------------------------------------------------------------------+ - | BOTADDR | returns a list containing the bot's address, telnet port, and relay port (bot-only) | - +----------+-------------------------------------------------------------------------------------+ - | HOSTS | returns a list of hosts for the user | - +----------+-------------------------------------------------------------------------------------+ - | LASTON | returns a list containing the unixtime last seen and the last seen place. | - | | LASTON #channel returns the time last seen time for the channel or 0 if no info | - | | exists. | - +----------+-------------------------------------------------------------------------------------+ - | INFO | returns the user's global info line | - +----------+-------------------------------------------------------------------------------------+ - | XTRA | returns the user's XTRA info | - +----------+-------------------------------------------------------------------------------------+ - | COMMENT | returns the master-visible only comment for the user | - +----------+-------------------------------------------------------------------------------------+ - | HANDLE | returns the user's handle as it is saved in the userfile | - +----------+-------------------------------------------------------------------------------------+ - | PASS | returns the user's encrypted password | - +----------+-------------------------------------------------------------------------------------+ - - For additional custom user fields, to include the deprecated "EMAIL" and "URL" fields, reference scripts/userinfo.tcl - - Returns: info specific to each entry-type - - Module: core - -**setuser [extra info]** - - Description: this is the counterpart of getuser. It lets you set the various values. Other then the ones listed below, the entry-types are the same as getuser's. - - +---------+---------------------------------------------------------------------------------------+ - | PASS | sets a users password (no third arg will clear it) | - +---------+---------------------------------------------------------------------------------------+ - | HOSTS | if used with no third arg, all hosts for the user will be cleared. Otherwise, *1* | - | | hostmask is added :P | - +---------+---------------------------------------------------------------------------------------+ - | LASTON | This setting has 3 forms. | - | | | - | | *setuser LASTON * sets global LASTON time | - | | | - | | *setuser LASTON * sets global LASTON time (leaving the place | - | | field empty) | - | | | - | | *setuser LASTON * sets a users LASTON time for a | - | | channel (if it is a valid channel) | - +---------+---------------------------------------------------------------------------------------+ - - Returns: nothing - - Module: core - -**chhandle ** - - Description: changes a user's handle - - Returns: 1 on success; 0 if the new handle is invalid or already used, or if the user can't be found - - Module: core - -**chattr [changes [channel]]** - - Description: changes the attributes for a user record, if you include any. - Changes are of the form '+f', '-o', '+dk', '-o+d', etc. If changes are specified in the format of \| , the channel-specific flags for that channel are altered. You can now use the +o|-o #channel format here too. - - Returns: new flags for the user (if you made no changes, the current flags are returned). If a channel was specified, the global AND the channel-specific flags for that channel are returned in the format of globalflags|channelflags. "*" is returned if the specified user does not exist. - - Module: core - -**botattr [changes [channel]]** - - Description: similar to chattr except this modifies bot flags rather than normal user attributes. - - Returns: new flags for the bot (if you made no changes, the current flags are returned). If a channel was specified, the global AND the channel-specific flags for that channel are returned in the format of globalflags|channelflags. "*" is returned if the specified bot does not exist. - - Module: core - -**matchattr [channel]** - - Returns: 1 if the specified user has the specified flags; 0 otherwise - - Module: core - -**adduser [hostmask]** - - Description: creates a new user entry with the handle and hostmask given (with no password and the default flags) - - Returns: 1 if successful; 0 if the handle already exists - - Module: core - -**addbot
** - Description: adds a new bot to the userlist with the handle and botaddress given (with no password and no flags) - - Returns: 1 if successful; 0 if the bot already exists - - Module: core - -**deluser ** - - Description: attempts to erase the user record for a handle - - Returns: 1 if successful, 0 if no such user exists - - Module: core - -**delhost ** - - Description: deletes a hostmask from a user's host list - - Returns: 1 on success; 0 if the hostmask (or user) doesn't exist - - Module: core - -**addchanrec ** - - Description: adds a channel record for a user - - Returns: 1 on success; 0 if the user or channel does not exist - - Module: channels - -**delchanrec ** - - Description: removes a channel record for a user. This includes all associated channel flags. - - Returns: 1 on success; 0 if the user or channel does not exist - - Module: channels - -**haschanrec ** - - Returns: 1 if the given handle has a chanrec for the specified channel; 0 otherwise - - Module: channels - -**getchaninfo ** - - Returns: info line for a specific channel (behaves just like 'getinfo') - - Module: channels - -**setchaninfo ** - - Description: sets the info line on a specific channel for a user. If info is "none", it will be removed. - - Returns: nothing - - Module: channels - -**newchanban [lifetime] [options]** - - Description: adds a ban to the ban list of a channel; creator is given credit for the ban in the ban list. lifetime is specified in minutes. If lifetime is not specified, ban-time (usually 60) is used. Setting the lifetime to 0 makes it a permanent ban. - - Options: - - +-----------+-------------------------------------------------------------------------------------+ - |sticky | forces the ban to be always active on a channel, even with dynamicbans on | - +-----------+-------------------------------------------------------------------------------------+ - - - Returns: nothing - - Module: channels - -**newban [lifetime] [options]** - - Description: adds a ban to the global ban list (which takes effect on all channels); creator is given credit for the ban in the ban list. lifetime is specified in minutes. If lifetime is not specified, global-ban-time (usually 60) is used. Setting the lifetime to 0 makes it a permanent ban. - - Options: - - +-----------+-------------------------------------------------------------------------------------+ - |sticky | forces the ban to be always active on a channel, even with dynamicbans on | - +-----------+-------------------------------------------------------------------------------------+ - - Returns: nothing - - Module: channels - -**newchanexempt [lifetime] [options]** - - Description: adds a exempt to the exempt list of a channel; creator is given credit for the exempt in the exempt list. lifetime is specified in minutes. If lifetime is not specified, exempt-time (usually 60) is used. Setting the lifetime to 0 makes it a permanent exempt. The exempt will not be removed until the corresponding ban has been removed. For timed bans, once the time period has expired, the exempt will not be removed until the corresponding ban has either expired or been removed. - - Options: - - +-----------+-------------------------------------------------------------------------------------+ - |sticky | forces the exempt to be always active on a channel, even with dynamicexempts on | - +-----------+-------------------------------------------------------------------------------------+ - - Returns: nothing - - Module: channels - -**newexempt [lifetime] [options]** - - Description: adds a exempt to the global exempt list (which takes effect on all channels); creator is given credit for the exempt in the exempt list. lifetime is specified in minutes. If lifetime is not specified, exempt-time (usually 60) is used. Setting the lifetime to 0 makes it a permanent exempt. The exempt will not be removed until the corresponding ban has been removed. - - Options: - - +-----------+-------------------------------------------------------------------------------------+ - |sticky | forces the exempt to be always active on a channel, even with dynamicexempts on | - +-----------+-------------------------------------------------------------------------------------+ - - Returns: nothing - - Module: channels - -**newchaninvite [lifetime] [options]** - - Description: adds a invite to the invite list of a channel; creator is given credit for the invite in the invite list. lifetime is specified in minutes. If lifetime is not specified, invite-time (usually 60) is used. Setting the lifetime to 0 makes it a permanent invite. The invite will not be removed until the channel has gone -i. - - Options: - - +-----------+-------------------------------------------------------------------------------------+ - |sticky | forces the invite to be always active on a channel, even with dynamicinvites on | - +-----------+-------------------------------------------------------------------------------------+ - - Returns: nothing - - Module: channels - -**newinvite [lifetime] [options]** - - Description: adds a invite to the global invite list (which takes effect on all channels); creator is given credit for the invite in the invite list. lifetime is specified in minutes. If lifetime is not specified, invite-time (usually 60) is used. Setting the lifetime to 0 makes it a permanent invite. The invite will not be removed until the channel has gone -i. - - Options: - - +-----------+-------------------------------------------------------------------------------------+ - |sticky | forces the invite to be always active on a channel, even with dynamicinvites on | - +-----------+-------------------------------------------------------------------------------------+ - - Returns: nothing - - Module: channels - -**stickban [channel]** - - Description: makes a ban sticky, or, if a channel is specified, then it is set sticky on that channel only. - - Returns: 1 on success; 0 otherwise - - Module: channels - -**unstickban [channel]** - - Description: makes a ban no longer sticky, or, if a channel is specified, then it is unstuck on that channel only. - - Returns: 1 on success; 0 otherwise - - Module: channels - -**stickexempt [channel]** - - Description: makes an exempt sticky, or, if a channel is specified, then it is set sticky on that channel only. - - Returns: 1 on success; 0 otherwise - - Module: channels - -**unstickexempt [channel]** - - Description: makes an exempt no longer sticky, or, if a channel is specified, then it is unstuck on that channel only. - - Returns: 1 on success; 0 otherwise - - Module: channels - -**stickinvite [channel]** - Description: makes an invite sticky, or, if a channel is specified, then it is set sticky on that channel only. - - Returns: 1 on success; 0 otherwise - - Module: channels - -**unstickinvite [channel]** - - Description: makes an invite no longer sticky, or, if a channel is specified, then it is unstuck on that channel only. - - Returns: 1 on success; 0 otherwise - - Module: channels - -**killchanban ** - - Description: removes a ban from the ban list for a channel - - Returns: 1 on success; 0 otherwise - - Module: channels - -**killban ** - - Description: removes a ban from the global ban list - - Returns: 1 on success; 0 otherwise - - Module: channels - -**killchanexempt ** - - Description: removes an exempt from the exempt list for a channel - - Returns: 1 on success; 0 otherwise - - Module: channels - -**killexempt ** - - Description: removes an exempt from the global exempt list - - Returns: 1 on success; 0 otherwise - - Module: channels - -**killchaninvite ** - - Description: removes an invite from the invite list for a channel - - Returns: 1 on success; 0 otherwise - - Module: channels - -**killinvite ** - - Description: removes an invite from the global invite list - - Returns: 1 on success; 0 otherwise - - Module: channels - -**ischanjuped ** - - Returns: 1 if the channel is juped, and the bot is unable to join; 0 otherwise - - Module: channels - -**isban [channel]** - - Returns: 1 if the specified ban is in the global ban list; 0 otherwise. If a channel is specified, that channel's ban list is checked as well. - - Module: channels - -**ispermban [channel]** - - Returns: 1 if the specified ban is in the global ban list AND is marked as permanent; 0 otherwise. If a channel is specified, that channel's ban list is checked as well. - - Module: channels - -**isexempt [channel]** - - Returns: 1 if the specified exempt is in the global exempt list; 0 otherwise. If a channel is specified, that channel's exempt list is checked as well. - - Module: channels - -**ispermexempt [channel]** - - Returns: 1 if the specified exempt is in the global exempt list AND is marked as permanent; 0 otherwise. If a channel is specified, that channel's exempt list is checked as well. - - Module: channels - -**isinvite [channel]** - - Returns: 1 if the specified invite is in the global invite list; 0 otherwise. If a channel is specified, that channel's invite list is checked as well. - - Module: channels - -**isperminvite [channel]** - - Returns: 1 if the specified invite is in the global invite list AND is marked as permanent; 0 otherwise. If a channel is specified, that channel's invite list is checked as well. - - Module: channels - -**isbansticky [channel]** - - Returns: 1 if the specified ban is marked as sticky in the global ban list; 0 otherwise. If a channel is specified, that channel's ban list is checked as well. - - Module: channels - -**isexemptsticky [channel]** - - Returns: 1 if the specified exempt is marked as sticky in the global exempt list; 0 otherwise. If a channel is specified, that channel's exempt list is checked as well. - - Module: channels - -**isinvitesticky [channel]** - - Returns: 1 if the specified invite is marked as sticky in the global invite list; 0 otherwise. If a channel is specified, that channel's invite list is checked as well. - - Module: channels - -**matchban [channel]** - - Returns: 1 if the specified nick!user\@host matches a ban in the global ban list; 0 otherwise. If a channel is specified, that channel's ban list is checked as well. - - Module: channels - -**matchexempt [channel]** - - Returns: 1 if the specified nick!user\@host matches an exempt in the global exempt list; 0 otherwise. If a channel is specified, that channel's exempt list is checked as well. - - Module: channels - -**matchinvite [channel]** - - Returns: 1 if the specified nick!user\@host matches an invite in the global invite list; 0 otherwise. If a channel is specified, that - channel's invite list is checked as well. - - Module: channels - -**banlist [channel]** - - Returns: a list of global bans, or, if a channel is specified, a list of channel-specific bans. Each entry is a sublist containing: hostmask, comment, expiration timestamp, time added, last time active, and creator. The three timestamps are in unixtime format. - - Module: channels - -**exemptlist [channel]** - - Returns: a list of global exempts, or, if a channel is specified, a list of channel-specific exempts. Each entry is a sublist containing: hostmask, comment, expiration timestamp, time added, last time active, and creator. The three timestamps are in unixtime format. - - Module: channels - -**invitelist [channel]** - - Returns: a list of global invites, or, if a channel is specified, a list of channel-specific invites. Each entry is a sublist containing: hostmask, comment, expiration timestamp, time added, last time active, and creator. The three timestamps are in unixtime format. - - Module: channels - -**newignore [lifetime]** - - Description: adds an entry to the ignore list; creator is given credit for the ignore. lifetime is how many minutes until the ignore expires and is removed. If lifetime is not specified, ignore-time (usually 60) is used. Setting the lifetime to 0 makes it a permanent ignore. - - Returns: nothing - - Module: core - -**killignore ** - Description: removes an entry from the ignore list - - Returns: 1 if successful; 0 otherwise - - Module: core - -**ignorelist** - - Returns: a list of ignores. Each entry is a sublist containing: hostmask, comment, expiration timestamp, time added, and creator. The timestamps are in unixtime format. - - Module: core - -**isignore ** - - Returns: 1 if the ignore is in the list; 0 otherwise - - Module: core - -**save** - - Description: writes the user and channel files to disk - - Returns: nothing - - Module: core - -**reload** - - Description: loads the userfile from disk, replacing whatever is in memory - - Returns: nothing - - Module: core - -**backup** - Description: makes a simple backup of the userfile that's on disk. If the channels module is loaded, this also makes a simple backup of the channel file. - - Returns: nothing - - Module: core - -**getting-users** - - Returns: 1 if the bot is currently downloading a userfile from a sharebot (and hence, user records are about to drastically change); 0 if not - - Module: core - -Channel Commands ----------------- - -**channel add [option-list]** - - Description: adds a channel record for the bot to monitor. The full list of possible options are given in doc/settings/mod.channels. Note that the channel options must be in a list (enclosed in {}). - - Returns: nothing - - Module: channels - -**channel set ** - - Description: sets options for the channel specified. The full list of possible options are given in doc/settings/mod.channels. - - Returns: nothing - - Module: channels - -**channel info ** - - Returns: a list of info about the specified channel's settings. - - Module: channels - -**channel get [setting]** - - Returns: The value of the setting you specify. For flags, a value of 0 means it is disabled (-), and non-zero means enabled (+). If no setting is specified, a flat list of all available settings and their values will be returned. - - Module: channels - -**channel remove ** - - Description: removes a channel record from the bot and makes the bot no longer monitor the channel - - Returns: nothing - - Module: channels - -**savechannels** - - Description: saves the channel settings to the channel-file if one is defined. - - Returns: nothing - - Module: channels - -**loadchannels** - Description: reloads the channel settings from the channel-file if one is defined. - - Returns: nothing - - Module: channels - -**channels** - - Returns: a list of the channels the bot has a channel record for - - Module: channels - -**channame2dname ** and **chandname2name ** - - Description: these two functions are important to correctly support !channels. The bot differentiates between channel description names (chan dnames) and real channel names (chan names). The chan dnames are what you would normally call the channel, such as "!channel". The chan names are what the IRC server uses to identify the channel. They consist of the chan dname prefixed with an ID; such as "!ABCDEchannel". - - For bot functions like isop, isvoice, etc. you need to know the chan dnames. If you communicate with the server, you usually get the chan name, though. That's what you need the channame2dname function for. - - If you only have the chan dname and want to directly send raw server commands, use the chandname2name command. - - NOTE: For non-!channels, chan dname and chan name are the same. - - Module: irc - -**isbotnick ** - - Returns: 1 if the nick matches the botnick; 0 otherwise - - Module: server - -**botisop [channel]** - - Returns: 1 if the bot has ops on the specified channel (or any channel if no channel is specified); 0 otherwise - - Module: irc - -**botishalfop [channel]** - - Returns: 1 if the bot has halfops on the specified channel (or any channel if no channel is specified); 0 otherwise - - Module: irc - -**botisvoice [channel]** - - Returns: 1 if the bot has a voice on the specified channel (or any channel if no channel is specified); 0 otherwise - - Module: irc - -**botonchan [channel]** - - Returns: 1 if the bot is on the specified channel (or any channel if no channel is specified); 0 otherwise - - Module: irc - -**isop [channel]** - - Returns: 1 if someone by the specified nickname is on the channel (or any channel if no channel name is specified) and has ops; 0 otherwise - - Module: irc - -**ishalfop [channel]** - - Returns: 1 if someone by the specified nickname is on the channel (or any channel if no channel name is specified) and has halfops; 0 otherwise - - Module: irc - -**wasop ** - - Returns: 1 if someone that just got opped/deopped in the chan had op before the modechange; 0 otherwise - - Module: irc - -**washalfop ** - - Returns: 1 if someone that just got halfopped/dehalfopped in the chan had halfop before the modechange; 0 otherwise - - Module: irc - -**isvoice [channel]** - - Returns: 1 if someone by that nickname is on the channel (or any channel if no channel is specified) and has voice (+v); 0 otherwise - - Module: irc - -**onchan [channel]** - Returns: 1 if someone by that nickname is on the specified channel (or any channel if none is specified); 0 otherwise - - Module: irc - -**nick2hand [channel]** - - Returns: the handle of a nickname on a channel. If a channel is not specified, the bot will check all of its channels. If the nick is not found, "" is returned. If the nick is found but does not have a handle, "*" is returned. - - Module: irc - -**hand2nick [channel]** - - Returns: nickname of the first person on the specified channel (if one is specified) whose nick!user\@host matches the given handle; "" is returned if no match is found. If no channel is specified, all channels are checked. - - Module: irc - -**handonchan [channel]** - - Returns: 1 if the the nick!user\@host for someone on the channel (or any channel if no channel name is specified) matches for the handle given; 0 otherwise - - Module: irc - -**ischanban ** - - Returns: 1 if the specified ban is on the given channel's ban list (not the bot's banlist for the channel) - - Module: irc - -**ischanexempt ** - - Returns: 1 if the specified exempt is on the given channel's exempt list (not the bot's exemptlist for the channel) - - Module: irc - -**ischaninvite ** - - Returns: 1 if the specified invite is on the given channel's invite list (not the bot's invitelist for the channel) - - Module: irc - -**chanbans ** - - Returns: a list of the current bans on the channel. Each element is a sublist of the form { }. age is seconds from the bot's point of view - - Module: irc - -**chanexempts ** - - Returns: a list of the current exempts on the channel. Each element is a sublist of the form { }. age is seconds from the bot's point of view - - Module: irc - -**chaninvites ** - - Returns: a list of the current invites on the channel. Each element is a sublist of the form { }. age is seconds from the bot's point of view - - Module: irc - -**resetbans ** - - Description: removes all bans on the channel that aren't in the bot's ban list and refreshes any bans that should be on the channel but aren't - - Returns: nothing - - Module: irc - -**resetexempts ** - - Description: removes all exempt on the channel that aren't in the bot's exempt list and refreshes any exempts that should be on the channel but aren't - - Returns: nothing - - Module: irc - -**resetinvites ** - - Description: removes all invites on the channel that aren't in the bot's invite list and refreshes any invites that should be on the channel but aren't - - Returns: nothing - - Module: irc - -**resetchanidle [nick] ** - - Description: resets the channel idle time for the given nick or for all nicks on the channel if no nick is specified. - - Returns: nothing - - Module: irc - -**resetchanjoin [nick] ** - Description: resets the channel join time for the given nick or for all nicks on the channel if no nick is specified. - - Returns: nothing - - Module: irc - -**resetchan [flags]** - - Description: rereads in the channel info from the server. If flags are specified, only the required information will be reset, according to the given flags. Available flags: - - +-----+---------------------------+ - | b | reset channel bans | - +-----+---------------------------+ - | e | reset channel exempts | - +-----+---------------------------+ - | I | reset channel invites | - +-----+---------------------------+ - | m | refresh channel modes | - +-----+---------------------------+ - | t | refresh channel topic | - +-----+---------------------------+ - | w | refresh memberlist | - +-----+---------------------------+ - - Returns: nothing - - Module: irc - -**getchanhost [channel]** - - Returns: user\@host of the specified nickname (the nickname is not included in the returned host). If a channel is not specified, bot will check all of its channels. If the nickname is not on the channel(s), "" is returned. - - Module: irc - -**getchanjoin ** - - Returns: timestamp (unixtime format) of when the specified nickname joined the channel if available, 0 otherwise. Note that after a channel reset this information will be lost, even if previously available. - - Module: irc - -**onchansplit [channel]** - - Returns: 1 if that nick is split from the channel (or any channel if no channel is specified); 0 otherwise - - Module: irc - -**chanlist [flags[&chanflags]]** - - Description: flags are any global flags; the '&' denotes to look for channel specific flags. Examples: - - +--------+--------------------------------+ - | n | (Global Owner) | - +--------+--------------------------------+ - | &n | (Channel Owner) | - +--------+--------------------------------+ - | o&m | (Global Op, Channel Master) | - +--------+--------------------------------+ - - Now you can use even more complex matching of flags, including +&- flags and & or | ('and' or 'or') matching. - - Returns: list of nicknames currently on the bot's channel that have all of the flags specified;. If no flags are given, all of the nicknames are returned. Please note that if you're executing chanlist after a part or sign bind, the gone user will still be listed, so you can check for wasop, isop, etc. - - Module: irc - -**getchanidle ** - - Returns: number of minutes that person has been idle; -1 if the specified user isn't on the channel - - Module: irc - -**getchanmode ** - - Returns: string of the type "+ntik key" for the channel specified - - Module: irc - -**jump [server [[+]port [password]]]** - - Description: jumps to the server specified, or (if none is specified) the next server in the bot's serverlist. If you prefix the port with a plus sign (e.g. +6697), SSL connection will be attempted. - - Returns: nothing - - Module: server - -**pushmode [arg]** - - Description: sends out a channel mode change (ex: pushmode #lame +o goober) through the bot's queuing system. All the mode changes will be sent out at once (combined into one line as much as possible) after the script finishes, or when 'flushmode' is called. - - Returns: nothing - - Module: irc - -**flushmode ** - - Description: forces all previously pushed channel mode changes to be sent to the server, instead of when the script is finished (just for the channel specified) - - Returns: nothing - - Module: irc - -**topic ** - - Returns: string containing the current topic of the specified channel - - Module: irc - -**validchan ** - - Description: checks if the bot has a channel record for the specified channel. Note that this does not necessarily mean that the bot is ON the channel. - - Returns: 1 if the channel exists, 0 if not - - Module: channels - -**isdynamic ** - - Returns: 1 if the channel is a dynamic channel; 0 otherwise - - Module: channels - -**setudef ** - - Description: initializes a user defined channel flag, string or integer setting. You can use it like any other flag/setting. IMPORTANT: Don't forget to reinitialize your flags/settings after a restart, or it'll be lost. - - Returns: nothing - - Module: channels - -**renudef ** - - Description: renames a user defined channel flag, string, or integer setting. - - Returns: nothing - - Module: channels - -**deludef ** - - Description: deletes a user defined channel flag, string, or integer setting. - - Returns: nothing - - Module: channels - -**getudefs [flag/int/str]** - - Returns: a list of user defined channel settings of the given type, or all of them if no type is given. - - Module: channels - -**chansettype ** - - Returns: The type of the setting you specify. The possible types are flag, int, str, pair. A flag type references a channel flag setting that can be set to either + or -. An int type is a channel setting that is set to a number, such as ban-time. A str type is a channel setting that stores a string, such as need-op. A pair type is a setting that holds a value couple, such as the flood settings. - - Module: channels - -DCC Commands ------------- - -**putdcc [-raw]** - - Description: sends text to the idx specified. If -raw is specified, the text will be sent as is, without forced new lines or limits to line length. - - Returns: nothing - - Module: core - -**dccbroadcast ** - - Description: sends a message to everyone on the party line across the botnet, in the form of "\*\*\* " for local users and "\*\*\* (Bot) " for users on other bots - - Returns: nothing - - Module: core - -**dccputchan ** - - Description: sends your message to everyone on a certain channel on the botnet, in a form exactly like dccbroadcast does. Valid channels are 0 through 99999. - - Returns: nothing - - Module: core - -**boot [reason]** - Description: boots a user from the partyline - - Returns: nothing - - Module: core - -**dccsimul ** - - Description: simulates text typed in by the dcc user specified. Note that in v0.9, this only simulated commands; now a command must be preceded by a '.' to be simulated. - - Returns: nothing - - Module: core - -**hand2idx ** - - Returns: the idx (a number greater than or equal to zero) for the user given if the user is on the party line in chat mode (even if she is currently on a channel or in chat off), the file area, or in the control of a script. -1 is returned if no idx is found. If the user is on multiple times, the oldest idx is returned. - - Module: core - -**idx2hand ** - - Returns: handle of the user with the given idx - - Module: core - -**valididx ** - - Returns: 1 if the idx currently exists; 0 otherwise - - Module: core - -**getchan ** - - Returns: the current party line channel for a user on the party line; "0" indicates he's on the group party line, "-1" means he has chat off, and a value from 1 to 99999 is a private channel - - Module: core - -**setchan ** - - Description: sets a party line user's channel. The party line user is not notified that she is now on a new channel. A channel name can be used (provided it exists). - - Returns: nothing - - Module: core - -**console [channel] [console-modes]** - - Description: changes a dcc user's console mode, either to an absolute mode (like "mpj") or just adding/removing flags (like "+pj" or "-moc" or "+mp-c"). The user's console channel view can be changed also (as long as the new channel is a valid channel). - - Returns: a list containing the user's (new) channel view and (new) console modes, or nothing if that user isn't currently on the partyline - - Module: core - -**echo [status]** - - Description: turns a user's echo on or off; the status has to be a 1 or 0 - - Returns: new value of echo for that user (or the current value, if status was omitted) - - Module: core - -**strip [+/-strip-flags]** - - Description: modifies the strip-flags for a user. The supported strip-flags are: - - +------+-------------------------------------------------------------+ - | c | remove all color codes | - +------+-------------------------------------------------------------+ - | b | remove all boldface codes | - +------+-------------------------------------------------------------+ - | r | remove all reverse video codes | - +------+-------------------------------------------------------------+ - | u | remove all underline codes | - +------+-------------------------------------------------------------+ - | a | remove all ANSI codes | - +------+-------------------------------------------------------------+ - | g | remove all ctrl-g (bell) codes | - +------+-------------------------------------------------------------+ - | o | remove all ordinary codes (ctrl+o, terminates bold/color/..)| - +------+-------------------------------------------------------------+ - | i | remove all italics codes | - +------+-------------------------------------------------------------+ - | \* | remove all of the above | - +------+-------------------------------------------------------------+ - - Returns: new strip-flags for the specified user (or the current flags, if strip-flags was omitted) - - Module: core - -**putbot ** - - Description: sends a message across the botnet to another bot. If no script intercepts the message on the other end, the message is ignored. - - Returns: nothing - - Module: core - -**putallbots ** - - Description: sends a message across the botnet to all bots. If no script intercepts the message on the other end, the message is ignored. - - Returns: nothing - - Module: core - -**killdcc ** - - Description: kills a partyline or file area connection - - Returns: nothing - - Module: core - -**bots** - - Returns: list of the bots currently connected to the botnet - - Module: core - -**botlist** - - Returns: a list of bots currently on the botnet. Each item in the list is a sublist with four elements: bot, uplink, version, and sharing status: - - +----------+-----------------------------------------------+ - | bot | the bot's botnetnick | - +----------+-----------------------------------------------+ - | uplink | the bot the bot is connected to | - +----------+-----------------------------------------------+ - | version | it's current numeric version | - +----------+-----------------------------------------------+ - | sharing | a "+" if the bot is a sharebot; "-" otherwise | - +----------+-----------------------------------------------+ - - Module: core - -**islinked ** - - Returns: 1 if the bot is currently linked; 0 otherwise - - Module: core - -**dccused** - - Returns: number of dcc connections currently in use - - Module: core - -**dcclist [type]** - - Returns: a list of active connections, each item in the list is a sublist containing six elements: - { {} }. - - The types are: chat, bot, files, file_receiving, file_sending, file_send_pending, script, socket (these are connections that have not yet been put under 'control'), telnet, and server. The timestamp is in unixtime format. - - Module: core - -**whom ** - - Returns: list of people on the botnet who are on that channel. 0 is the default party line. Each item in the list is a sublist with six elements: nickname, bot, hostname, access flag ('-', '@', '+', or '*'), minutes idle, and away message (blank if the user is not away). If you specify * for channel, every user on the botnet is returned with an extra argument indicating the channel the user is on. - - Module: core - -**getdccidle ** - - Returns: number of seconds the dcc chat/file system/script user has been idle - - Module: core - -**getdccaway ** - - Returns: away message for a dcc chat user (or "" if the user is not set away) - - Module: core - -**setdccaway ** - - Description: sets a party line user's away message and marks them away. If set to "", the user is marked as no longer away. - - Returns: nothing - - Module: core - -**connect <[+]port>** - - Description: makes an outgoing connection attempt and creates a dcc entry for it. A 'control' command should be used immediately after a successful 'connect' so no input is lost. If the port is prefixed with a plus sign, SSL encrypted connection will be attempted. - - Returns: idx of the new connection - - Module: core - -**listen [options] [flag]** - - Description: opens a listening port to accept incoming telnets; type must be one of "bots", "all", "users", "script", or "off". Prefixing the port with a plus sign will make eggdrop accept SSL connections on it. - - listen bots [mask] - - Description: accepts connections from bots only; the optional mask is used to identify permitted bot names. If the mask begins with '@', it is interpreted to be a mask of permitted hosts to accept connections from. - - Returns: port number - - listen users [mask] - - Description: accepts connections from users only (no bots); the optional mask is used to identify permitted nicknames. If the mask begins with '@', it is interpreted to be a mask of permitted hosts to accept connections from. - - Returns: port number - - listen all [mask] - - Description: accepts connections from anyone; the optional mask is used to identify permitted nicknames/botnames. If the mask begins with '@', it is interpreted to be a mask of permitted hosts to accept connections from. - - Returns: port number - - listen script [flag] - - Description: accepts connections which are immediately routed to a proc. The proc is called with one parameter: the idx of the new connection. Flag may currently only be 'pub', which makes the bot allow anyone to connect and not perform an ident lookup. - - Returns: port number - - listen off - - Description: stop listening on a port - - Returns: nothing - - Module: core - -**dccdumpfile ** - - Description: dumps out a file from the text directory to a dcc chat user. The flag matching that's used everywhere else works here, too. - - Returns: nothing - - Module: core - -Notes Module ------------- - -**notes [numberlist]** - - Returns: -1 if no such user, -2 if notefile failure. If a numberlist is not specified, the number of notes stored for the user is returned. Otherwise, a list of sublists containing information about notes stored for the user is returned. Each sublist is in the format of:: - - { } - - Module: notes - -**erasenotes ** - - Description: erases some or all stored notes for a user. Use '-' to erase all notes. - - Returns: -1 if no such user, -2 if notefile failure, 0 if no such note, or number of erased notes. - - Module: notes - -**listnotes ** - - Description: lists existing notes according to the numberlist (ex: "2-4;8;16-") - - Returns: -1 if no such user, -2 if notefile failure, 0 if no such note, list of existing notes. - - Module: notes - -**storenote ** - - Description: stores a note for later reading, notifies idx of any results (use idx -1 for no notify). - - Returns: 0 on success; non-0 on failure - - Module: notes - -Assoc Module ------------- - -**assoc [name]** - - Description: sets the name associated with a botnet channel, if you specify one - - Returns: current name for that channel, if any - - Module: assoc - -**killassoc ** - - Description: removes the name associated with a botnet channel, if any exists. Use 'killassoc &' to kill all assocs. - - Returns: nothing - - Module: assoc - -Compress Module ---------------- - -**compressfile [-level ] [target-file]** -and -**uncompressfile [target-file]** - - Description: compresses or un-compresses files. The level option specifies the compression mode to use when compressing. Available modes are from 0 (minimum CPU usage, minimum compression) all the way up to 9 (maximum CPU usage, maximum compression). If you don't specify the target-file, the src-file will be overwritten. - - Returns: nothing - - Module: compress - -**iscompressed ** - - Description: determines whether is gzip compressed. - - Returns: 1 if it is, 0 if it isn't, and 2 if some kind of error prevented the checks from succeeding. - - Module: compress - -Filesys Module --------------- - -**setpwd ** - - Description: changes the directory of a file system user, in exactly the same way as a 'cd' command would. The directory can be specified relative or absolute. - - Returns: nothing - - Module: filesys - -**getpwd ** - - Returns: the current directory of a file system user - - Module: filesys - -**getfiles ** - - Returns: a list of files in the directory given; the directory is relative to dcc-path - - Module: filesys - -**getdirs ** - - Returns: a list of subdirectories in the directory given; the directory is relative to dcc-path - - Module: filesys - -**dccsend ** - - Description: attempts to start a dcc file transfer to the given nick; the filename must be specified either by full pathname or in relation to the bot's startup directory - - Returns: - - +-------+---------------------------------------------------------------------+ - | 0 | success | - +-------+---------------------------------------------------------------------+ - | 1 | the dcc table is full (too many connections) | - +-------+---------------------------------------------------------------------+ - | 2 | can't open a socket for the transfer | - +-------+---------------------------------------------------------------------+ - | 3 | the file doesn't exist | - +-------+---------------------------------------------------------------------+ - | 4 | the file was queued for later transfer, which means that person has | - | | too many file transfers going right now | - +-------+---------------------------------------------------------------------+ - | 5 | copy-to-tmp is enabled and the file already exists in the temp | - | | directory | - +-------+---------------------------------------------------------------------+ - - Module: transfer - -**filesend [ircnick]** - - Description: like dccsend, except it operates for a current filesystem user, and the filename is assumed to be a relative path from that user's current directory - - Returns: 0 on failure; 1 on success (either an immediate send or a queued send) - - Module: filesys - -**fileresend [ircnick]** - - Description: functions like filesend, only that it sends a DCC RESEND instead of a DCC SEND, which allows people to resume aborted file transfers if their client supports that protocol. ircII/BitchX/etc. support it; mIRC does not. - - Returns: 0 on failure; 1 on success (either an immediate send or a queued send) - - Module: filesys - -**setdesc ** - - Description: sets the description for a file in a file system directory; the directory is relative to dcc-path - - Returns: nothing - - Module: filesys - -**getdesc ** - - Returns: the description for a file in the file system, if one exists - - Module: filesys - -**setowner ** - - Description: changes the owner for a file in the file system; the directory is relative to dcc-path - - Returns: nothing - - Module: filesys - -**getowner ** - - Returns: the owner of a file in the file system - - Module: filesys - -**setlink ** - - Description: creates or changes a linked file (a file that actually exists on another bot); the directory is relative to dcc-path - - Returns: nothing - - Module: filesys - -**getlink ** - - Returns: the link for a linked file, if it exists - - Module: filesys - -**getfileq ** - - Returns: list of files queued by someone; each item in the list will be a sublist with two elements: nickname the file is being sent to and the filename - - Module: transfer - -**getfilesendtime ** - - Returns: the unixtime value from when a file transfer started, or a negative number: - - +-----+------------------------------------------------------+ - | -1 | no matching transfer with the specified idx was found| - +-----+------------------------------------------------------+ - | -2 | the idx matches an entry which is not a file transfer| - +-----+------------------------------------------------------+ - - Module: transfer - -**mkdir [ [channel]]** - - Description: creates a directory in the file system. Only users with the required flags may access it. - - Returns: - - +-----+------------------------------------------------------+ - | 0 | success | - +-----+------------------------------------------------------+ - | 1 | can't create directory | - +-----+------------------------------------------------------+ - | 2 | directory exists but is not a directory | - +-----+------------------------------------------------------+ - | -3 | could not open filedb | - +-----+------------------------------------------------------+ - - Module: filesys - -**rmdir ** - - Description: removes a directory from the file system. - - Returns: 0 on success; 1 on failure - - Module: filesys - -**mv ** - - Description: moves a file from its source to the given destination. The file can also be a mask, such as /incoming/\*, provided the destination is a directory. - - Returns: If the command was successful, the number of files moved will be returned. Otherwise, a negative number will be returned: - - +-----+------------------------------------------------------+ - | -1 | invalid source file | - +-----+------------------------------------------------------+ - | -2 | invalid destination | - +-----+------------------------------------------------------+ - | -3 | destination file exists | - +-----+------------------------------------------------------+ - | -4 | no matches found | - +-----+------------------------------------------------------+ - - Module: filesys - -**cp ** - - Description: copies a file from its source to the given destination. The file can also be a mask, such as /incoming/\*, provided the destination is a directory. - - Returns: If the command was successful, the number of files copied will be returned. Otherwise, a negative number will be returned: - - +-----+------------------------------------------------------+ - | -1 | invalid source file | - +-----+------------------------------------------------------+ - | -2 | invalid destination | - +-----+------------------------------------------------------+ - | -3 | destination file exists | - +-----+------------------------------------------------------+ - | -4 | no matches found | - +-----+------------------------------------------------------+ - - Module: filesys - -**getflags ** - - Returns: the flags required to access a directory - - Module: filesys - -**setflags [ [channel]]** - - Description: sets the flags required to access a directory - - Returns: 0 on success; -1 or -3 on failure - - Module: filesys - -Miscellaneous Commands ----------------------- - -**bind [proc-name]** - - Description: You can use the 'bind' command to attach Tcl procedures to certain events. flags are the flags the user must have to trigger the event (if applicable). proc-name is the name of the Tcl procedure to call for this command (see below for the format of the procedure call). If the proc-name is omitted, no binding is added. Instead, the current binding is returned (if it's stackable, a list of the current bindings is returned). - - Returns: name of the command that was added, or (if proc-name was omitted), a list of the current bindings for this command - - Module: core - -**unbind ** - - Description: removes a previously created bind - - Returns: name of the command that was removed - - Module: core - -**binds [type/mask]** - - Returns: a list of Tcl binds, each item in the list is a sublist of five elements: - { } - - Module: core - -**logfile [ ]** - - Description: creates a new logfile, which will log the modes given for the channel listed. If no logfile is specified, a list of existing logfiles will be returned. "*" indicates all channels. You can also change the modes and channel of an existing logfile with this command. Entering a blank mode and channel ("") makes the bot stop logging there. - - Logfile flags: - - +-----+------------------------------------------------------+ - | b | information about bot linking and userfile sharing | - +-----+------------------------------------------------------+ - | c | commands | - +-----+------------------------------------------------------+ - | d | misc debug information | - +-----+------------------------------------------------------+ - | h | raw share traffic | - +-----+------------------------------------------------------+ - | j | joins, parts, quits, and netsplits on the channel | - +-----+------------------------------------------------------+ - | k | kicks, bans, and mode changes on the channel | - +-----+------------------------------------------------------+ - | m | private msgs, notices and ctcps to the bot | - +-----+------------------------------------------------------+ - | o | misc info, errors, etc (IMPORTANT STUFF) | - +-----+------------------------------------------------------+ - | p | public text on the channel | - +-----+------------------------------------------------------+ - | r | raw incoming server traffic | - +-----+------------------------------------------------------+ - | s | server connects, disconnects, and notices | - +-----+------------------------------------------------------+ - | t | raw botnet traffic | - +-----+------------------------------------------------------+ - | v | raw outgoing server traffic | - +-----+------------------------------------------------------+ - | w | wallops (make sure the bot sets +w in init-server) | - +-----+------------------------------------------------------+ - | x | file transfers and file-area commands | - +-----+------------------------------------------------------+ - - Returns: filename of logfile created, or, if no logfile is specified, a list of logfiles such as: {mco * eggdrop.log} {jp #lame lame.log} - - Module: core - -**maskhost [masktype]** - - Returns: masked hostmask for the string given according to the masktype (the default is 3). - - Available types are: - - +-----+------------------------------------------------------+ - | 0 | \*!user\@host | - +-----+------------------------------------------------------+ - | 1 | \*!*user\@host | - +-----+------------------------------------------------------+ - | 2 | \*!*\@host | - +-----+------------------------------------------------------+ - | 3 | \*!*user\@*.host | - +-----+------------------------------------------------------+ - | 4 | \*!*\@*.host | - +-----+------------------------------------------------------+ - | 5 | nick!user\@host | - +-----+------------------------------------------------------+ - | 6 | nick!*user\@host | - +-----+------------------------------------------------------+ - | 7 | nick!*\@host | - +-----+------------------------------------------------------+ - | 8 | nick!*user\@*.host | - +-----+------------------------------------------------------+ - | 9 | nick!*\@*.host | - +-----+------------------------------------------------------+ - - You can also specify types from 10 to 19 which correspond to types - 0 to 9, but instead of using a * wildcard to replace portions of the - host, only numbers in hostnames are replaced with the '?' wildcard. - Same is valid for types 20-29, but instead of '?', the '*' wildcard - will be used. - - Module: core - -**timer [count]** - - Description: executes the given Tcl command after a certain number of minutes have passed. If count is specified, the command will be executed count times with the given interval in between. If you specify a count of 0, the timer will repeat until it's removed with killtimer or until the bot is restarted. - - Returns: a timerID - - Module: core - -**timer [count]** - - Description: executes the given Tcl command after a certain number of seconds have passed. If count is specified, the command will be executed count times with the given interval in between. If you specify a count of 0, the utimer will repeat until it's removed with killutimer or until the bot is restarted. - - Returns: a timerID - - Module: core - -**timers** - - Returns: a list of active minutely timers. Each entry in the list contains the number of minutes left till activation, the command that will be executed, the timerID, and the remaining number of repeats. - - Module: core - -**utimers** - - Returns: a list of active secondly timers. Each entry in the list contains the number of minutes left till activation, the command that will be executed, the timerID, and the remaining number of repeats. - - Module: core - -**killtimer ** - - Description: removes a minutely timer from the list - - Returns: nothing - - Module: core - -**killutimer ** - - Description: removes a secondly timer from the list - - Returns: nothing - - Module: core - -**unixtime** - - Returns: a long integer which represents the number of seconds that have passed since 00:00 Jan 1, 1970 (GMT). - - Module: core - -**duration ** - - Returns: the number of seconds converted into years, weeks, days, hours, minutes, and seconds. 804600 seconds is turned into 1 week 2 days 7 hours 30 minutes. - - Module: core - -**strftime [time]** - - Returns: a formatted string of time using standard strftime format. If time is specified, the value of the specified time is used. Otherwise, the current time is used. - - Module: core - -**ctime ** - - Returns: a formatted date/time string based on the current locale settings from the unixtime string given; for example "Fri Aug 3 11:34:55 1973" - - Module: core - -**myip** - - Returns: a long number representing the bot's IP address, as it might appear in (for example) a DCC request - - Module: core - -**rand ** - - Returns: a random integer between 0 and limit-1 - - Module: core - -**control ** - - Description: removes an idx from the party line and sends all future input to the Tcl command given. The command will be called with two parameters: the idx and the input text. The command should return 0 to indicate success and 1 to indicate that it relinquishes control of the user back to the bot. If the input text is blank (""), it indicates that the connection has been dropped. Also, if the input text is blank, never call killdcc on it, as it will fail with "invalid idx". - - Returns: nothing - - Module: core - -**sendnote ** - - Description: simulates what happens when one user sends a note to another - - Returns: - - +-----+----------------------------------------------------------+ - | 0 | the send failed | - +-----+----------------------------------------------------------+ - | 1 | the note was delivered locally or sent to another bot | - +-----+----------------------------------------------------------+ - | 2 | the note was stored locally | - +-----+----------------------------------------------------------+ - | 3 | the user's notebox is too full to store a note | - +-----+----------------------------------------------------------+ - | 4 | a Tcl binding caught the note | - +-----+----------------------------------------------------------+ - | 5 | the note was stored because the user is away | - +-----+----------------------------------------------------------+ - - Module: core - -**link [via-bot] ** - - Description: attempts to link to another bot directly. If you specify a via-bot, it tells the via-bot to attempt the link. - - Returns: 1 if the link will be attempted; 0 otherwise - - Module: core - -**unlink ** - - Description: attempts to unlink a bot from the botnet - - Returns: 1 on success; 0 otherwise - - Module: core - -**encrypt ** - - Returns: encrypted string (using the currently loaded encryption module), encoded into ASCII using base-64 - - Module: encryption - -**decrypt ** - - Returns: decrypted string (using the currently loaded encryption module) - - Module: encryption - -**encpass ** - - Returns: encrypted string (using the currently loaded encryption module) - - Module: encryption - -**die [reason]** - - Description: causes the bot to log a fatal error and exit completely. If no reason is given, "EXIT" is used. - - Returns: none - - Module: core - -**unames** - - Returns: the current operating system the bot is using - - Module: core - -**dnslookup [[arg1] [arg2] ... [argN]]** - - Description: This issues an asynchronous dns lookup request. The command will block if dns module is not loaded; otherwise it will either return immediately or immediately call the specified proc (e.g. if the lookup is already cached). - - As soon as the request completes, the specified proc will be called as follows: - - [[arg1] [arg2] ... [argN]] - - status is 1 if the lookup was successful and 0 if it wasn't. All additional parameters (called arg1, arg2 and argN above) get appended to the proc's other parameters. - - Returns: nothing - - Module: core - -**md5 ** - - Returns: the 128 bit MD5 message-digest of the specified string - - Module: core - -**callevent ** - - Description: triggers the evnt bind manually for a certain event. You can call arbitrary events here, even ones that are not pre-defined by Eggdrop. For example: callevent rehash, or callevent myownevent123. - - Returns: nothing - - Module: core - -**traffic** - - Returns: a list of sublists containing information about the bot's traffic usage in bytes. Each sublist contains five elements: type, in-traffic today, in-traffic total, out-traffic today, out-traffic total (in that order). - - Module: core - -**modules** - Returns: a list of sublists containing information about the bot's currently loaded modules. Each sublist contains three elements: module, version, and dependencies. Each dependency is also a sublist containing the module name and version. - - Module: core - -**loadmodule ** - - Description: attempts to load the specified module. - - Returns: "Already loaded." if the module is already loaded, "" if successful, or the reason the module couldn't be loaded. - - Module: core - -**unloadmodule ** - - Description: attempts to unload the specified module. - - Returns: "No such module" if the module is not loaded, "" otherwise. - - Module: core - -**loadhelp ** - - Description: attempts to load the specified help file from the help/ directory. - - Returns: nothing - - Module: core - -**unloadhelp ** - - Description: attempts to unload the specified help file. - - Returns: nothing - - Module: core - -**reloadhelp** - - Description: reloads the bot's help files. - - Returns: nothing - - Module: core - -**restart** - - Description: rehashes the bot, kills all timers, reloads all modules, and reconnects the bot to the next server in its list. - - Returns: nothing - - Module: core - -**rehash** - - Description: rehashes the bot - - Returns: nothing - - Module: core - -**stripcodes ** - - Description: strips specified control characters from the string given. strip-flags can be any combination of the following: - - +-----+-------------------------------------------------------------+ - | c | remove all color codes | - +-----+-------------------------------------------------------------+ - | b | remove all boldface codes | - +-----+-------------------------------------------------------------+ - | r | remove all reverse video codes | - +-----+-------------------------------------------------------------+ - | u | remove all underline codes | - +-----+-------------------------------------------------------------+ - | a | remove all ANSI codes | - +-----+-------------------------------------------------------------+ - | g | remove all ctrl-g (bell) codes | - +-----+-------------------------------------------------------------+ - | o | remove all ordinary codes (ctrl+o, terminates bold/color/..)| - +-----+-------------------------------------------------------------+ - | i | remove all italics codes | - +-----+-------------------------------------------------------------+ - | \* | remove all of the above | - +-----+-------------------------------------------------------------+ - - Returns: the stripped string. - - Module: core - -**matchaddr
** - - Description: checks if the address matches the hostmask given. The address should be in the form nick!user\@host. - - Returns: 1 if the address matches the hostmask, 0 otherwise. - - Module: core - -**matchcidr
** - - Description: performs a cidr match on the specified ip addresses. IPv6 is supported, if enabled at compile time. - - Example: matchcidr 192.168.0.0 192.168.1.17 16 - - Returns: 1 if the address matches the block prefix, 0 otherwise. - - Module: core - -**matchstr ** - - Description: checks if pattern matches string. Only two wildcards are supported: '*' and '?'. Matching is case-insensitive. This command is intended as a simplified alternative to Tcl's string match. - - Returns: 1 if the pattern matches the string, 0 if it doesn't. - - Module: core - -**rfcequal ** - - Description: Checks if two strings are equal. Case is ignored, and this uses RFC1459 matching {}|~ == []\^, depending on the rfc_compliant setting. - - Returns: 1 if equal, 0 if not. - - Module: core - -**status [type]** - - Description: provides eggdrop status information similar to the .status command in partyline. The available types of information are: - - +------+---------------------------------------------------------------------+ - | cpu | total cpu time spent by eggdrop | - +------+---------------------------------------------------------------------+ - | mem | dynamically allocated memory excluding the Tcl interpreter | - +------+---------------------------------------------------------------------+ - | cache| user entries cache hits (in %) | - +------+---------------------------------------------------------------------+ - | ipv6 | shows whether IPv6 support was compiled in | - +------+---------------------------------------------------------------------+ - - Returns: the requested information type or all information if type isn't specified. The format is a flat list of name-value pairs. - - Module: core - -**istls ** - - Description: checks if a connection is encrypted or cleartext. This command is available on TLS-enabled bots only. - - Returns: 1 if the idx is a TLS connection, 0 if it's plaintext. - - Module: core - -**starttls ** - - Description: establishes a secure (using TLS) connection over idx. The TLS connection should be first negotiated over the plaintext link, or using other means. Both parties must switch to TLS simultaneously. This command is available on TLS-enabled bots only. - - Returns: nothing - - Module: core - -**tlsstatus ** - - Description: provides information about an established TLS connection This includes certificate and cipher information as well as protocol version. This command is available on TLS-enabled bots only. - - Returns: a flat list of name-value pairs - - Module: core - -Global Variables ----------------- - -NOTE: All config file variables are also global. - -**botnick** - - Value: the current nickname the bot is using (for example: "Valis", "Valis0", etc.) - - Module: server - -**botname** - - Value: the current nick!user\@host that the server sees (for example: "Valis!valis\@crappy.com") - - Module: server - -**server** - - Value: the current server's real name (what server calls itself) and port bot is connected to (for example: "irc.math.ufl.edu:6667") Note that this does not necessarily match the servers internet address. - - Module: server - -**serveraddress** - Value: the current server's internet address (hostname or IP) and port bot is connected to. This will correspond to the entry in server list (for example: "eu.undernet.org:6667"). Note that this does not necessarily match the name server calls itself. - - Module: server - -**version** - Value: current bot version "1.1.2+pl1 1010201 pl1"; first item is the text version, second item is a numerical version, and any following items are the names of patches that have been added - - Module: core - -**numversion** - Value: the current numeric bot version (for example: "1010201"). Numerical version is in the format of "MNNRRPP", where: - - +------+---------------------------------------+ - | M | major release number | - +------+---------------------------------------+ - | NN | minor release number | - +------+---------------------------------------+ - | RR | sub-release number | - +------+---------------------------------------+ - | PP | patch level for that sub-release | - +------+---------------------------------------+ - - Module: core - -**uptime** - Value: the unixtime value for when the bot was started - - Module: core - -**server-online** - Value: the unixtime value for when the bot connected to its current server - - Module: server - -**lastbind** - Value: the last command binding which was triggered. This allows you to identify which command triggered a Tcl proc. - - Module: core - -**isjuped** - Value: 1 if bot's nick is juped(437); 0 otherwise - - Module: server - -**handlen** - Value: the value of the HANDLEN define in src/eggdrop.h - - Module: core - -**config** - Value: the filename of the config file Eggdrop is currently using - - Module: core - -Binds ------ - -You can use the 'bind' command to attach Tcl procedures to certain events. -For example, you can write a Tcl procedure that gets called every time a -user says "danger" on the channel. - -Some bind types are marked as "stackable". That means that you can bind -multiple commands to the same trigger. Normally, for example, a bind such -as 'bind msg - stop msg:stop' (which makes a msg-command "stop" call the -Tcl proc "msg:stop") will overwrite any previous binding you had for the -msg command "stop". With stackable bindings, like 'msgm' for example, -you can bind the same command to multiple procs. When the bind is triggered, -ALL of the Tcl procs that are bound to it will be called. - -To remove a bind, use the 'unbind' command. For example, to remove the -bind for the "stop" msg command, use 'unbind msg - stop msg:stop'. - -^^^^^^^^^^ -Bind Types -^^^^^^^^^^ - -The following is a list of bind types and how they work. Below each bind type is the format of the bind command, the list of arguments sent to the Tcl proc, and an explanation. - -(1) MSG - - bind msg - - procname - - Description: used for /msg commands. The first word of the user's msg is the command, and everything else becomes the text argument. - - Module: server - -(2) DCC - - bind dcc - - procname - - Description: used for partyline commands; the command is the first word and everything else becomes the text argument. The idx is valid until the user disconnects. After that, it may be reused, so be careful about storing an idx for long periods of time. - - Module: core - -(3) FIL - - bind fil - - procname - - Description: the same as DCC, except this is triggered if the user is in the file area instead of the party line - - Module: filesys - -(4) PUB - - bind pub - - procname - - Description: used for commands given on a channel. The first word becomes the command and everything else is the text argument. - - Module: irc - -(5) MSGM (stackable) - - bind msgm - - procname - - Description: matches the entire line of text from a /msg with the mask. This is useful for binding Tcl procs to words or phrases spoken anywhere within a line of text. If the proc returns 1, Eggdrop will not log the message that triggered this bind. MSGM binds are processed before MSG binds. If the exclusive-binds setting is enabled, MSG binds will not be triggered by text that a MSGM bind has already handled. - - Module: server - -(6) PUBM (stackable) - - bind pubm - - procname - - Description: just like MSGM, except it's triggered by things said on a channel instead of things /msg'd to the bot. The mask is matched against the channel name followed by the text and can contain wildcards. If the proc returns 1, Eggdrop will not log the message that triggered this bind. PUBM binds are processed before PUB binds. If the exclusive-binds setting is enabled, PUB binds will not be triggered by text that a PUBM bind has already handled. - - Examples: - bind pubm * "#eggdrop Hello*" myProc - Listens on #eggdrop for any line that begins with "Hello" - bind pubm * "% Hello*" myProc - Listens on any channel for any line that begins with "Hello" - bind pubm * "% !command" myProc - Listens on any channel for a line that ONLY contains "!command" - - Module: irc - -(7) NOTC (stackable) - - bind notc - - procname - - Description: dest will be a nickname (the bot's nickname, obviously) or a channel name. mask is matched against the entire text of the notice and can contain wildcards. It is considered a breach of protocol to respond to a /notice on IRC, so this is intended for internal use (logging, etc.) only. Note that server notices do not trigger the NOTC bind. If the proc returns 1, Eggdrop will not log the message that triggered this bind. - - New Tcl procs should be declared as:: - - proc notcproc {nick uhost hand text {dest ""}} { - global botnick; if {$dest == ""} {set dest $botnick} - ... - } - - for compatibility. - - Module: server - -(8) JOIN (stackable) - - bind join - - procname - - Description: triggered by someone joining the channel. The mask in the bind is matched against "#channel nick!user\@host" and can contain wildcards. - - Module: irc - -(9) PART (stackable) - - bind part - - procname - - Description: triggered by someone leaving the channel. The mask is matched against "#channel nick!user\@host" and can contain wildcards. If no part message is specified, msg will be set to "". - - New Tcl procs should be declared as:: - - proc partproc {nick uhost hand chan {msg ""}} { ... } - - for compatibility. - - Module: irc - -(10) SIGN (stackable) - - bind sign - - procname - - Description: triggered by a signoff, or possibly by someone who got netsplit and never returned. The signoff message is the last argument to the proc. Wildcards can be used in the mask, which is matched against '#channel nick!user\@host'. - - Module: irc - -(11) TOPC (stackable) - - bind topc - - procname - - Description: triggered by a topic change. mask can contain wildcards and is matched against '#channel '. - - Module: irc - -(12) KICK (stackable) - - bind kick - - procname - - Description: triggered when someone is kicked off the channel. The mask is matched against '#channel target reason' where the target is the nickname of the person who got kicked (can contain wildcards). The proc is called with the nick, user\@host, and handle of the kicker, plus the channel, the nickname of the person who was kicked, and the reason. - - - Module: irc - -(13) NICK (stackable) - - bind nick - - procname - - Description: triggered when someone changes nicknames. The mask is matched against '#channel newnick' and can contain wildcards. Channel is "*" if the user isn't on a channel (usually the bot not yet in a channel). - - Module: irc - -(14) MODE (stackable) - - bind mode - - procname - - Description: mode changes are broken down into their component parts before being sent here, so the will always be a single mode, such as "+m" or "-o". target will show the argument of the mode change (for o/v/b/e/I) or "" if the set mode does not take an argument. The bot's automatic response to a mode change will happen AFTER all matching Tcl procs are called. The mask will be matched against '#channel +/-modes' and can contain wildcards. - - If it is a server mode, nick will be "", user\@host is the server name, and handle is \*. - - Note that "target" was added in 1.3.17 and that this will break Tcl scripts that were written for pre-1.3.17 Eggdrop that use the mode binding. Also, due to a typo, mode binds were broken completely in 1.3.17 but were fixed in 1.3.18. Mode bindings are not triggered at all in 1.3.17. - - One easy example (from guppy) of how to support the "target" parameter in 1.3.18 and later and still remain compatible with older Eggdrop versions is: - - Old script looks as follows:: - - bind mode - * mode_proc - proc mode_proc {nick uhost hand chan mode} { ... } - - To make it work with 1.3.18+ and stay compatible with older bots, do:: - - bind mode - * mode_proc_fix - proc mode_proc_fix {nick uhost hand chan mode {target ""}} { - if {$target != ""} {append mode " $target"} - mode_proc $nick $uhost $hand $chan $mode - } - proc mode_proc {nick uhost hand chan mode} { ... } - - Module: irc - -(15) CTCP (stackable) - - bind ctcp - - procname - - Description: dest will be a nickname (the bot's nickname, obviously) or channel name. keyword is the ctcp command (which can contain wildcards), and text may be empty. If the proc returns 0, the bot will attempt its own processing of the ctcp command. - - Module: server - -(16) CTCR (stackable) - - bind ctcr - - procname - - Description: just like ctcp, but this is triggered for a ctcp-reply (ctcp embedded in a notice instead of a privmsg) - - Module: server - -(17) RAW (stackable) - - bind raw - - procname - - Description: previous versions of Eggdrop required a special compile option to enable this binding, but it's now standard. The keyword is either a numeric, like "368", or a keyword, such as "PRIVMSG". "from" will be the server name or the source user (depending on the keyword); flags are ignored. The order of the arguments is identical to the order that the IRC server sends to the bot. The pre-processing only splits it apart enough to determine the keyword. If the proc returns 1, Eggdrop will not process the line any further (this could cause unexpected behavior in some cases). - - Module: server - -(18) BOT - - bind bot - - procname - - Description: triggered by a message coming from another bot in the botnet. The first word is the command and the rest becomes the text argument; flags are ignored. - - Module: core - -(19) CHON (stackable) - - bind chon - - procname - - Description: when someone first enters the party-line area of the bot via dcc chat or telnet, this is triggered before they are connected to a chat channel (so, yes, you can change the channel in a 'chon' proc). mask is matched against the handle and supports wildcards. This is NOT triggered when someone returns from the file area, etc. - - Module: core - -(20) CHOF (stackable) - - bind chof - - procname - - Description: triggered when someone leaves the party line to disconnect from the bot. mask is matched against the handle and can contain wildcards. Note that the connection may have already been dropped by the user, so don't send output to the idx. - - Module: core - -(21) SENT (stackable) - - bind sent - - procname - - Description: after a user has successfully downloaded a file from the bot, this binding is triggered. mask is matched against the handle of the user that initiated the transfer and supports wildcards. nick is the actual recipient (on IRC) of the file. The path is relative to the dcc directory (unless the file transfer was started by a script call to 'dccsend', in which case the path is the exact path given in the call to 'dccsend'). - - Module: transfer - -(22) RCVD (stackable) - - bind rcvd - - procname - - Description: triggered after a user uploads a file successfully. mask is matched against the user's handle. nick is the IRC nickname that the file transfer originated from. The path is where the file ended up, relative to the dcc directory (usually this is your incoming dir). - - Module: transfer - -(23) CHAT (stackable) - - bind chat - - procname - - Description: when a user says something on the botnet, it invokes this binding. Flags are ignored; handle could be a user on this bot ("DronePup") or on another bot ("Eden\@Wilde") and therefore you can't rely on a local user record. The mask is checked against the entire line of text and supports wildcards. - - NOTE: If a BOT says something on the botnet, the BCST bind is invoked instead. - - Module: core - -(24) LINK (stackable) - - bind link - - procname - - Description: triggered when a bot links into the botnet. botname is the botnetnick of the bot that just linked in; via is the bot it linked through. The mask is checked against the botnetnick of the bot that linked and supports wildcards. flags are ignored. - - Module: core - -(25) DISC (stackable) - - bind disc - - procname - - Description: triggered when a bot disconnects from the botnet for whatever reason. Just like the link bind, flags are ignored; mask is matched against the botnetnick of the bot that unlinked. Wildcards are supported in mask. - - Module: core - -(26) SPLT (stackable) - - bind splt - - procname - - Description: triggered when someone gets netsplit on the channel. Be aware that this may be a false alarm (it's easy to fake a netsplit signoff message on some networks); mask may contain wildcards and is matched against '#channel nick!user\@host'. Anyone who is SPLT will trigger a REJN or SIGN within the next wait-split (defined in the config file) seconds. - - Module: irc - -(27) REJN (stackable) - - bind rejn - - procname - - Description: someone who was split has rejoined. mask can contain wildcards, and is matched against '#channel nick!user\@host'. - - Module: irc - -(28) FILT (stackable) - - bind filt - - procname - - Description: party line and file system users have their text sent through filt before being processed. If the proc returns a blank string, the text is considered parsed. Otherwise, the bot will use the text returned from the proc and continue parsing that - - Module: core - -(29) NEED (stackable) - - bind need - - procname - - Description: this bind is triggered on certain events, like when the bot needs operator status or the key for a channel. The types are: op, unban, invite, limit, and key; the mask is matched against '#channel type' and can contain wildcards. flags are ignored. - - Example:: - - bind need - "% op" needop < handles only need op - bind need - "*" needall < handles all needs - - Module: irc - -(30) FLUD (stackable) - - bind flud - - procname - - Description: any floods detected through the flood control settings (like 'flood-ctcp') are sent here before processing. If the proc returns 1, no further action is taken on the flood; if the proc returns 0, the bot will do its normal "punishment" for the flood. The flood types are: pub, msg, join, or ctcp (and can be masked to "*" for the bind); flags are ignored. - - Module: server - -(31) NOTE (stackable) - - bind note - - procname - - Description: incoming notes (either from the party line, someone on IRC, or someone on another bot on the botnet) are checked against these binds before being processed. The mask is matched against the receiving handle and supports wildcards. If the proc returns 1, Eggdrop will not process the note any further. Flags are ignored. - - Module: core - -(32) ACT (stackable) - - bind act - - procname - - Description: when someone does an action on the botnet, it invokes this binding. flags are ignored; the mask is matched against the text of the action and can support wildcards. - - Module: core - -(33) WALL (stackable) - - bind wall - - procname - - Description: when the bot receives a wallops, it invokes this binding. flags are ignored; the mask is matched against the text of the wallops msg. Note that RFC shows the server name as a source of the message, whereas many IRCds send the nick!user\@host of the actual sender, thus, Eggdrop will not parse it at all, but simply pass it to bind in its original form. If the proc returns 1, Eggdrop will not log the message that triggered this bind. - - Module: server - -(34) BCST (stackable) - - bind bcst - - procname - - Description: when a bot broadcasts something on the botnet (see 'dccbroadcast' above), it invokes this binding. flags are ignored; the mask is matched against the message text and can contain wildcards. 'channel' argument will always be '-1' since broadcasts are not directed to any partyline channel. - - It is also invoked when a BOT (not a person, as with the CHAT bind) 'says' something on a channel. In this case, the 'channel' argument will be a valid channel, and not '-1'. - - Module: core - -(35) CHJN (stackable) - - bind chjn - - procname - - Description: when someone joins a botnet channel, it invokes this binding. The mask is matched against the channel and can contain wildcards. flag is one of: * (owner), + (master), @ (op), or % (botnet master). Flags are ignored. - - Module: core - -(36) CHPT (stackable) - - bind chpt - - procname - - Description: when someone parts a botnet channel, it invokes this binding. The mask is matched against the channel and can contain wildcards. Flags are ignored. - - Module: core - -(37) TIME (stackable) - - bind time - - procname - - Description: allows you to schedule procedure calls at certain times. mask matches 5 space separated integers of the form: "minute hour day month year". The month var starts at 00 (Jan) and ends at 11 (Dec). Minute, hour, day, month have a zero padding so they are exactly two characters long; year is zero characters. Flags are ignored. - - Module: core - -(38) AWAY (stackable) - - bind away - - procname - - Description: triggers when a user goes away or comes back on the botnet. text is the reason than has been specified (text is "" when returning). mask is matched against the botnet-nick of the bot the user is connected to and supports wildcards. flags are ignored. - - Module: core - -(39) LOAD (stackable) - - bind load - - procname - - Description: triggers when a module is loaded. mask is matched against the name of the loaded module and supports wildcards; flags are ignored. - - Module: core - -(40) UNLD (stackable) - - bind unld - - procname - - Description: triggers when a module is unloaded. mask is matched against the name of the unloaded module and supports wildcards; - flags are ignored. - - Module: core - -(41) NKCH (stackable) - - bind nkch - - procname - - Description: triggered whenever a local user's handle is changed (in the userfile). mask is matched against the user's old handle and can contain wildcards; flags are ignored. - - Module: core - -(42) EVNT (stackable) - - bind evnt - - procname - - Description: triggered whenever one of these events happen. flags are ignored. Pre-defined events triggered by Eggdrop are:: - - sighup - called on a kill -HUP - sigterm - called on a kill -TERM - sigill - called on a kill -ILL - sigquit - called on a kill -QUIT - save - called when the userfile is saved - rehash - called just after a rehash - prerehash - called just before a rehash - prerestart - called just before a restart - logfile - called when the logs are switched daily - loaded - called when the bot is done loading - userfile-loaded - called after userfile has been loaded - connect-server - called just before we connect to an IRC server - preinit-server - called immediately when we connect to the server - init-server - called when we actually get on our IRC server - disconnect-server - called when we disconnect from our IRC server - fail-server - called when an IRC server fails to respond - - Note that Tcl scripts can trigger arbitrary events, including ones that are not pre-defined or used by Eggdrop. - - Module: core - -(43) LOST (stackable) - - bind lost - - procname - - Description: triggered when a DCC SEND transfer gets lost, such as when the connection is terminated before all data was successfully sent/received. This is typically caused by a user abort. - - Module: transfer - -(44) TOUT (stackable) - - bind tout - - procname - - Description: triggered when a DCC SEND transfer times out. This may either happen because the dcc connection was not accepted or because the data transfer stalled for some reason. - - Module: transfer - -(45) OUT (stackable) - - bind out - - procname - - Description: triggered whenever output is sent to the server. Normally the event will occur twice for each line sent: once before entering a server queue and once after the message is actually sent. This allows for more flexible logging of server output and introduces the ability to cancel the message. Mask is matched against "queue status", where status is either 'queued' or 'sent'. Queues are: mode, server, help, noqueue. noqueue is only used by the putnow tcl command. - - Module: server - -(46) CRON (stackable) - - bind cron - - procname - - Description: similar to bind TIME, but the mask is evaluated as a cron expression, e.g. "16/2 \*/2 5-15 7,8,9 4". It can contain up to five fields: minute, hour, day, month, weekday; delimited by whitespace. Week days are represented as 0-6, where Sunday can be either 0 or 7. Symbolic names are not supported. The bind will be triggered if the mask matches all of the fields, except that if both day and weekday are not '\*', only one of them is required to match. If any number of fields are omitted at the end, the match will proceed as if they were '\*'. All cron operators are supported. Please refer to the crontab manual for their meanings. Flags are ignored. - - Module: core - -(47) LOG (stackable) - - bind log - - procname - - Description: triggered whenever a message is sent to a log. The mask is matched against "channel text". The level argument to the proc will contain the level(s) the message is sent to, or '\*' if the message is sent to all log levels at once. If the message wasn't sent to a specific channel, channel will be set to '\*'. - - Module: core - -(48) TLS (stackable) - - bind tls - - procname - - Description: triggered for tcp connections when a ssl handshake has completed and the connection is secured. The mask is matched against the idx of the connection. - - Module: core - -(49) DIE (stackable) - - bind die - - procname - - Description: triggered when eggdrop is about to die. The mask is matched against the shutdown reason. The bind won't be triggered if the bot crashes or is being terminated by SIGKILL. - - Module: core - -^^^^^^^^^^^^^ -Return Values -^^^^^^^^^^^^^ - -Several bindings pay attention to the value you return from the proc(using 'return '). Usually, they expect a 0 or 1, and returning an empty return is interpreted as a 0. Be aware if you omit the return statement, the result of the last Tcl command executed will be returned by the proc. This will not likely produce the results you intended (this is a "feature" of Tcl). - -Here's a list of the bindings that use the return value from procs they trigger: - -(1) MSG Return 1 to make Eggdrop log the command as:: - - (nick!user@host) !handle! command - -(2) DCC Return 1 to make Eggdrop log the command as:: - - #handle# command - -(3) FIL Return 1 to make Eggdrop log the command as:: - - #handle# files: command - -(4) PUB Return 1 to make Eggdrop log the command as:: - - <> !handle! command - -(5) CTCP Return 1 to ask the bot not to process the CTCP command on its own. Otherwise, it would send its own response to the CTCP (possibly an error message if it doesn't know how to deal with it). - -(6) FILT Return "" to indicate the text has been processed, and the bot should just ignore it. Otherwise, it will treat the text like any other. - -(7) FLUD Return 1 to ask the bot not to take action on the flood. Otherwise it will do its normal punishment. - -(8) RAW Return 1 to ask the bot not to process the server text. This can affect the bot's performance by causing it to miss things that it would normally act on -- you have been warned. - -(9) CHON Return 1 to ask the bot not to process the partyline join event. - -(10) CHOF Return 1 to ask the bot not to process the partyline part event. - -(11) WALL Return 1 to make Eggdrop not log the message that triggered this bind. - -(12) NOTE Return 1 to make Eggdrop not process the note any further. This includes stacked note bindings that would be processed after this one, as well as the built-in eggdrop note handling routines. - -(13) MSGM Return 1 to make Eggdrop not log the message that triggered this bind. - -(14) PUBM Return 1 to make Eggdrop not log the message that triggered this bind. - -(15) NOTC Return 1 to make Eggdrop not log the message that triggered this bind. - -(16) OUT Return 1 to make Eggdrop drop the message instead of sending it. Only meaningful for messages with status "queued". - -(17) EVNT Return 1 to make Eggdrop not to take the default action for the event. Used for signal type events, ignored for others. - -(18) TLS Return 1 to disable verbose ssl information for the handshake. - -Control Procedures ------------------- - -Using the 'control' command, you can put a DCC connection (or outgoing -TCP connection) in control of a script. All text received from the -connection is sent to the proc you specify. All outgoing text should -be sent with 'putdcc'. - -The control procedure is called with these parameters:: - - procname - -This allows you to use the same proc for several connections. The -idx will stay the same until the connection is dropped. After that, -it will probably get reused for a later connection. - -To indicate that the connection has closed, your control procedure -will be called with blank text (the input-text will be ""). This -is the only time it will ever be called with "" as the text, and it -is the last time your proc will be called for that connection. Don't -call killdcc on the idx when text is blank, it will always fail with -"invalid idx". - -If you want to hand control of your connection back to Eggdrop, your -proc should return 1. Otherwise, return 0 to retain control. - -TCP Connections ---------------- - -Eggdrop allows you to make two types of TCP ("telnet") connections: -outgoing and incoming. For an outgoing connection, you specify the -remote host and port to connect to. For an incoming connection, you -specify a port to listen on. - -All of the connections are *event driven*. This means that the bot will -trigger your procs when something happens on the connection, and your -proc is expected to return as soon as possible. Waiting in a proc for -more input is a no-no. - -To initiate an outgoing connection, use:: - - set idx [connect <[+]port>] - -For SSL connections, prefix the port with a plus sign. - -$idx now contains a new DCC entry for the outgoing connection. - -All connections use non-blocking (commonly called "asynchronous", -which is a misnomer) I/O. Without going into a big song and dance -about asynchronous I/O, what this means to you is: - - * assume the connection succeeded immediately - * if the connection failed, an EOF will arrive for that idx - -The only time a 'connect' will return an error is if you give it a -hostname that can't be resolved (this is considered a "DNS error"). -Otherwise, it will appear to have succeeded. If the connection failed, -you will immediately get an EOF. - -Right after doing a 'connect' call, you should set up a 'control' for -the new idx (see the section above). From then on, the connection will -act just like a normal DCC connection that has been put under the control -of a script. If you ever return "1" from the control proc (indicating -that you want control to return to Eggdrop), the bot will just close the -connection and dispose of it. Other commands that work on normal DCC -connections, like 'killdcc' and 'putdcc', will work on this idx, too. -The 'killdcc' command will fail with "invalid idx" if you attempt to use -it on a closed socket. - -To create a listen port, use:: - - listen <[+]port> script - -By default, a listen port will allow both plaintext and SSL connections. -To restrict a port to allow only SSL connections, prefix the port with a -plus sign. - -Procs should be declared as:: - - - -For example:: - - listen 6687 script listen:grab - - proc listen:grab {newidx} { - control $newidx listen:control - } - -When a new connection arrives in port 6687, Eggdrop will create a new idx for the connection. That idx is sent to 'listen:grab'. The proc immediately puts this idx under control. Once 'listen:grab' has been called, the idx behaves exactly like an outgoing connection would. - -Secure connection can be also established after a connection is active. You can connect/listen normally and switch later using the 'starttls' command. Your script should first inform the other side of the connection that it wants to switch to SSL. How to do this is application specific. - -The best way to learn how to use these commands is to find a script that uses them and follow it carefully. However, hopefully this has given you a good start. - -Match Characters ----------------- - -Many of the bindings allow match characters in the arguments. Here -are the four special characters: - -+-----+--------------------------------------------------------------------------+ -| ? | matches any single character | -+-----+--------------------------------------------------------------------------+ -| \* | matches 0 or more characters of any type | -+-----+--------------------------------------------------------------------------+ -| % | matches 0 or more non-space characters (can be used to match a single | -| | word) (This character only works in binds, not in regular matching) | -+-----+--------------------------------------------------------------------------+ -| ~ | matches 1 or more space characters (can be used for whitespace between | -| | words) (This char only works in binds, not in regluar matching) | -+-----+--------------------------------------------------------------------------+ - - Copyright (C) 1999 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/mainDocs/tls.txt b/doc/html/_sources/mainDocs/tls.txt deleted file mode 100644 index 84e84eadd..000000000 --- a/doc/html/_sources/mainDocs/tls.txt +++ /dev/null @@ -1,185 +0,0 @@ -TLS support -Last revised: Oct 17, 2010 - -=========== -TLS support -=========== - -This document provides information about TLS support which is a new -eggdrop feature since version 1.8.0. - ------ -About ------ - -Eggdrop can be optionally compiled with TLS support. This requires OpenSSL -0.9.8 or more recent installed on your system. -TLS support includes encryption for IRC, DCC, botnet, telnet and scripted -connections as well as certificate authentication for users and bots. - ------------- -Installation ------------- - -./configure and install as usual, the configure script will detect if your -system meets the requirements and will enable TLS automatically. You can -override the autodetection and manually disable TLS with -./configure --disable-tls. You can't forcefully enable it though. -The configure script will look for OpenSSL at the default system locations. -If you have it installed at a non-standard location or locally in your -home directory, you'll need to specify the paths to header and library -files with the --with-sslinc and --with-ssllib options. You can also use -these if you want to override the default OpenSSL installation with a -custom one, as they take precedence over any system-wide paths. - ------ -Usage ------ - -By default, without additional configuration, TLS support will provide -opportunistic encryption for botnet links. For other connection types, -TLS must be requested explicitly. - -Secure connections are created the same way as plaintext ones. The only -difference is that you must prefix the port number with a plus sign. -A port number that could be normally omitted, would have to be included -to enable TLS. Scripts can also switch a regular, plaintext connection -to TLS, using the starttls Tcl command. - -^^^ -IRC -^^^ - -To connect to IRC using SSL, specify the port number and prefix it with -a plus sign. Example: .jump irc.server.com +6697. The same goes for -the server list in the config file. - -^^^^^^ -Botnet -^^^^^^ - -By default, eggdrop now automatically attempts to protect botnet links -with SSL if it is compiled with TLS support. If one of the bots linking -does not have TLS support enabled, the connection will fall back to plain -text. To explicitly require all links to a hub be SSL-only (ie, prevent -plain text connections from being allowed), prefix the listen port in the -hub configuration file with a plus (+) sign. Conversely, to force a leaf -to only allow SSL (not plain text) connections with a hub, you must -prefix the hub's listen port with a plus when adding it to the leaf via -+bot/chaddr commands. The nickname and password are sent before SSL -negotiation takes place (the password is not sent in plain text anyway). -If SSL negotiation fails and either the hub or leaf is set to require SSL, -the connection is deliberately aborted and no clear text is ever sent. - -^^^^^^^^^^ -Secure DCC -^^^^^^^^^^ - -Eggdrop supports the SDCC protocol, allowing you to establish DCC chat -and file transfers over SSL. Example: /ctcp bot schat -Note, that currently the only IRC client supporting SDCC is KVIrc. For -information on how to initiate secure DCC chat from KVIrc (rather than -from the bot with /ctcp bot chat), consult the KVIrc documentation. - -^^^^^^^ -Scripts -^^^^^^^ - -Scripts can open or connect to SSL ports the usual way specifying the -port with a plus sign. Alternatively, the connection could be -established as plaintext and later switched on with the starttls Tcl -command. (Note that the other side should also switch to SSL at the same -time - the synchronization is the script's job, not eggdrop's.) - -------------------------------------- -Keys, certificates and authentication -------------------------------------- - -You need a private key and a digital certificate whenever your bot will -act as a server in a connection of any type. Common examples are hub -bots and SSL listening ports. General information about certificates and -public key infrastructure can be obtained from Internet. This document -only contains eggdrop-specific information on the subject. -The easy way to create a key and a certificate is to type 'make sslcert' -after compiling your bot (If you installed eggdrop to a non-standard -location, use make sslcert DEST=/path/to/eggdrop). This will generate a -4096-bit private key (eggdrop.key) and a certificate (eggdrop.crt) after -you fill in therequired fields. - -To authenticate with a certificate instead of using password, you should -make a ssl certificate for yourself and enable ssl-cert-auth in the config -file. Then either connect to the bot using SSL and type ".fprint +" or -enter your certificate fingerprint with .fprint SHA1-FINGERPRINT. -To generate a ssl certificate for yourself, you can run the following -command from the eggdrop source directory:: - - openssl req -new -x509 -nodes -keyout my.key -out my.crt -config ssl.conf - -When asked about bot's handle, put your handle instead. How to use your -new certificate to connect to eggdrop, depends on your irc client. -To connect to your bot from the command line, you can use the OpenSSL -ssl client:: - - openssl s_client -cert my.crt -key my.key -connect host:sslport - ------------- -SSL Settings ------------- - -There are some new settings allowing control over certificate -verification and authorization. - - ssl-privatekey - - file containing Eggdrop's private key, required for the certificate. - - ssl-certificate - - Specify the filename where your SSL certificate is located. - if your bot will accept SSL connections, it must have a certificate. - - ssl-verify-depth - - maximum verification depth when checking certificate validity. - Determines the maximum certificate chain length to allow. - - | ssl-capath - | ssl-cafile - - specify the location of certificate authorities certificates. These - are used for verification. Both can be active at the same time. - If you don't set this, validation of the issuer won't be possible and - depending on verification settings, the peer certificate might fail - verification. - - ssl-ciphers - - specify the list of ciphers (in order of preference) allowed for - use with ssl. - - ssl-cert-auth - - enables or disables certificate authorization for partyline/botnet. - This works only for SSL connections (SDCC or telnet over SSL). - A setting of 1 means optional authorization: If the user/bot has a - fingerprint set and it matches the certificate SHA1 fingerprint, - access is granted, otherwise ordinary password authentication takes - place. - - If you set this to 2 however, users without a fingerprint set or - with a fingerprint not matching the certificate, will not be - allowed to enter the partyline with SSL. In addition to this user and - bot certificates will be required to have an UID field matching the - handle of the user/bot. - - | ssl-verify-dcc - | ssl-verify-bots - | ssl-verify-server - | ssl-verify-clients - - control ssl certificate verification. A value of 0 disables - verification completely. A value of 1 enables full verification. - Higher values enable specific exceptions like allowing self-signed - or expired certificates. Details are documented in eggdrop.conf. - -Copyright (C) 2010 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/mainDocs/users.txt b/doc/html/_sources/mainDocs/users.txt deleted file mode 100644 index e048aa594..000000000 --- a/doc/html/_sources/mainDocs/users.txt +++ /dev/null @@ -1,90 +0,0 @@ -Last revised: March 07, 2002 - -=============== -Users and Flags -=============== - -People on IRC are recognized by the bot according to their -nick!user@host. That is, if I am on IRC as: - - \*\*\* Robey is robey\@hubcap.clemson.edu (i hate milk) - -Eggdrop will identify me according to "Robey!robey\@hubcap.clemson.edu" -and not only by my nickname. - -Eggdrop does not have access levels like some bots. There are no -meaningless numbers or titles. Instead, each user has "flags" that -entitle them to certain privileges. Think of a flag as a badge. Any user -can have any number of flags -- you can have no flags, or you can have -all of them. Some flags are good, some are bad. Each flag is identified -by a letter. A channel flag applies only to a specific channel, and a -global flag applies to all channels. The standard global flags are: - - +---+-----------------+-------------------------------------------------------+ - | n | owner | user has absolute control. Only give this flag to | - | | | people you trust completely. | - +---+-----------------+-------------------------------------------------------+ - | m | master | user has access to almost every feature of the bot. | - +---+-----------------+-------------------------------------------------------+ - | t | botnet-master | user has access to all features dealing with the | - | | | botnet. | - +---+-----------------+-------------------------------------------------------+ - | a | auto-op | user is opped automatically upon joining a channel. | - +---+-----------------+-------------------------------------------------------+ - | o | op | user has op access to all of the bot's channels. | - +---+-----------------+-------------------------------------------------------+ - | y | auto-halfop | user is halfopped automatically upon joining a channel| - +---+-----------------+-------------------------------------------------------+ - | l | halfop | user has halfop access to all of the bot's channels. | - +---+-----------------+-------------------------------------------------------+ - | g | auto-voice | user is voiced automatically upon joining a channel. | - +---+-----------------+-------------------------------------------------------+ - | v | voice | user gets +v automatically on +autovoice channels. | - +---+-----------------+-------------------------------------------------------+ - | f | friend | user is not punished for flooding, etc. | - +---+-----------------+-------------------------------------------------------+ - | p | party | user has access to the partyline. | - +---+-----------------+-------------------------------------------------------+ - | q | quiet | user does not get voice on +autovoice channels. | - +---+-----------------+-------------------------------------------------------+ - | r | dehalfop | user cannot gain halfops on any of the bot's channels.| - +---+-----------------+-------------------------------------------------------+ - | d | deop | user cannot gain ops on any of the bot's channels. | - +---+-----------------+-------------------------------------------------------+ - | k | auto-kick | user is kicked and banned automatically. | - +---+-----------------+-------------------------------------------------------+ - | x | xfer | user has access to the file transfer area of the bot | - | | | the bot. | - +---+-----------------+-------------------------------------------------------+ - | j | janitor | user can perform maintenance in the file area of the | - | | | bot (if it exists) -- like a "master" of the file | - | | | area. Janitors have complete access to the filesystem.| - +---+-----------------+-------------------------------------------------------+ - | c | common | this marks a user who is connecting from a public site| - | | | from which any number of people can use IRC. The user | - | | | will now be recognized by NICKNAME. | - +---+-----------------+-------------------------------------------------------+ - | b | bot | user is a bot. | - +---+-----------------+-------------------------------------------------------+ - | w | wasop-test | user needs wasop test for +stopnethack procedure. | - +---+-----------------+-------------------------------------------------------+ - | z | washalfop-test | user needs washalfop test for +stopnethack procedure. | - +---+-----------------+-------------------------------------------------------+ - | e | nethack-exempt | user is exempted from stopnethack protection. | - +---+-----------------+-------------------------------------------------------+ - | u | unshared | user record is not sent to other bots. | - +---+-----------------+-------------------------------------------------------+ - | h | highlight | use bold text in help/text files. | - +---+-----------------+-------------------------------------------------------+ - - All global flags other then u, h, b, c, x, j, and p are also - channel-specific flags. Flags are set with the chattr command. - The syntax for this command is:: - - chattr [attributes] [channel] - - There are also 26 global user-defined flags and 26 channel user-defined - flags. These are used by scripts, and their uses very depending on the - script that uses them. - -Copyright (C) 2002 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/tcl-commands.txt b/doc/html/_sources/tcl-commands.txt deleted file mode 100644 index 4d3a96aca..000000000 --- a/doc/html/_sources/tcl-commands.txt +++ /dev/null @@ -1,2821 +0,0 @@ -Eggdrop Tcl Commands -Last revised: June 20, 2016 - -==================== -Eggdrop Tcl Commands -==================== - - -This is an exhaustive list of all the Tcl commands added to Eggdrop. All -of the normal Tcl built-in commands are still there, of course, but you -can also use these to manipulate features of the bot. They are listed -according to category. - -This list is accurate for Eggdrop v1.8.0. Scripts written for v1.3, v1.4 -or 1.6 series of Eggdrop should probably work with a few minor modifications -depending on the script. Scripts which were written for v0.9, v1.0, v1.1 -or v1.2 will probably not work without modification. Commands which have -been changed in this version of Eggdrop (or are just new commands) are -marked with vertical bars (|) on the left. - -Output Commands ---------------- - -**putserv [options]** - - Description: sends text to the server, like '.dump' (intended for direct server commands); output is queued so that the bot won't flood itself off the server. - - Options: - -next push messages to the front of the queue - -normal no effect - - Returns: nothing - - Module: server - -**puthelp [options]** - - Description: sends text to the server, like 'putserv', but it uses a different queue intended for sending messages to channels or people. - - Options: - -next push messages to the front of the queue - -normal no effect - - Returns: nothing - - Module: server - -**putquick [options]** - - Description: sends text to the server, like 'putserv', but it uses a different (and faster) queue. - - Options: - -next push messages to the front of the queue - -normal no effect - - Returns: nothing - - Module: server - -**putnow [-oneline]** - - Description: sends text to the server immediately, bypassing all queues. Use with caution, as the bot may easily flood itself off the server. - - Options: - -oneline send text up to the first \r or \n, discarding the rest - - Returns: nothing - - Module: server - -**putkick [reason]** - - Description: sends kicks to the server and tries to put as many nicks into one kick command as possible. - - Returns: nothing - - Module: irc - -**putlog ** - - Description: sends text to the bot's logfile, marked as 'misc' (o) - - Returns: nothing - - Module: core - -**putcmdlog ** - - Description: sends text to the bot's logfile, marked as 'command' (c) - - Returns: nothing - - Module: core - -**putxferlog ** - Description: sends text to the bot's logfile, marked as 'file-area' (x) - - Returns: nothing - - Module: core - -**putloglev ** - Description: sends text to the bot's logfile, tagged with all of the valid levels given. Use "*" to indicate all log levels. - - Returns: nothing - - Module: core - -**dumpfile ** - - Description: dumps file from the help/text directory to a user on IRC via msg (one line per msg). The user has no flags, so the flag bindings won't work within the file. - - Returns: nothing - - Module: core - -**queuesize [queue]** - - Returns: the number of messages in all queues. If a queue is specified, only the size of this queue is returned. Valid queues are: mode, server, help. - - Module: server - -**clearqueue ** - - Description: removes all messages from a queue. Valid arguments are: mode, server, help, or all. - - Returns: the number of deleted lines from the specified queue. - - Module: server - -User Record Manipulation Commands ---------------------------------- - -**countusers** - - Returns: number of users in the bot's database - - Module: core - -**validuser ** - - Returns: 1 if a user by that name exists; 0 otherwise - - Module: core - -**finduser ** - - Description: finds the user record which most closely matches the given nick!user\@host - - Returns: the handle found, or "*" if none - - Module: core - -**userlist [flags]** - - Returns: a list of users on the bot. You can use the flag matching system here ([global]{&/\|}[chan]{&/\|}[bot]). '&' specifies "and"; '|' specifies "or". - - Module: core - -**passwdok ** - - Description: checks the password given against the user's password. Check against the password "" (a blank string) or "-" to find out if a user has no password set. - - Returns: 1 if the password matches for that user; 0 otherwise - - Module: core - -**getuser [extra info]** - - Description: an interface to the new generic userfile support. Valid entry types are: - - +----------+-------------------------------------------------------------------------------------+ - | BOTFL | returns the current bot-specific flags for the user (bot-only) | - +----------+-------------------------------------------------------------------------------------+ - | BOTADDR | returns a list containing the bot's address, telnet port, and relay port (bot-only) | - +----------+-------------------------------------------------------------------------------------+ - | HOSTS | returns a list of hosts for the user | - +----------+-------------------------------------------------------------------------------------+ - | LASTON | returns a list containing the unixtime last seen and the last seen place. | - | | LASTON #channel returns the time last seen time for the channel or 0 if no info | - | | exists. | - +----------+-------------------------------------------------------------------------------------+ - | INFO | returns the user's global info line | - +----------+-------------------------------------------------------------------------------------+ - | XTRA | returns the user's XTRA info | - +----------+-------------------------------------------------------------------------------------+ - | COMMENT | returns the master-visible only comment for the user | - +----------+-------------------------------------------------------------------------------------+ - | HANDLE | returns the user's handle as it is saved in the userfile | - +----------+-------------------------------------------------------------------------------------+ - | PASS | returns the user's encrypted password | - +----------+-------------------------------------------------------------------------------------+ - - For additional custom user fields, to include the deprecated "EMAIL" and "URL" fields, reference scripts/userinfo.tcl - - Returns: info specific to each entry-type - - Module: core - -**setuser [extra info]** - - Description: this is the counterpart of getuser. It lets you set the various values. Other then the ones listed below, the entry-types are the same as getuser's. - - +---------+---------------------------------------------------------------------------------------+ - | PASS | sets a users password (no third arg will clear it) | - +---------+---------------------------------------------------------------------------------------+ - | HOSTS | if used with no third arg, all hosts for the user will be cleared. Otherwise, *1* | - | | hostmask is added :P | - +---------+---------------------------------------------------------------------------------------+ - | LASTON | This setting has 3 forms. | - | | | - | | *setuser LASTON * sets global LASTON time | - | | | - | | *setuser LASTON * sets global LASTON time (leaving the place | - | | field empty) | - | | | - | | *setuser LASTON * sets a users LASTON time for a | - | | channel (if it is a valid channel) | - +---------+---------------------------------------------------------------------------------------+ - - Returns: nothing - - Module: core - -**chhandle ** - - Description: changes a user's handle - - Returns: 1 on success; 0 if the new handle is invalid or already used, or if the user can't be found - - Module: core - -**chattr [changes [channel]]** - - Description: changes the attributes for a user record, if you include any. - Changes are of the form '+f', '-o', '+dk', '-o+d', etc. If changes are specified in the format of \| , the channel-specific flags for that channel are altered. You can now use the +o|-o #channel format here too. - - Returns: new flags for the user (if you made no changes, the current flags are returned). If a channel was specified, the global AND the channel-specific flags for that channel are returned in the format of globalflags|channelflags. "*" is returned if the specified user does not exist. - - Module: core - -**botattr [changes [channel]]** - - Description: similar to chattr except this modifies bot flags rather than normal user attributes. - - Returns: new flags for the bot (if you made no changes, the current flags are returned). If a channel was specified, the global AND the channel-specific flags for that channel are returned in the format of globalflags|channelflags. "*" is returned if the specified bot does not exist. - - Module: core - -**matchattr [channel]** - - Returns: 1 if the specified user has the specified flags; 0 otherwise - - Module: core - -**adduser [hostmask]** - - Description: creates a new user entry with the handle and hostmask given (with no password and the default flags) - - Returns: 1 if successful; 0 if the handle already exists - - Module: core - -**addbot
** - Description: adds a new bot to the userlist with the handle and botaddress given (with no password and no flags) - - Returns: 1 if successful; 0 if the bot already exists - - Module: core - -**deluser ** - - Description: attempts to erase the user record for a handle - - Returns: 1 if successful, 0 if no such user exists - - Module: core - -**delhost ** - - Description: deletes a hostmask from a user's host list - - Returns: 1 on success; 0 if the hostmask (or user) doesn't exist - - Module: core - -**addchanrec ** - - Description: adds a channel record for a user - - Returns: 1 on success; 0 if the user or channel does not exist - - Module: channels - -**delchanrec ** - - Description: removes a channel record for a user. This includes all associated channel flags. - - Returns: 1 on success; 0 if the user or channel does not exist - - Module: channels - -**haschanrec ** - - Returns: 1 if the given handle has a chanrec for the specified channel; 0 otherwise - - Module: channels - -**getchaninfo ** - - Returns: info line for a specific channel (behaves just like 'getinfo') - - Module: channels - -**setchaninfo ** - - Description: sets the info line on a specific channel for a user. If info is "none", it will be removed. - - Returns: nothing - - Module: channels - -**newchanban [lifetime] [options]** - - Description: adds a ban to the ban list of a channel; creator is given credit for the ban in the ban list. lifetime is specified in minutes. If lifetime is not specified, ban-time (usually 60) is used. Setting the lifetime to 0 makes it a permanent ban. - - Options: - - +-----------+-------------------------------------------------------------------------------------+ - |sticky | forces the ban to be always active on a channel, even with dynamicbans on | - +-----------+-------------------------------------------------------------------------------------+ - - - Returns: nothing - - Module: channels - -**newban [lifetime] [options]** - - Description: adds a ban to the global ban list (which takes effect on all channels); creator is given credit for the ban in the ban list. lifetime is specified in minutes. If lifetime is not specified, global-ban-time (usually 60) is used. Setting the lifetime to 0 makes it a permanent ban. - - Options: - - +-----------+-------------------------------------------------------------------------------------+ - |sticky | forces the ban to be always active on a channel, even with dynamicbans on | - +-----------+-------------------------------------------------------------------------------------+ - - Returns: nothing - - Module: channels - -**newchanexempt [lifetime] [options]** - - Description: adds a exempt to the exempt list of a channel; creator is given credit for the exempt in the exempt list. lifetime is specified in minutes. If lifetime is not specified, exempt-time (usually 60) is used. Setting the lifetime to 0 makes it a permanent exempt. The exempt will not be removed until the corresponding ban has been removed. For timed bans, once the time period has expired, the exempt will not be removed until the corresponding ban has either expired or been removed. - - Options: - - +-----------+-------------------------------------------------------------------------------------+ - |sticky | forces the exempt to be always active on a channel, even with dynamicexempts on | - +-----------+-------------------------------------------------------------------------------------+ - - Returns: nothing - - Module: channels - -**newexempt [lifetime] [options]** - - Description: adds a exempt to the global exempt list (which takes effect on all channels); creator is given credit for the exempt in the exempt list. lifetime is specified in minutes. If lifetime is not specified, exempt-time (usually 60) is used. Setting the lifetime to 0 makes it a permanent exempt. The exempt will not be removed until the corresponding ban has been removed. - - Options: - - +-----------+-------------------------------------------------------------------------------------+ - |sticky | forces the exempt to be always active on a channel, even with dynamicexempts on | - +-----------+-------------------------------------------------------------------------------------+ - - Returns: nothing - - Module: channels - -**newchaninvite [lifetime] [options]** - - Description: adds a invite to the invite list of a channel; creator is given credit for the invite in the invite list. lifetime is specified in minutes. If lifetime is not specified, invite-time (usually 60) is used. Setting the lifetime to 0 makes it a permanent invite. The invite will not be removed until the channel has gone -i. - - Options: - - +-----------+-------------------------------------------------------------------------------------+ - |sticky | forces the invite to be always active on a channel, even with dynamicinvites on | - +-----------+-------------------------------------------------------------------------------------+ - - Returns: nothing - - Module: channels - -**newinvite [lifetime] [options]** - - Description: adds a invite to the global invite list (which takes effect on all channels); creator is given credit for the invite in the invite list. lifetime is specified in minutes. If lifetime is not specified, invite-time (usually 60) is used. Setting the lifetime to 0 makes it a permanent invite. The invite will not be removed until the channel has gone -i. - - Options: - - +-----------+-------------------------------------------------------------------------------------+ - |sticky | forces the invite to be always active on a channel, even with dynamicinvites on | - +-----------+-------------------------------------------------------------------------------------+ - - Returns: nothing - - Module: channels - -**stickban [channel]** - - Description: makes a ban sticky, or, if a channel is specified, then it is set sticky on that channel only. - - Returns: 1 on success; 0 otherwise - - Module: channels - -**unstickban [channel]** - - Description: makes a ban no longer sticky, or, if a channel is specified, then it is unstuck on that channel only. - - Returns: 1 on success; 0 otherwise - - Module: channels - -**stickexempt [channel]** - - Description: makes an exempt sticky, or, if a channel is specified, then it is set sticky on that channel only. - - Returns: 1 on success; 0 otherwise - - Module: channels - -**unstickexempt [channel]** - - Description: makes an exempt no longer sticky, or, if a channel is specified, then it is unstuck on that channel only. - - Returns: 1 on success; 0 otherwise - - Module: channels - -**stickinvite [channel]** - Description: makes an invite sticky, or, if a channel is specified, then it is set sticky on that channel only. - - Returns: 1 on success; 0 otherwise - - Module: channels - -**unstickinvite [channel]** - - Description: makes an invite no longer sticky, or, if a channel is specified, then it is unstuck on that channel only. - - Returns: 1 on success; 0 otherwise - - Module: channels - -**killchanban ** - - Description: removes a ban from the ban list for a channel - - Returns: 1 on success; 0 otherwise - - Module: channels - -**killban ** - - Description: removes a ban from the global ban list - - Returns: 1 on success; 0 otherwise - - Module: channels - -**killchanexempt ** - - Description: removes an exempt from the exempt list for a channel - - Returns: 1 on success; 0 otherwise - - Module: channels - -**killexempt ** - - Description: removes an exempt from the global exempt list - - Returns: 1 on success; 0 otherwise - - Module: channels - -**killchaninvite ** - - Description: removes an invite from the invite list for a channel - - Returns: 1 on success; 0 otherwise - - Module: channels - -**killinvite ** - - Description: removes an invite from the global invite list - - Returns: 1 on success; 0 otherwise - - Module: channels - -**ischanjuped ** - - Returns: 1 if the channel is juped, and the bot is unable to join; 0 otherwise - - Module: channels - -**isban [channel]** - - Returns: 1 if the specified ban is in the global ban list; 0 otherwise. If a channel is specified, that channel's ban list is checked as well. - - Module: channels - -**ispermban [channel]** - - Returns: 1 if the specified ban is in the global ban list AND is marked as permanent; 0 otherwise. If a channel is specified, that channel's ban list is checked as well. - - Module: channels - -**isexempt [channel]** - - Returns: 1 if the specified exempt is in the global exempt list; 0 otherwise. If a channel is specified, that channel's exempt list is checked as well. - - Module: channels - -**ispermexempt [channel]** - - Returns: 1 if the specified exempt is in the global exempt list AND is marked as permanent; 0 otherwise. If a channel is specified, that channel's exempt list is checked as well. - - Module: channels - -**isinvite [channel]** - - Returns: 1 if the specified invite is in the global invite list; 0 otherwise. If a channel is specified, that channel's invite list is checked as well. - - Module: channels - -**isperminvite [channel]** - - Returns: 1 if the specified invite is in the global invite list AND is marked as permanent; 0 otherwise. If a channel is specified, that channel's invite list is checked as well. - - Module: channels - -**isbansticky [channel]** - - Returns: 1 if the specified ban is marked as sticky in the global ban list; 0 otherwise. If a channel is specified, that channel's ban list is checked as well. - - Module: channels - -**isexemptsticky [channel]** - - Returns: 1 if the specified exempt is marked as sticky in the global exempt list; 0 otherwise. If a channel is specified, that channel's exempt list is checked as well. - - Module: channels - -**isinvitesticky [channel]** - - Returns: 1 if the specified invite is marked as sticky in the global invite list; 0 otherwise. If a channel is specified, that channel's invite list is checked as well. - - Module: channels - -**matchban [channel]** - - Returns: 1 if the specified nick!user\@host matches a ban in the global ban list; 0 otherwise. If a channel is specified, that channel's ban list is checked as well. - - Module: channels - -**matchexempt [channel]** - - Returns: 1 if the specified nick!user\@host matches an exempt in the global exempt list; 0 otherwise. If a channel is specified, that channel's exempt list is checked as well. - - Module: channels - -**matchinvite [channel]** - - Returns: 1 if the specified nick!user\@host matches an invite in the global invite list; 0 otherwise. If a channel is specified, that - channel's invite list is checked as well. - - Module: channels - -**banlist [channel]** - - Returns: a list of global bans, or, if a channel is specified, a list of channel-specific bans. Each entry is a sublist containing: hostmask, comment, expiration timestamp, time added, last time active, and creator. The three timestamps are in unixtime format. - - Module: channels - -exemptlist [channel]** - - Returns: a list of global exempts, or, if a channel is specified, a list of channel-specific exempts. Each entry is a sublist containing: hostmask, comment, expiration timestamp, time added, last time active, and creator. The three timestamps are in unixtime format. - - Module: channels - -**invitelist [channel]** - - Returns: a list of global invites, or, if a channel is specified, a list of channel-specific invites. Each entry is a sublist containing: hostmask, comment, expiration timestamp, time added, last time active, and creator. The three timestamps are in unixtime format. - - Module: channels - -**newignore [lifetime]** - - Description: adds an entry to the ignore list; creator is given credit for the ignore. lifetime is how many minutes until the ignore expires and is removed. If lifetime is not specified, ignore-time (usually 60) is used. Setting the lifetime to 0 makes it a permanent ignore. - - Returns: nothing - - Module: core - -**killignore ** - Description: removes an entry from the ignore list - - Returns: 1 if successful; 0 otherwise - - Module: core - -**ignorelist** - - Returns: a list of ignores. Each entry is a sublist containing: hostmask, comment, expiration timestamp, time added, and creator. The timestamps are in unixtime format. - - Module: core - -**isignore ** - - Returns: 1 if the ignore is in the list; 0 otherwise - - Module: core - -**save** - - Description: writes the user and channel files to disk - - Returns: nothing - - Module: core - -**reload** - - Description: loads the userfile from disk, replacing whatever is in memory - - Returns: nothing - - Module: core - -**backup** - Description: makes a simple backup of the userfile that's on disk. If the channels module is loaded, this also makes a simple backup of the channel file. - - Returns: nothing - - Module: core - -**getting-users** - - Returns: 1 if the bot is currently downloading a userfile from a sharebot (and hence, user records are about to drastically change); 0 if not - - Module: core - -Channel Commands ----------------- - -**channel add [option-list]** - - Description: adds a channel record for the bot to monitor. The full list of possible options are given in doc/settings/mod.channels. Note that the channel options must be in a list (enclosed in {}). - - Returns: nothing - - Module: channels - -**channel set ** - - Description: sets options for the channel specified. The full list of possible options are given in doc/settings/mod.channels. - - Returns: nothing - - Module: channels - -**channel info ** - - Returns: a list of info about the specified channel's settings. - - Module: channels - -**channel get [setting]** - - Returns: The value of the setting you specify. For flags, a value of 0 means it is disabled (-), and non-zero means enabled (+). If no setting is specified, a flat list of all available settings and their values will be returned. - - Module: channels - -**channel remove ** - - Description: removes a channel record from the bot and makes the bot no longer monitor the channel - - Returns: nothing - - Module: channels - -**savechannels** - - Description: saves the channel settings to the channel-file if one is defined. - - Returns: nothing - - Module: channels - -**loadchannels** - Description: reloads the channel settings from the channel-file if one is defined. - - Returns: nothing - - Module: channels - -**channels** - - Returns: a list of the channels the bot has a channel record for - - Module: channels - -**channame2dname ** and **chandname2name ** - - Description: these two functions are important to correctly support !channels. The bot differentiates between channel description names (chan dnames) and real channel names (chan names). The chan dnames are what you would normally call the channel, such as "!channel". The chan names are what the IRC server uses to identify the channel. They consist of the chan dname prefixed with an ID; such as "!ABCDEchannel". - - For bot functions like isop, isvoice, etc. you need to know the chan dnames. If you communicate with the server, you usually get the chan name, though. That's what you need the channame2dname function for. - - If you only have the chan dname and want to directly send raw server commands, use the chandname2name command. - - NOTE: For non-!channels, chan dname and chan name are the same. - - Module: irc - -**isbotnick ** - - Returns: 1 if the nick matches the botnick; 0 otherwise - - Module: server - -**botisop [channel]** - - Returns: 1 if the bot has ops on the specified channel (or any channel if no channel is specified); 0 otherwise - - Module: irc - -**botishalfop [channel]** - - Returns: 1 if the bot has halfops on the specified channel (or any channel if no channel is specified); 0 otherwise - - Module: irc - -**botisvoice [channel]** - - Returns: 1 if the bot has a voice on the specified channel (or any channel if no channel is specified); 0 otherwise - - Module: irc - -**botonchan [channel]** - - Returns: 1 if the bot is on the specified channel (or any channel if no channel is specified); 0 otherwise - - Module: irc - -**isop [channel]** - - Returns: 1 if someone by the specified nickname is on the channel (or any channel if no channel name is specified) and has ops; 0 otherwise - - Module: irc - -**ishalfop [channel]** - - Returns: 1 if someone by the specified nickname is on the channel (or any channel if no channel name is specified) and has halfops; 0 otherwise - - Module: irc - -**wasop ** - - Returns: 1 if someone that just got opped/deopped in the chan had op before the modechange; 0 otherwise - - Module: irc - -**washalfop ** - - Returns: 1 if someone that just got halfopped/dehalfopped in the chan had halfop before the modechange; 0 otherwise - - Module: irc - -**isvoice [channel]** - - Returns: 1 if someone by that nickname is on the channel (or any channel if no channel is specified) and has voice (+v); 0 otherwise - - Module: irc - -**onchan [channel]** - Returns: 1 if someone by that nickname is on the specified channel (or any channel if none is specified); 0 otherwise - - Module: irc - -**nick2hand [channel]** - - Returns: the handle of a nickname on a channel. If a channel is not specified, the bot will check all of its channels. If the nick is not found, "" is returned. If the nick is found but does not have a handle, "*" is returned. - - Module: irc - -**hand2nick [channel]** - - Returns: nickname of the first person on the specified channel (if one is specified) whose nick!user\@host matches the given handle; "" is returned if no match is found. If no channel is specified, all channels are checked. - - Module: irc - -**handonchan [channel]** - - Returns: 1 if the the nick!user\@host for someone on the channel (or any channel if no channel name is specified) matches for the handle given; 0 otherwise - - Module: irc - -**ischanban ** - - Returns: 1 if the specified ban is on the given channel's ban list (not the bot's banlist for the channel) - - Module: irc - -**ischanexempt ** - - Returns: 1 if the specified exempt is on the given channel's exempt list (not the bot's exemptlist for the channel) - - Module: irc - -**ischaninvite ** - - Returns: 1 if the specified invite is on the given channel's invite list (not the bot's invitelist for the channel) - - Module: irc - -**chanbans ** - - Returns: a list of the current bans on the channel. Each element is a sublist of the form { }. age is seconds from the bot's point of view - - Module: irc - -**chanexempts ** - - Returns: a list of the current exempts on the channel. Each element is a sublist of the form { }. age is seconds from the bot's point of view - - Module: irc - -**chaninvites ** - - Returns: a list of the current invites on the channel. Each element is a sublist of the form { }. age is seconds from the bot's point of view - - Module: irc - -**resetbans ** - - Description: removes all bans on the channel that aren't in the bot's ban list and refreshes any bans that should be on the channel but aren't - - Returns: nothing - - Module: irc - -**resetexempts ** - - Description: removes all exempt on the channel that aren't in the bot's exempt list and refreshes any exempts that should be on the channel but aren't - - Returns: nothing - - Module: irc - -**resetinvites ** - - Description: removes all invites on the channel that aren't in the bot's invite list and refreshes any invites that should be on the channel but aren't - - Returns: nothing - - Module: irc - -**resetchanidle [nick] ** - - Description: resets the channel idle time for the given nick or for all nicks on the channel if no nick is specified. - - Returns: nothing - - Module: irc - -**resetchanjoin [nick] ** - Description: resets the channel join time for the given nick or for all nicks on the channel if no nick is specified. - - Returns: nothing - - Module: irc - -**resetchan [flags]** - - Description: rereads in the channel info from the server. If flags are specified, only the required information will be reset, according to the given flags. Available flags: - - +-----+---------------------------+ - | b | reset channel bans | - +-----+---------------------------+ - | e | reset channel exempts | - +-----+---------------------------+ - | I | reset channel invites | - +-----+---------------------------+ - | m | refresh channel modes | - +-----+---------------------------+ - | t | refresh channel topic | - +-----+---------------------------+ - | w | refresh memberlist | - +-----+---------------------------+ - - Returns: nothing - - Module: irc - -**getchanhost [channel]** - - Returns: user\@host of the specified nickname (the nickname is not included in the returned host). If a channel is not specified, bot will check all of its channels. If the nickname is not on the channel(s), "" is returned. - - Module: irc - -**getchanjoin ** - - Returns: timestamp (unixtime format) of when the specified nickname joined the channel if available, 0 otherwise. Note that after a channel reset this information will be lost, even if previously available. - - Module: irc - -**onchansplit [channel]** - - Returns: 1 if that nick is split from the channel (or any channel if no channel is specified); 0 otherwise - - Module: irc - -**chanlist [flags[&chanflags]]** - - Description: flags are any global flags; the '&' denotes to look for channel specific flags. Examples: - - +--------+--------------------------------+ - | n | (Global Owner) | - +--------+--------------------------------+ - | &n | (Channel Owner) | - +--------+--------------------------------+ - | o&m | (Global Op, Channel Master) | - +--------+--------------------------------+ - - Now you can use even more complex matching of flags, including +&- flags and & or | ('and' or 'or') matching. - - Returns: list of nicknames currently on the bot's channel that have all of the flags specified;. If no flags are given, all of the nicknames are returned. Please note that if you're executing chanlist after a part or sign bind, the gone user will still be listed, so you can check for wasop, isop, etc. - - Module: irc - -**getchanidle ** - - Returns: number of minutes that person has been idle; -1 if the specified user isn't on the channel - - Module: irc - -**getchanmode ** - - Returns: string of the type "+ntik key" for the channel specified - - Module: irc - -**jump [server [[+]port [password]]]** - - Description: jumps to the server specified, or (if none is specified) the next server in the bot's serverlist. If you prefix the port with a plus sign (e.g. +6697), SSL connection will be attempted. - - Returns: nothing - - Module: server - -**pushmode [arg]** - - Description: sends out a channel mode change (ex: pushmode #lame +o goober) through the bot's queuing system. All the mode changes will be sent out at once (combined into one line as much as possible) after the script finishes, or when 'flushmode' is called. - - Returns: nothing - - Module: irc - -**flushmode ** - - Description: forces all previously pushed channel mode changes to be sent to the server, instead of when the script is finished (just for the channel specified) - - Returns: nothing - - Module: irc - -**topic ** - - Returns: string containing the current topic of the specified channel - - Module: irc - -**validchan ** - - Description: checks if the bot has a channel record for the specified channel. Note that this does not necessarily mean that the bot is ON the channel. - - Returns: 1 if the channel exists, 0 if not - - Module: channels - -**isdynamic ** - - Returns: 1 if the channel is a dynamic channel; 0 otherwise - - Module: channels - -**setudef ** - - Description: initializes a user defined channel flag, string or integer setting. You can use it like any other flag/setting. IMPORTANT: Don't forget to reinitialize your flags/settings after a restart, or it'll be lost. - - Returns: nothing - - Module: channels - -**renudef ** - - Description: renames a user defined channel flag, string, or integer setting. - - Returns: nothing - - Module: channels - -**deludef ** - - Description: deletes a user defined channel flag, string, or integer setting. - - Returns: nothing - - Module: channels - -**getudefs [flag/int/str]** - - Returns: a list of user defined channel settings of the given type, or all of them if no type is given. - - Module: channels - -**chansettype ** - - Returns: The type of the setting you specify. The possible types are flag, int, str, pair. A flag type references a channel flag setting that can be set to either + or -. An int type is a channel setting that is set to a number, such as ban-time. A str type is a channel setting that stores a string, such as need-op. A pair type is a setting that holds a value couple, such as the flood settings. - - Module: channels - -DCC Commands ------------- - -**putdcc [-raw]** - - Description: sends text to the idx specified. If -raw is specified, the text will be sent as is, without forced new lines or limits to line length. - - Returns: nothing - - Module: core - -**dccbroadcast ** - - Description: sends a message to everyone on the party line across the botnet, in the form of "\*\*\* " for local users and "\*\*\* (Bot) " for users on other bots - - Returns: nothing - - Module: core - -**dccputchan ** - - Description: sends your message to everyone on a certain channel on the botnet, in a form exactly like dccbroadcast does. Valid channels are 0 through 99999. - - Returns: nothing - - Module: core - -**boot [reason]** - Description: boots a user from the partyline - - Returns: nothing - - Module: core - -**dccsimul ** - - Description: simulates text typed in by the dcc user specified. Note that in v0.9, this only simulated commands; now a command must be preceded by a '.' to be simulated. - - Returns: nothing - - Module: core - -**hand2idx ** - - Returns: the idx (a number greater than or equal to zero) for the user given if the user is on the party line in chat mode (even if she is currently on a channel or in chat off), the file area, or in the control of a script. -1 is returned if no idx is found. If the user is on multiple times, the oldest idx is returned. - - Module: core - -**idx2hand ** - - Returns: handle of the user with the given idx - - Module: core - -**valididx ** - - Returns: 1 if the idx currently exists; 0 otherwise - - Module: core - -**getchan ** - - Returns: the current party line channel for a user on the party line; "0" indicates he's on the group party line, "-1" means he has chat off, and a value from 1 to 99999 is a private channel - - Module: core - -**setchan ** - - Description: sets a party line user's channel. The party line user is not notified that she is now on a new channel. A channel name can be used (provided it exists). - - Returns: nothing - - Module: core - -**console [channel] [console-modes]** - - Description: changes a dcc user's console mode, either to an absolute mode (like "mpj") or just adding/removing flags (like "+pj" or "-moc" or "+mp-c"). The user's console channel view can be changed also (as long as the new channel is a valid channel). - - Returns: a list containing the user's (new) channel view and (new) console modes, or nothing if that user isn't currently on the partyline - - Module: core - -**echo [status]** - - Description: turns a user's echo on or off; the status has to be a 1 or 0 - - Returns: new value of echo for that user (or the current value, if status was omitted) - - Module: core - -**strip [+/-strip-flags]** - - Description: modifies the strip-flags for a user. The supported strip-flags are: - - +------+-------------------------------------------------------------+ - | c | remove all color codes | - +------+-------------------------------------------------------------+ - | b | remove all boldface codes | - +------+-------------------------------------------------------------+ - | r | remove all reverse video codes | - +------+-------------------------------------------------------------+ - | u | remove all underline codes | - +------+-------------------------------------------------------------+ - | a | remove all ANSI codes | - +------+-------------------------------------------------------------+ - | g | remove all ctrl-g (bell) codes | - +------+-------------------------------------------------------------+ - | o | remove all ordinary codes (ctrl+o, terminates bold/color/..)| - +------+-------------------------------------------------------------+ - | i | remove all italics codes | - +------+-------------------------------------------------------------+ - | \* | remove all of the above | - +------+-------------------------------------------------------------+ - - Returns: new strip-flags for the specified user (or the current flags, if strip-flags was omitted) - - Module: core - -**putbot ** - - Description: sends a message across the botnet to another bot. If no script intercepts the message on the other end, the message is ignored. - - Returns: nothing - - Module: core - -**putallbots ** - - Description: sends a message across the botnet to all bots. If no script intercepts the message on the other end, the message is ignored. - - Returns: nothing - - Module: core - -**killdcc ** - - Description: kills a partyline or file area connection - - Returns: nothing - - Module: core - -**bots** - - Returns: list of the bots currently connected to the botnet - - Module: core - -**botlist** - - Returns: a list of bots currently on the botnet. Each item in the list is a sublist with four elements: bot, uplink, version, and sharing status: - - +----------+-----------------------------------------------+ - | bot | the bot's botnetnick | - +----------+-----------------------------------------------+ - | uplink | the bot the bot is connected to | - +----------+-----------------------------------------------+ - | version | it's current numeric version | - +----------+-----------------------------------------------+ - | sharing | a "+" if the bot is a sharebot; "-" otherwise | - +----------+-----------------------------------------------+ - - Module: core - -**islinked ** - - Returns: 1 if the bot is currently linked; 0 otherwise - - Module: core - -**dccused** - - Returns: number of dcc connections currently in use - - Module: core - -**dcclist [type]** - - Returns: a list of active connections, each item in the list is a sublist containing six elements: - { {} }. - - The types are: chat, bot, files, file_receiving, file_sending, file_send_pending, script, socket (these are connections that have not yet been put under 'control'), telnet, and server. The timestamp is in unixtime format. - - Module: core - -**whom ** - - Returns: list of people on the botnet who are on that channel. 0 is the default party line. Each item in the list is a sublist with six elements: nickname, bot, hostname, access flag ('-', '@', '+', or '*'), minutes idle, and away message (blank if the user is not away). If you specify * for channel, every user on the botnet is returned with an extra argument indicating the channel the user is on. - - Module: core - -**getdccidle ** - - Returns: number of seconds the dcc chat/file system/script user has been idle - - Module: core - -**getdccaway ** - - Returns: away message for a dcc chat user (or "" if the user is not set away) - - Module: core - -**setdccaway ** - - Description: sets a party line user's away message and marks them away. If set to "", the user is marked as no longer away. - - Returns: nothing - - Module: core - -**connect <[+]port>** - - Description: makes an outgoing connection attempt and creates a dcc entry for it. A 'control' command should be used immediately after a successful 'connect' so no input is lost. If the port is prefixed with a plus sign, SSL encrypted connection will be attempted. - - Returns: idx of the new connection - - Module: core - -**listen [options] [flag]** - - Description: opens a listening port to accept incoming telnets; type must be one of "bots", "all", "users", "script", or "off". Prefixing the port with a plus sign will make eggdrop accept SSL connections on it. - - listen bots [mask] - - Description: accepts connections from bots only; the optional mask is used to identify permitted bot names. If the mask begins with '@', it is interpreted to be a mask of permitted hosts to accept connections from. - - Returns: port number - - listen users [mask] - - Description: accepts connections from users only (no bots); the optional mask is used to identify permitted nicknames. If the mask begins with '@', it is interpreted to be a mask of permitted hosts to accept connections from. - - Returns: port number - - listen all [mask] - - Description: accepts connections from anyone; the optional mask is used to identify permitted nicknames/botnames. If the mask begins with '@', it is interpreted to be a mask of permitted hosts to accept connections from. - - Returns: port number - - listen script [flag] - - Description: accepts connections which are immediately routed to a proc. The proc is called with one parameter: the idx of the new connection. Flag may currently only be 'pub', which makes the bot allow anyone to connect and not perform an ident lookup. - - Returns: port number - - listen off - - Description: stop listening on a port - - Returns: nothing - - Module: core - -**dccdumpfile ** - - Description: dumps out a file from the text directory to a dcc chat user. The flag matching that's used everywhere else works here, too. - - Returns: nothing - - Module: core - -Notes Module ------------- - -**notes [numberlist]** - - Returns: -1 if no such user, -2 if notefile failure. If a numberlist is not specified, the number of notes stored for the user is returned. Otherwise, a list of sublists containing information about notes stored for the user is returned. Each sublist is in the format of:: - - { } - - Module: notes - -**erasenotes ** - - Description: erases some or all stored notes for a user. Use '-' to erase all notes. - - Returns: -1 if no such user, -2 if notefile failure, 0 if no such note, or number of erased notes. - - Module: notes - -**listnotes ** - - Description: lists existing notes according to the numberlist (ex: "2-4;8;16-") - - Returns: -1 if no such user, -2 if notefile failure, 0 if no such note, list of existing notes. - - Module: notes - -**storenote ** - - Description: stores a note for later reading, notifies idx of any results (use idx -1 for no notify). - - Returns: 0 on success; non-0 on failure - - Module: notes - -Assoc Module ------------- - -**assoc [name]** - - Description: sets the name associated with a botnet channel, if you specify one - - Returns: current name for that channel, if any - - Module: assoc - -**killassoc ** - - Description: removes the name associated with a botnet channel, if any exists. Use 'killassoc &' to kill all assocs. - - Returns: nothing - - Module: assoc - -Compress Module ---------------- - -**compressfile [-level ] [target-file]** -and -**uncompressfile [target-file]** - - Description: compresses or un-compresses files. The level option specifies the compression mode to use when compressing. Available modes are from 0 (minimum CPU usage, minimum compression) all the way up to 9 (maximum CPU usage, maximum compression). If you don't specify the target-file, the src-file will be overwritten. - - Returns: nothing - - Module: compress - -**iscompressed ** - - Description: determines whether is gzip compressed. - - Returns: 1 if it is, 0 if it isn't, and 2 if some kind of error prevented the checks from succeeding. - - Module: compress - -Filesys Module --------------- - -**setpwd ** - - Description: changes the directory of a file system user, in exactly the same way as a 'cd' command would. The directory can be specified relative or absolute. - - Returns: nothing - - Module: filesys - -**getpwd ** - - Returns: the current directory of a file system user - - Module: filesys - -**getfiles ** - - Returns: a list of files in the directory given; the directory is relative to dcc-path - - Module: filesys - -**getdirs ** - - Returns: a list of subdirectories in the directory given; the directory is relative to dcc-path - - Module: filesys - -**dccsend ** - - Description: attempts to start a dcc file transfer to the given nick; the filename must be specified either by full pathname or in relation to the bot's startup directory - - Returns: - - +-------+---------------------------------------------------------------------+ - | 0 | success | - +-------+---------------------------------------------------------------------+ - | 1 | the dcc table is full (too many connections) | - +-------+---------------------------------------------------------------------+ - | 2 | can't open a socket for the transfer | - +-------+---------------------------------------------------------------------+ - | 3 | the file doesn't exist | - +-------+---------------------------------------------------------------------+ - | 4 | the file was queued for later transfer, which means that person has | - | | too many file transfers going right now | - +-------+---------------------------------------------------------------------+ - | 5 | copy-to-tmp is enabled and the file already exists in the temp | - | | directory | - +-------+---------------------------------------------------------------------+ - - Module: transfer - -**filesend [ircnick]** - - Description: like dccsend, except it operates for a current filesystem user, and the filename is assumed to be a relative path from that user's current directory - - Returns: 0 on failure; 1 on success (either an immediate send or a queued send) - - Module: filesys - -**fileresend [ircnick]** - - Description: functions like filesend, only that it sends a DCC RESEND instead of a DCC SEND, which allows people to resume aborted file transfers if their client supports that protocol. ircII/BitchX/etc. support it; mIRC does not. - - Returns: 0 on failure; 1 on success (either an immediate send or a queued send) - - Module: filesys - -**setdesc ** - - Description: sets the description for a file in a file system directory; the directory is relative to dcc-path - - Returns: nothing - - Module: filesys - -**getdesc ** - - Returns: the description for a file in the file system, if one exists - - Module: filesys - -**setowner ** - - Description: changes the owner for a file in the file system; the directory is relative to dcc-path - - Returns: nothing - - Module: filesys - -**getowner ** - - Returns: the owner of a file in the file system - - Module: filesys - -**setlink ** - - Description: creates or changes a linked file (a file that actually exists on another bot); the directory is relative to dcc-path - - Returns: nothing - - Module: filesys - -**getlink ** - - Returns: the link for a linked file, if it exists - - Module: filesys - -**getfileq ** - - Returns: list of files queued by someone; each item in the list will be a sublist with two elements: nickname the file is being sent to and the filename - - Module: transfer - -**getfilesendtime ** - - Returns: the unixtime value from when a file transfer started, or a negative number: - - +-----+------------------------------------------------------+ - | -1 | no matching transfer with the specified idx was found| - +-----+------------------------------------------------------+ - | -2 | the idx matches an entry which is not a file transfer| - +-----+------------------------------------------------------+ - - Module: transfer - -**mkdir [ [channel]]** - - Description: creates a directory in the file system. Only users with the required flags may access it. - - Returns: - - +-----+------------------------------------------------------+ - | 0 | success | - +-----+------------------------------------------------------+ - | 1 | can't create directory | - +-----+------------------------------------------------------+ - | 2 | directory exists but is not a directory | - +-----+------------------------------------------------------+ - | -3 | could not open filedb | - +-----+------------------------------------------------------+ - - Module: filesys - -**rmdir ** - - Description: removes a directory from the file system. - - Returns: 0 on success; 1 on failure - - Module: filesys - -**mv ** - - Description: moves a file from its source to the given destination. The file can also be a mask, such as /incoming/\*, provided the destination is a directory. - - Returns: If the command was successful, the number of files moved will be returned. Otherwise, a negative number will be returned: - - +-----+------------------------------------------------------+ - | -1 | invalid source file | - +-----+------------------------------------------------------+ - | -2 | invalid destination | - +-----+------------------------------------------------------+ - | -3 | destination file exists | - +-----+------------------------------------------------------+ - | -4 | no matches found | - +-----+------------------------------------------------------+ - - Module: filesys - -**cp ** - - Description: copies a file from its source to the given destination. The file can also be a mask, such as /incoming/\*, provided the destination is a directory. - - Returns: If the command was successful, the number of files copied will be returned. Otherwise, a negative number will be returned: - - +-----+------------------------------------------------------+ - | -1 | invalid source file | - +-----+------------------------------------------------------+ - | -2 | invalid destination | - +-----+------------------------------------------------------+ - | -3 | destination file exists | - +-----+------------------------------------------------------+ - | -4 | no matches found | - +-----+------------------------------------------------------+ - - Module: filesys - -**getflags ** - - Returns: the flags required to access a directory - - Module: filesys - -**setflags [ [channel]]** - - Description: sets the flags required to access a directory - - Returns: 0 on success; -1 or -3 on failure - - Module: filesys - -Miscellaneous Commands ----------------------- - -**bind [proc-name]** - - Description: You can use the 'bind' command to attach Tcl procedures to certain events. flags are the flags the user must have to trigger the event (if applicable). proc-name is the name of the Tcl procedure to call for this command (see below for the format of the procedure call). If the proc-name is omitted, no binding is added. Instead, the current binding is returned (if it's stackable, a list of the current bindings is returned). - - Returns: name of the command that was added, or (if proc-name was omitted), a list of the current bindings for this command - - Module: core - -**unbind ** - - Description: removes a previously created bind - - Returns: name of the command that was removed - - Module: core - -**binds [type/mask]** - - Returns: a list of Tcl binds, each item in the list is a sublist of five elements: - { } - - Module: core - -**logfile [ ]** - - Description: creates a new logfile, which will log the modes given for the channel listed. If no logfile is specified, a list of existing logfiles will be returned. "*" indicates all channels. You can also change the modes and channel of an existing logfile with this command. Entering a blank mode and channel ("") makes the bot stop logging there. - - Logfile flags: - - +-----+------------------------------------------------------+ - | b | information about bot linking and userfile sharing | - +-----+------------------------------------------------------+ - | c | commands | - +-----+------------------------------------------------------+ - | d | misc debug information | - +-----+------------------------------------------------------+ - | h | raw share traffic | - +-----+------------------------------------------------------+ - | j | joins, parts, quits, and netsplits on the channel | - +-----+------------------------------------------------------+ - | k | kicks, bans, and mode changes on the channel | - +-----+------------------------------------------------------+ - | m | private msgs, notices and ctcps to the bot | - +-----+------------------------------------------------------+ - | o | misc info, errors, etc (IMPORTANT STUFF) | - +-----+------------------------------------------------------+ - | p | public text on the channel | - +-----+------------------------------------------------------+ - | r | raw incoming server traffic | - +-----+------------------------------------------------------+ - | s | server connects, disconnects, and notices | - +-----+------------------------------------------------------+ - | t | raw botnet traffic | - +-----+------------------------------------------------------+ - | v | raw outgoing server traffic | - +-----+------------------------------------------------------+ - | w | wallops (make sure the bot sets +w in init-server) | - +-----+------------------------------------------------------+ - | x | file transfers and file-area commands | - +-----+------------------------------------------------------+ - - Returns: filename of logfile created, or, if no logfile is specified, a list of logfiles such as: {mco * eggdrop.log} {jp #lame lame.log} - - Module: core - -**maskhost [masktype]** - - Returns: masked hostmask for the string given according to the masktype (the default is 3). - - Available types are: - - +-----+------------------------------------------------------+ - | 0 | \*!user\@host | - +-----+------------------------------------------------------+ - | 1 | \*!*user\@host | - +-----+------------------------------------------------------+ - | 2 | \*!*\@host | - +-----+------------------------------------------------------+ - | 3 | \*!*user\@*.host | - +-----+------------------------------------------------------+ - | 4 | \*!*\@*.host | - +-----+------------------------------------------------------+ - | 5 | nick!user\@host | - +-----+------------------------------------------------------+ - | 6 | nick!*user\@host | - +-----+------------------------------------------------------+ - | 7 | nick!*\@host | - +-----+------------------------------------------------------+ - | 8 | nick!*user\@*.host | - +-----+------------------------------------------------------+ - | 9 | nick!*\@*.host | - +-----+------------------------------------------------------+ - - You can also specify types from 10 to 19 which correspond to types - 0 to 9, but instead of using a * wildcard to replace portions of the - host, only numbers in hostnames are replaced with the '?' wildcard. - Same is valid for types 20-29, but instead of '?', the '*' wildcard - will be used. - - Module: core - -**timer [count]** - - Description: executes the given Tcl command after a certain number of minutes have passed. If count is specified, the command will be executed count times with the given interval in between. If you specify a count of 0, the timer will repeat until it's removed with killtimer or until the bot is restarted. - - Returns: a timerID - - Module: core - -**timer [count]** - - Description: executes the given Tcl command after a certain number of seconds have passed. If count is specified, the command will be executed count times with the given interval in between. If you specify a count of 0, the utimer will repeat until it's removed with killutimer or until the bot is restarted. - - Returns: a timerID - - Module: core - -**timers** - - Returns: a list of active minutely timers. Each entry in the list contains the number of minutes left till activation, the command that will be executed, the timerID, and the remaining number of repeats. - - Module: core - -**utimers** - - Returns: a list of active secondly timers. Each entry in the list contains the number of minutes left till activation, the command that will be executed, the timerID, and the remaining number of repeats. - - Module: core - -**killtimer ** - - Description: removes a minutely timer from the list - - Returns: nothing - - Module: core - -**killutimer ** - - Description: removes a secondly timer from the list - - Returns: nothing - - Module: core - -**unixtime** - - Returns: a long integer which represents the number of seconds that have passed since 00:00 Jan 1, 1970 (GMT). - - Module: core - -**duration ** - - Returns: the number of seconds converted into years, weeks, days, hours, minutes, and seconds. 804600 seconds is turned into 1 week 2 days 7 hours 30 minutes. - - Module: core - -**strftime [time]** - - Returns: a formatted string of time using standard strftime format. If time is specified, the value of the specified time is used. Otherwise, the current time is used. - - Module: core - -**ctime ** - - Returns: a formatted date/time string based on the current locale settings from the unixtime string given; for example "Fri Aug 3 11:34:55 1973" - - Module: core - -**myip** - - Returns: a long number representing the bot's IP address, as it might appear in (for example) a DCC request - - Module: core - -**rand ** - - Returns: a random integer between 0 and limit-1 - - Module: core - -**control ** - - Description: removes an idx from the party line and sends all future input to the Tcl command given. The command will be called with two parameters: the idx and the input text. The command should return 0 to indicate success and 1 to indicate that it relinquishes control of the user back to the bot. If the input text is blank (""), it indicates that the connection has been dropped. Also, if the input text is blank, never call killdcc on it, as it will fail with "invalid idx". - - Returns: nothing - - Module: core - -**sendnote ** - - Description: simulates what happens when one user sends a note to another - - Returns: - - +-----+----------------------------------------------------------+ - | 0 | the send failed | - +-----+----------------------------------------------------------+ - | 1 | the note was delivered locally or sent to another bot | - +-----+----------------------------------------------------------+ - | 2 | the note was stored locally | - +-----+----------------------------------------------------------+ - | 3 | the user's notebox is too full to store a note | - +-----+----------------------------------------------------------+ - | 4 | a Tcl binding caught the note | - +-----+----------------------------------------------------------+ - | 5 | the note was stored because the user is away | - +-----+----------------------------------------------------------+ - - Module: core - -**link [via-bot] ** - - Description: attempts to link to another bot directly. If you specify a via-bot, it tells the via-bot to attempt the link. - - Returns: 1 if the link will be attempted; 0 otherwise - - Module: core - -**unlink ** - - Description: attempts to unlink a bot from the botnet - - Returns: 1 on success; 0 otherwise - - Module: core - -**encrypt ** - - Returns: encrypted string (using the currently loaded encryption module), encoded into ASCII using base-64 - - Module: encryption - -**decrypt ** - - Returns: decrypted string (using the currently loaded encryption module) - - Module: encryption - -**encpass ** - - Returns: encrypted string (using the currently loaded encryption module) - - Module: encryption - -**die [reason]** - - Description: causes the bot to log a fatal error and exit completely. If no reason is given, "EXIT" is used. - - Returns: none - - Module: core - -**unames** - - Returns: the current operating system the bot is using - - Module: core - -**dnslookup [[arg1] [arg2] ... [argN]]** - - Description: This issues an asynchronous dns lookup request. The command will block if dns module is not loaded; otherwise it will either return immediately or immediately call the specified proc (e.g. if the lookup is already cached). - - As soon as the request completes, the specified proc will be called as follows: - - [[arg1] [arg2] ... [argN]] - - status is 1 if the lookup was successful and 0 if it wasn't. All additional parameters (called arg1, arg2 and argN above) get appended to the proc's other parameters. - - Returns: nothing - - Module: core - -**md5 ** - - Returns: the 128 bit MD5 message-digest of the specified string - - Module: core - -**callevent ** - - Description: triggers the evnt bind manually for a certain event. You can call arbitrary events here, even ones that are not pre-defined by Eggdrop. For example: callevent rehash, or callevent myownevent123. - - Returns: nothing - - Module: core - -**traffic** - - Returns: a list of sublists containing information about the bot's traffic usage in bytes. Each sublist contains five elements: type, in-traffic today, in-traffic total, out-traffic today, out-traffic total (in that order). - - Module: core - -**modules** - Returns: a list of sublists containing information about the bot's currently loaded modules. Each sublist contains three elements: module, version, and dependencies. Each dependency is also a sublist containing the module name and version. - - Module: core - -**loadmodule ** - - Description: attempts to load the specified module. - - Returns: "Already loaded." if the module is already loaded, "" if successful, or the reason the module couldn't be loaded. - - Module: core - -**unloadmodule ** - - Description: attempts to unload the specified module. - - Returns: "No such module" if the module is not loaded, "" otherwise. - - Module: core - -**loadhelp ** - - Description: attempts to load the specified help file from the help/ directory. - - Returns: nothing - - Module: core - -**unloadhelp ** - - Description: attempts to unload the specified help file. - - Returns: nothing - - Module: core - -**reloadhelp** - - Description: reloads the bot's help files. - - Returns: nothing - - Module: core - -**restart** - - Description: rehashes the bot, kills all timers, reloads all modules, and reconnects the bot to the next server in its list. - - Returns: nothing - - Module: core - -**rehash** - - Description: rehashes the bot - - Returns: nothing - - Module: core - -**stripcodes ** - - Description: strips specified control characters from the string given. strip-flags can be any combination of the following: - - +-----+-------------------------------------------------------------+ - | c | remove all color codes | - +-----+-------------------------------------------------------------+ - | b | remove all boldface codes | - +-----+-------------------------------------------------------------+ - | r | remove all reverse video codes | - +-----+-------------------------------------------------------------+ - | u | remove all underline codes | - +-----+-------------------------------------------------------------+ - | a | remove all ANSI codes | - +-----+-------------------------------------------------------------+ - | g | remove all ctrl-g (bell) codes | - +-----+-------------------------------------------------------------+ - | o | remove all ordinary codes (ctrl+o, terminates bold/color/..)| - +-----+-------------------------------------------------------------+ - | i | remove all italics codes | - +-----+-------------------------------------------------------------+ - | \* | remove all of the above | - +-----+-------------------------------------------------------------+ - - Returns: the stripped string. - - Module: core - -**matchaddr
** - - Description: checks if the address matches the hostmask given. The address should be in the form nick!user\@host. - - Returns: 1 if the address matches the hostmask, 0 otherwise. - - Module: core - -**matchcidr
** - - Description: performs a cidr match on the specified ip addresses. IPv6 is supported, if enabled at compile time. - - Example: matchcidr 192.168.0.0 192.168.1.17 16 - - Returns: 1 if the address matches the block prefix, 0 otherwise. - - Module: core - -**matchstr ** - - Description: checks if pattern matches string. Only two wildcards are supported: '*' and '?'. Matching is case-insensitive. This command is intended as a simplified alternative to Tcl's string match. - - Returns: 1 if the pattern matches the string, 0 if it doesn't. - - Module: core - -**rfcequal ** - - Description: Checks if two strings are equal. Case is ignored, and this uses RFC1459 matching {}|~ == []\^, depending on the rfc_compliant setting. - - Returns: 1 if equal, 0 if not. - - Module: core - -**status [type]** - - Description: provides eggdrop status information similar to the .status command in partyline. The available types of information are: - - +------+---------------------------------------------------------------------+ - | cpu | total cpu time spent by eggdrop | - +------+---------------------------------------------------------------------+ - | mem | dynamically allocated memory excluding the Tcl interpreter | - +------+---------------------------------------------------------------------+ - | cache| user entries cache hits (in %) | - +------+---------------------------------------------------------------------+ - | ipv6 | shows whether IPv6 support was compiled in | - +------+---------------------------------------------------------------------+ - - Returns: the requested information type or all information if type isn't specified. The format is a flat list of name-value pairs. - - Module: core - -**istls ** - - Description: checks if a connection is encrypted or cleartext. This command is available on TLS-enabled bots only. - - Returns: 1 if the idx is a TLS connection, 0 if it's plaintext. - - Module: core - -**starttls ** - - Description: establishes a secure (using TLS) connection over idx. The TLS connection should be first negotiated over the plaintext link, or using other means. Both parties must switch to TLS simultaneously. This command is available on TLS-enabled bots only. - - Returns: nothing - - Module: core - -**tlsstatus ** - - Description: provides information about an established TLS connection This includes certificate and cipher information as well as protocol version. This command is available on TLS-enabled bots only. - - Returns: a flat list of name-value pairs - - Module: core - -Global Variables ----------------- - -NOTE: All config file variables are also global. - -**botnick** - - Value: the current nickname the bot is using (for example: "Valis", "Valis0", etc.) - - Module: server - -**botname** - - Value: the current nick!user\@host that the server sees (for example: "Valis!valis\@crappy.com") - - Module: server - -**server** - - Value: the current server's real name (what server calls itself) and port bot is connected to (for example: "irc.math.ufl.edu:6667") Note that this does not necessarily match the servers internet address. - - Module: server - -**serveraddress** - Value: the current server's internet address (hostname or IP) and port bot is connected to. This will correspond to the entry in server list (for example: "eu.undernet.org:6667"). Note that this does not necessarily match the name server calls itself. - - Module: server - -**version** - Value: current bot version "1.1.2+pl1 1010201 pl1"; first item is the text version, second item is a numerical version, and any following items are the names of patches that have been added - - Module: core - -**numversion** - Value: the current numeric bot version (for example: "1010201"). Numerical version is in the format of "MNNRRPP", where: - - +------+---------------------------------------+ - | M | major release number | - +------+---------------------------------------+ - | NN | minor release number | - +------+---------------------------------------+ - | RR | sub-release number | - +------+---------------------------------------+ - | PP | patch level for that sub-release | - +------+---------------------------------------+ - - Module: core - -**uptime** - Value: the unixtime value for when the bot was started - - Module: core - -**server-online** - Value: the unixtime value for when the bot connected to its current server - - Module: server - -**lastbind** - Value: the last command binding which was triggered. This allows you to identify which command triggered a Tcl proc. - - Module: core - -**isjuped** - Value: 1 if bot's nick is juped(437); 0 otherwise - - Module: server - -**handlen** - Value: the value of the HANDLEN define in src/eggdrop.h - - Module: core - -**config** - Value: the filename of the config file Eggdrop is currently using - - Module: core - -Binds ------ - -You can use the 'bind' command to attach Tcl procedures to certain events. -For example, you can write a Tcl procedure that gets called every time a -user says "danger" on the channel. - -Some bind types are marked as "stackable". That means that you can bind -multiple commands to the same trigger. Normally, for example, a bind such -as 'bind msg - stop msg:stop' (which makes a msg-command "stop" call the -Tcl proc "msg:stop") will overwrite any previous binding you had for the -msg command "stop". With stackable bindings, like 'msgm' for example, -you can bind the same command to multiple procs. When the bind is triggered, -ALL of the Tcl procs that are bound to it will be called. - -To remove a bind, use the 'unbind' command. For example, to remove the -bind for the "stop" msg command, use 'unbind msg - stop msg:stop'. - -^^^^^^^^^^ -Bind Types -^^^^^^^^^^ - -The following is a list of bind types and how they work. Below each bind type is the format of the bind command, the list of arguments sent to the Tcl proc, and an explanation. - -(1) MSG - - bind msg - procname - - Description: used for /msg commands. The first word of the user's msg is the command, and everything else becomes the text argument. - - Module: server - -(2) DCC - - bind dcc - procname - - Description: used for partyline commands; the command is the first word and everything else becomes the text argument. The idx is valid until the user disconnects. After that, it may be reused, so be careful about storing an idx for long periods of time. - - Module: core - -(3) FIL - - bind fil - procname - - Description: the same as DCC, except this is triggered if the user is in the file area instead of the party line - - Module: filesys - -(4) PUB - - bind pub - procname - - Description: used for commands given on a channel. The first word becomes the command and everything else is the text argument. - - Module: irc - -(5) MSGM (stackable) - - bind msgm - procname - - Description: matches the entire line of text from a /msg with the mask. This is useful for binding Tcl procs to words or phrases spoken anywhere within a line of text. If the proc returns 1, Eggdrop will not log the message that triggered this bind. MSGM binds are processed before MSG binds. If the exclusive-binds setting is enabled, MSG binds will not be triggered by text that a MSGM bind has already handled. - - Module: server - -(6) PUBM (stackable) - - bind pubm - procname - - Description: just like MSGM, except it's triggered by things said on a channel instead of things /msg'd to the bot. The mask is matched against the channel name followed by the text and can contain wildcards. If the proc returns 1, Eggdrop will not log the message that triggered this bind. PUBM binds are processed before PUB binds. If the exclusive-binds setting is enabled, PUB binds will not be triggered by text that a PUBM bind has already handled. - Examples: - bind pubm * "#eggdrop Hello*" myProc - Listens on #eggdrop for any line that begins with "Hello" - bind pubm * "% Hello*" myProc - Listens on any channel for any line that begins with "Hello" - bind pubm * "% !command" myProc - Listens on any channel for a line that ONLY contains "!command" - - - Module: irc - -(7) NOTC (stackable) - - bind notc - procname - - Description: dest will be a nickname (the bot's nickname, obviously) or a channel name. mask is matched against the entire text of the notice and can contain wildcards. It is considered a breach of protocol to respond to a /notice on IRC, so this is intended for internal use (logging, etc.) only. Note that server notices do not trigger the NOTC bind. If the proc returns 1, Eggdrop will not log the message that triggered this bind. - - New Tcl procs should be declared as:: - - proc notcproc {nick uhost hand text {dest ""}} { - global botnick; if {$dest == ""} {set dest $botnick} - ... - } - - for compatibility. - - Module: server - -(8) JOIN (stackable) - - bind join - procname - - Description: triggered by someone joining the channel. The mask in the bind is matched against "#channel nick!user\@host" and can contain wildcards. - - Module: irc - -(9) PART (stackable) - - bind part - procname - - Description: triggered by someone leaving the channel. The mask is matched against "#channel nick!user\@host" and can contain wildcards. If no part message is specified, msg will be set to "". - - New Tcl procs should be declared as:: - - proc partproc {nick uhost hand chan {msg ""}} { ... } - - for compatibility. - - Module: irc - -(10) SIGN (stackable) - - bind sign - procname - - Description: triggered by a signoff, or possibly by someone who got netsplit and never returned. The signoff message is the last argument to the proc. Wildcards can be used in the mask, which is matched against '#channel nick!user\@host'. - - Module: irc - -(11) TOPC (stackable) - - bind topc - procname - - Description: triggered by a topic change. mask can contain wildcards and is matched against '#channel '. - - Module: irc - -(12) KICK (stackable) - - bind kick - procname - - Description: triggered when someone is kicked off the channel. The mask is matched against '#channel target reason' where the target is the nickname of the person who got kicked (can contain wildcards). The proc is called with the nick, user\@host, and handle of the kicker, plus the channel, the nickname of the person who was kicked, and the reason. - - - Module: irc - -(13) NICK (stackable) - - bind nick - procname - - Description: triggered when someone changes nicknames. The mask is matched against '#channel newnick' and can contain wildcards. Channel is "*" if the user isn't on a channel (usually the bot not yet in a channel). - - Module: irc - -(14) MODE (stackable) - - bind mode - procname - - Description: mode changes are broken down into their component parts before being sent here, so the will always be a single mode, such as "+m" or "-o". target will show the argument of the mode change (for o/v/b/e/I) or "" if the set mode does not take an argument. The bot's automatic response to a mode change will happen AFTER all matching Tcl procs are called. The mask will be matched against '#channel +/-modes' and can contain wildcards. - - If it is a server mode, nick will be "", user\@host is the server name, and handle is \*. - - Note that "target" was added in 1.3.17 and that this will break Tcl scripts that were written for pre-1.3.17 Eggdrop that use the mode binding. Also, due to a typo, mode binds were broken completely in 1.3.17 but were fixed in 1.3.18. Mode bindings are not triggered at all in 1.3.17. - - One easy example (from guppy) of how to support the "target" parameter in 1.3.18 and later and still remain compatible with older Eggdrop versions is: - - Old script looks as follows:: - - bind mode - * mode_proc - proc mode_proc {nick uhost hand chan mode} { ... } - - To make it work with 1.3.18+ and stay compatible with older bots, do:: - - bind mode - * mode_proc_fix - proc mode_proc_fix {nick uhost hand chan mode {target ""}} { - if {$target != ""} {append mode " $target"} - mode_proc $nick $uhost $hand $chan $mode - } - proc mode_proc {nick uhost hand chan mode} { ... } - - Module: irc - -(15) CTCP (stackable) - - bind ctcp - procname - - Description: dest will be a nickname (the bot's nickname, obviously) or channel name. keyword is the ctcp command (which can contain wildcards), and text may be empty. If the proc returns 0, the bot will attempt its own processing of the ctcp command. - - Module: server - -(16) CTCR (stackable) - - bind ctcr - procname - - Description: just like ctcp, but this is triggered for a ctcp-reply (ctcp embedded in a notice instead of a privmsg) - - Module: server - -(17) RAW (stackable) - - bind raw - procname - - Description: previous versions of Eggdrop required a special compile option to enable this binding, but it's now standard. The keyword is either a numeric, like "368", or a keyword, such as "PRIVMSG". "from" will be the server name or the source user (depending on the keyword); flags are ignored. The order of the arguments is identical to the order that the IRC server sends to the bot. The pre-processing only splits it apart enough to determine the keyword. If the proc returns 1, Eggdrop will not process the line any further (this could cause unexpected behavior in some cases). - - Module: server - -(18) BOT - - bind bot - procname - - Description: triggered by a message coming from another bot in the botnet. The first word is the command and the rest becomes the text argument; flags are ignored. - - Module: core - -(19) CHON (stackable) - - bind chon - procname - - Description: when someone first enters the party-line area of the bot via dcc chat or telnet, this is triggered before they are connected to a chat channel (so, yes, you can change the channel in a 'chon' proc). mask is matched against the handle and supports wildcards. This is NOT triggered when someone returns from the file area, etc. - - Module: core - -(20) CHOF (stackable) - - bind chof - procname - - Description: triggered when someone leaves the party line to disconnect from the bot. mask is matched against the handle and can contain wildcards. Note that the connection may have already been dropped by the user, so don't send output to the idx. - - Module: core - -(21) SENT (stackable) - - bind sent - procname - - Description: after a user has successfully downloaded a file from the bot, this binding is triggered. mask is matched against the handle of the user that initiated the transfer and supports wildcards. nick is the actual recipient (on IRC) of the file. The path is relative to the dcc directory (unless the file transfer was started by a script call to 'dccsend', in which case the path is the exact path given in the call to 'dccsend'). - - Module: transfer - -(22) RCVD (stackable) - - bind rcvd - procname - - Description: triggered after a user uploads a file successfully. mask is matched against the user's handle. nick is the IRC nickname that the file transfer originated from. The path is where the file ended up, relative to the dcc directory (usually this is your incoming dir). - - Module: transfer - -(23) CHAT (stackable) - - bind chat - procname - - Description: when a user says something on the botnet, it invokes this binding. Flags are ignored; handle could be a user on this bot ("DronePup") or on another bot ("Eden\@Wilde") and therefore you can't rely on a local user record. The mask is checked against the entire line of text and supports wildcards. - - NOTE: If a BOT says something on the botnet, the BCST bind is invoked instead. - - Module: core - -(24) LINK (stackable) - - bind link - procname - - Description: triggered when a bot links into the botnet. botname is the botnetnick of the bot that just linked in; via is the bot it linked through. The mask is checked against the botnetnick of the bot that linked and supports wildcards. flags are ignored. - - Module: core - -(25) DISC (stackable) - - bind disc - procname - - Description: triggered when a bot disconnects from the botnet for whatever reason. Just like the link bind, flags are ignored; mask is matched against the botnetnick of the bot that unlinked. Wildcards are supported in mask. - - Module: core - -(26) SPLT (stackable) - - bind splt - procname - - Description: triggered when someone gets netsplit on the channel. Be aware that this may be a false alarm (it's easy to fake a netsplit signoff message on some networks); mask may contain wildcards and is matched against '#channel nick!user\@host'. Anyone who is SPLT will trigger a REJN or SIGN within the next wait-split (defined in the config file) seconds. - - Module: irc - -(27) REJN (stackable) - - bind rejn - procname - - Description: someone who was split has rejoined. mask can contain wildcards, and is matched against '#channel nick!user\@host'. - - Module: irc - -(28) FILT (stackable) - - bind filt - procname - - Description: party line and file system users have their text sent through filt before being processed. If the proc returns a blank string, the text is considered parsed. Otherwise, the bot will use the text returned from the proc and continue parsing that - - Module: core - -(29) NEED (stackable) - - bind need - procname - - Description: this bind is triggered on certain events, like when the bot needs operator status or the key for a channel. The types are: op, unban, invite, limit, and key; the mask is matched against '#channel type' and can contain wildcards. flags are ignored. - - Example:: - - bind need - "% op" needop < handles only need op - bind need - "*" needall < handles all needs - - Module: irc - -(30) FLUD (stackable) - - bind flud - procname - - Description: any floods detected through the flood control settings (like 'flood-ctcp') are sent here before processing. If the proc returns 1, no further action is taken on the flood; if the proc returns 0, the bot will do its normal "punishment" for the flood. The flood types are: pub, msg, join, or ctcp (and can be masked to "*" for the bind); flags are ignored. - - Module: server - -(31) NOTE (stackable) - - bind note - procname - - Description: incoming notes (either from the party line, someone on IRC, or someone on another bot on the botnet) are checked against these binds before being processed. The mask is matched against the receiving handle and supports wildcards. If the proc returns 1, Eggdrop will not process the note any further. Flags are ignored. - - Module: core - -(32) ACT (stackable) - - bind act - procname - - Description: when someone does an action on the botnet, it invokes this binding. flags are ignored; the mask is matched against the text of the action and can support wildcards. - - Module: core - -(33) WALL (stackable) - - bind wall - procname - - Description: when the bot receives a wallops, it invokes this binding. flags are ignored; the mask is matched against the text of the wallops msg. Note that RFC shows the server name as a source of the message, whereas many IRCds send the nick!user\@host of the actual sender, thus, Eggdrop will not parse it at all, but simply pass it to bind in its original form. If the proc returns 1, Eggdrop will not log the message that triggered this bind. - - Module: server - -(34) BCST (stackable) - - bind bcst - procname - - Description: when a bot broadcasts something on the botnet (see 'dccbroadcast' above), it invokes this binding. flags are ignored; the mask is matched against the message text and can contain wildcards. 'channel' argument will always be '-1' since broadcasts are not directed to any partyline channel. - - It is also invoked when a BOT (not a person, as with the CHAT bind) 'says' something on a channel. In this case, the 'channel' argument will be a valid channel, and not '-1'. - - Module: core - -(35) CHJN (stackable) - - bind chjn - procname - - Description: when someone joins a botnet channel, it invokes this binding. The mask is matched against the channel and can contain wildcards. flag is one of: * (owner), + (master), @ (op), or % (botnet master). Flags are ignored. - - Module: core - -(36) CHPT (stackable) - - bind chpt - procname - - Description: when someone parts a botnet channel, it invokes this binding. The mask is matched against the channel and can contain wildcards. Flags are ignored. - - Module: core - -(37) TIME (stackable) - - bind time - procname - - Description: allows you to schedule procedure calls at certain times. mask matches 5 space separated integers of the form: "minute hour day month year". The month var starts at 00 (Jan) and ends at 11 (Dec). Minute, hour, day, month have a zero padding so they are exactly two characters long; year is zero characters. Flags are ignored. - - Module: core - -(38) AWAY (stackable) - - bind away - procname - - Description: triggers when a user goes away or comes back on the botnet. text is the reason than has been specified (text is "" when returning). mask is matched against the botnet-nick of the bot the user is connected to and supports wildcards. flags are ignored. - - Module: core - -(39) LOAD (stackable) - - bind load - proc-name - - Description: triggers when a module is loaded. mask is matched against the name of the loaded module and supports wildcards; flags are ignored. - - Module: core - -(40) UNLD (stackable) - - bind unld - procname - - Description: triggers when a module is unloaded. mask is matched against the name of the unloaded module and supports wildcards; - flags are ignored. - - Module: core - -(41) NKCH (stackable) - - bind nkch - procname - - Description: triggered whenever a local user's handle is changed (in the userfile). mask is matched against the user's old handle and can contain wildcards; flags are ignored. - - Module: core - -(42) EVNT (stackable) - - bind evnt - procname - - Description: triggered whenever one of these events happen. flags are ignored. Pre-defined events triggered by Eggdrop are:: - - sighup - called on a kill -HUP - sigterm - called on a kill -TERM - sigill - called on a kill -ILL - sigquit - called on a kill -QUIT - save - called when the userfile is saved - rehash - called just after a rehash - prerehash - called just before a rehash - prerestart - called just before a restart - logfile - called when the logs are switched daily - loaded - called when the bot is done loading - userfile-loaded - called after userfile has been loaded - connect-server - called just before we connect to an IRC server - preinit-server - called immediately when we connect to the server - init-server - called when we actually get on our IRC server - disconnect-server - called when we disconnect from our IRC server - fail-server - called when an IRC server fails to respond - - Note that Tcl scripts can trigger arbitrary events, including ones that are not pre-defined or used by Eggdrop. - - Module: core - -(43) LOST (stackable) - - bind lost - proc-name - - Description: triggered when a DCC SEND transfer gets lost, such as when the connection is terminated before all data was successfully sent/received. This is typically caused by a user abort. - - Module: transfer - -(44) TOUT (stackable) - - bind tout - procname - - Description: triggered when a DCC SEND transfer times out. This may either happen because the dcc connection was not accepted or because the data transfer stalled for some reason. - - Module: transfer - -(45) OUT (stackable) - - bind out - procname - - Description: triggered whenever output is sent to the server. Normally the event will occur twice for each line sent: once before entering a server queue and once after the message is actually sent. This allows for more flexible logging of server output and introduces the ability to cancel the message. Mask is matched against "queue status", where status is either 'queued' or 'sent'. Queues are: mode, server, help, noqueue. noqueue is only used by the putnow tcl command. - - Module: server - -(46) CRON (stackable) - - bind cron - proc-name - - Description: similar to bind TIME, but the mask is evaluated as a cron expression, e.g. "16/2 */2 5-15 7,8,9 4". It can contain up to five fields: minute, hour, day, month, weekday; delimited by whitespace. Week days are represented as 0-6, where Sunday can be either 0 or 7. Symbolic names are not supported. The bind will be triggered if the mask matches all of the fields, except that if both day and weekday are not '*', only one of them is required to match. If any number of fields are omitted at the end, the match will proceed as if they were '*'. All cron operators are supported. Please refer to the crontab manual for their meanings. Flags are ignored. - - Module: core - -(47) LOG (stackable) - - bind log - proc-name - - Description: triggered whenever a message is sent to a log. The mask is matched against "channel text". The level argument to the proc will contain the level(s) the message is sent to, or '*' if the message is sent to all log levels at once. If the message wasn't sent to a specific channel, channel will be set to '*'. - - Module: core - -(48) TLS (stackable) - - bind tls - procname - - Description: triggered for tcp connections when a ssl handshake has completed and the connection is secured. The mask is matched against the idx of the connection. - - Module: core - -(49) DIE (stackable) - - bind die - procname - - Description: triggered when eggdrop is about to die. The mask is matched against the shutdown reason. The bind won't be triggered if the bot crashes or is being terminated by SIGKILL. - - Module: core - -^^^^^^^^^^^^^ -Return Values -^^^^^^^^^^^^^ - -Several bindings pay attention to the value you return from the proc(using 'return '). Usually, they expect a 0 or 1, and returning an empty return is interpreted as a 0. Be aware if you omit the return statement, the result of the last Tcl command executed will be returned by the proc. This will not likely produce the results you intended (this is a "feature" of Tcl). - -Here's a list of the bindings that use the return value from procs they trigger: - -(1) MSG Return 1 to make Eggdrop log the command as:: - - (nick!user@host) !handle! command - -(2) DCC Return 1 to make Eggdrop log the command as:: - - #handle# command - -(3) FIL Return 1 to make Eggdrop log the command as:: - - #handle# files: command - -(4) PUB Return 1 to make Eggdrop log the command as:: - - <> !handle! command - -(5) CTCP Return 1 to ask the bot not to process the CTCP command on its own. Otherwise, it would send its own response to the CTCP (possibly an error message if it doesn't know how to deal with it). - -(6) FILT Return "" to indicate the text has been processed, and the bot should just ignore it. Otherwise, it will treat the text like any other. - -(7) FLUD Return 1 to ask the bot not to take action on the flood. Otherwise it will do its normal punishment. - -(8) RAW Return 1 to ask the bot not to process the server text. This can affect the bot's performance by causing it to miss things that it would normally act on -- you have been warned. - -(9) CHON Return 1 to ask the bot not to process the partyline join event. - -(10) CHOF Return 1 to ask the bot not to process the partyline part event. - -(11) WALL Return 1 to make Eggdrop not log the message that triggered this bind. - -(12) NOTE Return 1 to make Eggdrop not process the note any further. This includes stacked note bindings that would be processed after this one, as well as the built-in eggdrop note handling routines. - -(13) MSGM Return 1 to make Eggdrop not log the message that triggered this bind. - -(14) PUBM Return 1 to make Eggdrop not log the message that triggered this bind. - -(15) NOTC Return 1 to make Eggdrop not log the message that triggered this bind. - -(16) OUT Return 1 to make Eggdrop drop the message instead of sending it. Only meaningful for messages with status "queued". - -(17) EVNT Return 1 to make Eggdrop not to take the default action for the event. Used for signal type events, ignored for others. - -(18) TLS Return 1 to disable verbose ssl information for the handshake. - -Control Procedures ------------------- - -Using the 'control' command, you can put a DCC connection (or outgoing -TCP connection) in control of a script. All text received from the -connection is sent to the proc you specify. All outgoing text should -be sent with 'putdcc'. - -The control procedure is called with these parameters:: - - procname - -This allows you to use the same proc for several connections. The -idx will stay the same until the connection is dropped. After that, -it will probably get reused for a later connection. - -To indicate that the connection has closed, your control procedure -will be called with blank text (the input-text will be ""). This -is the only time it will ever be called with "" as the text, and it -is the last time your proc will be called for that connection. Don't -call killdcc on the idx when text is blank, it will always fail with -"invalid idx". - -If you want to hand control of your connection back to Eggdrop, your -proc should return 1. Otherwise, return 0 to retain control. - -TCP Connections ---------------- - -Eggdrop allows you to make two types of TCP ("telnet") connections: -outgoing and incoming. For an outgoing connection, you specify the -remote host and port to connect to. For an incoming connection, you -specify a port to listen on. - -All of the connections are *event driven*. This means that the bot will -trigger your procs when something happens on the connection, and your -proc is expected to return as soon as possible. Waiting in a proc for -more input is a no-no. - -To initiate an outgoing connection, use:: - - set idx [connect <[+]port>] - -For SSL connections, prefix the port with a plus sign. - -$idx now contains a new DCC entry for the outgoing connection. - -All connections use non-blocking (commonly called "asynchronous", -which is a misnomer) I/O. Without going into a big song and dance -about asynchronous I/O, what this means to you is: - - * assume the connection succeeded immediately - * if the connection failed, an EOF will arrive for that idx - -The only time a 'connect' will return an error is if you give it a -hostname that can't be resolved (this is considered a "DNS error"). -Otherwise, it will appear to have succeeded. If the connection failed, -you will immediately get an EOF. - -Right after doing a 'connect' call, you should set up a 'control' for -the new idx (see the section above). From then on, the connection will -act just like a normal DCC connection that has been put under the control -of a script. If you ever return "1" from the control proc (indicating -that you want control to return to Eggdrop), the bot will just close the -connection and dispose of it. Other commands that work on normal DCC -connections, like 'killdcc' and 'putdcc', will work on this idx, too. -The 'killdcc' command will fail with "invalid idx" if you attempt to use -it on a closed socket. - -To create a listen port, use:: - - listen <[+]port> script - -By default, a listen port will allow both plaintext and SSL connections. -To restrict a port to allow only SSL connections, prefix the port with a -plus sign. - -Procs should be declared as:: - - - -For example:: - - listen 6687 script listen:grab - - proc listen:grab {newidx} { - control $newidx listen:control - } - -When a new connection arrives in port 6687, Eggdrop will create a new idx for the connection. That idx is sent to 'listen:grab'. The proc immediately puts this idx under control. Once 'listen:grab' has been called, the idx behaves exactly like an outgoing connection would. - -Secure connection can be also established after a connection is active. You can connect/listen normally and switch later using the 'starttls' command. Your script should first inform the other side of the connection that it wants to switch to SSL. How to do this is application specific. - -The best way to learn how to use these commands is to find a script that uses them and follow it carefully. However, hopefully this has given you a good start. - -Match Characters ----------------- - -Many of the bindings allow match characters in the arguments. Here -are the four special characters: - -+-----+--------------------------------------------------------------------------+ -| ? | matches any single character | -+-----+--------------------------------------------------------------------------+ -| \* | matches 0 or more characters of any type | -+-----+--------------------------------------------------------------------------+ -| % | matches 0 or more non-space characters (can be used to match a single | -| | word) (This character only works in binds, not in regular matching) | -+-----+--------------------------------------------------------------------------+ -| ~ | matches 1 or more space characters (can be used for whitespace between | -| | words) (This char only works in binds, not in regluar matching) | -+-----+--------------------------------------------------------------------------+ - - Copyright (C) 1999 - 2016 Eggheads Development Team diff --git a/doc/html/_sources/toc_installAndSetup.txt b/doc/html/_sources/toc_installAndSetup.txt deleted file mode 100644 index 6b3d4b776..000000000 --- a/doc/html/_sources/toc_installAndSetup.txt +++ /dev/null @@ -1,15 +0,0 @@ -====================== -Installation and Setup -====================== - ------- -README ------- - --------------------------- -Frequently Asked Questions --------------------------- - ---------------------- -Eggdrop Compile Guide ---------------------- diff --git a/doc/html/appendices/first-script.html b/doc/html/appendices/first-script.html index 83b55e8c3..877d4b993 100644 --- a/doc/html/appendices/first-script.html +++ b/doc/html/appendices/first-script.html @@ -219,7 +219,7 @@

Search

diff --git a/doc/html/appendices/index.html b/doc/html/appendices/index.html index 4a6c46a00..dfed7020c 100644 --- a/doc/html/appendices/index.html +++ b/doc/html/appendices/index.html @@ -144,7 +144,7 @@

Search

diff --git a/doc/html/appendices/known-probs.html b/doc/html/appendices/known-probs.html index c1826309e..91a2bcc14 100644 --- a/doc/html/appendices/known-probs.html +++ b/doc/html/appendices/known-probs.html @@ -162,7 +162,7 @@

Search

diff --git a/doc/html/appendices/text-sub.html b/doc/html/appendices/text-sub.html index 43e8fb2d8..56ebaed9c 100644 --- a/doc/html/appendices/text-sub.html +++ b/doc/html/appendices/text-sub.html @@ -243,7 +243,7 @@

Search

diff --git a/doc/html/appendices/tricks.html b/doc/html/appendices/tricks.html index 2090e5a46..2b640170f 100644 --- a/doc/html/appendices/tricks.html +++ b/doc/html/appendices/tricks.html @@ -182,7 +182,7 @@

Search

diff --git a/doc/html/appendices/weird-msgs.html b/doc/html/appendices/weird-msgs.html index 7686108e2..9d93329c4 100644 --- a/doc/html/appendices/weird-msgs.html +++ b/doc/html/appendices/weird-msgs.html @@ -190,7 +190,7 @@

Search

diff --git a/doc/html/coreDocs/assoc.html b/doc/html/coreDocs/assoc.html index 61348b9a1..3b5f21c30 100644 --- a/doc/html/coreDocs/assoc.html +++ b/doc/html/coreDocs/assoc.html @@ -147,7 +147,7 @@

Search

diff --git a/doc/html/coreDocs/blowfish.html b/doc/html/coreDocs/blowfish.html index 4d9c74883..154a2f3ff 100644 --- a/doc/html/coreDocs/blowfish.html +++ b/doc/html/coreDocs/blowfish.html @@ -152,7 +152,7 @@

Search

diff --git a/doc/html/coreDocs/channels.html b/doc/html/coreDocs/channels.html index b5321e4c2..595265bb5 100644 --- a/doc/html/coreDocs/channels.html +++ b/doc/html/coreDocs/channels.html @@ -525,7 +525,7 @@

Search

diff --git a/doc/html/coreDocs/compress.html b/doc/html/coreDocs/compress.html index b69f3b0cb..d74885d59 100644 --- a/doc/html/coreDocs/compress.html +++ b/doc/html/coreDocs/compress.html @@ -160,7 +160,7 @@

Search

diff --git a/doc/html/coreDocs/console.html b/doc/html/coreDocs/console.html index 90cb998c6..f7ebb1b7d 100644 --- a/doc/html/coreDocs/console.html +++ b/doc/html/coreDocs/console.html @@ -162,7 +162,7 @@

Search

diff --git a/doc/html/coreDocs/core.html b/doc/html/coreDocs/core.html index b658b3f8f..27e1ff1ef 100644 --- a/doc/html/coreDocs/core.html +++ b/doc/html/coreDocs/core.html @@ -797,7 +797,7 @@

Search

diff --git a/doc/html/coreDocs/ctcp.html b/doc/html/coreDocs/ctcp.html index 9e3bfcd5b..9324bc58a 100644 --- a/doc/html/coreDocs/ctcp.html +++ b/doc/html/coreDocs/ctcp.html @@ -179,7 +179,7 @@

Search

diff --git a/doc/html/coreDocs/dns.html b/doc/html/coreDocs/dns.html index 70d9e25c6..60abc9e32 100644 --- a/doc/html/coreDocs/dns.html +++ b/doc/html/coreDocs/dns.html @@ -175,7 +175,7 @@

Search

diff --git a/doc/html/coreDocs/filesys.html b/doc/html/coreDocs/filesys.html index 72ffc4478..c8e314b83 100644 --- a/doc/html/coreDocs/filesys.html +++ b/doc/html/coreDocs/filesys.html @@ -175,7 +175,7 @@

Search

diff --git a/doc/html/coreDocs/index.html b/doc/html/coreDocs/index.html index b1889bdaf..49f548cec 100644 --- a/doc/html/coreDocs/index.html +++ b/doc/html/coreDocs/index.html @@ -178,7 +178,7 @@

Search

diff --git a/doc/html/coreDocs/irc.html b/doc/html/coreDocs/irc.html index 45fb8069c..a7a8d4d92 100644 --- a/doc/html/coreDocs/irc.html +++ b/doc/html/coreDocs/irc.html @@ -278,7 +278,7 @@

Search

diff --git a/doc/html/coreDocs/modules.html b/doc/html/coreDocs/modules.html index a4349043e..c7d76046f 100644 --- a/doc/html/coreDocs/modules.html +++ b/doc/html/coreDocs/modules.html @@ -550,7 +550,7 @@

Search

diff --git a/doc/html/coreDocs/notes.html b/doc/html/coreDocs/notes.html index 9b8e8e632..201d6fc75 100644 --- a/doc/html/coreDocs/notes.html +++ b/doc/html/coreDocs/notes.html @@ -170,7 +170,7 @@

Search

diff --git a/doc/html/coreDocs/seen.html b/doc/html/coreDocs/seen.html index 06716c013..b70bb1ab8 100644 --- a/doc/html/coreDocs/seen.html +++ b/doc/html/coreDocs/seen.html @@ -149,7 +149,7 @@

Search

diff --git a/doc/html/coreDocs/server.html b/doc/html/coreDocs/server.html index bc4622da3..023554ee6 100644 --- a/doc/html/coreDocs/server.html +++ b/doc/html/coreDocs/server.html @@ -394,7 +394,7 @@

Search

diff --git a/doc/html/coreDocs/share.html b/doc/html/coreDocs/share.html index f48f5c97c..c2cf30426 100644 --- a/doc/html/coreDocs/share.html +++ b/doc/html/coreDocs/share.html @@ -179,7 +179,7 @@

Search

diff --git a/doc/html/coreDocs/transfer.html b/doc/html/coreDocs/transfer.html index 976873165..f4008a67e 100644 --- a/doc/html/coreDocs/transfer.html +++ b/doc/html/coreDocs/transfer.html @@ -169,7 +169,7 @@

Search

diff --git a/doc/html/coreDocs/uptime.html b/doc/html/coreDocs/uptime.html index 6f788391d..54b814a12 100644 --- a/doc/html/coreDocs/uptime.html +++ b/doc/html/coreDocs/uptime.html @@ -155,7 +155,7 @@

Search

diff --git a/doc/html/coreDocs/woobie.html b/doc/html/coreDocs/woobie.html index 7aadb775a..16460541c 100644 --- a/doc/html/coreDocs/woobie.html +++ b/doc/html/coreDocs/woobie.html @@ -148,7 +148,7 @@

Search

diff --git a/doc/html/index.html b/doc/html/index.html index 461a03dd7..5a43dc884 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -196,7 +196,7 @@

Search

diff --git a/doc/html/installAndSetup/INSTALL.html b/doc/html/installAndSetup/INSTALL.html deleted file mode 100644 index 7f330b2da..000000000 --- a/doc/html/installAndSetup/INSTALL.html +++ /dev/null @@ -1,294 +0,0 @@ - - - - - - - - - Installing Eggdrop — Eggdrop 1.8.0 documentation - - - - - - - - - - - - - - - - -
-
-
- -
-
-
- -

Compilation and Installation of Eggdrop -Last revised: July 24, 2004

-
-

Installing Eggdrop¶

-

This is the quick install guide; if you have had little or no experience -with UNIX or Eggdrop, READ THE README FILE NOW! This file is only for -experienced users.

-

For more information on compiling Eggdrop, see the Compile Guide in -doc/COMPILE-GUIDE (and of course, the README FILE).

-
-

What is Eggdrop?¶

-

Please, read the README file before attempting to set up this bot. This -file is a quick setup guide, not a miracle worker. If you enter this file -without basic Eggdrop knowledge, you will NOT leave with a working bot! -Before asking ANY questions, READ THE README FILE OR YOU WILL BE BURNED -TO A HORRIBLE DEATH! IF YOU DO NOT READ THAT FILE I WILL PERSONALLY WALK -TO YOUR TERMINAL AND BEAT IT WITH A SMELLY SNEAKER! By the way, read the -README file.

-
-
-

Quick Startup¶

-

Eggdrop uses the GNU autoconfigure scripts to make things easier.

-
    -
  1. -
    Type './configure' from the Eggdrop directory. The configure script
    -

    will determine how your system is set up and figure out how to -correctly compile Eggdrop. It will also try to find Tcl, which is -required to compile.

    -
    -
    -
  2. -
  3. -
    Type either 'make config' or 'make iconfig' to determine which
    -

    modules will be compiled. 'make config' compiles the default modules -(everything but woobie.mod). If you want to choose which modules to -compile, use 'make iconfig'.

    -
    -
    -
  4. -
  5. -
    Type 'make' from the Eggdrop directory, or to force a statically
    -

    linked module bot, type 'make static'. Otherwise, the Makefile will -compile whatever type of bot the configure script determined your -system will support. Dynamic is always the better way to go if -possible. There are also the 'debug' and 'sdebug' (static-debug) -options, which will give more detailed output on a (highly unlikely :) -crash. This will help the development team track down the crash and -fix the bug. Debug and sdebug will take a little longer to compile -and will enlarge the binary a bit, but it's worth it if you want to -support Eggdrop development.

    -
    -
    -
  6. -
  7. -
    Eggdrop must be installed in a directory somewhere. This is
    -

    accomplished by entering the UNIX command:

    -
    make install
    -
    -
    -

    This will install the Eggdrop in your home directory in a directory -called 'eggdrop' (i.e. /home/user/eggdrop).

    -

    If you want to install to a different directory, use:

    -
    make install DEST=<directory>
    -
    -
    -

    For example:

    -
    make install DEST=/home/user/otherdir
    -
    -
    -

    Note that you must use full path for every file to be correctly -installed.

    -

    [The following is performed from the directory installed above.]

    -
    -
    -
  8. -
  9. -
    By default, version 1.8 uses SSL to protect botnet links. If you intend
    -

    on linking 1.8 bots together, you must run:

    -
    make ssl-cert
    -
    -
    -

    Or, if you installed your eggdrop to a different directory in step 4, you -will want to run:

    -
    -

    make ssl-cert DEST=<directory>

    -
    -

    Read docs/TLS for more info on this process.

    -
    -
    -
  10. -
  11. Edit your config file completely.

    -
  12. -
  13. Start the bot with the "-m" option to create a user file, i.e.

    -
    ./eggdrop -m LamestBot.conf
    -
    -
    -
  14. -
  15. -
    When starting the bot in the future, drop the "-m". If you have edited
    -

    your config file correctly, you can type:

    -
    chmod u+x <my-config-file-name>
    -
    -
    -

    For example:

    -
    chmod u+x LamestBot.conf
    -
    -
    -

    From then on, you will be able to use your config file as a shell -script. You can just type "./LamestBot.conf" from your shell prompt -to start up your bot. For this to work, the top line of your script -MUST contain the correct path to the Eggdrop executable.

    -
    -
    -
  16. -
  17. -
    It's advisable to run your bot via crontab, so that it will
    -

    automatically restart if the machine goes down or (heaven forbid) -the bot should crash. Look at 'scripts/botchk' and 'scripts/autobotchk' -for a great start with crontabbing the bot.

    -
    -
    -
  18. -
  19. Smile, and if you haven't already read the README file in its -entirety, go take a long walk off a short pier.

    -
  20. -
-
-
-

Modules¶

-

Modules are small pieces of code that can either be compiled into the -binary or can be compiled separately into a file. This allows for a much -smaller binary.

-

If there are any modules that you have made or downloaded, you can add -them to the bot by placing them in the /src/mod directory with a mod -extension. They will be automatically compiled during make for you. -They must have a valid Makefile and, of course, be compatible with -the rest of the Eggdrop source.

-

If you wish to add a module at a later time, follow the same steps in -paragraph 2. After you have moved the appropriate files, you will only -need to type 'make modules' to compile only the modules portion of the -bot.

-
-
-

FREQUENTLY ASKED QUESTIONS¶

-
-
    -
  1. What do I do if...?
  2. -
-
    -
  1. READ THE README FILE!
  2. -
-
    -
  1. The readme does not answer...!
  2. -
-
    -
  1. READ THE README FILE AGAIN!
  2. -
-
    -
  1. I still don't know how to...
  2. -
-
    -
  1. MEMORIZE THE README FILE!
  2. -
-
    -
  1. But...
  2. -
-
    -
  1. Well, go to www.egghelp.org or www.eggheads.org and see if you can -find there what you're looking for. There are also lots of IRC help -channels and various mailing lists, as seen in the README FILE.
  2. -
-
-

This is the end. If you read to this point, hopefully you have also read -the README file. If not, then READ IT!&@#%@!

-

Have fun with Eggdrop!

-
-
Copyright (C) 1997 Robey Pointer -Copyright (C) 1999 - 2016 Eggheads Development Team
-
-
- - -
-
-
-
- -
-
-
- - - - - \ No newline at end of file diff --git a/doc/html/installAndSetup/README.html b/doc/html/installAndSetup/README.html deleted file mode 100644 index e86ea7bd3..000000000 --- a/doc/html/installAndSetup/README.html +++ /dev/null @@ -1,592 +0,0 @@ - - - - - - - - - README — Eggdrop 1.8.0 documentation - - - - - - - - - - - - - - - - -
-
-
- -
-
-
- -

Last revised: Jul 2, 2016

-
-

README¶

-
-
Please at least SKIM this document before asking questions. In fact, READ IT -if you've never successfully set up an Eggdrop bot before. PLEASE! READ IT!
-
-

NOTICE¶

-
-
Please read this file carefully before trying to set up Eggdrop. Also, -make SURE that you select your +n (owner) users wisely! They have 100% -access to your bot and account! ONLY GIVE THIS POWER TO SOMEONE YOU -TRUST COMPLETELY!!
-
-
-

What is Eggdrop?¶

-
-

Eggdrop is the World's most popular Internet Relay Chat (IRC) bot; it is -freely distributable under the GNU General Public License (GPL). Eggdrop -is a feature rich program designed to be easily used and expanded upon by -both novice and advanced IRC users on a variety of hardware and software -platforms.

-

An IRC bot is a program that sits on an IRC channel and performs automated -tasks while looking just like a normal user on the channel. Some of these -functions include protecting the channel from abuse, allowing privileged -users to gain op or voice status, logging channel events, providing -information, hosting games, etc.

-

One of the features that makes Eggdrop stand out from other bots is module -and Tcl scripting support. With scripts and modules, you can make the bot -perform almost any task you want. They can do anything from preventing -floods to greeting users and banning advertisers from channels.

-

You can also link multiple Eggdrop bots together to form a botnet. This -can allow bots to op each other securely, control floods efficiently, and -even link channels across multiple IRC networks. It also allows the -Eggdrops share user lists, ban lists, exempt/invite lists, and ignore -lists with other bots if userfile sharing is enabled. This allows users -to have the same access on every bot on your botnet. It also allows the -bots to distribute tasks such as opping and banning users. See doc/BOTNET -for information on setting up a botnet.

-

Eggdrop is always being improved and adjusted because there are bugs to -be fixed and features to be added (if the users demand them, and they make -actually sense). In fact, it existed for several years as v0.7 - v0.9 -before finally going 1.0. This version of Eggdrop is part of the 1.8 tree. -A valiant effort has been made to chase down and destroy bugs.

-

This README file contains information about how to get Eggdrop, command -line options for Eggdrop, what you may need to do when upgrading from -older versions, a list of frequently asked questions, how to set up a -crontab, some boring legal stuff, info about the mailing list (a great -place to ask questions, and a good place to report bugs, too), some basics -about CVS usage, and some channels where you might get help with Eggdrop.

-
-
-
-

HOW TO GET EGGDROP¶

-
-

Before you can compile Eggdrop, you need to have Tcl installed on your -system. Most systems should have Tcl on them by now -- you can check by -trying the command "tclsh". If it works, you will be given a "%" prompt, -and you can type "exit" to exit the program. This means Tcl is installed -on your system. If tclsh doesn't load, then Tcl probably isn't on your -system, and you will need to install it. The best ftp site for Tcl is -ftp://tcl.activestate.com/pub/tcl/.

-

Currently, the 1.8 tree of Eggdrop is developed at eggheads.org. You can -get the latest STABLE version of Eggdrop from the following url:

-
-
-

You might try www.eggheads.org for help and information.

-
-
-
-

Git Usage¶

-
-

Eggdrop development has moved from a CVS-based version control system to -git. If you are interested in trying out the VERY LATEST updates to -eggdrop, you may want be interested in pulling the most recent code from -there. BE WARNED, the development branch of Eggdrop is not to be -considered stable, and may (haha) have some significant bugs in it. The -Eggheads Development Team will in NO WAY take any responsibility for -whatever might happen to you or your shell if you use the development -branch of Eggdrop!

-

To obtain Eggdrop via the git repository (hosted by GitHub), you can -either clone the repository via git, or download a development snapshot.

-

To clone the repository, simply type:

-
git clone https://github.com/eggheads/eggdrop.git
-
-
-

Otherwise, you can download the development snapshot as a tar archive -from:

-
-
-
-
-
-

Quick Startup¶

-
-
Please see the 'INSTALL' file AFTER you finish reading this file.
-
-
-

Upgrading¶

-

UPGRADING FROM A PRE-1.3 VERSION TO 1.8

-
-

First of all- why are you still running pre-1.3?!?!

-

#### BACK UP YOUR USERFILE ####

-

We can't stress this enough. If you are upgrading and you have even a -slight possibility of downgrading again later, you will HAVE to back up -your userfile, or you will lose it. v1.3 of Eggdrop radically changed a -lot of things.

-

There are many major changes between v0.9, v1.0, v1.1 and v1.8, so PAY -ATTENTION to this part if you have a v0.9, 1.0 or 1.1 bot currently. If -you're just starting out, you can skip this section.

-

If you run share bots, you will need to upgrade them all at the same time -because of the new userfile format. Older bots will be able to link in, -but will not get or send a userfile. MAKE A NEW CONFIG FILE from the -example; there are some radical changes.

-

If you are upgrading from 0.9/1.0 to 1.8, just redo the whole thing. -Absolutely everything has changed, including the userfile and config file -formats.

-

If you are upgrading from 1.1/1.2 to 1.8, you will likely want to redo -the config file, as much as changed. BACK UP! You will need to run 'tclsh -scripts/weed/<userfile> c' to convert your userfile from v3 (1.1/1.2) to -v4 (1.3/1.4/1.5/1.6/1.8).

-
-

UPGRADING FROM AN OLDER 1.3/1.4/1.5/1.6 VERSION TO A NEWER 1.8 VERSION

-
-

If you followed the 'INSTALL' file and did a 'make install' (or 'make -install DEST="path"') after 'make', this will be pretty easy. Just upload -the new eggdrop1.8.x.tar.gz file to your home dir on your shell, gunzip -and untar it, and type 'cd ~/eggdrop1.8.x'. Next, type './configure', -'make config' or 'make iconfig', then 'make'. Then, kill the bot ('.die' -on the party line), and 'make install' to the same directory your bot -is currently in. After that, you can just restart your bot. You may wish -to delete the old Eggdrop executable and modules as well, especially if -you have limited disk space.

-

You should read through the new eggdrop.conf file for all of the new -options in Eggdrop 1.8.x. You can copy and paste any of these settings -into you current conf file if you do not want to use the default settings.

-
-
-
-

Command Line¶

-
-

Eggdrop has some command-line options -- not many, because most things -should be defined through the config file. However, sometimes you may -want to start up the bot in a different mode, and the command-line -options let you do that. Basically, the command line for Eggdrop is:

-
% eggdrop [options] [config-file]
-
-
-

The options available are:

-
-
-
-n: Don't background. Normally, Eggdrop will move itself into the
-
background when you start it up, meaning you'll get another shell -prompt, and you can do other things while the bot is running. With --n, you won't return to the shell prompt until the bot exits (which -won't normally happen until it's killed). By default, -n will send -all log entries to the console.
-
-nt: Don't background, use terminal. This is just like -n, except that
-
instead of seeing log entries, your console will simulate a DCC -chat with the bot.
-
-nc: Don't background, show channel info. This is just like -n, except
-
that instead of seeing log entries, every 10 seconds your screen -will clear and you will see the current channel status, sort of -like "top".
-
-m: Create userfile. If you don't have a userfile, this will make Eggdrop
-
create one and give owner status to the first person that introduces -himself or herself to it. You'll need to do this when you first set -up your bot.
-
-

-h: Show help.

-

-v: Show version info, then quit.

-
-

Most people never use any of the options except -m, and you usually only -need to use that once.

-
-
-
-

Frequently Asked Questions¶

-

(a.k.a. Why doesn't this thing work?!")

-

WHAT DO I DO IF I GET THE ERROR "USER FILE NOT FOUND"?

-
-
    -
  1. Run Eggdrop with the "-m" option (i.e. "eggdrop -m eggdrop.conf").
  2. -
  3. Go to IRC and send "hello" to your bot (i.e. "/msg mybot hello").
  4. -
  5. You will become an owner on your bot. You can leave the bot running -(nobody else will become an owner if they say "hello"), but in the -future, don't use the "-m" option when running the bot.
  6. -
-
-

WHAT THE HECK IS Tcl?

-
-
Tcl is a scripting language written by John Ousterhout. It's much better -than most "built-in" script languages (like the one in ircII) and is -meant to be linked with anything needing a scripting language, so I -linked it with Eggdrop. The file "tcl-commands.doc" in the doc directory -contains a list of additional Tcl commands provided by Eggdrop. There -are also several example scripts in the scripts/ directory, and one in -the doc directory called first_script.txt. Hundreds of scripts floating -around on the ftp/web sites if you like working by example (which is -typically the best way).
-

MY BOT DIES, AND THE LAST ENTRY IN THE LOGFILE IS "RECEIVED TERMINATE -SIGNAL". WHAT DOES THAT MEAN, AND CAN I PREVENT IT?

-
-
There's nothing you can do to prevent it. It means the system -administrator is killing the Eggdrop process. Most of the time, it's an -automatic thing that happens when the system is being rebooted, so it's -harmless. If you have a crontab running, the bot will get restarted when -the system is back online. Occasionally, the system administrator will -kill the bot manually. For example, if he/she doesn't want bots running -on the system.
-

SOMEONE ELSE SET UP A BOT I DON'T LIKE. ARE THERE ANY BACKDOORS I CAN -USE TO TAKE THEIR BOT DOWN?

-
-
No, there have never been any backdoors and there never will be, so -please stop asking. Every once in a while, someone finds a way to -exploit a bug in Eggdrop, but we fix these bugs as soon as we find out -about them. If you want to bring down someone else's bot, you will not -have my/our help.
-

WHAT ARE MODULES?

-
-
Modules are a way of adding extra features to the bot, much like Tcl -scripts, without requiring the bot to be recompiled. See doc/MODULES -for more information.
-

CAN I COMPILE EGGDROP WITHOUT DYNAMIC MODULES?

-
-
Yes, you can. If the configure script detects that your system CAN'T -run modules, it will setup 'make' to link the modules in statically -for you. You can choose this option yourself by using 'make static'. -You can also try to compile dynamic modules on a static-only system -by using 'make eggdrop'.
-

DO I STILL NEED TO 'loadmodule' MODULES?

-
-
YES, when you compile statically, all the modules are linked into the -main executable. HOWEVER, they are not enabled until you use loadmodule -to enable them, hence you get nearly the same functionality with static -modules as with dynamic modules.
-

WHERE CAN I GET A PRE-COMPILED EGGDROP FOR MY COMPUTER?

-
-
It is HIGHLY recommended AGAINST using pre-compiled Eggdrops from -un-trusted sources. Eggdrop has been a regular target for hacking and -crashing. Distribution of pre-compiled (binary) versions of Eggdrop are -the easiest way for hackers to provide you with the easiest (and most -dangerous) way of gaining access to, not only your bot, but to your -computer account directly. Don't advertise your pre-compiled Eggdrop -binary sites on the Eggdrop list either. =P
-

I GET 'Makefile:3 :invalid operator' OR SOME-SUCH-THING WHEN I TRY -TO 'make'.

-
-
Try 'gmake'.
-

WHEN I 'tclsh scripts/weed <userfile> c' IT BARFS CHUNKS AT ME AND -DIES. :(

-
-
Upgrade your Tcl. You are probably using Tcl 7.5 or earlier. Some of the -commands in weed require Tcl7.6 to run, so either upgrade it or remove -the offending lines from you userfile manually (those starting with '.' -generally) and accept the loss of that data.
-

I GET "ld-elf.so.1: Shared object "libtcl80.so.1" not found" or -"eggdrop: error in loading shared libraries libtcl8.1.so: cannot open shared object file: No such file or directory" WHEN I TRY -TO START MY BOT.

-
-

'./configure' is looking in the wrong place for Tcl; it looks like it -compiled with one version of Tcl and tries to load another. Maybe your -sysadmin upgraded Tcl and didn't tell you. In that case, you should just -need to recompile your bot.

-

Maybe, when upgrading, he didn't clean the old version of Tcl and -'./configure' is looking for the files in the wrong places, or trying -to use different versions of tcl.h and libtcl*. Smack your admin and -have him install Tcl properly. ;)

-

You can also try:

-
./configure --with-tcllib=<path-to-tcl-lib>
-            --with-tclinc=<path-to-tcl-inc>
-
-
-

This will tell configure where to look for the Tcl files.

-

Try looking for libtcl by:

-
ls /usr/lib/libtcl*
-ls /usr/local/lib/libtcl*
-
-
-

Try looking for tcl.h by:

-
ls /usr/include/tcl.h
-ls /usr/local/include/tcl.h
-
-If everything else fails, try to install Tcl to your home dir ;)
-(Suggested by dw@Undernet, dw@lixom.nu)
-
-
-
-

I GET A WHOLE PILE OF "Unresolved symbol 'Tcl_AppendResult'" (OR SOME -OTHER SYMBOL) WHEN I TRY TO LOAD A MODULES.

-
-

POSSIBILITY A: See previous section.

-

POSSIBILITY B:

-
-

Some of the standard libraries have been compiled for static linking -only on your machine, you have 3 options:

-
-
    -
  1. If it's your own machine, recompile Tcl using dynamic linking by -using './configure --enable-shared' when you configure Tcl (not -the bot) and then remake, and reinstall.
  2. -
  3. If it's not your machine, you may have to resort to 'make static' -and 'make install DEST="path"' to make and install your bot.
  4. -
  5. If you are of a more aggressive sense of mind, go beat the -stuffing out of your admin for having lame static libraries. :)
  6. -
-
-
-
-
-
-

Setting up a Crontab¶

-
-

Eggdrop has become more stable with time, thanks mostly to people -reporting bug details and helping find places where it crashes. However, -there are still a -few- places where things aren't perfect. Few, if any, -things in life are.

-

Also, most systems go down from time to time. These things cause your bot -to disappear from IRC, and you have to restart it.

-

Eggdrop comes with a shell script called 'botchk' that will help keep the -bot online. It will make the machine check every ten minutes to make sure -your bot is still running. To use it, you have to add a line to your -crontab. First, edit 'botchk' and change the directory and command line -parameters so that it will be able to start up your bot. Then, add this -line to your crontab:

-
0,10,20,30,40,50 * * * * /home/mydir/botchk
-
-
-

If you don't want to get e-mails from cron, use this:

-
0,10,20,30,40,50 * * * * /home/mydir/botchk >/dev/null 2>&1
-
-
-

Naturally, you need to change the path to the correct path for botchk. If -you've never used crontab before, here is a simple way to add that line:

-
-
    -
  1. Create a new file called 'mycron' and put the above line into it.
  2. -
  3. From your shell prompt, type '% crontab mycron'.
  4. -
-
-

That will create a new crontab entry for you with a line that runs botchk -every ten minutes. Botchk will then restart the bot when necessary (and -send you email informing you).

-
-
-
-

Setting up a Crontab using autobotchk¶

-
-

Included with your Eggdrop is an Eggdrop utility called 'autobotchk'. -Using autobotchk is probably the fastest way of creating your botchk and -crontabbing it with just a few required steps:

-
-
    -
  1. Type:

    -
    cp scripts/autobotchk ..
    -
    -
    -
  2. -
  3. Type:

    -
    ./autobotchk <Eggdrop config file>
    -
    -
    -
  4. -
-
-

This will hopefully crontab your bot using the default setup. If you want -a list of autobotchk options, type './autobotchk'. An example with options -would be:

-
./autobotchk <Eggdrop config file> -noemail -5
-
-
-

This would setup crontab to run the botchk every 5 minutes and also to -not send you e-mail saying that it restarted your bot.

-
-
- -
-

Mailing List¶

-
-

There are currently a couple of mailing lists about Eggdrop. -eggheads@eggheads.org is the one relevant for posts about Eggdrop 1.8 and -up (suggestions, help, etc).

-

To subscribe to the eggheads mailing list, send e-mail to -eggheads-request@eggheads.org. In the body of the message, put "subscribe -eggheads". You can also go to the following url:

-
-
-

### DO NOT SEND ROBEY EMAIL ABOUT EGGDROP! ###

-

Robey is no longer developing the Eggdrop code, so don't bother e-mailing -him. If you have a serious problem, email the eggheads mailing list and -it will get to the coders.

-

Please, before posting to this list, see what things are like. When you do -post, read over your post for readability, spelling, and grammar mistakes. -Obviously, we're all human (or are we?) and we all make mistakes (heck, -look at this document! ;).

-

Open discussion and debate is integral to change and progress. Don't flame -others over mere form (grammar and spelling), or even substantive issues -for that matter. Please read and follow the mailing list rules.

-

The eggheads@eggheads.org mailing list is not dedicated to those all too -common questions we have all seen on other lists... For example:

-
-
o "Why does my bot say this: Please edit your config file." -o "How do I telnet my bot?" -o "Where do I get Eggdrop for windows??????"
-

Technical questions, your thoughts or suggestions on new features being -added to Eggdrop, things that should be removed or fixed, amazing problems -that even stump the guru's, etc. are what we want to see here.

-

Bug reports should be sent to bugs@eggheads.org. Please read and fill out -the BUG-REPORT file in the doc directory.

-

DO NOT SEND HTML E-MAILS TO ANY OF THE EGGHEADS.ORG MAILING LISTS. ANYONE -CAUGHT SENDING HTML E-MAILS TO ONE OF THESE LISTS WILL BE REMOVED -IMMEDIATELY!

-
-
-
-

Documentation¶

-
-
We're trying to keep the documentation up to date. If you feel that -anything is missing here or that anything should be added, etc, please -e-mail bugs@eggheads.org about it. Thank you.
-
-
-

Obtaining Help¶

-
-

You can obtain help with Eggdrop in the following IRC channels:

-
-
    -
  • Undernet - #eggdrop (official channel)
  • -
  • FreeNode - #eggdrop (official channel), #egghelp
  • -
  • EFnet - #egghelp
  • -
  • IRCnet - #eggdrop
  • -
  • DALnet - #eggdrop
  • -
  • QuakeNet - #eggdrop.support
  • -
-
-

If you plan to ask questions in any of the above channels, you should be -familiar with and follow IRC etiquette.

-
-

o Don't type using CAPITAL letters, colors, or bold.

-

o Don't use "!" and "?" excessively.

-

o Don't /msg people without their permission.

-

o Don't repeat or paste large amounts of text to the channel.

-
-

If there are any other serious Eggdrop related channels that should be -added to the above list, please let us know.

-
-

Copyright (C) 1997 Robey Pointer -Copyright (C) 1999 - 2016 Eggheads Development Team

-
-
- - -
-
-
-
- -
-
-
- - - - - \ No newline at end of file diff --git a/doc/html/installAndSetup/faq.html b/doc/html/installAndSetup/faq.html index d78350775..c2a9ecd5e 100644 --- a/doc/html/installAndSetup/faq.html +++ b/doc/html/installAndSetup/faq.html @@ -269,7 +269,7 @@

Search

diff --git a/doc/html/installAndSetup/index.html b/doc/html/installAndSetup/index.html index 8461a44ce..4091524bc 100644 --- a/doc/html/installAndSetup/index.html +++ b/doc/html/installAndSetup/index.html @@ -142,7 +142,7 @@

Search

diff --git a/doc/html/installAndSetup/install.html b/doc/html/installAndSetup/install.html index e8f8cefcb..a75c25f66 100644 --- a/doc/html/installAndSetup/install.html +++ b/doc/html/installAndSetup/install.html @@ -63,6 +63,16 @@

Installing Eggdrop +

Overview¶

+
    +
  1. What is Eggdrop?
  2. +
  3. Quick Startup
  4. +
  5. Cygwin Requirements (Windows)
  6. +
  7. Modules
  8. +
  9. Frequently Asked Questions
  10. +
+

What is Eggdrop?¶

Please, read the README file before attempting to set up this bot. This @@ -181,6 +191,17 @@

Quick Startup +

Cygwin Requirements (Windows)¶

+

Eggdrop requires the following packages to be added from the Cygwin +installation tool prior to compiling:

+
Interpreters: tcl, tcl-devel
+Net:          openssl-devel
+Devel:        autoconf, gcc-core, git, make
+Utils:        diffutils
+
+
+

Modules¶

Modules are small pieces of code that can either be compiled into the @@ -315,7 +336,7 @@

Search

diff --git a/doc/html/installAndSetup/readme.html b/doc/html/installAndSetup/readme.html index deae165a6..9268ea44d 100644 --- a/doc/html/installAndSetup/readme.html +++ b/doc/html/installAndSetup/readme.html @@ -479,7 +479,7 @@

Search

diff --git a/doc/html/mainDocs/TLS.html b/doc/html/mainDocs/TLS.html deleted file mode 100644 index 1962c0d62..000000000 --- a/doc/html/mainDocs/TLS.html +++ /dev/null @@ -1,289 +0,0 @@ - - - - - - - - - TLS support — Eggdrop 1.8.0 documentation - - - - - - - - - - - - - - - - -
-
-
- -
-
-
- -

TLS support -Last revised: Oct 17, 2010

-
-

TLS support¶

-

This document provides information about TLS support which is a new -eggdrop feature since version 1.8.0.

-
-

About¶

-

Eggdrop can be optionally compiled with TLS support. This requires OpenSSL -0.9.8 or more recent installed on your system. -TLS support includes encryption for IRC, DCC, botnet, telnet and scripted -connections as well as certificate authentication for users and bots.

-
-
-

Installation¶

-

./configure and install as usual, the configure script will detect if your -system meets the requirements and will enable TLS automatically. You can -override the autodetection and manually disable TLS with -./configure --disable-tls. You can't forcefully enable it though. -The configure script will look for OpenSSL at the default system locations. -If you have it installed at a non-standard location or locally in your -home directory, you'll need to specify the paths to header and library -files with the --with-sslinc and --with-ssllib options. You can also use -these if you want to override the default OpenSSL installation with a -custom one, as they take precedence over any system-wide paths.

-
-
-

Usage¶

-

By default, without additional configuration, TLS support will provide -opportunistic encryption for botnet links. For other connection types, -TLS must be requested explicitly.

-

Secure connections are created the same way as plaintext ones. The only -difference is that you must prefix the port number with a plus sign. -A port number that could be normally omitted, would have to be included -to enable TLS. Scripts can also switch a regular, plaintext connection -to TLS, using the starttls Tcl command.

-
-

IRC¶

-

To connect to IRC using SSL, specify the port number and prefix it with -a plus sign. Example: .jump irc.server.com +6697. The same goes for -the server list in the config file.

-
-
-

Botnet¶

-

By default, eggdrop now automatically attempts to protect botnet links -with SSL if it is compiled with TLS support. If one of the bots linking -does not have TLS support enabled, the connection will fall back to plain -text. To explicitly require all links to a hub be SSL-only (ie, prevent -plain text connections from being allowed), prefix the listen port in the -hub configuration file with a plus (+) sign. Conversely, to force a leaf -to only allow SSL (not plain text) connections with a hub, you must -prefix the hub's listen port with a plus when adding it to the leaf via -+bot/chaddr commands. The nickname and password are sent before SSL -negotiation takes place (the password is not sent in plain text anyway). -If SSL negotiation fails and either the hub or leaf is set to require SSL, -the connection is deliberately aborted and no clear text is ever sent.

-
-
-

Secure DCC¶

-

Eggdrop supports the SDCC protocol, allowing you to establish DCC chat -and file transfers over SSL. Example: /ctcp bot schat -Note, that currently the only IRC client supporting SDCC is KVIrc. For -information on how to initiate secure DCC chat from KVIrc (rather than -from the bot with /ctcp bot chat), consult the KVIrc documentation.

-
-
-

Scripts¶

-

Scripts can open or connect to SSL ports the usual way specifying the -port with a plus sign. Alternatively, the connection could be -established as plaintext and later switched on with the starttls Tcl -command. (Note that the other side should also switch to SSL at the same -time - the synchronization is the script's job, not eggdrop's.)

-
-
-
-

Keys, certificates and authentication¶

-

You need a private key and a digital certificate whenever your bot will -act as a server in a connection of any type. Common examples are hub -bots and SSL listening ports. General information about certificates and -public key infrastructure can be obtained from Internet. This document -only contains eggdrop-specific information on the subject. -The easy way to create a key and a certificate is to type 'make sslcert' -after compiling your bot (If you installed eggdrop to a non-standard -location, use make sslcert DEST=/path/to/eggdrop). This will generate a -4096-bit private key (eggdrop.key) and a certificate (eggdrop.crt) after -you fill in therequired fields.

-

To authenticate with a certificate instead of using password, you should -make a ssl certificate for yourself and enable ssl-cert-auth in the config -file. Then either connect to the bot using SSL and type ".fprint +" or -enter your certificate fingerprint with .fprint SHA1-FINGERPRINT. -To generate a ssl certificate for yourself, you can run the following -command from the eggdrop source directory:

-
openssl req -new -x509 -nodes -keyout my.key -out my.crt -config ssl.conf
-
-
-

When asked about bot's handle, put your handle instead. How to use your -new certificate to connect to eggdrop, depends on your irc client. -To connect to your bot from the command line, you can use the OpenSSL -ssl client:

-
openssl s_client -cert my.crt -key my.key -connect host:sslport
-
-
-
-
-

SSL Settings¶

-

There are some new settings allowing control over certificate -verification and authorization.

-
-

ssl-privatekey

-
-
file containing Eggdrop's private key, required for the certificate.
-

ssl-certificate

-
-
Specify the filename where your SSL certificate is located. -if your bot will accept SSL connections, it must have a certificate.
-

ssl-verify-depth

-
-
maximum verification depth when checking certificate validity. -Determines the maximum certificate chain length to allow.
-
-
ssl-capath
-
ssl-cafile
-
-
-
specify the location of certificate authorities certificates. These -are used for verification. Both can be active at the same time. -If you don't set this, validation of the issuer won't be possible and -depending on verification settings, the peer certificate might fail -verification.
-

ssl-ciphers

-
-
specify the list of ciphers (in order of preference) allowed for -use with ssl.
-

ssl-cert-auth

-
-

enables or disables certificate authorization for partyline/botnet. -This works only for SSL connections (SDCC or telnet over SSL). -A setting of 1 means optional authorization: If the user/bot has a -fingerprint set and it matches the certificate SHA1 fingerprint, -access is granted, otherwise ordinary password authentication takes -place.

-

If you set this to 2 however, users without a fingerprint set or -with a fingerprint not matching the certificate, will not be -allowed to enter the partyline with SSL. In addition to this user and -bot certificates will be required to have an UID field matching the -handle of the user/bot.

-
-
-
ssl-verify-dcc
-
ssl-verify-bots
-
ssl-verify-server
-
ssl-verify-clients
-
-
-
control ssl certificate verification. A value of 0 disables -verification completely. A value of 1 enables full verification. -Higher values enable specific exceptions like allowing self-signed -or expired certificates. Details are documented in eggdrop.conf.
-
-

Copyright (C) 2010 - 2016 Eggheads Development Team

-
-
- - -
-
-
-
- -
-
-
- - - - - \ No newline at end of file diff --git a/doc/html/mainDocs/about.html b/doc/html/mainDocs/about.html index 2b4a15b78..4fe455a6d 100644 --- a/doc/html/mainDocs/about.html +++ b/doc/html/mainDocs/about.html @@ -191,7 +191,7 @@

Search

diff --git a/doc/html/mainDocs/bans.html b/doc/html/mainDocs/bans.html index 3b1936717..1d713e33e 100644 --- a/doc/html/mainDocs/bans.html +++ b/doc/html/mainDocs/bans.html @@ -211,7 +211,7 @@

Search

diff --git a/doc/html/mainDocs/botnet.html b/doc/html/mainDocs/botnet.html index 5a32c88e6..8f2d7d4e6 100644 --- a/doc/html/mainDocs/botnet.html +++ b/doc/html/mainDocs/botnet.html @@ -90,7 +90,7 @@

Terms
Passive share is a term used to describe the direction of sharing user-files. Passive share bots will accept userfiles from an aggressive share bot.
Address

The physical address, containing the address and port of the bot. For example: lame.org:3333. You can change a bot's address with:

-
.chaddr <botname> <hostaddress:botport[/userport]>
+
.chaddr <botname> <address> <port#>[/<relay-port#>]
 
@@ -400,7 +400,7 @@

Search

diff --git a/doc/html/mainDocs/features.html b/doc/html/mainDocs/features.html index c0529dbc9..54462b7e4 100644 --- a/doc/html/mainDocs/features.html +++ b/doc/html/mainDocs/features.html @@ -184,7 +184,7 @@

Search

diff --git a/doc/html/mainDocs/index.html b/doc/html/mainDocs/index.html index 5e2b0c8db..1a74d0ca7 100644 --- a/doc/html/mainDocs/index.html +++ b/doc/html/mainDocs/index.html @@ -193,7 +193,7 @@

Search

diff --git a/doc/html/mainDocs/ipv6.html b/doc/html/mainDocs/ipv6.html index 568a591dd..9f9d26cf0 100644 --- a/doc/html/mainDocs/ipv6.html +++ b/doc/html/mainDocs/ipv6.html @@ -205,7 +205,7 @@

Search

diff --git a/doc/html/mainDocs/partyline.html b/doc/html/mainDocs/partyline.html index ca90c3bea..c83d74d10 100644 --- a/doc/html/mainDocs/partyline.html +++ b/doc/html/mainDocs/partyline.html @@ -167,7 +167,7 @@

Search

diff --git a/doc/html/mainDocs/patch.html b/doc/html/mainDocs/patch.html index 326f80dca..dec26d722 100644 --- a/doc/html/mainDocs/patch.html +++ b/doc/html/mainDocs/patch.html @@ -262,7 +262,7 @@

Search

diff --git a/doc/html/mainDocs/tcl-commands.html b/doc/html/mainDocs/tcl-commands.html index e9c3f6441..dc3a88090 100644 --- a/doc/html/mainDocs/tcl-commands.html +++ b/doc/html/mainDocs/tcl-commands.html @@ -1531,8 +1531,8 @@

Miscellaneous CommandsLogfile flags:

--++ @@ -1548,7 +1548,7 @@

Miscellaneous Commandsraw share traffic

- + @@ -1640,7 +1640,7 @@

Miscellaneous CommandsReturns: a timerID

Module: core

-

timer <seconds> <tcl-command> [count]

+

utimer <seconds> <tcl-command> [count]

diff --git a/doc/html/mainDocs/tls.html b/doc/html/mainDocs/tls.html index 758aade66..90bcdcd97 100644 --- a/doc/html/mainDocs/tls.html +++ b/doc/html/mainDocs/tls.html @@ -297,7 +297,7 @@

Search

diff --git a/doc/html/mainDocs/users.html b/doc/html/mainDocs/users.html index 25d731589..885836c08 100644 --- a/doc/html/mainDocs/users.html +++ b/doc/html/mainDocs/users.html @@ -276,7 +276,7 @@

Search

diff --git a/doc/html/objects.inv b/doc/html/objects.inv index 63e4dd223..3af339746 100644 Binary files a/doc/html/objects.inv and b/doc/html/objects.inv differ diff --git a/doc/html/search.html b/doc/html/search.html index 2d1a3c64d..bb8150540 100644 --- a/doc/html/search.html +++ b/doc/html/search.html @@ -154,7 +154,7 @@

Search

diff --git a/doc/html/searchindex.js b/doc/html/searchindex.js index 0a1708395..3531a9c44 100644 --- a/doc/html/searchindex.js +++ b/doc/html/searchindex.js @@ -1 +1,5 @@ -Search.setIndex({envversion:42,terms:{interchang:24,four:[12,24,3,22,2],secondli:12,prefix:[2,32,4,12,33,38],msgm:[12,38],oldest:12,hate:15,forget:[12,34,28],whose:[12,11],accur:12,"const":34,aug:12,swap:18,under:[12,17,8,9],worth:31,tcl7:19,digit:[33,2],everi:[15,31,2,4,34,19,12,22,38,8,24,11,9,28],risk:[38,9],"void":34,voic:[12,15,8,22,9],autoconfigur:31,tcl8:[],putbot:12,smack:19,stickinvit:12,affect:[12,17,24,22,2],school:[],getchanhost:12,cmd:2,tclsh:[19,9],verif:[33,38,2],categori:12,zlib:[],direct:[12,7,34,28],second:[30,2,4,34,12,35,6,22,23,38,9],valiant:[8,9],botport:7,even:[17,2,32,4,11,12,34,7,8,9],file_send:12,neg:[12,23,2],"new":[17,30,2,32,34,12,33,24,9,28],net:[38,4,9],ever:[12,33,18,2],cleartext:12,abov:[17,31,3,4,34,12,22,9],mem:12,never:[2,19,12,22,9,28],chang:[17,1,2,32,18,4,34,12,27,22,38,7,39,9,28],here:[29,30,2,4,6,12,37,35,27,22,23,38,11,7,9,28],kicker:12,path:[],auch:34,interpret:[12,5,24,3,18],getchanjoin:12,ontkickop:[],noemail:9,militari:2,anymor:[39,34,2],credit:[12,28],permit:12,aka:2,portrang:2,userinvit:22,portabl:[],whatnot:9,getchan:12,seven:22,unix:[17,8,31],printf:34,txt:19,highli:[38,31,19],ithi:[],describ:[7,2],would:[2,3,6,12,33,7,9,28],foster:[],call:[31,2,19,34,12,5,27,8,7,9],typo:12,recommend:[22,30,35,19,34],type:[],until:[2,19,12,22,11,9],relat:[34,12,22,24,9,28],haha:9,notic:[],warn:[12,9,34],warm:28,relai:[12,8,7,9,2],loss:19,isbansticki:12,hole:2,hold:[12,1],unpack:8,must:[31,2,4,34,12,33,22,23,38,7,9],join:[29,15,2,17,32,18,4,34,12,40,22,11,27],banlist:12,setus:12,setup:[],work:[31,1,2,6,19,34,12,5,13,27,22,33,7,24,11,9,28],onjoin:29,root:37,overrid:[33,24,1],etiquett:9,autodetect:33,matchinvit:12,caution:12,unavail:[38,2],want:[29,30,31,2,4,34,19,12,33,35,27,22,23,38,7,37,8,9,40],ultrix:[],stickban:12,end:[31,2,3,34,12,27,28],quot:[],jwilkinson:18,how:[],hook_secondli:34,disappear:9,env:2,answer:[38,8,31,6],verifi:[33,38,2],negoti:[12,33],config:[1,2,3,4,23,34,11,7,9,12,20,22,33,24,25,27,29,30,31,6,35,37,38,40],updat:[17,2,34,5,9,28],recogn:[15,4,38],goober:12,x509:[33,2],after:[30,31,2,4,34,12,27,22,33,38,11,9],befor:[29,31,1,2,4,34,12,33,35,22,23,38,7,8,9],wrong:19,substant:9,demonstr:[0,34],attempt:[31,2,4,12,22,33,38,11,7],third:[12,7],lost:12,greet:[8,22,9],exclud:12,recompil:[28,4,19],maintain:30,environ:[17,2],incorpor:[],enter:[31,2,32,12,22,33,28],exclus:[12,38],order:[12,23,33,2],oper:[2,3,19,6,12,38,24],placefield:[],xlib:[],offici:9,failur:12,becaus:[2,18,34,12,38,8,9],privileg:[15,8,9],appar:[],ormal:[],flexibl:[12,17],digest:12,fix:[31,2,18,19,34,12,5,8,9,28],better:[13,31,19,34,2],chattr:[12,15],hidden:17,easier:31,notefil:[12,29],savechannel:12,them:[29,15,30,31,1,2,17,4,34,19,12,35,6,22,23,38,7,24,8,9,40],thei:[29,31,22,1,2,4,34,19,12,6,7,33,38,8,11,9,40],proce:12,safe:[],"break":12,minir:[],interrupt:5,lixom:19,choic:9,grammar:9,dload:35,dumpfil:12,timeout:[23,38,35,34,2],each:[29,15,30,2,17,32,34,12,35,22,37,8,7,9],debug:[31,2,34,12,25,27],european:2,side:[12,33,2],mean:[17,2,18,4,11,19,12,27,33,38,7,24,8,9],prohibit:2,autohead:28,resum:12,upload:[17,30,34,12,37,9],sdcc:33,extract:[],unshar:15,network:[2,3,4,12,38,8,9],goe:[31,32,12,22,33,11,7],content:[14,36,26,21],botaddress:12,got:[12,18],killassoc:12,noqueu:12,situat:7,infin:2,hook_read_userfil:34,standard:[15,18,4,34,19,12,33,35,23,27],tcldcc:[],hand:[12,8,27,2],md5:[12,39,34],sigkil:12,zxf:[],openssl:[33,2],filter:5,heck:[19,9],isn:[1,34,12,37,38,11,25,9],rand:12,shlib_path:[],independ:[],putallbot:12,system:[17,37,31,2,18,3,19,34,12,33,35,23,24,9],restrict:[12,38,3,9,2],hook:34,unlik:[17,31],alreadi:[31,2,34,12,22,38,7,27],wasn:12,undernet:[12,38,4,9,19],primari:[38,2],ltcl8:[],modes_per_line_max:4,attach:[12,27,28],top:[31,9,28],sometim:[38,9],stack:[12,24,4],underlin:[12,3],master:[15,2,3,12,11,7],too:[2,4,34,12,35,27,38,8,9],dprintf:34,john:[19,9],listen:[12,33,7,24,2],danish:2,consol:[],tool:28,task:[8,7,9],ntik:12,technic:9,isperminvit:12,target:[12,19],keyword:12,provid:[1,2,4,23,34,8,9,12,13,16,19,20,22,33,24,28,29,6,35,37,38,40],tree:[8,9,28],rate:38,stackabl:12,project:[],matter:[23,9],flame:9,minut:[2,18,4,34,12,22,11,9],ebai:2,file_send_pend:12,mind:19,rfc1459:12,raw:[12,2],miniatur:32,seen:[],seem:18,minu:22,getsocknam:[],strength:[],hub:[33,7,1,2],unresolv:19,resetchan:12,thorough:34,client:[12,33,38,27,2],transmit:38,simplifi:12,idx2hand:12,though:[12,33,38],usernam:2,object:19,addlang:2,first_script:19,regular:[12,33,19,22],letter:[15,18,9,2],bsd:[],passthru:2,don:[30,31,1,2,32,4,34,19,12,33,27,22,23,38,7,37,9,28],doc:[31,2,32,19,34,12,27,38,8,9],alarm:[12,5],doe:[15,31,2,32,18,19,12,5,22,33,11,9],declar:12,wildcard:[12,22],hup:12,dot:32,random:[12,38,7,22],syntax:[15,2],radic:9,protocol:[12,33,2],my_talk_handl:27,absolut:[12,15,8,9],exactli:[12,4,34],matchexempt:12,explain:22,configur:[0,1,2,4,23,34,9,13,16,19,20,22,33,24,25,27,28,29,31,6,35,37,38,39,40],busi:[18,27],rich:[8,9],folder:34,oct:33,tcl_appendresult:19,stop:[18,4,34,19,12,22,8],module_renam:34,jupe:12,report:[25,30,18,9,34],cygwin1:[],bar:12,bandwidth:[20,34],"public":[15,2,12,33,8,9],reload:12,bad:[15,18,22],baa:27,ban:[],septemb:23,respond:[12,18,27,22],botnick:[12,38,2],hasn:38,result:[12,38,11,2],respons:[12,38,9],fail:[2,18,19,12,33,23],hash:[],best:[12,7,19,9],subject:[33,28],awar:12,said:[12,7,27],notcproc:12,hopefulli:[12,31,9],databas:[12,37,27],figur:31,finger:6,awai:12,irc:[],attribut:[12,15,11,7,28],accord:[12,15,9],manpag:2,newnam:12,extens:[31,28],lazi:4,advertis:[8,19,9],clemson:15,ircop:[4,22],setsockopt:[],protect:[15,31,2,22,33,38,8,11,9],mildli:18,fault:[5,34],howev:[2,18,19,6,12,33,38,9],enforceban:22,against:[12,38,19,22],fno:[],login:2,com:[2,34,12,13,33,38,7,9],col:3,old_module_nam:34,rehash:[12,27,34,2],had:[31,2,18,12,22,7],hook_backup:34,formatstr:12,diff:[],trust:[15,19,9,2],assum:[12,38,11,27,2],summar:38,reveng:22,dhave_sys_dir_h:[],three:[12,38,11,7,2],been:[17,2,18,4,34,19,12,38,8,11,9],much:[31,32,19,34,12,9,27],numberlist:12,interest:9,basic:[],unstick:11,quickli:[5,2],mco:[12,2],life:[29,9],worker:31,telnet:[],ani:[29,15,31,1,2,17,32,18,4,34,19,12,27,33,38,8,40,11,9,28],dp_log:34,botattr:[12,7],rang:2,killmemb:18,ident:[12,38,24,4,2],aix:[],gnu:[8,31,20,9],servic:[22,34],serverror:38,sourceforg:[],calcul:38,publicli:25,alltool:2,privatekei:[33,2],stickexempt:12,valididx:12,spawn:8,ishalfop:12,have:[1,2,4,5,7,8,9,17,11,12,15,18,19,22,33,24,27,28,29,30,31,32,34,37,38,39,40],channame2dnam:12,conf:[33,31,9,34,19],module_nam:34,sever:[30,18,19,34,12,6,8,9],grown:8,weekdai:12,userlist:[12,13,4,1,34],perform:[15,31,12,22,8,9],suggest:[9,34,19],make:[],format:[2,3,34,12,38,9],quann:[13,34],complex:12,split:[32,3,4,12,22,24],ldopen:[],complet:[15,31,1,17,12,22,33,9,28],hang:[23,34],pubm:[12,38],yourbot:30,rais:[38,22],topc:12,squar:24,kept:[11,2],botnetop:22,scenario:7,thu:12,thr:2,contact:2,resetban:12,thi:[0,1,2,3,4,5,6,7,8,9,17,11,12,13,15,16,18,19,20,22,23,24,25,27,28,29,30,31,33,34,35,37,38,39,40],gzip:[12,20],everyth:[12,31,19,9],shl_findsym:[],left:[12,18,4,28],identifi:[12,15,2],just:[30,31,1,2,32,18,4,34,19,12,37,23,7,8,9],"_always_":2,hand2idx:12,dhave_dirent_h:[],human:9,sockread:[],yet:[12,38,18,2],languag:[17,30,19,2],previous:12,easi:[12,33,9],elf:19,spread:2,els:[12,32,19,27],save:[17,1,2,34,12,20,22,7,40],applic:[12,9,2],notc:12,mayb:[19,27,2],killignor:12,boldfac:12,background:9,loadhelp:12,apart:[12,34,2],measur:38,daemon:2,ctime:12,specif:[15,4,34,12,33,22,23,38,7,24],arbitrari:12,manual:[2,19,12,33,7,24],remind:2,www:[13,31,9,34],right:[12,0,34],old:[],pl1:12,exemptmask:12,interv:12,maxim:2,resolv:[2,34,12,5,23,24],intern:[12,38,27,2],toctre:[],inact:[35,22],successfulli:[12,9,34],total:[12,17,22,34],fpic:[],revengebot:22,track:[37,31,18,34],delhost:12,core:[],plu:[12,33,38,22,2],bold:[12,15,3,9],rfcequal:12,insecur:22,burn:31,netsplit:[12,17,18,4,2],repositori:9,peer:[33,38,2],cygssl:[],post:9,ircnick:12,obj:[],slightli:[],simul:[12,9,2],cipher:[12,33,2],outgo:[12,2],awk:[],produc:[12,2],match:[],bounc:4,"float":19,encod:[12,3],bound:[12,2],ignorelist:12,ischaninvit:12,storag:[40,34],east:2,accordingli:38,deal:[12,15,2],wai:[31,2,32,19,34,12,27,33,38,11,7,9],support:[],fight:22,avail:[17,2,32,34,12,22,24,25,9],width:3,reli:12,msgcmd:[],dcclist:12,constantli:34,war:8,fork:28,head:2,genrsa:2,forc:[31,1,2,12,22,33,40],cidr:[12,2],freenod:9,dynamicexempt:[12,22],reset:12,spun:18,putcmdlog:12,maximum:[29,37,2,4,12,33,35,22,23,38],tell:[12,7,19,27,2],file_receiv:12,autoconf:28,featur:[],openbsd:24,flat:12,decrypt:12,exist:[15,18,34,12,38,8,9],nelin:[],check:[2,34,12,9,22,33,38,27],sticki:[12,11],vista:24,encrypt:[17,34,12,33,7,39],when:[31,1,2,32,18,4,34,19,12,5,40,22,33,38,11,24,39,9,28],deni:[],flood:[29,15,2,17,6,12,22,38,8,7,9],test:[15,27],dirent:[],node:33,intend:[12,17,11,31,28],chjn:12,intens:38,consid:[12,11,32,9,2],getop:22,lsocket:[],receiv:[19,12,37,23,38,7,27,28],faster:12,anywher:[12,32],ignor:[17,1,2,6,12,38,8,7,9],maxdepth:[],time:[30,31,22,1,2,18,32,3,4,19,12,33,35,7,23,8,11,9],push:[12,28],maxsend:23,daili:12,chain:[33,2],skip:9,logfilenam:2,global:[],signific:[9,34],skim:9,autoop:22,netbsd:24,milk:15,lld:[],depend:[15,2,34,12,33,11],puthelp:12,flash:3,readabl:9,module_entri:34,opportunist:33,nxdomain:23,larg:[38,4,9,2],sourc:[30,31,2,19,34,12,9,33,27,28],string:[12,27,4,34,2],unfamiliar:27,onchansplit:12,octob:[38,22,2],word:[12,4,27],statuslog:22,brows:27,myownevent123:12,eden:12,administr:19,level:[12,15,20,2],did:9,die:[12,9,34],item:12,team:[0,1,2,3,4,5,6,7,8,9,17,11,12,13,15,16,18,20,22,23,24,25,27,28,29,30,31,32,33,34,35,37,38,39,40],quick:[],dir:[12,19,9],prevent:[29,4,19,12,22,33,8,24,7,9],slower:2,sign:[12,33,38,3,2],ufl:12,port:[1,2,12,33,23,38,7,24,9],appear:[12,7,2],iscompress:12,scripter:7,repli:[2,4,6,12,34,23],deludef:12,killexempt:12,str_protect:34,current:[29,2,32,3,4,34,12,37,33,39,9,28],privmsg:[12,27,22],ground:2,unban:[12,22,2],gener:[18,19,12,27,33,8,9],french:2,explicitli:33,modif:12,address:[29,1,2,12,7,24,25,28],along:[],setdesc:12,wait:[2,4,34,12,35,23,38],box:2,invit:[],bot:[],queue:[12,38,34],behav:12,myvar:30,commonli:[12,2],novic:[8,9],love:27,getinfo:12,hook_rehash:34,modul:[],prefer:[],myip:12,fake:12,instal:[],geteggdrop:9,jan:12,memori:[12,17,18,34],give:[15,32,31,17,2,12,27,22,38,7,9],todai:12,handlen:12,msg:[17,2,32,4,34,19,12,13,38,9],scope:27,hook_5minut:34,checkout:28,capit:[18,9],peopl:[29,15,1,2,17,32,3,4,12,22,37,38,8,9],enhanc:34,tandem:[],templat:28,examin:34,effort:[8,9],easiest:19,chanprog:[],prepar:7,cap:34,uniqu:2,cat:[],descriptor:[],botnam:[12,7],whatev:[17,31,2,3,12,9],purpos:[0,2,34,8,25,7,9,28],overwritten:[12,2],cmd_t:34,protectfriend:22,topic:[12,27],abort:[12,33],isdynam:12,occur:[12,18,4],alwai:[31,12,22,8,11,9,28],differenti:12,multipl:[17,2,34,12,8,7,9],get:[],ping:6,modulenam:34,uptim:[],write:[0,2,34,12,9,27],till:12,anyon:[12,11,22,9],map:[],birthdai:2,lastbind:12,max:[29,2,4,35,37,38],clone:[22,9],usabl:[37,34],mac:24,aop:22,mai:[30,2,18,4,20,19,12,35,27,22,37,7,24,9],drastic:[12,34],protecthalfop:22,data:[12,22,34,1,19],man:2,masktyp:12,regularli:17,stress:9,autotool:28,gethostnam:[],stdio:34,newidx:12,inform:[],"switch":[12,33,30,34,2],preced:[12,33],combin:[12,17],april:5,offend:19,ordinari:[12,33],talk:[17,32,27],midnight:2,ttl:23,smelli:31,cold:28,still:[17,31,1,2,19,12,22,9],pointer:[17,31,3,9],cvsroot:28,dynam:[12,11,31,19,22],ethic:2,group:[12,2],monitor:[12,11],putloglev:12,instantli:38,platform:[8,9,2],window:[24,27,9],logmod:34,dhave_sys_select_h:[],mail:[],main:[],meridian:2,limbo:2,non:[33,18,4,34,12,5,22,23,38,7,11],chaninvit:12,guppi:12,initi:[12,33,24,27,34],now:[15,31,2,4,12,5,33,8,24,7,9],isjup:12,discuss:9,down:[31,18,19,12,8,7,9],name:[16,31,2,34,12,5,38,27,28],didn:[19,28],separ:[17,30,31,2,34,12,38,7,24],killchanban:12,januari:[29,16,35,39,13,40,25,9],compil:[],domain:[23,7,9],replac:[2,3,34,12,22,38],arg2:12,continu:[12,18],setchan:12,ensur:[7,34,28],year:[12,8,9,2],happen:[2,18,19,12,27,11,9],bothandl:27,tcl_string:34,hacker:19,shown:[18,2],accomplish:31,space:[12,8,35,9,2],passwdok:12,internet:[12,33,8,9],correct:[31,18,9,2],integr:9,lag:[32,2],userinfo1:2,setflag:12,argn:12,org:[31,2,34,12,7,25,9,28],"byte":[12,38,35,4,34],care:[12,28,2],newnick:12,couldn:12,question:[],globalflag:12,synchron:33,thing:[0,31,2,18,19,34,12,5,7,9,28],place:[31,2,4,34,19,12,22,33,11,9],nicknam:[15,30,2,18,3,12,33,38,27],think:15,frequent:[],first:[],origin:[12,38,9,28],directli:[12,22,34,1,19],spoken:12,onc:[18,4,19,12,27,22,37,38,9,28],yourself:[33,8,19,28],nick2hand:12,"long":[29,31,1,2,3,34,12,5,22,23,38,11],open:[2,32,19,12,9,33,27,28],size:[12,37,35,34,2],given:[12,23,9],silent:2,module_regist:34,caught:[12,9],necessarili:12,encpass:12,userinfo:[12,6],conveni:2,friend:[15,22],rem_tcl_command:34,tclhash:[],especi:[27,9],copi:[12,27,35,9,34],specifi:[29,17,1,2,18,37,34,12,33,22,23,38,11,24],broadcast:[12,32],github:[],enclos:[12,24,22],mostli:9,than:[2,4,6,19,12,22,33],serv:2,wide:[33,32],yourusernam:28,getown:12,were:[2,4,12,11,7,9],posit:[34,2],janitor:15,seri:[12,28],pre:[12,19,9],sai:[19,12,27,22,7,9],autohalfop:22,argument:[12,4],properli:[7,28,19,2],deliv:12,cflg:[],getfileq:12,techniqu:30,destroi:[8,9],moreov:2,module_depend:34,libpath:[],note:[],take:[31,2,19,34,12,33,38,25,9],advis:[38,31],noth:[12,19,34,2],channel:[],begin:[12,24,27],sure:[2,12,9,22,7,27],pain:35,trace:38,normal:[30,2,6,34,12,33,27,23,38,8,9],buffer:1,compress:[],frim:34,bitchx:12,abus:[8,9],pair:12,gunzip:9,compressfil:12,renam:[12,30,34,2],renudef:12,later:[29,31,2,39,34,12,33,25,9],thse:4,erasenot:12,badg:15,pattern:12,newchaninvit:12,recipi:12,signoff:12,show:[2,34,12,22,7,25,9,28],german:2,concurr:2,permiss:[9,2],hack:19,filesend:12,evnt:[12,38],onli:[0,1,2,3,4,7,8,9,11,12,13,15,19,22,33,24,25,27,28,29,30,31,32,34,38],slow:[18,2],mode_proc:12,isexempt:12,activ:[32,18,12,22,33,11],enough:[12,9,2],needal:12,tlsstatu:12,unloadmodul:12,over:[30,2,34,12,33,38,24,9,28],sighup:12,nearli:19,variou:[31,2,34,12,11,9],dynamicinvit:[12,22],ircd:[12,38,18,4],repo:28,ssl:[],cannot:[15,8,19,34,28],utoop:[],requir:[],prime:2,lame:[2,4,19,12,22,7],egghead:[0,1,2,3,4,5,6,7,8,9,17,11,12,13,15,16,18,20,22,23,24,25,27,28,29,30,31,32,33,34,35,37,38,39,40],dronepup:12,tcllibfn:[],where:[29,17,37,2,19,34,12,33,27,22,23,38,9],isoptest:22,ircnet:[22,38,4,9],hook_daili:34,ircii:[12,35,19],infinit:37,detect:[12,33,24,19,38],matchban:12,you_want_to_export:34,behind:[18,2],listinfo:9,add_tcl_str:34,between:[29,1,2,34,12,22,38,7,24,9],"import":[12,32,27,34,2],across:[12,30,8,7,9],august:4,screen:[3,9,28],ssllib:33,collect2:[],come:[12,38,9,4,34],unld:12,cycl:[38,22,2],quiet:[15,38,2],tout:12,mani:[2,4,34,12,27,22,23,38,7,8,9],module_undepend:34,color:[12,9],period:[12,5,23,34],exploit:19,enlarg:31,colon:[24,2],cancel:12,newchanban:12,caret:18,getflag:12,coupl:[12,9],harmless:19,west:2,hardli:18,invers:3,mark:[12,15,17],resort:19,sslcert:[33,2],getdesc:12,resolut:2,ispermexempt:12,rememb:22,stealth:2,those:[19,20,5,34,38,9],"case":[12,23,38,19,2],blowfish:[],might:[2,18,4,34,12,33,9],mount:35,no_irc:[38,34],cast:[],invok:12,fil:12,abcdechannel:12,hook_minut:34,anytim:5,advantag:30,stdout:34,henc:[12,19,34],everydai:2,worri:[],destin:[12,34],eras:[12,8],serverop:22,ascii:12,chansettyp:12,any_other_funct:34,develop:[0,1,2,3,4,5,6,7,8,9,17,11,12,13,15,16,18,20,22,23,24,25,27,28,29,30,31,32,33,34,35,37,38,39,40],author:[33,2],alphabet:2,dalnet:[38,4,9],same:[30,31,2,3,4,34,19,12,20,22,33,7,8,9],binari:[31,19,28],html:[24,9],pad:12,pai:[12,9],document:[],resetchanjoin:12,week:12,exhaust:12,finish:[12,9],ischanjup:12,someon:[18,4,19,12,27,22,9],weed:[19,9],driven:12,capabl:2,improv:[8,9],extern:2,autovoic:[15,22],appropri:[28,31,2],choos:[17,31,19,9,2],macro:34,without:[17,31,2,18,19,34,12,6,22,33,8,39,7,9],ieggdrop:[],dereferenc:[],ispermban:12,execut:[],putkick:12,kill:[12,27,18,19,9],ld_library_path_32:[],death:31,except:[2,6,12,34,33,38,9],littl:[7,31,30],setenv:[],pile:19,real:[12,38,34],around:[8,19,27],read:[31,2,3,34,12,5,27,8,9],rejoin:12,pushmod:12,traffic:[12,30,2],moc:12,world:[8,9,2],oldnam:12,mod:[12,13,31,34,2],tolow:27,whitespac:12,integ:12,server:[],either:[31,2,19,12,33,11,24,7,9],output:[],cfox:9,manag:[37,34],sneaker:31,botchk:[31,9],handshak:12,constitut:[38,22,2],dupwait:2,confirm:28,someircnetwork:2,exit:[12,38,9,34,40],apostroph:32,islink:12,refer:[12,34,2],process:[31,18,19,20,12,8,7],power:[17,9],imposs:8,egghelp:[31,9],fulli:2,mycron:9,earlier:19,src:[12,31,4,34,28],stone:38,central:[37,2],greatli:[],chof:12,chon:12,numvers:12,stand:[8,9],act:[12,17,33,34,2],backup:[12,34],routin:[12,4,2],addus:12,activest:9,dnslookup:12,unstickban:12,strip:[12,2],your:[],log:[],area:[15,30,2,34,12,37],aren:[12,5,30,9,2],tcl_cmd:34,negcach:23,overwrit:12,start:[0,31,2,32,3,19,34,12,27,38,8,39,7,9],compliant:[38,4],interfac:[12,2],rmdir:12,lot:[27,31,4,9],ipv6:[],strict:2,unam:12,untar:9,jun:28,prerehash:12,jul:[24,9,34,28],ldnshread:[],lnsl:[],longer:[12,9,31,4,34],pull:[9,28],possibl:[31,2,32,18,19,6,12,22,33,24,9,28],"default":[31,2,4,20,12,33,22,23,38,11,9],halfop:[12,15,22],embed:12,expect:[12,6,34,2],gone:[12,4],displaynam:34,uid:[33,2],creat:[],filt:[12,34],certain:[15,17,2,3,12,11,24],decreas:2,file:[],fill:[33,28,9,2],again:[31,2,34,11,25,7,9],collid:18,ctcp:[],ctcr:12,hybrid:38,prepend:2,field:[12,33,38,2],valid:[17,31,2,34,12,22,33,38,7,27],pathnam:12,you:[0,1,2,3,4,5,6,7,8,9,17,11,12,13,15,18,19,20,22,23,24,25,27,28,29,30,31,32,33,34,35,37,38,39,40],string2:12,string1:12,cygcrypto:[],symbol:[12,18,19],drift:18,handonchan:12,ansi:12,getudef:12,timerid:12,reduc:34,unbind:[12,30,4,2],unload:[12,34],botfl:12,descript:[12,28,34,2],nodesynch:22,mass:9,cpu:[12,38,2],nmalloc:34,putserv:[12,27,22],all:[1,2,4,23,34,7,11,9,17,12,15,18,19,22,33,24,27,28,30,32,6,37,38],partylin:[15,30,2,34,12,33,7,40],tcl_int:34,sanitycheck:2,month:[12,2],unrest:8,add_builtin:34,disc:12,suno:[],abil:[12,17],follow:[30,31,2,3,4,34,12,22,33,38,7,9,28],alt:[38,2],disk:[17,2,12,35,8,9],prdownload:[],hook_load:34,dyld_library_path:[],init:[12,38,2],program:[],smile:31,introduc:[12,9],readonli:34,liter:34,masquerad:2,song:12,fals:[12,18],unixtim:12,mpj:12,util:9,utim:12,robei:[15,31,3,9,17],fall:33,veri:[15,17,2,18,34,13,27,38,9],unoffici:24,quakenet:9,strang:18,botisop:12,gayteen:8,heaven:31,list:[],adjust:[8,4,9],form:[12,8,3,9,34],func_tabl:34,small:[7,35,31,30],ten:9,getchanidl:12,unsatisfi:[],past:[9,34,2],zero:12,design:[17,8,9,28],pass:[12,32,18],further:12,what:[],sub:12,clock:18,sun:2,section:[2,4,34,19,12,27,22,7,9],abl:[31,2,32,18,4,34,22,38,9],delet:[12,30,9],version:[31,3,4,34,19,12,5,6,33,8,24,25,9,28],dp_help:34,helpfil:12,libtcl80:19,method:[30,39,4,34],vali:12,full:[12,33,24,31],themselv:[30,7,4],shouldn:34,free:[9,34],solari:[],excess:[38,22,9],strong:2,modifi:[30,2,4,12,23,28],valu:[],search:34,sender:12,ahead:8,fwd:29,amount:[9,34,2],starttl:[12,33],splt:12,action:[12,2],via:[],reiniti:12,cafil:[33,2],filenam:[29,2,12,22,33,28],famili:2,establish:[12,33,24,27],memor:31,select:[17,28,9,2],aggress:[7,19],ctrl:12,regist:22,two:[30,1,2,4,34,12,7,11],loadchannel:12,new_module_nam:34,taken:[12,34],forcefulli:33,minor:[12,34],more:[17,31,2,4,34,19,12,13,6,33,7,9],turbo:35,desir:34,hundr:19,ital:12,mirc:[12,38],stick:11,particular:2,known:[],unloadhelp:12,dccsend:12,cach:[12,23],none:[29,16,0,35,12,13,22,23,38,39,40],hour:[12,11,25,34,2],outlin:[],dev:[9,28],remain:[12,11,22],paragraph:31,listnot:12,learn:[12,17,4,2],preinit:12,dec:12,prompt:[31,9],bogu:2,useabl:2,share:[],accept:[1,2,19,12,33,7],minimum:[12,8,22],resync:1,phrase:12,userban:22,cours:[12,7,31,2],csh:[],secur:[],rather:[12,33],anoth:[29,1,2,3,4,34,19,12,27,22,38,8,7,9],shutdownreason:12,reject:[38,7,2],simpl:[12,9,34],serveraddress:12,unabl:[12,7,4],wasop:[12,15,4,22],resourc:34,referenc:[],ranlib:[],okai:2,unlink:[12,2],associ:12,stabil:35,"short":[31,34],resetexempt:12,caus:[12,7,18,9],altnick:38,help:[],hook_userfil:34,soon:[12,5,19,22],through:[17,32,12,9,22,38,24,27],reconnect:[12,1],newexempt:12,our_chan:27,paramet:[12,9],style:11,dccuse:12,"04may2000":2,pend:22,bypass:12,onelin:12,userport:7,alter:[12,17],wouldn:2,isexemptsticki:12,good:[12,15,8,9,2],"return":[],timestamp:[12,2],setdccawai:12,cet:2,botnet:[],gethostbynam:[],chanserv:22,instruct:34,refresh:12,bless:9,easili:[12,17,8,9],found:[12,28,19,34,2],unicod:5,userexempt:22,isban:12,hard:2,idea:27,crontab:[],realli:[8,28,30,27,2],connect:[],horribl:31,utexa:18,http:[13,25,9,34],beyond:[],add_tcl_command:34,event:[2,34,12,27,8,7,9],ftp:[28,9,34,19],mrlame:2,publish:2,thrill:27,hltran:[],print:28,variable_nam:34,unaccess:17,occurr:34,woobi:[],qualifi:2,advanc:[],dehalfop:[12,15,22],differ:[30,31,2,19,12,22,33,38,9,28],pub:[12,38,27,9,28],reason:[2,18,34,12,8,7],base:[12,9,2],put:[29,16,0,1,2,39,4,20,12,33,13,6,22,23,38,37,25,35,9,40],bask:28,bash:[],omit:[12,33],perhap:18,perman:[12,11,22,2],eggdev:[],lifetim:12,assign:[7,2],major:[12,9,34,28],dccbroadcast:12,notifi:[12,29,38,2],obviou:18,upper:23,feel:[9,34,28],dealloc:34,misc:[12,2],number:[29,15,2,4,34,12,37,35,22,33,38,7,28],ltcl7:[],done:[1,34,12,7,27,28],stdlib:34,blank:12,stabl:9,miss:[12,9],retrydelai:23,gpl:[8,9],guess:4,fuller:9,script:[],ipaddress:12,interact:[4,2],least:[2,18,4,34,27,11,9],chanmod:22,statement:12,natur:9,scheme:9,store:[29,2,34,12,22,37,7,25,40],putquick:[12,38],option:[31,2,19,34,12,22,33,38,9,28],blindli:4,mode_proc_fix:12,part:[17,30,2,18,12,38,8,9],pars:12,userrec:[],consult:[33,24],reinstal:19,jump:[12,33,7,38],kind:12,stb:38,whenev:[34,12,33,38,7,27],remot:[12,7,3,2],gotten:[],remov:[17,30,2,19,34,12,22,11,24,9],stall:12,str:12,toward:17,danc:12,comput:[18,19],packag:9,delchanrec:12,dedic:9,"null":[9,34],entireti:31,built:[12,30,19],equival:[38,34],banmask:12,self:[33,38,2],nkch:12,setudef:12,undeclar:[],also:[1,2,3,4,33,6,7,8,9,17,11,12,15,18,19,20,22,23,28,29,30,31,32,34,35,37,38,40],xreq:[],useless:[],maskhost:12,brace:22,uplink:[12,18],unstuck:12,distribut:[8,19,9],filesystem:[12,15],reach:[38,4,2],quota:2,most:[17,2,32,18,4,34,19,12,35,27,38,8,9],plai:27,rem_tcl_str:34,cygwin:24,addr:[24,2],fileresend:12,clear:[12,33,9],cover:[11,7,27],destruct:8,ltcl:[],ext:[],clean:19,squelch:38,usual:[12,33,11,24,9,28],carefulli:[12,9],misnom:12,sublist:12,rejn:12,fine:[38,4,2],find:[31,32,4,34,19,12,13,27,23,9,28],penalti:38,firewal:2,setown:12,pretti:[8,32,27,9],killchanexempt:12,paranoid:[1,2],solut:[],queu:[12,38],dp_stdout:34,hit:12,opchar:4,llamabot:2,dccputchan:12,isinvit:12,yourbranchnam:28,mainten:[15,18],fastest:9,xfer:[15,35],banner:[3,2],him:[19,9],restart:[31,2,19,34,12,9,27],resend:[12,23],ischanban:12,"_____________________________________________________________________":[],newchanexempt:12,userflag:4,tcl:[],rfc:[12,38,4],crf:9,common:[15,2,33,38,7,9],sslport:33,certif:[],set:[],stump:9,delus:12,creator:12,see:[31,2,32,3,4,34,19,12,22,38,7,25,8,9],sed:[],sec:2,arg:[12,34],close:[12,34],someth:[12,28],debat:9,reus:12,experi:31,realnam:38,altern:[12,33,7,38,2],oldhandl:12,appreci:[],numer:12,isol:7,isop:[12,22],lowercas:[38,18,27],succeed:12,unrealircd:4,botonchan:12,chanset:[7,22],both:[2,12,22,33,38,8,24,7,9],last:[0,1,2,3,4,5,6,7,8,9,17,11,12,13,15,16,18,19,20,22,23,24,25,27,28,29,30,31,32,33,34,35,37,38,39,40],delimit:12,bota:7,botc:7,botb:7,context:34,getfilesendtim:12,whole:[9,34,19],storenot:12,load:[0,1,2,4,34,7,9,12,13,16,18,19,20,22,23,25,27,29,6,35,37,38,39,40],simpli:[12,9],hostmask:[12,17,11,7],point:[0,31,2,34,12,38,7],schedul:12,unstickexempt:12,header:[33,34],shutdown:12,linux:[5,24,18],mistak:9,throughout:34,putxferlog:12,vertic:12,due:[12,38,4,2],empti:12,whom:12,secret:22,whoi:2,deprici:38,nonexist:18,ram:2,great:[31,9],resetchanidl:12,coordin:2,understand:2,func:34,demand:[8,9],chatter:2,convers:[33,32,34],look:[17,0,31,2,19,34,12,13,27,22,33,8,25,9,28],durat:12,"while":[2,32,18,19,34,22,8,11,9],adh:2,behavior:[2,4,6,12,11,24],error:[2,19,34,12,5,38,28],fun:31,anonym:2,everyon:[12,32],expir:[29,2,4,12,22,33,38,11],jpk:2,motd:[3,2],readm:[],matchcidr:12,itself:[12,9,34,2],xtra:12,chase:[8,9],tclpip84:[],grant:[33,17],belong:2,ischanexempt:12,shorter:22,octal:2,cygz:[],higher:[33,5,4,1],dontkickop:22,mybot:19,itch:[],optim:38,wherea:12,moment:[5,4],temporari:[11,25,22,2],user:[],wherev:24,yesterdai:2,recent:[33,9],lower:38,sha1:33,init_serv:38,lib:19,discourag:4,older:[12,24,9],entri:[12,19,9,2],spent:12,mod_ext:[],person:[31,2,18,12,9,27],chanlist:12,explan:[12,22],chanflag:12,stopnethack:[15,22],ldl:[],dccdumpfil:12,stripcod:12,newban:12,fd_set:[],extra:[12,19,34,2],revok:[38,2],isinvitesticki:12,input:12,sigquit:12,queuesiz:12,bin:[],march:[18,15,11,3],laston:12,transpar:2,big:[12,30],eggdrop1:[9,34,28],game:[8,9],bit:[31,2,18,12,5,33,27],uncompressfil:12,ircu2:4,outright:8,success:[12,34],autosav:40,userfil:[30,1,2,19,34,12,35,20,22,7,39,8,9],signal:[12,19,27],flud:12,resetinvit:12,popular:[8,9,2],encount:27,bcst:12,often:[23,34,2],msgnotic:[],visibl:12,some:[1,2,4,23,6,7,8,9,17,11,12,15,18,19,20,22,33,24,27,28,29,30,34,35,37,38,40],back:[2,19,12,33,38,9,28],understood:38,sampl:22,dhave_config_h:[],affili:9,shall:2,per:[12,4],invitelist:12,pem:2,misc_fil:[],slash:32,proc:[12,38,27,34],kreativrauschen:[13,34],machin:[31,18,19,9,2],previou:[12,19,9],run:[31,2,18,3,19,34,5,22,33,38,8,7,9,28],step:[31,9,34,28],ld_library64_path:[],dp_server:34,hook_hourli:34,zip:[],idx:[12,34],chfinger:2,idl:[12,22,34],botlist:12,killchaninvit:12,block:[12,5,35,3,34],plan:[27,9],miracl:31,univers:2,nsl:[],within:[12,37,11,34,2],perm:2,contributor:28,botishalfop:12,tclmisc:[],inclus:[],bywho:12,sock:[34,2],submit:[],custom:[12,17,33],includ:[],forward:29,amaz:9,nfree:34,files:37,fileq:[],himself:9,botnetnick:12,pwd:37,link:[],newer:9,line:[],talli:34,info:[31,2,4,34,12,40,22,9],utc:2,fdb:[],consist:[12,17,7,32],callev:12,sharebot:[12,7,2],highlight:15,similar:[30,2,32,12,22,28],autobotchk:[],botisvoic:12,tclinc:19,changes1:28,chan:[12,30,27,4,22],putlog:[12,38,34],doesn:[32,18,4,19,12,5,27,23,40,9],repres:12,"char":[12,34,2],incomplet:[],chat:[17,2,32,34,12,6,33,38,8,24,7,9],home:[31,19,37,33,9,28],newignor:12,bracket:24,coder:[9,34],kvirc:33,newhandl:12,titl:15,invalid:[12,19],nick:[15,2,4,12,22,38,25,27,28],matchaddr:12,nat:[24,2],nice:[34,28],maindoc:[],meaning:12,chaninfo:7,hostaddress:7,mymodul:[],isignor:12,lang:30,getpwd:12,depth:[33,2],md5c:[],karma:28,far:27,fresh:2,libtcl:19,hello:[17,2,4,19,12,38,27],code:[],queri:[23,24],clearqueu:12,gmake:19,edu:[12,15,18,9],killinvit:12,issuer:33,privat:[29,1,2,32,12,33],base64:12,send:[29,1,4,34,19,12,35,20,27,38,7,24,9,28],making_modulenam:34,getlink:12,tcllib:19,breach:12,fatal:12,sent:[15,1,2,32,4,34,12,33,25,9],passiv:7,umod:38,rfc_compliant:12,whichev:11,getchanmod:12,installandsetup:[],hook_di:34,llama:7,prerestart:12,relev:[9,34],tri:[12,19,34,2],tcluser:[],dname:12,button:28,"try":[31,2,19,34,13,27,38,25,9,28],pleas:[31,2,19,34,12,22,38,39,9,28],impli:[9,34],smaller:31,chanban:12,relink:7,cron:[12,9],video:12,download:[],mnnrrpp:12,click:28,append:[12,34],compat:[12,31,2],index:28,dp_mode:34,access:[15,17,32,19,34,12,27,33,38,8,9],hourli:[29,34,2],chanrec:[12,4],isvoic:12,garbag:34,can:[1,2,3,4,5,6,7,8,9,17,11,12,13,15,18,19,20,22,23,24,27,28,29,30,31,32,33,34,35,37,38,39,40],chose:[],len:38,bodi:[9,28],module_xlib:[],intercept:12,let:[29,17,2,18,34,12,27,22,23,7,9,28],flushmod:12,setpwd:12,becom:[12,19,9,2],sinc:[17,30,2,4,12,33,8,24,7],convert:[12,18,27,9],copyright:[0,1,2,3,4,5,6,7,8,9,17,11,12,13,15,16,18,20,22,23,24,25,27,28,29,30,31,32,33,34,35,37,38,39,40],broken:[12,5,18,2],chaddr:[33,7],beldin:7,cert:[33,31,2],typic:[12,17,32,19,2],danger:[12,19],forbid:[8,31],appli:[],foundat:9,valis0:12,serverlist:12,redo:9,getus:12,add_tcl_int:34,from:[1,2,3,4,5,7,8,9,11,12,15,18,19,22,33,24,27,29,30,31,32,34,38],usa:9,commun:[12,7,32,34,28],deop:[12,15,22],doubl:38,upgrad:[],mydir:[37,9],next:[2,34,12,22,38,9,28],few:[12,18,9,2],doubt:24,usr:[19,28],sort:[8,11,9],tcl8_4:[],vhost6:[24,2],vhost4:[24,2],trail:34,insensit:12,barf:19,efnet:[38,4,9],account:[29,17,19,34,8,9,28],retriev:[29,34,28],cambridg:9,pour:28,getfil:12,annoi:27,obvious:[12,11,9],meet:33,control:[],tar:[9,34,28],needop:12,newinvit:12,high:[5,30],tag:12,tab:34,tarbal:8,onlin:[12,29,9,34,19],everywher:[12,24,2],ld_library_path_64:[],gcc:[],sit:[8,22,9,2],six:12,subdirectori:[12,37],rem_tcl_int:34,ldclose:[],chri:9,delai:[4,22],express:12,overridden:4,onchan:12,bloadmap:[],watch:32,sundai:12,mrslame:2,attent:[12,38,9],discard:[12,1],gseen:[13,34],rcvd:12,cyggcc_:[],physic:7,alloc:[12,34],seriou:9,guru:9,correspond:[12,11,22],getdccidl:12,element:12,issu:[12,9,2],matchattr:12,freebsd:24,botnetcentr:3,module_find:34,unstickinvit:12,windrop:[],move:[12,38,31,9],findus:12,comma:[32,2],effici:[17,8,7,9,2],bunch:[],perfect:9,myproc:12,lamestbot:[29,31,2,3,22,38,7],infrastructur:33,therefor:[12,4,34,2],crash:[12,31,19,9],greater:12,handl:[2,12,5,33,11,28],auto:[15,7],spell:9,dai:[12,29,30,35,2],auth:[33,2],memberlist:12,libtcl8:19,fingerprint:[33,2],front:[12,22],somewher:[31,2],crt:[33,2],anyth:[2,32,19,8,7,9],edit:[30,31,9],februari:6,trap:[],sdebug:31,chhandl:12,chunk:[38,19],partproc:12,"static":[22,31,19,34],our:[12,7,19,27],patch:[],special:[12,7,28],out:[31,2,32,18,19,34,12,35,33,8,25,7,9],variabl:[],ousterhout:[19,9],tcsh:[],twice:12,req:[33,2],reboot:19,rej:28,addhost:4,stuf:19,rel:[12,23,34],hardwar:[8,9],gethostbyaddr:5,math:12,statist:[25,34],clarifi:11,takeov:4,insid:2,kilobyt:2,setchaninfo:12,releas:[12,8,28,9,2],afterward:[4,2],could:[2,18,12,27,33,38,7,24,9],ask:[],timer:[12,18,27],keep:[30,2,18,34,22,37,38,9,28],counterpart:12,length:[12,33,4,34,38],enforc:[22,2],outsid:[27,2],retain:12,timezon:2,softwar:[8,9],logsiz:2,suffix:[34,2],echo:12,exact:12,date:[12,9,34,2],barr:2,bitch:22,patchnam:28,remak:19,owner:[15,2,32,19,12,22,9],toi:8,fri:12,invitemask:12,reread:12,dump:[12,38,2],newus:2,licens:[8,9],perfectli:[],mkdir:12,nactiv:[],messag:[],backdoor:19,attack:22,procnam:12,termin:[12,31,19,9],str_dir:34,"final":[8,9,2],low:[38,35],relinquish:12,shell:[17,31,2,8,9,28],gear:17,punish:[12,15,22],juli:[8,31,28],rsa:2,putdcc:12,nobodi:[19,27],herself:9,haven:[31,27],fprint:[33,2],bother:9,charact:[],cygwinhom:[],sens:[8,19,9],bind:[],shl_load:[],sslinc:33,module_unload:34,plaintext:[12,33],patch1:28,otherdir:31,deprec:12,robot:17,sysadmin:19,corrupt:28,egg_lang:2,reserv:[32,2],need:[15,31,2,4,34,19,12,33,22,23,38,7,24,8,9],turn:[12,38,22,2],tidi:34,wasoptest:22,p_tcl_hash_list:34,min:2,rout:12,istl:12,istn:22,mix:[4,22],which:[15,30,31,1,2,18,32,3,19,34,12,33,40,22,23,38,7,24,11,9,28],mkcobx:2,singl:[12,4],unless:[12,38,11,4,2],allow:[29,17,31,1,2,4,34,12,37,35,20,22,33,38,7,8,9],descriptivebranchnam:28,who:[15,2,32,4,12,22,38],patch_howto:[],s_client:33,eight:2,tandcmd:[],why:[],getchaninfo:12,url:[12,9,2],urn:28,request:[2,4,6,12,22,33,38,8,11,9,28],pipe:7,pidfil:2,snapshot:9,determin:[31,34,12,33,7,24],occasion:19,nethack:15,fact:[8,9],text:[15,30,2,3,34,12,5,27,22,33,38,9],verbos:12,bring:19,logflag:2,anywai:[33,34,2],locat:[33,28,2],sh5:[],forev:2,should:[37,31,1,2,6,32,33,4,34,19,12,5,27,22,23,38,7,40,9,28],haschanrec:12,won:[1,2,34,12,27,22,33,7,11,9],suppor:2,local:[2,32,19,12,33,27,28],ksh:[],meant:19,insight:18,contribut:28,notat:2,beat:[31,19],familiar:9,bear:9,autom:[8,9],washalfop:[12,15],db8:[38,2],increas:[34,2],dccutil:[],endless:22,enabl:[17,2,4,34,19,12,35,27,22,33,38,7,24,8,9,40],she:[12,19],contain:[31,2,19,12,33,7,24,9,28],grab:12,view:[12,17,34],notebox:12,unimport:2,knowledg:[8,31],killutim:12,chanfil:[30,22],hook_idl:34,dccsimul:12,entitl:15,nforceban:[],statu:[30,2,34,12,22,8,9],correctli:[12,31],module_load:34,dynamicban:[12,22],boundari:23,dll:[],favor:1,written:[12,8,19,34],uhost:[12,27],progress:9,email:[12,28,9,2],setlink:12,kei:[],sigil:12,job:33,entir:[12,34],disconnect:[12,38,1,2],hook_pre_rehash:34,addit:[],revers:12,schat:[33,2],equal:12,rem_builtin:34,etc:[15,30,2,17,4,34,12,27,22,7,24,8,9,28],admit:35,instanc:22,freeli:[8,9],sigterm:12,strftime:[12,2],comment:[12,25,4,27,2],ld_libraryn32_path:[],wall:12,arriv:12,chmod:[31,2],walk:31,gotdcc:[],incess:8,hubcap:15,respect:[23,3],unsticki:11,admin:[3,19,2],home2:[],quit:[12,38,9,2],mailman:9,decent:34,sendnot:12,compon:12,treat:12,loadmodul:[29,16,0,1,2,39,6,4,34,19,12,37,13,20,22,23,38,25,35,40],immedi:[12,38,27,9],lameshar:7,ldld:[],mnot:1,deliber:33,exemptlist:12,therequir:33,togeth:[17,31,2,38,8,7,9],myword:4,crappi:12,userhost:27,plain:[33,2],killban:12,keyout:33,defin:[15,2,6,4,34,12,20,22,27,38,7,11,9],wild:12,ill:12,func_nam:34,helper:27,getdir:12,almost:[15,8,11,9],site:[15,9,34,19],addchanrec:12,archiv:[9,28],incom:[12,37,34,2],revis:[0,1,2,3,4,5,6,7,8,9,17,11,12,13,15,16,18,20,22,23,24,25,27,28,29,30,31,32,33,34,35,37,38,39,40],parti:[],member:[22,34],add_hook:34,regluar:12,countus:12,inc:[19,9],slave:7,hostnam:[2,18,34,12,22,23,24],denot:12,iot:[],upon:[15,8,9],effect:[12,37,11,2],logfil:[30,2,19,34,12,25],hand2nick:12,build:[],expand:[8,9],off:[31,2,32,4,12,22,38,7,27],center:3,mention:34,well:[31,2,18,12,33,9,28],ld_library_path:[],thought:9,command:[],english:[30,2],undefin:[],latest:[17,18,9],"5c0":[38,2],less:[32,6],boot:[12,2],botcmd:[],filedb:[12,37],fdb1:[],abat:27,rest:[12,7,31,34,2],simultan:[12,35],chandname2nam:12,web:[19,34,2],function_to_cal:34,chpt:12,bell:12,makefil:[31,19,34,28],validus:12,add:[17,31,2,4,34,12,27,22,7,9,28],exempt:[],kick:[15,30,2,4,12,22,38],gmt:[12,2],killtim:12,dest:[31,2,19,12,33,9],piec:31,five:12,know:[29,30,31,2,18,4,34,12,27,38,7,11,9,28],password:[17,1,2,32,4,34,12,33,38,7,39],pier:31,desc:[12,34],insert:[3,22],like:[15,2,17,6,32,4,34,19,12,37,27,22,33,8,39,9,28],finnish:2,likm:22,necessari:[22,9],lose:[18,22,9],lamest:[7,3,22,2],page:28,unreach:7,exceed:2,drop:[12,31,2],reloadhelp:12,suppli:2,"export":30,yyyymmdd:2,flush:1,proper:24,guarante:4,librari:[33,19],tmp:[12,35,2],est:2,leaf:[33,7,2],avoid:[23,34,2],validchan:12,thank:[9,28],chanexempt:12,leav:[31,2,32,19,12,22,38],ipv4:[24,2],kiddi:2,mode:[17,2,4,34,12,6,22,38,11,9],slight:9,dcc:[],vhost:[24,2],host:[15,22,2,12,27,7,33,38,8,11,9],although:[18,4,2],offset:2,protectop:22,stage:34,actual:[2,32,34,12,8,9],socket:[12,34,2],column:3,irix:[],del_hook:34,cerfif:2,modechang:12,cflag:[],filedb_upd:[],botaddr:12,disabl:[2,4,12,22,33,38,24],own:[30,1,19,34,12,9,37,38,27],automat:[15,31,17,2,19,12,33,38,11,24,7,40],warranti:9,automak:[],capath:[33,2],mere:9,getdccawai:12,killdcc:12,transfer:[],trigger:[12,38,27,22,34],downgrad:9,arg1:12,"var":12,"function":[],iconfig:[31,9,34],unexpect:12,subscrib:9,hook_num:34,gain:[15,8,19,9],botmsg:[],buf:4,bug:[31,18,19,9,8,27,28],count:[12,38,18,27],made:[31,1,12,22,8,9],wise:[9,2],temp:[12,2],whether:[12,2],wish:[31,2,4,34,7,25,11,9],displai:[38,3,4,40,2],troubl:[23,2],asynchron:[12,23,34],directori:[],below:[1,2,18,34,12,22],limit:[17,4,12,22,38,24,9],otherwis:[31,2,12,9,33,11,7,27,40],problem:[],instead:[15,30,1,2,4,12,37,27,22,33,9],matchstr:12,evalu:12,"int":[12,34],mask:[12,38,2],dure:[31,20,18,34,1],pid:[12,2],meaningless:15,novemb:1,implement:2,ing:4,probabl:[12,38,19,9],contest:34,dispos:12,percent:3,detail:[33,31,9,34,28],virtual:2,other:[1,2,3,4,33,7,8,9,17,11,12,15,18,19,22,23,24,28,29,30,32,34,38,39],lookup:[12,23,24,18,2],futur:[12,31,4,19,2],branch:[9,28],varieti:[8,9],repeat:[12,9],addbot:12,putnow:12,june:[12,17,7],isbotnick:12,uncommon:18,wallop:[12,2],stai:12,experienc:31,bch:9,eof:12,lamer:2,channelflag:12,rule:9,portion:[12,31,22,34],decemb:[17,30,0,32,8,27]},objtypes:{},objnames:{},filenames:["coreDocs/woobie","coreDocs/share","coreDocs/core","appendices/text-sub","coreDocs/irc","appendices/known-probs","coreDocs/ctcp","mainDocs/botnet","mainDocs/about","installAndSetup/readme","index","mainDocs/bans","mainDocs/tcl-commands","coreDocs/seen","mainDocs/index","mainDocs/users","coreDocs/assoc","mainDocs/features","appendices/weird-msgs","installAndSetup/faq","coreDocs/compress","installAndSetup/index","coreDocs/channels","coreDocs/dns","mainDocs/ipv6","coreDocs/uptime","appendices/index","appendices/first-script","mainDocs/patch","coreDocs/notes","appendices/tricks","installAndSetup/install","mainDocs/partyline","mainDocs/tls","coreDocs/modules","coreDocs/transfer","coreDocs/index","coreDocs/filesys","coreDocs/server","coreDocs/blowfish","coreDocs/console"],titles:["Woobie Module","Share Module","Eggdrop Core Settings","Textfile Substitutions","IRC Module","Known Problems","CTCP Module","Botnet Sharing and Linking","About Eggdrop","README","Welcome to Eggdrop's documentation!","Bans, Invites, and Exempts","Eggdrop Tcl Commands","Seen Module","<no title>","Users and Flags","Assoc Module","Eggdrop Features","Weird Messages That Get Logged","Frequently Asked Questions","Compress Module","<no title>","Channels Module","DNS Module","IPv6 support","Uptime Module","<no title>","Your First Eggdrop Script","Patch How-To","Notes Module","Eggdrop Tricks","Installing Eggdrop","The Party Line","TLS support","Eggdrop Module Information","Transfer Module","<no title>","Filesys Module","Server Module","Blowfish Module","Console Module"],objects:{},titleterms:{code:[],module_report:34,help:9,execut:2,global:12,obtain:9,tcp:12,tcl:12,miscellan:12,bottre:7,program:34,exempt:11,mail:9,main:10,match:12,"return":12,get:[18,9],telnet:2,faq:[],school:28,ssl:[33,2],botnet:[33,7,2],requir:34,term:7,list:9,authent:33,patch:28,stuff:9,module_clos:34,quick:[31,9],output:12,eggdrop:[10,30,31,2,17,34,12,27,8,9],compil:[],certif:33,set:[33,10,24,9,2],old:28,startup:[31,9],procedur:12,connect:12,instal:[33,10,24,31,34],download:28,bore:9,server:38,variabl:12,what:[7,31,9,34],legal:9,substitut:3,module_start:34,irc:[33,4],woobi:0,core:[10,2],iwelcom:[],kei:33,advanc:2,manipul:12,usag:[33,24,9],dcc:[12,33,2],ban:11,ask:[31,19],path:2,valu:12,addit:34,about:[33,8,24],invit:11,bot:7,weird:18,frequent:[31,19],first:27,via:28,appli:28,modul:[29,10,16,0,31,1,2,39,6,4,34,12,37,13,20,22,23,38,25,35,40],prefer:28,module_expmem:34,submit:28,diff:28,guid:[],your:27,git:9,log:[18,2],script:[33,27,2],transfer:35,support:[33,24],question:[31,19],upgrad:9,messag:18,includ:34,basic:2,type:12,"function":34,consol:[40,2],appendic:10,readm:9,ipv6:24,notic:9,flag:[15,7],link:7,crontab:9,known:5,line:[32,9],filesi:[12,37],blowfish:39,module_t:34,setup:10,charact:12,trick:30,record:[12,7],problem:5,autobotchk:9,control:12,featur:17,creat:28,share:[7,1],indic:[],textfil:3,file:2,tabl:[],seen:13,welcom:10,secur:33,ctcp:6,parti:32,make:7,uptim:25,note:[12,29],how:[9,34,28],document:[10,9],channel:[12,22],compress:[12,20],botflag:7,assoc:[12,16],user:[12,15,7],why:34,github:28,directori:2,bind:12,inform:34,exampl:7,command:[12,9],incorpor:[]}}) \ No newline at end of file +<<<<<<< HEAD +Search.setIndex({envversion:42,terms:{interchang:24,four:[12,24,3,22,2],secondli:12,prefix:[2,32,4,12,33,38],msgm:[12,38],oldest:12,hate:15,forget:[12,34,28],whose:[12,11],accur:12,"const":34,aug:12,swap:18,under:[12,17,8,9],worth:31,tcl7:19,digit:[33,2],everi:[15,31,2,4,34,19,12,22,38,8,24,11,9,28],risk:[38,9],"void":34,voic:[12,15,8,22,9],autoconfigur:31,tcl8:[],putbot:12,smack:19,stickinvit:12,affect:[12,17,24,22,2],school:[],getchanhost:12,cmd:2,tclsh:[19,9],verif:[33,38,2],categori:12,zlib:[],direct:[12,7,34,28],second:[30,2,4,34,12,35,6,22,23,38,9],valiant:[8,9],botport:[],even:[17,2,32,4,11,12,34,7,8,9],file_send:12,neg:[12,23,2],"new":[17,30,2,32,34,12,33,24,9,28],net:[38,31,4,9],ever:[12,33,18,2],cleartext:12,abov:[17,31,3,4,34,12,22,9],mem:12,never:[2,19,12,22,9,28],chang:[17,1,2,32,18,4,34,12,27,22,38,7,39,9,28],here:[29,30,2,4,6,12,37,35,27,22,23,38,11,7,9,28],kicker:12,path:[],auch:34,interpret:[31,18,3,12,5,24],getchanjoin:12,ontkickop:[],noemail:9,militari:2,anymor:[39,34,2],credit:[12,28],permit:12,aka:2,portrang:2,userinvit:22,portabl:[],whatnot:9,getchan:12,seven:22,unix:[17,8,31],printf:34,txt:19,highli:[38,31,19],ithi:[],describ:[7,2],would:[2,3,6,12,33,7,9,28],foster:[],call:[31,2,19,34,12,5,27,8,7,9],typo:12,recommend:[22,30,35,19,34],type:[],until:[2,19,12,22,11,9],relat:[34,12,22,24,9,28],haha:9,notic:[],warn:[12,9,34],warm:28,relai:[12,8,7,9,2],loss:19,isbansticki:12,hole:2,hold:[12,1],unpack:8,must:[31,2,4,34,12,33,22,23,38,7,9],join:[29,15,2,17,32,18,4,34,12,40,22,11,27],banlist:12,setus:12,setup:[],work:[31,1,2,6,19,34,12,5,13,27,22,33,7,24,11,9,28],onjoin:29,root:37,overrid:[33,24,1],etiquett:9,autodetect:33,matchinvit:12,caution:12,unavail:[38,2],want:[29,30,31,2,4,34,19,12,33,35,27,22,23,38,7,37,8,9,40],ultrix:[],stickban:12,end:[31,2,3,34,12,27,28],quot:[],jwilkinson:18,how:[],hook_secondli:34,disappear:9,env:2,answer:[38,8,31,6],verifi:[33,38,2],negoti:[12,33],config:[1,2,3,4,23,34,11,7,9,12,20,22,33,24,25,27,29,30,31,6,35,37,38,40],updat:[17,2,34,5,9,28],recogn:[15,4,38],goober:12,x509:[33,2],after:[30,31,2,4,34,12,27,22,33,38,11,9],befor:[29,31,1,2,4,34,12,33,35,22,23,38,7,8,9],wrong:19,substant:9,demonstr:[0,34],attempt:[31,2,4,12,22,33,38,11,7],third:[12,7],lost:12,greet:[8,22,9],exclud:12,recompil:[28,4,19],maintain:30,environ:[17,2],incorpor:[],enter:[31,2,32,12,22,33,28],exclus:[12,38],order:[12,23,33,2],oper:[2,3,19,6,12,38,24],placefield:[],xlib:[],offici:9,failur:12,becaus:[2,18,34,12,38,8,9],privileg:[15,8,9],appar:[],ormal:[],flexibl:[12,17],digest:12,fix:[31,2,18,19,34,12,5,8,9,28],better:[13,31,19,34,2],chattr:[12,15],hidden:17,easier:31,notefil:[12,29],savechannel:12,them:[29,15,30,31,1,2,17,4,34,19,12,35,6,22,23,38,7,24,8,9,40],thei:[29,31,22,1,2,4,34,19,12,6,7,33,38,8,11,9,40],proce:12,safe:[],"break":12,minir:[],interrupt:5,lixom:19,choic:9,grammar:9,dload:35,dumpfil:12,timeout:[23,38,35,34,2],each:[29,15,30,2,17,32,34,12,35,22,37,8,7,9],debug:[31,2,34,12,25,27],european:2,side:[12,33,2],mean:[17,2,18,4,11,19,12,27,33,38,7,24,8,9],prohibit:2,autohead:28,resum:12,upload:[17,30,34,12,37,9],sdcc:33,extract:[],unshar:15,network:[2,3,4,12,38,8,9],goe:[31,32,12,22,33,11,7],content:[14,36,26,21],botaddress:12,got:[12,18],killassoc:12,noqueu:12,situat:7,infin:2,hook_read_userfil:34,standard:[15,18,4,34,19,12,33,35,23,27],tcldcc:[],hand:[12,8,27,2],md5:[12,39,34],sigkil:12,zxf:[],openssl:[33,31,2],filter:5,heck:[19,9],isn:[1,34,12,37,38,11,25,9],rand:12,shlib_path:[],independ:[],putallbot:12,system:[17,37,31,2,18,3,19,34,12,33,35,23,24,9],restrict:[12,38,3,9,2],hook:34,unlik:[17,31],alreadi:[31,2,34,12,22,38,7,27],wasn:12,undernet:[12,38,4,9,19],primari:[38,2],ltcl8:[],modes_per_line_max:4,attach:[12,27,28],top:[31,9,28],sometim:[38,9],stack:[12,24,4],underlin:[12,3],master:[15,2,3,12,11,7],too:[2,4,34,12,35,27,38,8,9],dprintf:34,john:[19,9],listen:[12,33,7,24,2],danish:2,consol:[],tool:[31,28],task:[8,7,9],ntik:12,technic:9,isperminvit:12,target:[12,19],keyword:12,provid:[1,2,4,23,34,8,9,12,13,16,19,20,22,33,24,28,29,6,35,37,38,40],tree:[8,9,28],rate:38,stackabl:12,project:[],matter:[23,9],flame:9,minut:[2,18,4,34,12,22,11,9],ebai:2,file_send_pend:12,mind:19,rfc1459:12,raw:[12,2],miniatur:32,seen:[],seem:18,minu:22,getsocknam:[],strength:[],hub:[33,7,1,2],unresolv:19,resetchan:12,thorough:34,client:[12,33,38,27,2],transmit:38,simplifi:12,idx2hand:12,though:[12,33,38],usernam:2,object:19,addlang:2,first_script:19,regular:[12,33,19,22],resetchanidl:12,letter:[15,18,9,2],crt:[33,2],bsd:[],passthru:2,don:[30,31,1,2,32,4,34,19,12,33,27,22,23,38,7,37,9,28],doc:[31,2,32,19,34,12,27,38,8,9],alarm:[12,5],doe:[15,31,2,32,18,19,12,5,22,33,11,9],declar:12,wildcard:[12,22],hup:12,dot:32,random:[12,38,7,22],syntax:[15,2],radic:9,protocol:[12,33,2],my_talk_handl:27,absolut:[12,15,8,9],exactli:[12,4,34],matchexempt:12,explain:22,configur:[0,1,2,4,23,34,9,13,16,19,20,22,33,24,25,27,28,29,31,6,35,37,38,39,40],busi:[18,27],rich:[8,9],folder:34,oct:33,tcl_appendresult:19,stop:[18,4,34,19,12,22,8],module_renam:34,jupe:12,report:[25,30,18,9,34],cygwin1:[],bar:12,bandwidth:[20,34],"public":[15,2,12,33,8,9],reload:12,bad:[15,18,22],baa:27,ban:[],septemb:23,respond:[12,18,27,22],botnick:[12,38,2],hasn:38,result:[12,38,11,2],respons:[12,38,9],fail:[2,18,19,12,33,23],hash:[],best:[12,7,19,9],subject:[33,28],awar:12,said:[12,7,27],notcproc:12,hopefulli:[12,31,9],databas:[12,37,27],figur:31,finger:6,awai:12,irc:[],attribut:[12,15,11,7,28],accord:[12,15,9],manpag:2,newnam:12,extens:[31,28],lazi:4,advertis:[8,19,9],clemson:15,ircop:[4,22],setsockopt:[],protect:[15,31,2,22,33,38,8,11,9],mildli:18,fault:[5,34],howev:[2,18,19,6,12,33,38,9],enforceban:22,against:[12,38,19,22],fno:[],login:2,com:[2,34,12,13,33,38,7,9],col:3,old_module_nam:34,rehash:[12,27,34,2],had:[31,2,18,12,22,7],hook_backup:34,formatstr:12,diff:[],trust:[15,19,9,2],assum:[12,38,11,27,2],summar:38,reveng:22,dhave_sys_dir_h:[],three:[12,38,11,7,2],been:[17,2,18,4,34,19,12,38,8,11,9],much:[31,32,19,34,12,9,27],numberlist:12,interest:9,basic:[],unstick:11,quickli:[5,2],mco:[12,2],life:[29,9],worker:31,telnet:[],ani:[29,15,31,1,2,17,32,18,4,34,19,12,27,33,38,8,40,11,9,28],dp_log:34,botattr:[12,7],rang:2,killmemb:18,ident:[12,38,24,4,2],aix:[],gnu:[8,31,20,9],servic:[22,34],serverror:38,sourceforg:[],calcul:38,publicli:25,alltool:2,privatekei:[33,2],stickexempt:12,valididx:12,spawn:8,ishalfop:12,have:[1,2,4,5,7,8,9,17,11,12,15,18,19,22,33,24,27,28,29,30,31,32,34,37,38,39,40],channame2dnam:12,conf:[33,31,9,34,19],module_nam:34,sever:[30,18,19,34,12,6,8,9],grown:8,weekdai:12,userlist:[12,13,4,1,34],perform:[15,31,12,22,8,9],suggest:[9,34,19],make:[],format:[2,3,34,12,38,9],quann:[13,34],complex:12,split:[32,3,4,12,22,24],ldopen:[],complet:[15,31,1,17,12,22,33,9,28],hang:[23,34],pubm:[12,38],yourbot:30,rais:[38,22],topc:12,squar:24,kept:[11,2],botnetop:22,scenario:7,thu:12,thr:2,contact:2,resetban:12,thi:[0,1,2,3,4,5,6,7,8,9,17,11,12,13,15,16,18,19,20,22,23,24,25,27,28,29,30,31,33,34,35,37,38,39,40],gzip:[12,20],everyth:[12,31,19,9],shl_findsym:[],left:[12,18,4,28],identifi:[12,15,2],just:[30,31,1,2,32,18,4,34,19,12,37,23,7,8,9],"_always_":2,hand2idx:12,dhave_dirent_h:[],human:9,sockread:[],yet:[12,38,18,2],languag:[17,30,19,2],previous:12,easi:[12,33,9],elf:19,spread:2,els:[12,32,19,27],save:[17,1,2,34,12,20,22,7,40],applic:[12,9,2],notc:12,mayb:[19,27,2],killignor:12,boldfac:12,background:9,loadhelp:12,apart:[12,34,2],measur:38,daemon:2,ctime:12,specif:[15,4,34,12,33,22,23,38,7,24],arbitrari:12,manual:[2,19,12,33,7,24],remind:2,www:[13,31,9,34],right:[12,0,34],old:[],pl1:12,exemptmask:12,interv:12,maxim:2,resolv:[2,34,12,5,23,24],intern:[12,38,27,2],toctre:[],inact:[35,22],successfulli:[12,9,34],total:[12,17,22,34],fpic:[],revengebot:22,track:[37,31,18,34],delhost:12,core:[],plu:[12,33,38,22,2],bold:[12,15,3,9],rfcequal:12,insecur:22,burn:31,netsplit:[12,17,18,4,2],repositori:9,peer:[33,38,2],cygssl:[],post:9,ircnick:12,obj:[],slightli:[],simul:[12,9,2],cipher:[12,33,2],outgo:[12,2],awk:[],produc:[12,2],match:[],bounc:4,"float":19,encod:[12,3],bound:[12,2],ignorelist:12,ischaninvit:12,storag:[40,34],east:2,accordingli:38,deal:[12,15,2],wai:[31,2,32,19,34,12,27,33,38,11,7,9],support:[],fight:22,avail:[17,2,32,34,12,22,24,25,9],width:3,reli:12,msgcmd:[],dcclist:12,constantli:34,war:8,fork:28,head:2,genrsa:2,forc:[31,1,2,12,22,33,40],cidr:[12,2],freenod:9,dynamicexempt:[12,22],reset:12,spun:18,putcmdlog:12,maximum:[29,37,2,4,12,33,35,22,23,38],tell:[12,7,19,27,2],file_receiv:12,autoconf:[31,28],featur:[],openbsd:24,flat:12,decrypt:12,exist:[15,18,34,12,38,8,9],nelin:[],check:[2,34,12,9,22,33,38,27],sticki:[12,11],vista:24,encrypt:[17,34,12,33,7,39],when:[31,1,2,32,18,4,34,19,12,5,40,22,33,38,11,24,39,9,28],deni:[],flood:[29,15,2,17,6,12,22,38,8,7,9],test:[15,27],dirent:[],node:33,intend:[12,17,11,31,28],chjn:12,intens:38,consid:[12,11,32,9,2],getop:22,lsocket:[],receiv:[19,12,37,23,38,7,27,28],faster:12,anywher:[12,32],ignor:[17,1,2,6,12,38,8,7,9],maxdepth:[],time:[30,31,22,1,2,18,32,3,4,19,12,33,35,7,23,8,11,9],push:[12,28],maxsend:23,daili:12,chain:[33,2],skip:9,logfilenam:2,global:[],signific:[9,34],skim:9,autoop:22,netbsd:24,milk:15,lld:[],depend:[15,2,34,12,33,11],puthelp:12,flash:3,readabl:9,module_entri:34,opportunist:33,nxdomain:23,larg:[38,4,9,2],sourc:[30,31,2,19,34,12,9,33,27,28],string:[12,27,4,34,2],unfamiliar:27,onchansplit:12,octob:[38,22,2],word:[12,4,27],statuslog:22,brows:27,myownevent123:12,eden:12,administr:19,level:[12,15,20,2],did:9,die:[12,9,34],item:12,team:[0,1,2,3,4,5,6,7,8,9,17,11,12,13,15,16,18,20,22,23,24,25,27,28,29,30,31,32,33,34,35,37,38,39,40],quick:[],dir:[12,19,9],prevent:[29,4,19,12,22,33,8,24,7,9],slower:2,sign:[12,33,38,3,2],ufl:12,port:[1,2,12,33,23,38,7,24,9],appear:[12,7,2],iscompress:12,scripter:7,repli:[2,4,6,12,34,23],deludef:12,killexempt:12,str_protect:34,current:[29,2,32,3,4,34,12,37,33,39,9,28],privmsg:[12,27,22],ground:2,unban:[12,22,2],gener:[18,19,12,27,33,8,9],french:2,explicitli:33,modif:12,address:[29,1,2,12,7,24,25,28],along:[],setdesc:12,wait:[2,4,34,12,35,23,38],box:2,invit:[],bot:[],queue:[12,38,34],behav:12,myvar:30,commonli:[12,2],novic:[8,9],love:27,getinfo:12,hook_rehash:34,modul:[],prefer:[],myip:12,fake:12,instal:[],geteggdrop:9,jan:12,memori:[12,17,18,34],give:[15,32,31,17,2,12,27,22,38,7,9],todai:12,handlen:12,msg:[17,2,32,4,34,19,12,13,38,9],scope:27,hook_5minut:34,checkout:28,capit:[18,9],peopl:[29,15,1,2,17,32,3,4,12,22,37,38,8,9],enhanc:34,tandem:[],templat:28,examin:34,effort:[8,9],easiest:19,chanprog:[],prepar:7,cap:34,uniqu:2,cat:[],descriptor:[],botnam:[12,7],whatev:[17,31,2,3,12,9],purpos:[0,2,34,8,25,7,9,28],sighup:12,cmd_t:34,protectfriend:22,topic:[12,27],abort:[12,33],isdynam:12,occur:[12,18,4],alwai:[31,12,22,8,11,9,28],differenti:12,multipl:[17,2,34,12,8,7,9],get:[],ping:6,modulenam:34,uptim:[],write:[0,2,34,12,9,27],till:12,anyon:[12,11,22,9],map:[],birthdai:2,lastbind:12,max:[29,2,4,35,37,38],clone:[22,9],usabl:[37,34],mac:24,aop:22,mai:[30,2,18,4,20,19,12,35,27,22,37,7,24,9],drastic:[12,34],protecthalfop:22,data:[12,22,34,1,19],man:2,masktyp:12,regularli:17,stress:9,autotool:28,gethostnam:[],stdio:34,newidx:12,inform:[],"switch":[12,33,30,34,2],preced:[12,33],combin:[12,17],april:5,offend:19,ordinari:[12,33],talk:[17,32,27],midnight:2,ttl:23,smelli:31,cold:28,still:[17,31,1,2,19,12,22,9],pointer:[17,31,3,9],cvsroot:28,dynam:[12,11,31,19,22],ethic:2,group:[12,2],monitor:[12,11],putloglev:12,instantli:38,platform:[8,9,2],window:[],logmod:34,dhave_sys_select_h:[],mail:[],main:[],meridian:2,limbo:2,non:[33,18,4,34,12,5,22,23,38,7,11],chaninvit:12,guppi:12,initi:[12,33,24,27,34],now:[15,31,2,4,12,5,33,8,24,7,9],isjup:12,discuss:9,down:[31,18,19,12,8,7,9],name:[16,31,2,34,12,5,38,27,28],didn:[19,28],separ:[17,30,31,2,34,12,38,7,24],killchanban:12,januari:[29,16,35,39,13,40,25,9],compil:[],domain:[23,7,9],replac:[2,3,34,12,22,38],arg2:12,continu:[12,18],setchan:12,ensur:[7,34,28],year:[12,8,9,2],happen:[2,18,19,12,27,11,9],bothandl:27,tcl_string:34,hacker:19,shown:[18,2],accomplish:31,space:[12,8,35,9,2],passwdok:12,internet:[12,33,8,9],correct:[31,18,9,2],integr:9,lag:[32,2],userinfo1:2,setflag:12,argn:12,org:[31,2,34,12,7,25,9,28],"byte":[12,38,35,4,34],care:[12,28,2],newnick:12,couldn:12,question:[],globalflag:12,synchron:33,thing:[0,31,2,18,19,34,12,5,7,9,28],place:[31,2,4,34,19,12,22,33,11,9],nicknam:[15,30,2,18,3,12,33,38,27],think:15,frequent:[],first:[],origin:[12,38,9,28],directli:[12,22,34,1,19],spoken:12,onc:[18,4,19,12,27,22,37,38,9,28],yourself:[33,8,19,28],nick2hand:12,"long":[29,31,1,2,3,34,12,5,22,23,38,11],open:[2,32,19,12,9,33,27,28],size:[12,37,35,34,2],given:[12,23,9],silent:2,module_regist:34,caught:[12,9],necessarili:12,encpass:12,userinfo:[12,6],conveni:2,friend:[15,22],rem_tcl_command:34,tclhash:[],especi:[27,9],copi:[12,27,35,9,34],specifi:[29,17,1,2,18,37,34,12,33,22,23,38,11,24],broadcast:[12,32],github:[],enclos:[12,24,22],mostli:9,than:[2,4,6,19,12,22,33],serv:2,wide:[33,32],yourusernam:28,getown:12,were:[2,4,12,11,7,9],posit:[34,2],janitor:15,seri:[12,28],pre:[12,19,9],sai:[19,12,27,22,7,9],autohalfop:22,argument:[12,4],properli:[7,28,19,2],deliv:12,cflg:[],getfileq:12,techniqu:30,destroi:[8,9],moreov:2,module_depend:34,libpath:[],note:[],take:[31,2,19,34,12,33,38,25,9],advis:[38,31],noth:[12,19,34,2],channel:[],begin:[12,24,27],sure:[2,12,9,22,7,27],pain:35,trace:38,normal:[30,2,6,34,12,33,27,23,38,8,9],buffer:1,compress:[],frim:34,abus:[8,9],pair:12,gunzip:9,compressfil:12,renam:[12,30,34,2],renudef:12,later:[29,31,2,39,34,12,33,25,9],thse:4,erasenot:12,badg:15,pattern:12,newchaninvit:12,recipi:12,signoff:12,show:[2,34,12,22,7,25,9,28],german:2,concurr:2,permiss:[9,2],hack:19,filesend:12,evnt:[12,38],onli:[0,1,2,3,4,7,8,9,11,12,13,15,19,22,33,24,25,27,28,29,30,31,32,34,38],slow:[18,2],mode_proc:12,isexempt:12,activ:[32,18,12,22,33,11],enough:[12,9,2],needal:12,tlsstatu:12,unloadmodul:12,over:[30,2,34,12,33,38,24,9,28],overwritten:[12,2],nearli:19,variou:[31,2,34,12,11,9],dynamicinvit:[12,22],ircd:[12,38,18,4],repo:28,ssl:[],cannot:[15,8,19,34,28],utoop:[],requir:[],prime:2,lame:[2,4,19,12,22,7],egghead:[0,1,2,3,4,5,6,7,8,9,17,11,12,13,15,16,18,20,22,23,24,25,27,28,29,30,31,32,33,34,35,37,38,39,40],dronepup:12,tcllibfn:[],where:[29,17,37,2,19,34,12,33,27,22,23,38,9],isoptest:22,ircnet:[22,38,4,9],hook_daili:34,ircii:[12,35,19],infinit:37,detect:[12,33,24,19,38],matchban:12,you_want_to_export:34,behind:[18,2],listinfo:9,add_tcl_str:34,between:[29,1,2,34,12,22,38,7,24,9],"import":[12,32,27,34,2],across:[12,30,8,7,9],august:4,screen:[3,9,28],ssllib:33,collect2:[],come:[12,38,9,4,34],unld:12,cycl:[38,22,2],quiet:[15,38,2],tout:12,mani:[2,4,34,12,27,22,23,38,7,8,9],module_undepend:34,color:[12,9],period:[12,5,23,34],exploit:19,enlarg:31,colon:[24,2],cancel:12,newchanban:12,caret:18,getflag:12,coupl:[12,9],harmless:19,west:2,hardli:18,invers:3,mark:[12,15,17],resort:19,sslcert:[33,2],getdesc:12,resolut:2,ispermexempt:12,rememb:22,stealth:2,those:[19,20,5,34,38,9],"case":[12,23,38,19,2],blowfish:[],might:[2,18,4,34,12,33,9],mount:35,no_irc:[38,34],cast:[],invok:12,fil:12,abcdechannel:12,hook_minut:34,anytim:5,advantag:30,stdout:34,henc:[12,19,34],everydai:2,worri:[],destin:[12,34],eras:[12,8],serverop:22,ascii:12,chansettyp:12,any_other_funct:34,develop:[0,1,2,3,4,5,6,7,8,9,17,11,12,13,15,16,18,20,22,23,24,25,27,28,29,30,31,32,33,34,35,37,38,39,40],author:[33,2],alphabet:2,dalnet:[38,4,9],same:[30,31,2,3,4,34,19,12,20,22,33,7,8,9],binari:[31,19,28],html:[24,9],pad:12,pai:[12,9],document:[],resetchanjoin:12,week:12,exhaust:12,finish:[12,9],ischanjup:12,someon:[18,4,19,12,27,22,9],weed:[19,9],driven:12,capabl:2,improv:[8,9],extern:2,autovoic:[15,22],appropri:[28,31,2],choos:[17,31,19,9,2],macro:34,without:[17,31,2,18,19,34,12,6,22,33,8,39,7,9],ieggdrop:[],dereferenc:[],ispermban:12,execut:[],putkick:12,kill:[12,27,18,19,9],ld_library_path_32:[],death:31,except:[2,6,12,34,33,38,9],littl:[7,31,30],setenv:[],pile:19,real:[12,38,34],around:[8,19,27],read:[31,2,3,34,12,5,27,8,9],rejoin:12,pushmod:12,traffic:[12,30,2],moc:12,world:[8,9,2],oldnam:12,mod:[12,13,31,34,2],tolow:27,whitespac:12,integ:12,server:[],either:[31,2,19,12,33,11,24,7,9],output:[],cfox:9,manag:[37,34],sneaker:31,botchk:[31,9],handshak:12,constitut:[38,22,2],dupwait:2,confirm:28,someircnetwork:2,exit:[12,38,9,34,40],apostroph:32,islink:12,refer:[12,34,2],process:[31,18,19,20,12,8,7],power:[17,9],imposs:8,egghelp:[31,9],fulli:2,mycron:9,earlier:19,src:[12,31,4,34,28],stone:38,central:[37,2],greatli:[],chof:12,chon:12,numvers:12,stand:[8,9],act:[12,17,33,34,2],backup:[12,34],routin:[12,4,2],addus:12,activest:9,dnslookup:12,unstickban:12,strip:[12,2],your:[],log:[],area:[15,30,2,34,12,37],aren:[12,5,30,9,2],tcl_cmd:34,negcach:23,overwrit:12,start:[0,31,2,32,3,19,34,12,27,38,8,39,7,9],compliant:[38,4],interfac:[12,2],rmdir:12,lot:[27,31,4,9],ipv6:[],strict:2,unam:12,untar:9,jun:28,prerehash:12,jul:[24,9,34,28],ldnshread:[],lnsl:[],longer:[12,9,31,4,34],pull:[9,28],possibl:[31,2,32,18,19,6,12,22,33,24,9,28],"default":[31,2,4,20,12,33,22,23,38,11,9],halfop:[12,15,22],embed:12,expect:[12,6,34,2],gone:[12,4],displaynam:34,uid:[33,2],creat:[],filt:[12,34],certain:[15,17,2,3,12,11,24],decreas:2,file:[],fill:[33,28,9,2],again:[31,2,34,11,25,7,9],collid:18,ctcp:[],ctcr:12,hybrid:38,prepend:2,field:[12,33,38,2],valid:[17,31,2,34,12,22,33,38,7,27],pathnam:12,you:[0,1,2,3,4,5,6,7,8,9,17,11,12,13,15,18,19,20,22,23,24,25,27,28,29,30,31,32,33,34,35,37,38,39,40],string2:12,string1:12,cygcrypto:[],symbol:[12,18,19],drift:18,handonchan:12,ansi:12,getudef:12,timerid:12,reduc:34,unbind:[12,30,4,2],unload:[12,34],botfl:12,descript:[12,28,34,2],nodesynch:22,mass:9,cpu:[12,38,2],nmalloc:34,putserv:[12,27,22],all:[1,2,4,23,34,7,11,9,17,12,15,18,19,22,33,24,27,28,30,32,6,37,38],partylin:[15,30,2,34,12,33,7,40],tcl_int:34,sanitycheck:2,month:[12,2],unrest:8,add_builtin:34,disc:12,suno:[],abil:[12,17],follow:[30,31,2,3,4,34,12,22,33,38,7,9,28],alt:[38,2],disk:[17,2,12,35,8,9],prdownload:[],hook_load:34,dyld_library_path:[],init:[12,38,2],program:[],smile:31,introduc:[12,9],readonli:34,liter:34,masquerad:2,song:12,fals:[12,18],unixtim:12,mpj:12,util:[31,9],utim:12,robei:[15,31,3,9,17],fall:33,veri:[15,17,2,18,34,13,27,38,9],unoffici:24,quakenet:9,strang:18,botisop:12,gayteen:8,heaven:31,list:[],adjust:[8,4,9],form:[12,8,3,9,34],func_tabl:34,small:[7,35,31,30],ten:9,getchanidl:12,unsatisfi:[],past:[9,34,2],zero:12,design:[17,8,9,28],pass:[12,32,18],further:12,what:[],sub:12,clock:18,sun:2,section:[2,4,34,19,12,27,22,7,9],abl:[31,2,32,18,4,34,22,38,9],delet:[12,30,9],version:[31,3,4,34,19,12,5,6,33,8,24,25,9,28],dp_help:34,helpfil:12,libtcl80:19,method:[30,39,4,34],vali:12,full:[12,33,24,31],themselv:[30,7,4],shouldn:34,free:[9,34],solari:[],excess:[38,22,9],strong:2,modifi:[30,2,4,12,23,28],valu:[],search:34,sender:12,ahead:8,fwd:29,prior:31,amount:[9,34,2],starttl:[12,33],splt:12,dealloc:34,action:[12,2],via:[],reiniti:12,cafil:[33,2],filenam:[29,2,12,22,33,28],famili:2,establish:[12,33,24,27],memor:31,select:[17,28,9,2],aggress:[7,19],ctrl:12,regist:22,two:[30,1,2,4,34,12,7,11],loadchannel:12,new_module_nam:34,taken:[12,34],forcefulli:33,minor:[12,34],more:[17,31,2,4,34,19,12,13,6,33,7,9],turbo:35,desir:34,hundr:19,ital:12,mirc:[12,38],stick:11,particular:2,known:[],unloadhelp:12,dccsend:12,cach:[12,23],none:[29,16,0,35,12,13,22,23,38,39,40],hour:[12,11,25,34,2],outlin:[],dev:[9,28],remain:[12,11,22],paragraph:31,listnot:12,learn:[12,17,4,2],preinit:12,dec:12,prompt:[31,9],bogu:2,useabl:2,share:[],accept:[1,2,19,12,33,7],minimum:[12,8,22],resync:1,phrase:12,userban:22,cours:[12,7,31,2],csh:[],secur:[],rather:[12,33],anoth:[29,1,2,3,4,34,19,12,27,22,38,8,7,9],shutdownreason:12,reject:[38,7,2],simpl:[12,9,34],serveraddress:12,unabl:[12,7,4],wasop:[12,15,4,22],resourc:34,referenc:[],ranlib:[],okai:2,unlink:[12,2],associ:12,stabil:35,"short":[31,34],resetexempt:12,caus:[12,7,18,9],altnick:38,help:[],hook_userfil:34,soon:[12,5,19,22],through:[17,32,12,9,22,38,24,27],reconnect:[12,1],newexempt:12,our_chan:27,paramet:[12,9],style:11,dccuse:12,"04may2000":2,pend:22,bypass:12,onelin:12,userport:[],alter:[12,17],wouldn:2,isexemptsticki:12,good:[12,15,8,9,2],"return":[],timestamp:[12,2],setdccawai:12,cet:2,botnet:[],gethostbynam:[],chanserv:22,instruct:34,refresh:12,bless:9,easili:[12,17,8,9],found:[12,28,19,34,2],unicod:5,userexempt:22,isban:12,hard:2,idea:27,crontab:[],realli:[8,28,30,27,2],connect:[],horribl:31,utexa:18,http:[13,25,9,34],beyond:[],add_tcl_command:34,event:[2,34,12,27,8,7,9],ftp:[28,9,34,19],mrlame:2,publish:2,hltran:[],print:28,variable_nam:34,unaccess:17,occurr:34,woobi:[],qualifi:2,advanc:[],dehalfop:[12,15,22],differ:[30,31,2,19,12,22,33,38,9,28],pub:[12,38,27,9,28],reason:[2,18,34,12,8,7],base:[12,9,2],put:[29,16,0,1,2,39,4,20,12,33,13,6,22,23,38,37,25,35,9,40],bask:28,bash:[],omit:[12,33],perhap:18,perman:[12,11,22,2],eggdev:[],lifetim:12,assign:[7,2],major:[12,9,34,28],dccbroadcast:12,notifi:[12,29,38,2],obviou:18,upper:23,feel:[9,34,28],hand2nick:12,misc:[12,2],number:[29,15,2,4,34,12,37,35,22,33,38,7,28],ltcl7:[],done:[1,34,12,7,27,28],stdlib:34,blank:12,stabl:9,miss:[12,9],retrydelai:23,gpl:[8,9],guess:4,fuller:9,script:[],ipaddress:12,interact:[4,2],least:[2,18,4,34,27,11,9],chanmod:22,statement:12,natur:9,scheme:9,store:[29,2,34,12,22,37,7,25,40],putquick:[12,38],option:[31,2,19,34,12,22,33,38,9,28],blindli:4,mode_proc_fix:12,part:[17,30,2,18,12,38,8,9],pars:12,userrec:[],consult:[33,24],reinstal:19,jump:[12,33,7,38],kind:12,stb:38,whenev:[34,12,33,38,7,27],remot:[12,7,3,2],gotten:[],remov:[17,30,2,19,34,12,22,11,24,9],stall:12,str:12,toward:17,danc:12,comput:[18,19],packag:[31,9],delchanrec:12,dedic:9,"null":[9,34],entireti:31,built:[12,30,19],equival:[38,34],banmask:12,self:[33,38,2],nkch:12,setudef:12,undeclar:[],also:[1,2,3,4,33,6,7,8,9,17,11,12,15,18,19,20,22,23,28,29,30,31,32,34,35,37,38,40],xreq:[],useless:[],maskhost:12,brace:22,uplink:[12,18],unstuck:12,distribut:[8,19,9],filesystem:[12,15],reach:[38,4,2],quota:2,most:[17,2,32,18,4,34,19,12,35,27,38,8,9],plai:27,rem_tcl_str:34,cygwin:[],addr:[24,2],fileresend:12,clear:[12,33,9],cover:[11,7,27],destruct:8,ltcl:[],ext:[],clean:19,squelch:38,usual:[12,33,11,24,9,28],carefulli:[12,9],misnom:12,sublist:12,rejn:12,fine:[38,4,2],find:[31,32,4,34,19,12,13,27,23,9,28],penalti:38,firewal:2,setown:12,copyright:[0,1,2,3,4,5,6,7,8,9,17,11,12,13,15,16,18,20,22,23,24,25,27,28,29,30,31,32,33,34,35,37,38,39,40],killchanexempt:12,paranoid:[1,2],solut:[],queu:[12,38],dp_stdout:34,hit:12,opchar:4,llamabot:2,dccputchan:12,isinvit:12,yourbranchnam:28,mainten:[15,18],fastest:9,xfer:[15,35],banner:[3,2],him:[19,9],restart:[31,2,19,34,12,9,27],resend:[12,23],ischanban:12,"_____________________________________________________________________":[],newchanexempt:12,userflag:4,tcl:[],rfc:[12,38,4],crf:9,common:[15,2,33,38,7,9],sslport:33,certif:[],set:[],stump:9,delus:12,creator:12,see:[31,2,32,3,4,34,19,12,22,38,7,25,8,9],sed:[],sec:2,arg:[12,34],close:[12,34],someth:[12,28],debat:9,reus:12,experi:31,realnam:38,altern:[12,33,7,38,2],oldhandl:12,appreci:[],numer:12,isol:7,isop:[12,22],lowercas:[38,18,27],succeed:12,unrealircd:4,botonchan:12,chanset:[7,22],both:[2,12,22,33,38,8,24,7,9],last:[0,1,2,3,4,5,6,7,8,9,17,11,12,13,15,16,18,19,20,22,23,24,25,27,28,29,30,31,32,33,34,35,37,38,39,40],delimit:12,bota:7,botc:7,botb:7,context:34,getfilesendtim:12,whole:[9,34,19],storenot:12,load:[0,1,2,4,34,7,9,12,13,16,18,19,20,22,23,25,27,29,6,35,37,38,39,40],simpli:[12,9],hostmask:[12,17,11,7],point:[0,31,2,34,12,38,7],schedul:12,unstickexempt:12,header:[33,34],shutdown:12,linux:[5,24,18],mistak:9,throughout:34,putxferlog:12,vertic:12,due:[12,38,4,2],empti:12,whom:12,secret:22,whoi:2,deprici:38,nonexist:18,ram:2,great:[31,9],bitchx:12,coordin:2,understand:2,func:34,demand:[8,9],chatter:2,convers:[33,32,34],look:[17,0,31,2,19,34,12,13,27,22,33,8,25,9,28],durat:12,"while":[2,32,18,19,34,22,8,11,9],adh:2,behavior:[2,4,6,12,11,24],error:[2,19,34,12,5,38,28],fun:31,anonym:2,everyon:[12,32],expir:[29,2,4,12,22,33,38,11],jpk:2,motd:[3,2],readm:[],matchcidr:12,itself:[12,9,34,2],xtra:12,chase:[8,9],tclpip84:[],grant:[33,17],belong:2,ischanexempt:12,shorter:22,octal:2,cygz:[],higher:[33,5,4,1],dontkickop:22,mybot:19,itch:[],optim:38,wherea:12,moment:[5,4],temporari:[11,25,22,2],user:[],wherev:24,yesterdai:2,recent:[33,9],lower:38,sha1:33,init_serv:38,lib:19,discourag:4,older:[12,24,9],entri:[12,19,9,2],spent:12,mod_ext:[],person:[31,2,18,12,9,27],chanlist:12,explan:[12,22],chanflag:12,stopnethack:[15,22],ldl:[],dccdumpfil:12,stripcod:12,newban:12,fd_set:[],extra:[12,19,34,2],revok:[38,2],isinvitesticki:12,input:12,sigquit:12,queuesiz:12,bin:[],march:[18,15,11,3],laston:12,transpar:2,big:[12,30],eggdrop1:[9,34,28],game:[8,9],bit:[31,2,18,12,5,33,27],uncompressfil:12,ircu2:4,outright:8,success:[12,34],autosav:40,userfil:[30,1,2,19,34,12,35,20,22,7,39,8,9],signal:[12,19,27],flud:12,resetinvit:12,popular:[8,9,2],encount:27,bcst:12,often:[23,34,2],msgnotic:[],visibl:12,some:[1,2,4,23,6,7,8,9,17,11,12,15,18,19,20,22,33,24,27,28,29,30,34,35,37,38,40],back:[2,19,12,33,38,9,28],understood:38,sampl:22,dhave_config_h:[],affili:9,shall:2,per:[12,4],invitelist:12,pem:2,misc_fil:[],slash:32,proc:[12,38,27,34],kreativrauschen:[13,34],machin:[31,18,19,9,2],previou:[12,19,9],run:[31,2,18,3,19,34,5,22,33,38,8,7,9,28],step:[31,9,34,28],ld_library64_path:[],dp_server:34,hook_hourli:34,zip:[],idx:[12,34],chfinger:2,idl:[12,22,34],botlist:12,killchaninvit:12,block:[12,5,35,3,34],plan:[27,9],miracl:31,univers:2,nsl:[],within:[12,37,11,34,2],perm:2,contributor:28,botishalfop:12,tclmisc:[],inclus:[],bywho:12,sock:[34,2],submit:[],custom:[12,17,33],includ:[],forward:29,amaz:9,nfree:34,files:37,fileq:[],himself:9,botnetnick:12,pwd:37,link:[],newer:9,line:[],talli:34,info:[31,2,4,34,12,40,22,9],utc:2,fdb:[],consist:[12,17,7,32],callev:12,sharebot:[12,7,2],highlight:15,similar:[30,2,32,12,22,28],autobotchk:[],botisvoic:12,tclinc:19,changes1:28,chan:[12,30,27,4,22],putlog:[12,38,34],doesn:[32,18,4,19,12,5,27,23,40,9],repres:12,"char":[12,34,2],incomplet:[],chat:[17,2,32,34,12,6,33,38,8,24,7,9],home:[31,19,37,33,9,28],newignor:12,bracket:24,coder:[9,34],kvirc:33,newhandl:12,titl:15,invalid:[12,19],nick:[15,2,4,12,22,38,25,27,28],matchaddr:12,nat:[24,2],nice:[34,28],maindoc:[],meaning:12,chaninfo:7,hostaddress:[],mymodul:[],isignor:12,lang:30,getpwd:12,depth:[33,2],md5c:[],karma:28,far:27,fresh:2,libtcl:19,hello:[17,2,4,19,12,38,27],code:[],queri:[23,24],clearqueu:12,gmake:19,edu:[12,15,18,9],killinvit:12,issuer:33,privat:[29,1,2,32,12,33],base64:12,send:[29,1,4,34,19,12,35,20,27,38,7,24,9,28],making_modulenam:34,getlink:12,tcllib:19,breach:12,fatal:12,sent:[15,1,2,32,4,34,12,33,25,9],passiv:7,umod:38,rfc_compliant:12,whichev:11,getchanmod:12,installandsetup:[],hook_di:34,llama:7,prerestart:12,relev:[9,34],tri:[12,19,34,2],tcluser:[],dname:12,button:28,"try":[31,2,19,34,13,27,38,25,9,28],diffutil:31,pleas:[31,2,19,34,12,22,38,39,9,28],impli:[9,34],smaller:31,chanban:12,relink:7,cron:[12,9],video:12,download:[],mnnrrpp:12,click:28,append:[12,34],compat:[12,31,2],index:28,dp_mode:34,access:[15,17,32,19,34,12,27,33,38,8,9],hourli:[29,34,2],chanrec:[12,4],isvoic:12,garbag:34,can:[1,2,3,4,5,6,7,8,9,17,11,12,13,15,18,19,20,22,23,24,27,28,29,30,31,32,33,34,35,37,38,39,40],chose:[],len:38,bodi:[9,28],module_xlib:[],intercept:12,let:[29,17,2,18,34,12,27,22,23,7,9,28],flushmod:12,setpwd:12,becom:[12,19,9,2],sinc:[17,30,2,4,12,33,8,24,7],convert:[12,18,27,9],pretti:[8,32,27,9],broken:[12,5,18,2],chaddr:[33,7],beldin:7,cert:[33,31,2],typic:[12,17,32,19,2],danger:[12,19],forbid:[8,31],appli:[],foundat:9,valis0:12,serverlist:12,redo:9,getus:12,add_tcl_int:34,from:[1,2,3,4,5,7,8,9,11,12,15,18,19,22,33,24,27,29,30,31,32,34,38],usa:9,commun:[12,7,32,34,28],deop:[12,15,22],doubl:38,upgrad:[],mydir:[37,9],next:[2,34,12,22,38,9,28],few:[12,18,9,2],doubt:24,usr:[19,28],sort:[8,11,9],tcl8_4:[],vhost6:[24,2],vhost4:[24,2],trail:34,insensit:12,barf:19,efnet:[38,4,9],account:[29,17,19,34,8,9,28],retriev:[29,34,28],cambridg:9,pour:28,getfil:12,annoi:27,obvious:[12,11,9],meet:33,control:[],tar:[9,34,28],needop:12,newinvit:12,high:[5,30],tag:12,tab:34,tarbal:8,onlin:[12,29,9,34,19],everywher:[12,24,2],ld_library_path_64:[],gcc:31,sit:[8,22,9,2],six:12,subdirectori:[12,37],rem_tcl_int:34,ldclose:[],chri:9,delai:[4,22],express:12,overridden:4,onchan:12,bloadmap:[],watch:32,sundai:12,mrslame:2,attent:[12,38,9],discard:[12,1],gseen:[13,34],rcvd:12,cyggcc_:[],physic:7,alloc:[12,34],seriou:9,guru:9,correspond:[12,11,22],getdccidl:12,element:12,issu:[12,9,2],matchattr:12,freebsd:24,botnetcentr:3,module_find:34,unstickinvit:12,windrop:[],move:[12,38,31,9],findus:12,comma:[32,2],effici:[17,8,7,9,2],bunch:[],perfect:9,myproc:12,lamestbot:[29,31,2,3,22,38,7],infrastructur:33,therefor:[12,4,34,2],crash:[12,31,19,9],greater:12,handl:[2,12,5,33,11,28],auto:[15,7],spell:9,dai:[12,29,30,35,2],auth:[33,2],devel:31,memberlist:12,libtcl8:19,fingerprint:[33,2],front:[12,22],somewher:[31,2],thrill:27,anyth:[2,32,19,8,7,9],edit:[30,31,9],februari:6,trap:[],sdebug:31,chhandl:12,chunk:[38,19],partproc:12,"static":[22,31,19,34],our:[12,7,19,27],patch:[],special:[12,7,28],out:[31,2,32,18,19,34,12,35,33,8,25,7,9],variabl:[],ousterhout:[19,9],tcsh:[],twice:12,req:[33,2],reboot:19,rej:28,addhost:4,stuf:19,rel:[12,23,34],hardwar:[8,9],gethostbyaddr:5,math:12,statist:[25,34],clarifi:11,takeov:4,insid:2,kilobyt:2,setchaninfo:12,releas:[12,8,28,9,2],afterward:[4,2],could:[2,18,12,27,33,38,7,24,9],ask:[],timer:[12,18,27],keep:[30,2,18,34,22,37,38,9,28],counterpart:12,length:[12,33,4,34,38],enforc:[22,2],outsid:[27,2],retain:12,timezon:2,softwar:[8,9],logsiz:2,suffix:[34,2],echo:12,exact:12,date:[12,9,34,2],barr:2,bitch:22,patchnam:28,remak:19,owner:[15,2,32,19,12,22,9],toi:8,fri:12,invitemask:12,reread:12,dump:[12,38,2],newus:2,licens:[8,9],perfectli:[],mkdir:12,nactiv:[],messag:[],backdoor:19,attack:22,procnam:12,termin:[12,31,19,9],str_dir:34,"final":[8,9,2],low:[38,35],relinquish:12,shell:[17,31,2,8,9,28],gear:17,punish:[12,15,22],juli:[8,31,28],rsa:2,putdcc:12,nobodi:[19,27],herself:9,haven:[31,27],fprint:[33,2],bother:9,charact:[],cygwinhom:[],sens:[8,19,9],bind:[],shl_load:[],sslinc:33,module_unload:34,plaintext:[12,33],patch1:28,otherdir:31,deprec:12,robot:17,sysadmin:19,corrupt:28,egg_lang:2,reserv:[32,2],need:[15,31,2,4,34,19,12,33,22,23,38,7,24,8,9],turn:[12,38,22,2],tidi:34,wasoptest:22,p_tcl_hash_list:34,min:2,rout:12,istl:12,istn:22,mix:[4,22],which:[15,30,31,1,2,18,32,3,19,34,12,33,40,22,23,38,7,24,11,9,28],mkcobx:2,singl:[12,4],unless:[12,38,11,4,2],allow:[29,17,31,1,2,4,34,12,37,35,20,22,33,38,7,8,9],descriptivebranchnam:28,who:[15,2,32,4,12,22,38],patch_howto:[],s_client:33,eight:2,tandcmd:[],why:[],getchaninfo:12,url:[12,9,2],urn:28,request:[2,4,6,12,22,33,38,8,11,9,28],pipe:7,pidfil:2,snapshot:9,determin:[31,34,12,33,7,24],occasion:19,nethack:15,fact:[8,9],text:[15,30,2,3,34,12,5,27,22,33,38,9],verbos:12,bring:19,logflag:2,anywai:[33,34,2],locat:[33,28,2],sh5:[],forev:2,should:[37,31,1,2,6,32,33,4,34,19,12,5,27,22,23,38,7,40,9,28],haschanrec:12,won:[1,2,34,12,27,22,33,7,11,9],suppor:2,local:[2,32,19,12,33,27,28],ksh:[],meant:19,insight:18,contribut:28,notat:2,beat:[31,19],familiar:9,bear:9,autom:[8,9],washalfop:[12,15],db8:[38,2],increas:[34,2],dccutil:[],endless:22,enabl:[17,2,4,34,19,12,35,27,22,33,38,7,24,8,9,40],she:[12,19],contain:[31,2,19,12,33,7,24,9,28],grab:12,view:[12,17,34],notebox:12,unimport:2,knowledg:[8,31],killutim:12,chanfil:[30,22],hook_idl:34,dccsimul:12,entitl:15,nforceban:[],statu:[30,2,34,12,22,8,9],correctli:[12,31],module_load:34,dynamicban:[12,22],boundari:23,dll:[],favor:1,written:[12,8,19,34],uhost:[12,27],progress:9,email:[12,28,9,2],kei:[],sigil:12,job:33,entir:[12,34],disconnect:[12,38,1,2],hook_pre_rehash:34,addit:[],revers:12,schat:[33,2],equal:12,rem_builtin:34,etc:[15,30,2,17,4,34,12,27,22,7,24,8,9,28],admit:35,instanc:22,freeli:[8,9],sigterm:12,strftime:[12,2],comment:[12,25,4,27,2],ld_libraryn32_path:[],wall:12,arriv:12,chmod:[31,2],walk:31,gotdcc:[],incess:8,hubcap:15,respect:[23,3],unsticki:11,admin:[3,19,2],home2:[],quit:[12,38,9,2],mailman:9,decent:34,sendnot:12,compon:12,treat:12,loadmodul:[29,16,0,1,2,39,6,4,34,19,12,37,13,20,22,23,38,25,35,40],immedi:[12,38,27,9],lameshar:7,ldld:[],mnot:1,deliber:33,exemptlist:12,therequir:33,togeth:[17,31,2,38,8,7,9],myword:4,crappi:12,userhost:27,plain:[33,2],killban:12,keyout:33,defin:[15,2,6,4,34,12,20,22,27,38,7,11,9],wild:12,ill:12,func_nam:34,helper:27,getdir:12,almost:[15,8,11,9],site:[15,9,34,19],addchanrec:12,archiv:[9,28],incom:[12,37,34,2],revis:[0,1,2,3,4,5,6,7,8,9,17,11,12,13,15,16,18,20,22,23,24,25,27,28,29,30,31,32,33,34,35,37,38,39,40],parti:[],member:[22,34],add_hook:34,regluar:12,countus:12,inc:[19,9],slave:7,hostnam:[2,18,34,12,22,23,24],denot:12,iot:[],upon:[15,8,9],effect:[12,37,11,2],logfil:[30,2,19,34,12,25],setlink:12,build:[],expand:[8,9],off:[31,2,32,4,12,22,38,7,27],center:3,mention:34,well:[31,2,18,12,33,9,28],ld_library_path:[],thought:9,command:[],english:[30,2],undefin:[],latest:[17,18,9],"5c0":[38,2],less:[32,6],boot:[12,2],botcmd:[],filedb:[12,37],fdb1:[],abat:27,rest:[12,7,31,34,2],simultan:[12,35],chandname2nam:12,web:[19,34,2],function_to_cal:34,chpt:12,bell:12,makefil:[31,19,34,28],validus:12,add:[17,31,2,4,34,12,27,22,7,9,28],exempt:[],kick:[15,30,2,4,12,22,38],gmt:[12,2],killtim:12,dest:[31,2,19,12,33,9],piec:31,five:12,know:[29,30,31,2,18,4,34,12,27,38,7,11,9,28],password:[17,1,2,32,4,34,12,33,38,7,39],pier:31,desc:[12,34],insert:[3,22],like:[15,2,17,6,32,4,34,19,12,37,27,22,33,8,39,9,28],finnish:2,likm:22,necessari:[22,9],lose:[18,22,9],lamest:[7,3,22,2],page:28,unreach:7,exceed:2,drop:[12,31,2],reloadhelp:12,suppli:2,"export":30,yyyymmdd:2,flush:1,proper:24,guarante:4,librari:[33,19],tmp:[12,35,2],est:2,leaf:[33,7,2],avoid:[23,34,2],validchan:12,thank:[9,28],chanexempt:12,leav:[31,2,32,19,12,22,38],ipv4:[24,2],kiddi:2,mode:[17,2,4,34,12,6,22,38,11,9],slight:9,dcc:[],vhost:[24,2],host:[15,22,2,12,27,7,33,38,8,11,9],although:[18,4,2],offset:2,protectop:22,stage:34,actual:[2,32,34,12,8,9],socket:[12,34,2],column:3,irix:[],del_hook:34,cerfif:2,modechang:12,cflag:[],filedb_upd:[],botaddr:12,disabl:[2,4,12,22,33,38,24],own:[30,1,19,34,12,9,37,38,27],automat:[15,31,17,2,19,12,33,38,11,24,7,40],warranti:9,automak:[],capath:[33,2],mere:9,getdccawai:12,killdcc:12,transfer:[],trigger:[12,38,27,22,34],downgrad:9,arg1:12,"var":12,"function":[],iconfig:[31,9,34],unexpect:12,subscrib:9,hook_num:34,gain:[15,8,19,9],botmsg:[],buf:4,bug:[31,18,19,9,8,27,28],count:[12,38,18,27],made:[31,1,12,22,8,9],wise:[9,2],temp:[12,2],whether:[12,2],wish:[31,2,4,34,7,25,11,9],displai:[38,3,4,40,2],troubl:[23,2],asynchron:[12,23,34],directori:[],below:[1,2,18,34,12,22],limit:[17,4,12,22,38,24,9],otherwis:[31,2,12,9,33,11,7,27,40],problem:[],instead:[15,30,1,2,4,12,37,27,22,33,9],matchstr:12,evalu:12,"int":[12,34],mask:[12,38,2],dure:[31,20,18,34,1],pid:[12,2],meaningless:15,novemb:1,implement:2,ing:4,probabl:[12,38,19,9],contest:34,dispos:12,percent:3,detail:[33,31,9,34,28],virtual:2,other:[1,2,3,4,33,7,8,9,17,11,12,15,18,19,22,23,24,28,29,30,32,34,38,39],lookup:[12,23,24,18,2],futur:[12,31,4,19,2],branch:[9,28],varieti:[8,9],repeat:[12,9],addbot:12,putnow:12,june:[12,17,7],isbotnick:12,uncommon:18,wallop:[12,2],stai:12,experienc:31,bch:9,eof:12,lamer:2,channelflag:12,rule:9,portion:[12,31,22,34],decemb:[17,30,0,32,8,27]},objtypes:{},objnames:{},filenames:["coreDocs/woobie","coreDocs/share","coreDocs/core","appendices/text-sub","coreDocs/irc","appendices/known-probs","coreDocs/ctcp","mainDocs/botnet","mainDocs/about","installAndSetup/readme","index","mainDocs/bans","mainDocs/tcl-commands","coreDocs/seen","mainDocs/index","mainDocs/users","coreDocs/assoc","mainDocs/features","appendices/weird-msgs","installAndSetup/faq","coreDocs/compress","installAndSetup/index","coreDocs/channels","coreDocs/dns","mainDocs/ipv6","coreDocs/uptime","appendices/index","appendices/first-script","mainDocs/patch","coreDocs/notes","appendices/tricks","installAndSetup/install","mainDocs/partyline","mainDocs/tls","coreDocs/modules","coreDocs/transfer","coreDocs/index","coreDocs/filesys","coreDocs/server","coreDocs/blowfish","coreDocs/console"],titles:["Woobie Module","Share Module","Eggdrop Core Settings","Textfile Substitutions","IRC Module","Known Problems","CTCP Module","Botnet Sharing and Linking","About Eggdrop","README","Welcome to Eggdrop's documentation!","Bans, Invites, and Exempts","Eggdrop Tcl Commands","Seen Module","<no title>","Users and Flags","Assoc Module","Eggdrop Features","Weird Messages That Get Logged","Frequently Asked Questions","Compress Module","<no title>","Channels Module","DNS Module","IPv6 support","Uptime Module","<no title>","Your First Eggdrop Script","Patch How-To","Notes Module","Eggdrop Tricks","Installing Eggdrop","The Party Line","TLS support","Eggdrop Module Information","Transfer Module","<no title>","Filesys Module","Server Module","Blowfish Module","Console Module"],objects:{},titleterms:{code:[],module_report:34,help:9,execut:2,global:12,obtain:9,tcp:12,tcl:12,miscellan:12,bottre:7,window:31,program:34,exempt:11,mail:9,main:10,match:12,"return":12,get:[18,9],faq:[],school:28,ssl:[33,2],botnet:[33,7,2],requir:[31,34],term:7,list:9,authent:33,patch:28,stuff:9,module_clos:34,quick:[31,9],output:12,eggdrop:[10,30,31,2,17,34,12,27,8,9],overview:31,compil:[],certif:33,set:[33,10,24,9,2],old:28,startup:[31,9],procedur:12,connect:12,instal:[33,10,24,31,34],download:28,bore:9,server:38,variabl:12,what:[7,31,9,34],legal:9,substitut:3,module_start:34,irc:[33,4],woobi:0,core:[10,2],iwelcom:[],kei:33,advanc:2,manipul:12,usag:[33,24,9],dcc:[12,33,2],ban:11,ask:[31,19],path:2,valu:12,addit:34,about:[33,8,24],invit:11,bot:7,weird:18,frequent:[31,19],first:27,via:28,appli:28,modul:[29,10,16,0,31,1,2,39,6,4,34,12,37,13,20,22,23,38,25,35,40],prefer:28,module_expmem:34,submit:28,diff:28,guid:[],your:27,git:9,log:[18,2],script:[33,27,2],transfer:35,support:[33,24],question:[31,19],upgrad:9,messag:18,notic:9,includ:34,basic:2,type:12,"function":34,consol:[40,2],appendic:10,readm:9,ipv6:24,telnet:2,flag:[15,7],link:7,crontab:9,known:5,line:[32,9],filesi:[12,37],blowfish:39,module_t:34,setup:10,charact:12,trick:30,record:[12,7],problem:5,autobotchk:9,control:12,featur:17,creat:28,share:[7,1],indic:[],textfil:3,file:2,tabl:[],seen:13,cygwin:31,welcom:10,secur:33,ctcp:6,parti:32,make:7,uptim:25,note:[12,29],how:[9,34,28],document:[10,9],channel:[12,22],compress:[12,20],botflag:7,assoc:[12,16],user:[12,15,7],why:34,github:28,directori:2,bind:12,inform:34,exampl:7,command:[12,9],incorpor:[]}}) +======= +Search.setIndex({envversion:42,terms:{interchang:24,four:[12,24,4,22,2],secondli:12,prefix:[2,32,5,12,33,38],msgm:[12,38],oldest:12,hate:15,partylin:[15,30,2,7,12,33,9,40],whose:[12,8],accur:12,"const":7,aug:12,swap:18,under:[12,17,3,10],worth:31,tcl7:19,digit:[33,2],everi:[15,31,2,5,7,19,12,22,38,3,24,8,10,28],risk:[38,10],"void":7,voic:[12,15,3,22,10],autoconfigur:31,tcl8:[],putbot:12,smack:19,stickinvit:12,appar:[],school:[],unrest:3,cmd:2,tclsh:[19,10],verif:[33,38,2],zlib:[],direct:[12,9,7,28],second:[30,2,5,34,12,35,7,22,23,38,10],valiant:[3,10],botport:9,even:[17,2,3,32,5,7,12,9,8,10],file_send:12,neg:[12,23,2],"new":[17,30,2,32,7,12,33,24,10,28],net:[38,31,5,10],ever:[12,33,18,2],kilobyt:2,behavior:[2,5,34,12,8,24],mem:12,never:[2,19,12,22,10,28],here:[29,30,2,5,34,12,37,35,27,22,23,38,9,8,10,28],kicker:12,path:[],auch:7,interpret:[31,18,4,12,6,24],getchanjoin:12,ontkickop:[],noemail:10,militari:2,anymor:[39,7,2],credit:[12,28],permit:12,aka:2,portrang:2,userinvit:22,portabl:[],whatnot:10,getchan:12,seven:22,unix:[17,3,31],printf:7,txt:19,highli:[38,31,19],ithi:[],describ:[9,2],would:[2,4,34,12,33,9,10,28],program:[],call:[31,2,19,7,12,6,27,9,3,10],typo:12,recommend:[30,35,19,22,7],type:[],until:[2,19,12,22,8,10],relat:[7,12,22,24,10,28],haha:10,notic:[],warn:[12,7,10],warm:28,relai:[12,9,3,10,2],isbansticki:12,hole:2,hold:[12,1],unpack:3,must:[31,2,5,7,12,33,22,23,38,9,10],join:[29,15,32,17,2,18,5,7,12,40,22,8,27],banlist:12,setus:12,setup:[],work:[31,1,2,19,34,12,6,13,27,22,7,33,9,24,8,10,28],onjoin:29,root:37,novic:[3,10],give:[15,32,31,17,2,12,27,22,38,9,10],autodetect:33,matchinvit:12,caution:12,unavail:[38,2],want:[29,30,31,2,5,7,19,12,33,35,27,22,23,38,9,37,3,10,40],ultrix:[],stickban:12,end:[31,2,4,7,12,27,28],quot:[],jwilkinson:18,how:[],hook_secondli:7,disappear:10,env:2,answer:[38,3,31,34],verifi:[33,38,2],negoti:[12,33],config:[1,2,4,5,23,7,9,8,10,12,20,22,33,24,25,27,29,30,31,34,35,37,38,40],updat:[17,2,7,6,10,28],recogn:[15,5,38],goober:12,x509:[33,2],after:[30,31,2,5,7,12,27,22,33,38,8,10],befor:[29,31,1,2,5,7,12,33,35,22,23,38,3,9,10],wrong:19,substant:10,demonstr:[0,7],attempt:[31,2,5,12,22,33,38,9,8],third:[12,9],greet:[3,22,10],exclud:12,recompil:[28,5,19],maintain:30,environ:[17,2],incorpor:[],enter:[31,2,32,12,22,33,28],exclus:[12,38],order:[12,23,33,2],oper:[2,4,19,34,12,38,24],placefield:[],xlib:[],offici:10,fall:33,becaus:[2,18,7,12,38,3,10],privileg:[15,3,10],affect:[12,17,24,22,2],ormal:[],flexibl:[12,17],digest:12,fix:[31,2,18,19,7,12,6,3,10,28],better:[13,31,19,7,2],chattr:[12,15],hidden:17,easier:31,notefil:[12,29],savechannel:12,them:[29,15,30,31,1,2,17,5,34,19,12,35,7,22,23,38,9,24,3,10,40],thei:[29,31,1,2,5,34,19,12,8,7,22,33,38,9,3,10,40],proce:12,safe:[],"break":12,octal:2,interrupt:6,lixom:19,choic:10,grammar:10,dload:35,dumpfil:12,timeout:[23,38,35,7,2],each:[29,15,30,2,17,32,7,12,35,22,37,9,3,10],debug:[31,2,7,12,25,27],european:2,side:[12,33,2],mean:[17,2,3,18,5,19,12,27,33,38,9,24,8,10],prohibit:2,autohead:28,resum:12,upload:[17,30,7,12,37,10],sdcc:33,extract:[],unshar:15,network:[2,4,5,12,38,3,10],goe:[31,32,12,22,33,9,8],invitemask:12,content:[14,36,26,21],botaddress:12,got:[12,18],killassoc:12,noqueu:12,situat:9,infin:2,hook_read_userfil:7,standard:[15,18,5,7,19,12,33,35,23,27],tcldcc:[],hand:[12,3,27,2],md5:[12,39,7],sigkil:12,newus:2,openssl:[33,31,2],filter:6,heck:[19,10],isn:[1,7,12,37,38,8,25,10],rand:12,shlib_path:[],independ:[],putallbot:12,nactiv:[],restrict:[12,38,4,10,2],hook:7,instruct:7,alreadi:[31,2,7,12,22,38,9,27],wasn:12,undernet:[12,38,5,10,19],primari:[38,2],ltcl8:[],modes_per_line_max:5,backdoor:19,top:[31,10,28],sometim:[38,10],yesterdai:2,underlin:[12,4],master:[15,2,4,12,9,8],too:[2,5,7,12,35,10,38,3,27],dprintf:7,john:[19,10],listen:[12,33,9,24,2],danish:2,consol:[],tool:[31,28],sha1:33,ntik:12,technic:10,isperminvit:12,target:[12,19],keyword:12,provid:[1,2,5,23,7,3,10,12,13,16,19,20,22,33,24,28,29,34,35,37,38,40],tree:[3,10,28],zero:12,stackabl:12,project:[],matter:[23,10],flame:10,minut:[2,18,5,7,12,22,8,10],ebai:2,file_send_pend:12,mind:19,rfc1459:12,raw:[12,2],miniatur:32,seen:[],seem:18,minu:22,getsocknam:[],strength:[],hub:[33,9,1,2],unresolv:19,resetchan:12,thorough:7,client:[12,33,38,27,2],transmit:38,simplifi:12,idx2hand:12,though:[12,33,38],usernam:2,object:19,addlang:2,first_script:19,regular:[12,33,19,22],letter:[15,18,10,2],bsd:[],passthru:2,don:[30,31,1,2,32,5,7,19,12,33,27,22,23,38,9,37,10,28],doc:[31,2,32,19,7,12,10,38,3,27],alarm:[12,6],doe:[15,31,2,32,18,19,12,6,22,33,8,10],declar:12,wildcard:[12,22],enclos:[12,24,22],dot:32,random:[12,38,9,22],syntax:[15,2],radic:10,protocol:[12,33,2],my_talk_handl:27,absolut:[12,15,3,10],nobodi:[19,27],matchexempt:12,explain:22,configur:[0,1,2,5,23,7,10,13,16,19,20,22,33,24,25,27,28,29,31,34,35,37,38,39,40],busi:[18,27],rich:[3,10],folder:7,oct:33,tcl_appendresult:19,stop:[18,5,7,19,12,22,3],module_renam:7,jupe:12,report:[25,30,18,7,10],ldl:[],bar:12,impli:[7,10],bandwidth:[7,20],"public":[15,2,12,33,3,10],reload:12,bad:[15,18,22],baa:27,ban:[],septemb:23,respond:[12,18,27,22],botnick:[12,38,2],vali:12,result:[12,38,8,2],respons:[12,38,10],fail:[2,18,19,12,33,23],themselv:[30,9,5],best:[12,9,19,10],subject:[33,28],awar:12,said:[12,9,27],notcproc:12,hopefulli:[12,31,10],databas:[12,37,27],figur:31,finger:34,awai:12,irc:[],attribut:[12,15,9,8,28],accord:[12,15,10],manpag:2,newnam:12,extens:[31,28],lazi:5,advertis:[3,19,10],shl_load:[],ircop:[5,22],setsockopt:[],protect:[15,31,2,22,33,38,3,8,10],mildli:18,fault:[6,7],howev:[2,18,19,34,12,33,38,10],enforceban:22,against:[12,38,19,22],fno:[],login:2,com:[2,7,12,13,33,38,9,10],col:4,old_module_nam:7,rehash:[12,7,27,2],had:[31,2,18,12,22,9],hook_backup:7,formatstr:12,diff:[],trust:[15,19,10,2],assum:[12,38,8,27,2],summar:38,reveng:22,dhave_sys_dir_h:[],three:[12,38,9,8,2],been:[17,2,18,5,7,19,12,38,3,8,10],much:[31,32,19,7,12,10,27],numberlist:12,interest:10,basic:[],unstick:8,quickli:[6,2],mco:[12,2],life:[29,10],otherdir:31,worker:31,telnet:[],ani:[29,15,31,1,2,17,32,18,5,7,19,12,27,33,38,3,40,8,10,28],input:12,botattr:[12,9],rang:2,killmemb:18,ident:[12,38,24,5,2],aix:[],gnu:[3,31,20,10],servic:[7,22],serverror:38,sourceforg:[],calcul:38,publicli:25,alltool:2,privatekei:[33,2],stickexempt:12,valididx:12,spawn:3,ishalfop:12,egg_lang:2,channame2dnam:12,conf:[33,31,19,10,7],module_nam:7,sever:[30,18,19,34,12,7,3,10],grown:3,dispos:12,disabl:[2,5,12,22,33,38,24],userlist:[12,13,5,1,7],perform:[15,31,12,22,3,10],suggest:[19,10,7],make:[],transpar:2,quann:[13,7],complex:12,split:[32,4,5,12,22,24],ldopen:[],complet:[15,31,1,17,12,22,33,10,28],hang:[23,7],pubm:[12,38],yourbot:30,rais:[38,22],topc:12,techniqu:30,kept:[8,2],botnetop:22,scenario:9,thu:12,thr:2,contact:2,resetban:12,thi:[0,1,2,3,4,5,6,7,8,9,10,17,12,13,15,16,18,19,20,22,23,24,25,27,28,29,30,31,33,34,35,37,38,39,40],gzip:[12,20],everyth:[12,31,19,10],shl_findsym:[],left:[12,18,5,28],identifi:[12,15,2],just:[30,31,1,2,32,18,5,7,19,12,37,23,3,9,10],"_always_":2,hand2idx:12,dhave_dirent_h:[],human:10,sockread:[],yet:[12,38,18,2],languag:[17,30,19,2],previous:12,easi:[12,33,10],elf:19,spread:2,els:[12,32,19,27],save:[17,1,2,20,12,7,22,9,40],applic:[12,10,2],advis:[38,31],mayb:[19,27,2],killignor:12,boldfac:12,background:10,loadhelp:12,apart:[12,7,2],measur:38,daemon:2,ctime:12,specif:[15,5,7,12,33,22,23,38,9,24],arbitrari:12,manual:[2,19,12,33,9,24],remind:2,www:[13,31,7,10],right:[12,0,7],old:[],pl1:12,exemptmask:12,interv:12,maxim:2,flud:12,intern:[12,38,27,2],toctre:[],inact:[35,22],successfulli:[12,7,10],total:[12,17,7,22],fpic:[],revengebot:22,track:[37,31,18,7],delhost:12,core:[],plu:[12,33,38,22,2],bold:[12,15,4,10],rfcequal:12,insecur:22,burn:31,netsplit:[12,17,18,5,2],repositori:10,peer:[33,38,2],cygssl:[],geteggdrop:10,obj:[],protectfriend:22,simul:[12,10,2],s_client:33,eight:2,produc:[12,2],bounc:5,"float":19,guppi:12,bound:[12,2],down:[31,18,19,12,9,3,10],ischaninvit:12,storag:[40,7],east:2,accordingli:38,deal:[12,15,2],wai:[31,2,32,19,7,12,27,33,38,9,8,10],support:[],fight:22,avail:[17,2,32,7,12,22,24,25,10],width:4,reli:12,msgcmd:[],dcclist:12,constantli:7,war:3,fork:28,head:2,genrsa:2,forc:[31,1,2,12,22,33,40],cidr:[12,2],freenod:10,dynamicexempt:[12,22],reset:12,putcmdlog:12,maximum:[29,37,2,5,12,33,35,22,23,38],tell:[12,9,19,27,2],sampl:22,autoconf:[31,28],featur:[],openbsd:24,turbo:35,decrypt:12,exist:[15,18,7,12,38,3,10],hook_minut:7,check:[2,7,12,10,22,33,38,27],sticki:[12,8],readonli:7,encrypt:[17,7,12,33,9,39],when:[31,1,2,32,18,5,7,19,12,6,40,22,33,38,8,24,39,10,28],pidfil:2,flood:[29,15,2,17,34,12,22,38,9,3,10],test:[15,27],dirent:[],node:33,intend:[12,17,8,31,28],chjn:12,intens:38,consid:[12,8,32,10,2],getop:22,lsocket:[],receiv:[19,12,37,23,38,9,27,28],longer:[12,31,5,10,7],sock:[7,2],anywher:[12,32],pathnam:12,maxdepth:[],time:[30,31,1,2,18,32,4,5,8,19,12,33,35,22,23,3,9,10],push:[12,28],maxsend:23,daili:12,chain:[33,2],skip:10,logfilenam:2,global:[],signific:[7,10],skim:10,per:[12,5],netbsd:24,milk:15,lld:[],depend:[15,2,7,12,33,8],puthelp:12,flash:4,readabl:10,module_entri:7,opportunist:33,nxdomain:23,misc_fil:[],sourc:[30,31,2,19,7,12,10,33,27,28],string:[12,7,5,27,2],unfamiliar:27,octob:[38,22,2],word:[12,5,27],brows:27,myownevent123:12,eden:12,administr:19,level:[12,15,20,2],did:10,die:[12,7,10],item:12,team:[0,1,2,3,4,5,6,7,8,9,10,17,12,13,15,16,18,20,22,23,24,25,27,28,29,30,31,32,33,34,35,37,38,39,40],quick:[],dir:[12,19,10],prevent:[29,5,19,12,22,33,9,24,3,10],slower:2,sign:[12,33,38,4,2],ufl:12,port:[1,2,12,33,23,38,9,24,10],rej:28,appear:[12,9,2],iscompress:12,scripter:9,repli:[2,5,7,12,34,23],deludef:12,killexempt:12,str_protect:7,current:[29,2,32,4,5,7,12,37,33,39,10,28],privmsg:[12,27,22],ground:2,unban:[12,22,2],gener:[18,19,12,27,33,3,10],french:2,explicitli:33,modif:12,address:[29,1,2,12,9,24,25,28],along:[],setdesc:12,wait:[2,5,7,12,35,23,38],box:2,togeth:[17,31,2,38,9,3,10],invit:[],bot:[],finnish:2,queue:[12,38,7],behav:12,myvar:30,commonli:[12,2],overrid:[33,24,1],love:27,getinfo:12,hook_rehash:7,modul:[],prefer:[],myip:12,fake:12,instal:[],post:10,haschanrec:12,memori:[12,17,18,7],etiquett:10,todai:12,handlen:12,msg:[17,2,32,5,7,19,12,13,38,10],scope:27,hook_5minut:7,checkout:28,capit:[18,10],peopl:[29,15,1,2,17,32,4,5,12,22,37,38,3,10],enhanc:7,tandem:[],accept:[1,2,19,12,33,9],examin:7,effort:[3,10],easiest:19,local:[2,32,19,12,33,27,28],prepar:9,cap:7,uniqu:2,cat:[],descriptor:[],botnam:[12,9],whatev:[17,31,2,4,12,10],purpos:[0,2,7,9,25,3,10,28],overwritten:[12,2],cmd_t:7,slightli:[],topic:[12,27],abort:[12,33],occur:[12,18,5],alwai:[31,12,22,3,8,10,28],differenti:12,multipl:[17,2,7,12,9,3,10],get:[],ping:34,modulenam:7,uptim:[],write:[0,2,7,12,10,27],till:12,anyon:[12,8,22,10],map:[],birthdai:2,lastbind:12,max:[29,2,5,35,37,38],clone:[22,10],usabl:[37,7],mac:24,aop:22,mai:[30,2,18,5,20,19,12,35,27,22,37,9,24,10],drastic:[12,7],protecthalfop:22,data:[12,22,19,1,7],man:2,masktyp:12,washalfop:[12,15],stress:10,autotool:28,gethostnam:[],stdio:7,newidx:12,inform:[],"switch":[12,33,30,7,2],preced:[12,33],combin:[12,17],offend:19,ordinari:[12,33],talk:[17,32,27],midnight:2,ttl:23,nsl:[],cold:28,still:[17,31,1,2,19,12,22,10],pointer:[17,31,4,10],cvsroot:28,dynam:[12,8,31,19,22],ethic:2,group:[12,2],monitor:[12,8],putloglev:12,instantli:38,platform:[3,10,2],window:[24,27,10],logmod:7,dhave_sys_select_h:[],mail:[],main:[],meridian:2,limbo:2,non:[33,18,5,7,12,6,22,23,38,9,8],chaninvit:12,encod:[12,4],initi:[12,33,24,7,27],now:[15,31,2,5,12,6,33,9,24,3,10],isjup:12,discuss:10,ignorelist:12,name:[16,31,2,7,12,6,38,27,28],didn:[19,28],separ:[17,30,31,2,7,12,38,9,24],killchanban:12,januari:[29,16,35,39,13,40,25,10],vhost:[24,2],compil:[],domain:[23,9,10],replac:[2,4,7,12,22,38],arg2:12,continu:[12,18],setchan:12,contributor:28,year:[12,3,10,2],happen:[2,18,19,12,27,8,10],bothandl:27,tcl_string:7,hacker:19,shown:[18,2],accomplish:31,space:[12,3,35,10,2],passwdok:12,internet:[12,33,3,10],correct:[31,18,10,2],she:[12,19],lag:[32,2],userinfo1:2,setflag:12,argn:12,org:[31,2,7,12,9,25,10,28],"byte":[12,38,35,5,7],care:[12,28,2],newnick:12,couldn:12,globalflag:12,synchron:33,thing:[0,31,2,18,19,7,12,6,9,10,28],place:[31,2,19,7,5,12,22,33,8,10],nicknam:[15,30,2,18,4,12,33,38,27],think:15,frequent:[],first:[],origin:[12,38,10,28],directli:[12,22,19,1,7],spoken:12,onc:[18,5,19,12,27,22,37,38,10,28],yourself:[33,3,19,28],nick2hand:12,submit:[],open:[2,32,19,12,10,33,27,28],size:[12,37,35,7,2],given:[12,23,10],silent:2,module_regist:7,caught:[12,10],necessarili:12,encpass:12,userinfo:[12,34],conveni:2,friend:[15,22],rem_tcl_command:7,tclhash:[],especi:[27,10],copi:[12,35,27,10,7],specifi:[29,17,1,2,18,37,7,12,33,22,23,38,8,24],broadcast:[12,32],github:[],hup:12,mostli:10,than:[2,19,34,5,12,22,33],serv:2,wide:[33,32],yourusernam:28,getown:12,were:[2,5,12,9,8,10],posit:[7,2],janitor:15,seri:[12,28],pre:[12,19,10],sai:[19,12,27,22,9,10],autohalfop:22,argument:[12,5],himself:10,deliv:12,cflg:[],getfileq:12,nelin:[],squar:24,destroi:[3,10],moreov:2,module_depend:7,libpath:[],note:[],take:[31,2,19,7,12,33,38,25,10],notc:12,noth:[12,19,7,2],channel:[],begin:[12,24,27],sure:[2,12,10,22,9,27],pain:35,trace:38,normal:[30,2,34,12,33,27,23,38,3,7,10],buffer:1,compress:[],frim:7,abus:[3,10],pair:12,gunzip:10,compressfil:12,renam:[12,30,7,2],renudef:12,later:[29,31,2,39,7,12,33,25,10],thse:5,erasenot:12,badg:15,pattern:12,newchaninvit:12,recipi:12,signoff:12,show:[2,7,12,22,9,25,10,28],german:2,concurr:2,permiss:[10,2],hack:19,filesend:12,evnt:[12,38],onli:[0,1,2,3,4,5,8,9,10,12,13,15,19,22,33,24,25,27,28,29,30,31,32,7,38],slow:[18,2],mode_proc:12,favor:1,activ:[32,18,12,22,33,8],behind:[18,2],needal:12,tlsstatu:12,unloadmodul:12,over:[30,2,7,12,33,38,24,10,28],sighup:12,nearli:19,variou:[31,2,7,12,8,10],dynamicinvit:[12,22],ircd:[12,38,18,5],chanexempt:12,repo:28,ssl:[],cannot:[15,3,19,7,28],utoop:[],requir:[],prime:2,lame:[2,5,19,12,22,9],egghead:[0,1,2,3,4,5,6,7,8,9,10,17,12,13,15,16,18,20,22,23,24,25,27,28,29,30,31,32,33,34,35,37,38,39,40],dronepup:12,tcllibfn:[],where:[29,17,37,2,19,7,12,33,27,22,23,38,10],isoptest:22,ircnet:[22,38,5,10],hook_daili:7,callev:12,infinit:37,detect:[12,33,24,19,38],matchban:12,you_want_to_export:7,enough:[12,10,2],listinfo:10,add_tcl_str:7,between:[29,1,2,7,12,22,38,9,24,10],"import":[12,32,7,27,2],across:[12,30,9,3,10],august:5,screen:[4,10,28],ssllib:33,collect2:[],come:[12,38,5,10,7],unld:12,cycl:[38,22,2],vista:24,quiet:[15,38,2],tout:12,mani:[2,5,7,12,27,22,23,38,9,3,10],module_undepend:7,color:[12,10],period:[12,6,23,7],exploit:19,botisvoic:12,colon:[24,2],cancel:12,typic:[12,17,32,19,2],newchanban:12,caret:18,getflag:12,coupl:[12,10],harmless:19,west:2,hardli:18,invers:4,mark:[12,15,17],sslcert:[33,2],getdesc:12,resolut:2,ispermexempt:12,stealth:2,those:[19,20,6,7,38,10],"case":[12,23,38,19,2],blowfish:[],userport:9,mount:35,no_irc:[38,7],cast:[],invok:12,fil:12,abcdechannel:12,anytim:6,advantag:30,stdout:7,henc:[12,19,7],everydai:2,worri:[],dccsend:12,eras:[12,3],"return":[],ascii:12,chansettyp:12,any_other_funct:7,develop:[0,1,2,3,4,5,6,7,8,9,10,17,12,13,15,16,18,20,22,23,24,25,27,28,29,30,31,32,33,34,35,37,38,39,40],author:[33,2],alphabet:2,dalnet:[38,5,10],same:[30,31,2,4,5,20,19,12,7,22,33,9,3,10],binari:[31,19,28],html:[24,10],pad:12,pai:[12,10],document:[],resetchanjoin:12,week:12,exhaust:12,finish:[12,10],ischanjup:12,someon:[18,5,19,12,27,22,10],weed:[19,10],driven:12,capabl:2,improv:[3,10],extern:2,autovoic:[15,22],appropri:[28,31,2],macro:7,without:[17,31,2,18,19,34,12,7,22,33,9,39,3,10],ieggdrop:[],dereferenc:[],comment:[12,25,5,27,2],execut:[],putkick:12,kill:[12,27,18,19,10],ld_library_path_32:[],death:31,trigger:[12,38,27,22,7],except:[2,7,12,34,33,38,10],littl:[9,31,30],matchaddr:12,pile:19,real:[12,38,7],around:[3,19,27],read:[31,2,4,7,12,6,27,3,10],rejoin:12,pushmod:12,traffic:[12,30,2],moc:12,world:[3,10,2],oldnam:12,mod:[12,13,31,7,2],tolow:27,whitespac:12,integ:12,server:[],either:[31,2,19,12,33,9,24,8,10],output:[],cfox:10,manag:[37,7],sneaker:31,botchk:[31,10],handshak:12,constitut:[38,22,2],dupwait:2,confirm:28,someircnetwork:2,exit:[12,38,7,10,40],apostroph:32,islink:12,refer:[12,7,2],process:[31,18,19,20,12,9,3],power:[17,10],imposs:3,egghelp:[31,10],fulli:2,mailman:10,earlier:19,src:[12,31,5,7,28],stone:38,central:[37,2],greatli:[],chof:12,chon:12,numvers:12,stand:[3,10],act:[12,17,33,7,2],backup:[12,7],routin:[12,5,2],addus:12,activest:10,dnslookup:12,unstickban:12,strip:[12,2],your:[],log:[],area:[15,30,2,7,12,37],aren:[12,6,30,10,2],tcl_cmd:7,negcach:23,overwrit:12,start:[0,31,2,32,4,19,7,12,27,38,9,39,3,10],compliant:[38,5],interfac:[12,2],rmdir:12,lot:[27,31,5,10],ipv6:[],strict:2,unam:12,untar:10,jun:28,prerehash:12,jul:[24,7,10,28],ldnshread:[],lnsl:[],faster:12,pull:[10,28],possibl:[31,2,32,18,19,34,12,22,33,24,10,28],"default":[31,2,5,20,12,33,22,23,38,8,10],halfop:[12,15,22],embed:12,connect:[],gone:[12,5],displaynam:7,uid:[33,2],creat:[],filt:[12,7],certain:[15,17,2,4,12,8,24],decreas:2,file:[],fill:[33,28,10,2],again:[31,2,7,9,25,8,10],collid:18,ctcp:[],ctcr:12,hybrid:38,prepend:2,field:[12,33,38,2],valid:[17,31,2,7,12,22,33,38,9,27],ignor:[17,1,2,34,12,38,3,9,10],you:[0,1,2,3,4,5,6,7,8,9,10,17,12,13,15,18,19,20,22,23,24,25,27,28,29,30,31,32,33,34,35,37,38,39,40],string2:12,string1:12,cygcrypto:[],symbol:[12,18,19],drift:18,handonchan:12,ansi:12,fresh:2,timerid:12,reduc:7,unbind:[12,30,5,2],unload:[12,7],botfl:12,descript:[12,28,7,2],nodesynch:22,mass:10,cpu:[12,38,2],nmalloc:7,putserv:[12,27,22],all:[1,2,5,23,7,9,8,10,17,12,15,18,19,22,33,24,27,28,30,32,34,37,38],forget:[12,7,28],tcl_int:7,sanitycheck:2,month:[12,2],getchanhost:12,add_builtin:7,disc:12,suno:[],abil:[12,17],follow:[30,31,2,4,5,7,12,22,33,38,9,10,28],alt:[38,2],disk:[17,2,12,35,3,10],prdownload:[],hook_load:7,dyld_library_path:[],init:[12,38,2],foster:[],smile:31,introduc:[12,10],liter:7,masquerad:2,song:12,fals:[12,18],unixtim:12,mpj:12,util:[31,10],utim:12,robei:[15,31,4,10,17],failur:12,veri:[15,17,2,18,7,13,27,38,10],unoffici:24,quakenet:10,strang:18,botisop:12,gayteen:3,heaven:31,list:[],adjust:[3,5,10],form:[12,3,4,7,10],func_tabl:7,small:[9,35,31,30],ten:10,getchanidl:12,unsatisfi:[],past:[7,10,2],rate:38,design:[17,3,10,28],pass:[12,32,18],further:12,what:[],sub:12,clock:18,sun:2,section:[2,19,7,5,12,27,22,9,10],abl:[31,2,32,18,5,7,22,38,10],delet:[12,30,10],version:[31,4,5,34,19,12,6,7,33,3,24,25,10,28],run:[31,2,18,4,19,7,6,22,33,38,9,3,10,28],dp_help:7,helpfil:12,libtcl80:19,method:[30,39,5,7],hasn:38,full:[12,33,24,31],hash:[],shouldn:7,free:[7,10],solari:[],excess:[38,22,10],strong:2,modifi:[30,2,5,12,23,28],valu:[],search:7,sender:12,ahead:3,fwd:29,prior:31,amount:[7,10,2],starttl:[12,33],splt:12,action:[12,2],via:[],reiniti:12,cafil:[33,2],filenam:[29,2,12,22,33,28],famili:2,establish:[12,33,24,27],memor:31,select:[17,28,10,2],aggress:[9,19],ctrl:12,regist:22,two:[30,1,2,5,7,12,9,8],loadchannel:12,new_module_nam:7,taken:[12,7],kick:[15,30,2,5,12,22,38],forcefulli:33,minor:[12,7],more:[17,31,2,5,34,19,12,13,7,33,9,10],flat:12,desir:7,hundr:19,ital:12,mirc:[12,38],stick:8,particular:2,known:[],unloadhelp:12,destin:[12,7],cach:[12,23],none:[29,16,0,35,12,13,22,23,38,39,40],hour:[12,8,25,7,2],outlin:[],dev:[10,28],remain:[12,8,22],paragraph:31,listnot:12,learn:[12,17,5,2],preinit:12,dec:12,prompt:[31,10],bogu:2,useabl:2,share:[],templat:28,minimum:[12,3,22],resync:1,phrase:12,userban:22,cours:[12,9,31,2],csh:[],secur:[],rather:[12,33],anoth:[29,1,2,4,5,7,19,12,27,22,38,3,9,10],shutdownreason:12,pretti:[3,32,27,10],reject:[38,9,2],simpl:[12,7,10],serveraddress:12,unabl:[12,9,5],wasop:[12,15,5,22],resourc:7,referenc:[],ranlib:[],okai:2,unlink:[12,2],associ:12,stabil:35,"short":[31,7],resetexempt:12,caus:[12,9,18,10],altnick:38,help:[],soon:[12,6,19,22],through:[17,32,12,10,22,38,24,27],reconnect:[12,1],newexempt:12,our_chan:27,paramet:[12,10],style:8,dccuse:12,"04may2000":2,pend:22,bypass:12,onelin:12,might:[2,18,5,7,12,33,10],alter:[12,17],wouldn:2,isexemptsticki:12,good:[12,15,3,10,2],serverop:22,timestamp:[12,2],setdccawai:12,cet:2,botnet:[],gethostbynam:[],chanserv:22,unlik:[17,31],refresh:12,bless:10,easili:[12,17,3,10],found:[12,28,19,7,2],unicod:6,userexempt:22,isban:12,hard:2,idea:27,crontab:[],realli:[3,28,30,27,2],expect:[12,7,34,2],horribl:31,utexa:18,slave:9,beyond:[],add_tcl_command:7,event:[2,7,12,10,9,3,27],ftp:[7,19,10,28],mrlame:2,publish:2,hltran:[],print:28,variable_nam:7,unaccess:17,occurr:7,woobi:[],qualifi:2,advanc:[],dehalfop:[12,15,22],differ:[30,31,2,19,12,22,33,38,10,28],pub:[12,38,27,10,28],reason:[2,18,7,12,9,3],base:[12,10,2],put:[29,16,0,1,2,39,5,34,12,33,13,20,22,23,38,37,25,35,10,40],bask:28,bash:[],english:[30,2],omit:[12,33],perhap:18,perman:[12,8,22,2],eggdev:[],lifetim:12,assign:[9,2],major:[12,7,10,28],dccbroadcast:12,notifi:[12,29,38,2],obviou:18,upper:23,feel:[7,10,28],hand2nick:12,misc:[12,2],number:[29,15,2,5,7,12,37,35,22,33,38,9,28],ltcl7:[],done:[1,7,12,9,27,28],stdlib:7,blank:12,stabl:10,miss:[12,10],retrydelai:23,gpl:[3,10],guess:5,fuller:10,script:[],ipaddress:12,interact:[5,2],least:[2,18,5,7,10,8,27],chanmod:22,statement:12,relink:9,scheme:10,store:[29,2,7,12,22,37,9,25,40],putquick:[12,38],option:[31,2,19,7,12,22,33,38,10,28],blindli:5,mode_proc_fix:12,part:[17,30,2,18,12,38,3,10],pars:12,userrec:[],consult:[33,24],reinstal:19,cron:[12,10],kind:12,stb:38,whenev:[7,12,33,38,9,27],remot:[12,9,4,2],gotten:[],remov:[17,30,2,19,7,12,22,8,24,10],stall:12,str:12,toward:17,danc:12,comput:[18,19],packag:[31,10],delchanrec:12,dedic:10,"null":[7,10],entireti:31,built:[12,30,19],equival:[38,7],banmask:12,self:[33,38,2],nkch:12,setudef:12,undeclar:[],also:[1,2,3,4,5,33,7,8,9,10,17,12,15,18,19,20,22,23,28,29,30,31,32,34,35,37,38,40],xreq:[],useless:[],maskhost:12,brace:22,uplink:[12,18],unstuck:12,distribut:[3,19,10],filesystem:[12,15],reach:[38,5,2],quota:2,most:[17,2,32,18,5,7,19,12,35,27,38,3,10],plai:27,rem_tcl_str:7,cygwin:24,addr:[24,2],fileresend:12,clear:[12,33,10],cover:[9,8,27],destruct:3,ltcl:[],ext:[],clean:19,squelch:38,latest:[17,18,10],carefulli:[12,10],misnom:12,sublist:12,rejn:12,fine:[38,5,2],find:[31,32,5,7,19,12,13,27,23,10,28],penalti:38,firewal:2,setown:12,copyright:[0,1,2,3,4,5,6,7,8,9,10,17,12,13,15,16,18,20,22,23,24,25,27,28,29,30,31,32,33,34,35,37,38,39,40],killchanexempt:12,paranoid:[1,2],solut:[],queu:[12,38],dp_stdout:7,hit:12,opchar:5,llamabot:2,dccputchan:12,isinvit:12,yourbranchnam:28,mainten:[15,18],fastest:10,xfer:[15,35],banner:[4,2],him:[19,10],restart:[31,2,19,7,12,10,27],resend:[12,23],ischanban:12,"_____________________________________________________________________":[],newchanexempt:12,userflag:5,filedb:[12,37],rfc:[12,38,5],crf:10,common:[15,2,33,38,9,10],sslport:33,certif:[],set:[],stump:10,delus:12,creator:12,see:[31,2,32,4,5,7,19,12,22,38,9,25,3,10],sed:[],sec:2,arg:[12,7],close:[12,7],someth:[12,28],debat:10,reus:12,experi:31,realnam:38,altern:[12,33,9,38,2],oldhandl:12,appreci:[],numer:12,isol:9,isop:[12,22],lowercas:[38,18,27],succeed:12,unrealircd:5,botonchan:12,chanset:[9,22],both:[2,12,22,33,38,9,24,3,10],last:[0,1,2,3,4,5,6,7,8,9,10,17,12,13,15,16,18,19,20,22,23,24,25,27,28,29,30,31,32,33,34,35,37,38,39,40],delimit:12,bota:9,botc:9,botb:9,context:7,getfilesendtim:12,whole:[19,10,7],storenot:12,load:[0,1,2,5,7,9,10,12,13,16,18,19,20,22,23,25,27,29,34,35,37,38,39,40],simpli:[12,10],hostmask:[12,17,9,8],point:[0,31,2,7,12,38,9],schedul:12,unstickexempt:12,header:[33,7],shutdown:12,linux:[6,24,18],mistak:10,throughout:7,putxferlog:12,becom:[12,19,10,2],due:[12,38,5,2],empti:12,whom:12,secret:22,whoi:2,deprici:38,nonexist:18,ram:2,etc:[15,30,2,17,5,7,12,27,22,9,24,3,10,28],convert:[12,18,27,10],resetchanidl:12,coordin:2,understand:2,func:7,demand:[3,10],chatter:2,convers:[33,32,7],entitl:15,look:[17,0,31,2,19,7,12,13,27,22,33,3,25,10,28],durat:12,"while":[2,32,18,19,7,22,3,8,10],adh:2,abov:[17,31,4,5,7,12,22,10],error:[2,19,7,12,6,38,28],fun:31,anonym:2,everyon:[12,32],expir:[29,2,5,12,22,33,38,8],jpk:2,motd:[4,2],readm:[],matchcidr:12,itself:[12,7,10,2],xtra:12,chase:[3,10],tclpip84:[],grant:[33,17],belong:2,ischanexempt:12,shorter:22,minir:[],cygz:[],higher:[33,6,5,1],dontkickop:22,mybot:19,itch:[],optim:38,wherea:12,moment:[6,5],temporari:[8,25,22,2],user:[],wherev:24,stack:[12,24,5],recent:[33,10],lower:38,task:[9,3,10],init_serv:38,lib:19,discourag:5,older:[12,24,10],entri:[12,19,10,2],spent:12,mod_ext:[],person:[31,2,18,12,10,27],chanlist:12,explan:[12,22],chanflag:12,stopnethack:[15,22],cygwin1:[],dccdumpfil:12,stripcod:12,newban:12,fd_set:[],extra:[12,19,7,2],forbid:[3,31],isinvitesticki:12,dp_log:7,sigquit:12,queuesiz:12,bin:[],march:[18,15,8,4],laston:12,format:[2,4,7,12,38,10],big:[12,30],eggdrop1:[7,10,28],mymodul:[],game:[3,10],uncommon:18,insert:[4,22],bit:[31,2,18,12,6,33,27],uncompressfil:12,ircu2:5,outright:3,success:[12,7],autosav:40,userfil:[30,1,2,19,20,12,35,7,22,9,39,3,10],signal:[12,19,27],resolv:[2,7,12,6,23,24],resetinvit:12,popular:[3,10,2],encount:27,bcst:12,often:[23,7,2],msgnotic:[],visibl:12,some:[1,2,3,5,23,7,8,9,10,17,12,15,18,19,20,22,33,24,27,28,29,30,34,35,37,38,40],back:[2,19,12,33,38,10,28],understood:38,file_receiv:12,dhave_config_h:[],affili:10,shall:2,autoop:22,invitelist:12,pem:2,larg:[38,5,10,2],slash:32,proc:[12,38,7,27],kreativrauschen:[13,7],machin:[31,18,19,10,2],previou:[12,19,10],isdynam:12,step:[31,7,10,28],ld_library64_path:[],dp_server:7,hook_hourli:7,usa:10,idx:[12,7],chfinger:2,idl:[12,7,22],botlist:12,killchaninvit:12,block:[12,6,35,4,7],plan:[27,10],miracl:31,univers:2,smelli:31,within:[12,37,8,7,2],perm:2,ensur:[9,7,28],botishalfop:12,tclmisc:[],inclus:[],bywho:12,question:[],"long":[29,31,1,2,4,7,12,6,22,23,38,8],custom:[12,17,33],includ:[],forward:29,amaz:10,usr:[19,28],files:37,fileq:[],properli:[9,28,19,2],botnetnick:12,pwd:37,link:[],newer:10,branch:[10,28],line:[],talli:7,info:[31,2,5,7,12,40,22,10],utc:2,fdb:[],consist:[12,17,9,32],ircii:[12,35,19],sharebot:[12,9,2],highlight:15,similar:[30,2,32,12,22,28],autobotchk:[],enlarg:31,tclinc:19,changes1:28,chan:[12,30,27,5,22],doesn:[32,18,5,19,12,6,27,23,40,10],repres:12,"char":[12,7,2],incomplet:[],chat:[17,2,32,34,12,7,33,38,9,24,3,10],guarante:5,newignor:12,bracket:24,coder:[7,10],kvirc:33,newhandl:12,titl:15,invalid:[12,19],nick:[15,2,5,12,22,38,25,27,28],setenv:[],nat:[24,2],nice:[7,28],maindoc:[],meaning:12,chaninfo:9,hostaddress:9,onchansplit:12,isignor:12,lang:30,getpwd:12,depth:[33,2],md5c:[],karma:28,far:27,getudef:12,libtcl:19,hello:[17,2,5,19,12,38,27],code:[],queri:[23,24],clearqueu:12,gmake:19,edu:[12,15,18,10],killinvit:12,issuer:33,privat:[29,1,2,32,12,33],base64:12,send:[29,1,5,20,19,12,35,27,38,9,24,7,10,28],making_modulenam:7,getlink:12,tcllib:19,breach:12,fatal:12,sent:[15,1,2,32,5,7,12,33,25,10],passiv:9,umod:38,rfc_compliant:12,whichev:8,getchanmod:12,installandsetup:[],account:[29,17,19,7,3,10,28],llama:9,prerestart:12,relev:[7,10],tri:[12,19,7,2],tcluser:[],dname:12,button:28,"try":[31,2,19,7,13,10,38,25,27,28],diffutil:31,pleas:[31,2,19,7,12,22,38,39,10,28],hook_userfil:7,smaller:31,chanban:12,natur:10,jump:[12,33,9,38],video:12,download:[],mnnrrpp:12,click:28,append:[12,7],compat:[12,31,2],index:28,dp_mode:7,access:[15,17,32,19,7,12,27,33,38,3,10],hourli:[29,7,2],chanrec:[12,5],isvoic:12,garbag:7,can:[1,2,3,4,5,6,7,8,9,10,17,12,13,15,18,19,20,22,23,24,27,28,29,30,31,32,33,34,35,37,38,39,40],chose:[],len:38,bodi:[10,28],module_xlib:[],intercept:12,let:[29,17,2,18,7,12,27,22,23,9,10,28],flushmod:12,setpwd:12,vertic:12,sinc:[17,30,2,5,12,33,9,24,3],great:[31,10],weekdai:12,broken:[12,6,18,2],host:[15,2,3,12,27,22,33,38,9,8,10],beldin:9,cert:[33,31,2],chang:[17,1,2,32,18,5,7,12,27,22,38,9,39,10,28],danger:[12,19],revok:[38,2],appli:[],foundat:10,valis0:12,serverlist:12,redo:10,getus:12,add_tcl_int:7,from:[1,2,3,4,5,6,8,9,10,12,15,18,19,22,33,24,27,29,30,31,32,7,38],zip:[],commun:[12,9,32,7,28],deop:[12,15,22],doubl:38,upgrad:[],mydir:[37,10],next:[2,7,12,22,38,10,28],few:[12,18,10,2],doubt:24,nfree:7,sort:[3,8,10],tcl8_4:[],vhost6:[24,2],vhost4:[24,2],meant:19,trail:7,insensit:12,efnet:[38,5,10],hook_di:7,retriev:[29,7,28],cambridg:10,pour:28,getfil:12,annoi:27,obvious:[12,8,10],meet:33,control:[],tar:[7,10,28],needop:12,newinvit:12,high:[6,30],tag:12,tab:7,tarbal:3,onlin:[12,29,19,10,7],everywher:[12,24,2],ld_library_path_64:[],gcc:31,sit:[3,22,10,2],six:12,subdirectori:[12,37],rem_tcl_int:7,ldclose:[],chri:10,delai:[5,22],express:12,overridden:5,onchan:12,bloadmap:[],watch:32,sundai:12,mrslame:2,attent:[12,38,10],botaddr:12,gseen:[13,7],rcvd:12,cyggcc_:[],physic:9,alloc:[12,7],drop:[12,31,2],seriou:10,guru:10,correspond:[12,8,22],getdccidl:12,element:12,issu:[12,10,2],matchattr:12,freebsd:24,botnetcentr:4,module_find:7,unstickinvit:12,windrop:[],move:[12,38,31,10],findus:12,comma:[32,2],effici:[17,9,3,10,2],bunch:[],perfect:10,myproc:12,lamestbot:[29,31,2,4,22,38,9],infrastructur:33,therefor:[12,5,7,2],crash:[12,31,19,10],greater:12,handl:[2,12,6,33,8,28],auto:[15,9],spell:10,dai:[12,29,30,35,2],auth:[33,2],devel:31,memberlist:12,libtcl8:19,fingerprint:[33,2],front:[12,22],somewher:[31,2],thrill:27,anyth:[2,32,19,9,3,10],edit:[30,31,10],februari:34,trap:[],sdebug:31,chhandl:12,chunk:[38,19],partproc:12,"static":[31,19,22,7],our:[12,9,19,27],patch:[],special:[12,9,28],out:[31,2,32,18,19,7,12,35,33,9,25,3,10],variabl:[],ousterhout:[19,10],tcsh:[],twice:12,req:[33,2],reboot:19,categori:12,addhost:5,stuf:19,rel:[12,23,7],hardwar:[3,10],gethostbyaddr:6,math:12,statist:[25,7],clarifi:8,takeov:5,insid:2,cleartext:12,setchaninfo:12,releas:[12,3,28,10,2],afterward:[5,2],getdccawai:12,could:[2,18,12,27,33,38,9,24,10],ask:[],timer:[12,18,27],keep:[30,2,18,7,22,37,38,10,28],counterpart:12,length:[12,33,5,7,38],enforc:[22,2],outsid:[27,2],retain:12,timezon:2,softwar:[3,10],logsiz:2,suffix:[7,2],echo:12,exact:12,date:[12,7,10,2],barr:2,bitch:22,patchnam:28,remak:19,owner:[15,2,32,19,12,22,10],toi:3,ircnick:12,reread:12,dump:[12,38,2],zxf:[],licens:[3,10],perfectli:[],mkdir:12,system:[17,37,31,2,4,18,19,7,12,33,35,23,24,10],messag:[],attach:[12,27,28],attack:22,termin:[12,31,19,10],str_dir:7,"final":[3,10,2],low:[38,35],relinquish:12,shell:[17,31,2,3,10,28],gear:17,punish:[12,15,22],juli:[3,31,28],rsa:2,putdcc:12,exactli:[12,5,7],herself:10,haven:[31,27],fprint:[33,2],bother:10,charact:[],cygwinhom:[],sens:[3,19,10],bind:[],clemson:15,sslinc:33,module_unload:7,plaintext:[12,33],patch1:28,barf:19,deprec:12,robot:17,sysadmin:19,corrupt:28,have:[1,2,3,5,6,8,9,10,17,12,15,18,19,22,33,24,27,28,29,30,31,32,7,37,38,39,40],reserv:[32,2],need:[15,31,2,5,7,19,12,33,22,23,38,9,24,3,10],turn:[12,38,22,2],tidi:7,wasoptest:22,p_tcl_hash_list:7,min:2,rout:12,istl:12,istn:22,mix:[5,22],which:[15,30,31,1,2,18,32,4,19,7,12,33,40,22,23,38,9,24,8,10,28],mkcobx:2,singl:[12,5],unless:[12,38,8,5,2],allow:[29,17,31,1,2,5,20,12,37,35,7,22,33,38,3,9,10],descriptivebranchnam:28,who:[15,2,32,5,12,22,38],patch_howto:[],cipher:[12,33,2],awk:[],tandcmd:[],why:[],getchaninfo:12,url:[12,10,2],urn:28,request:[2,5,34,12,22,33,38,3,8,10,28],pipe:9,deni:[],snapshot:10,determin:[31,7,12,33,9,24],occasion:19,nethack:15,fact:[3,10],text:[15,30,2,4,7,12,6,27,22,33,38,10],verbos:12,bring:19,logflag:2,anywai:[33,7,2],locat:[33,28,2],sh5:[],forev:2,should:[37,31,1,2,40,32,33,5,34,19,12,6,27,22,23,38,9,7,10,28],jan:12,won:[1,2,7,12,27,22,33,9,8,10],suppor:2,chanprog:[],ksh:[],spun:18,insight:18,contribut:28,notat:2,beat:[31,19],familiar:10,bear:10,autom:[3,10],regularli:17,db8:[38,2],increas:[7,2],dccutil:[],endless:22,enabl:[17,2,5,7,19,12,35,27,22,33,38,9,24,3,10,40],integr:10,contain:[31,2,19,12,33,9,24,10,28],grab:12,view:[12,17,7],notebox:12,unimport:2,knowledg:[3,31],displai:[38,4,5,40,2],chanfil:[30,22],hook_idl:7,dccsimul:12,crt:[33,2],nforceban:[],statu:[30,2,7,12,22,3,10],correctli:[12,31],module_load:7,dynamicban:[12,22],boundari:23,dll:[],isexempt:12,written:[12,3,19,7],uhost:[12,27],progress:10,email:[12,28,10,2],kei:[],sigil:12,job:33,entir:[12,7],disconnect:[12,38,1,2],hook_pre_rehash:7,addit:[],schat:[33,2],equal:12,rem_builtin:7,april:6,admit:35,instanc:22,freeli:[3,10],sigterm:12,strftime:[12,2],ispermban:12,ld_libraryn32_path:[],wall:12,arriv:12,chmod:[31,2],walk:31,gotdcc:[],incess:3,hubcap:15,respect:[23,4],unsticki:8,admin:[4,19,2],home2:[],quit:[12,38,10,2],mycron:10,decent:7,sendnot:12,compon:12,treat:12,loadmodul:[29,16,0,1,2,39,5,34,19,12,37,13,20,22,35,23,38,25,7,40],immedi:[12,38,27,10],lameshar:9,ldld:[],mnot:1,deliber:33,exemptlist:12,therequir:33,resort:19,myword:5,crappi:12,userhost:27,plain:[33,2],killban:12,keyout:33,defin:[15,2,5,34,12,20,22,7,27,38,9,8,10],wild:12,ill:12,func_nam:7,helper:27,getdir:12,almost:[15,3,8,10],site:[15,19,10,7],addchanrec:12,archiv:[10,28],incom:[12,37,7,2],revis:[0,1,2,3,4,5,6,7,8,9,10,17,12,13,15,16,18,20,22,23,24,25,27,28,29,30,31,32,33,34,35,37,38,39,40],parti:[],member:[7,22],add_hook:7,regluar:12,countus:12,probabl:[12,38,19,10],http:[13,25,7,10],hostnam:[2,18,7,12,22,23,24],denot:12,iot:[],upon:[15,3,10],effect:[12,37,8,2],logfil:[30,2,19,7,12,25],dealloc:7,build:[],expand:[3,10],off:[31,2,32,5,12,22,38,9,27],center:4,mention:7,well:[31,2,18,12,33,10,28],ld_library_path:[],thought:10,command:[],choos:[17,31,19,10,2],undefin:[],usual:[12,33,8,24,10,28],"5c0":[38,2],less:[32,34],percent:4,botcmd:[],tcl:[],fdb1:[],abat:27,rest:[12,9,31,7,2],simultan:[12,35],chandname2nam:12,web:[19,7,2],function_to_cal:7,chpt:12,bell:12,makefil:[31,19,7,28],validus:12,add:[17,31,2,5,7,12,27,22,9,10,28],exempt:[],match:[],gmt:[12,2],killtim:12,dest:[31,2,19,12,33,10],piec:31,five:12,know:[29,30,31,2,18,5,7,12,27,38,9,8,10,28],password:[17,1,2,32,5,7,12,33,38,9,39],pier:31,desc:[12,7],loss:19,like:[15,2,17,32,5,34,19,12,37,27,22,33,3,39,7,10,28],lost:12,likm:22,necessari:[22,10],lose:[18,22,10],lamest:[9,4,22,2],page:28,unreach:9,exceed:2,revers:12,reloadhelp:12,suppli:2,"export":30,yyyymmdd:2,flush:1,proper:24,home:[31,19,37,33,10,28],librari:[33,19],tmp:[12,35,2],est:2,leaf:[33,9,2],avoid:[23,7,2],putnow:12,thank:[10,28],outgo:[12,2],leav:[31,2,32,19,12,22,38],ipv4:[24,2],kiddi:2,mode:[17,2,5,34,12,7,22,38,8,10],slight:10,dcc:[],statuslog:22,chaddr:[33,9],although:[18,5,2],offset:2,protectop:22,stage:7,actual:[2,32,7,12,3,10],socket:[12,7,2],column:4,irix:[],del_hook:7,cerfif:2,modechang:12,cflag:[],filedb_upd:[],discard:[12,1],fri:12,own:[30,1,19,7,12,10,37,38,27],automat:[15,31,17,2,19,12,33,38,9,24,8,40],warranti:10,automak:[],capath:[33,2],mere:10,setlink:12,killdcc:12,transfer:[],procnam:12,downgrad:10,arg1:12,"var":12,"function":[],iconfig:[31,7,10],unexpect:12,subscrib:10,hook_num:7,gain:[15,3,19,10],botmsg:[],buf:5,bug:[31,18,19,10,3,27,28],count:[12,38,18,27],made:[31,1,12,22,3,10],wise:[10,2],temp:[12,2],whether:[12,2],wish:[31,2,5,7,9,25,8,10],killutim:12,troubl:[23,2],asynchron:[12,23,7],directori:[],below:[1,2,18,7,12,22],limit:[17,5,12,22,38,24,10],otherwis:[31,2,12,10,33,9,8,27,40],problem:[],instead:[15,30,1,2,5,12,37,27,22,33,10],matchstr:12,evalu:12,"int":[12,7],mask:[12,38,2],dure:[31,18,20,1,7],pid:[12,2],meaningless:15,novemb:1,implement:2,ing:5,inc:[19,10],contest:7,putlog:[12,38,7],boot:[12,2],detail:[33,31,7,10,28],virtual:2,other:[1,2,4,5,23,8,3,10,17,12,9,15,18,19,22,33,24,28,29,30,32,7,38,39],lookup:[12,23,24,18,2],futur:[12,31,5,19,2],rememb:22,varieti:[3,10],repeat:[12,10],addbot:12,validchan:12,june:[12,17,9],isbotnick:12,bitchx:12,wallop:[12,2],stai:12,experienc:31,bch:10,eof:12,lamer:2,channelflag:12,rule:10,portion:[12,31,7,22],decemb:[17,30,0,32,3,27]},objtypes:{},objnames:{},filenames:["coreDocs/woobie","coreDocs/share","coreDocs/core","mainDocs/about","appendices/text-sub","coreDocs/irc","appendices/known-probs","coreDocs/modules","mainDocs/bans","mainDocs/botnet","installAndSetup/readme","index","mainDocs/tcl-commands","coreDocs/seen","mainDocs/index","mainDocs/users","coreDocs/assoc","mainDocs/features","appendices/weird-msgs","installAndSetup/faq","coreDocs/compress","installAndSetup/index","coreDocs/channels","coreDocs/dns","mainDocs/ipv6","coreDocs/uptime","appendices/index","appendices/first-script","mainDocs/patch","coreDocs/notes","appendices/tricks","installAndSetup/install","mainDocs/partyline","mainDocs/tls","coreDocs/ctcp","coreDocs/transfer","coreDocs/index","coreDocs/filesys","coreDocs/server","coreDocs/blowfish","coreDocs/console"],titles:["Woobie Module","Share Module","Eggdrop Core Settings","About Eggdrop","Textfile Substitutions","IRC Module","Known Problems","Eggdrop Module Information","Bans, Invites, and Exempts","Botnet Sharing and Linking","README","Welcome to Eggdrop's documentation!","Eggdrop Tcl Commands","Seen Module","<no title>","Users and Flags","Assoc Module","Eggdrop Features","Weird Messages That Get Logged","Frequently Asked Questions","Compress Module","<no title>","Channels Module","DNS Module","IPv6 support","Uptime Module","<no title>","Your First Eggdrop Script","Patch How-To","Notes Module","Eggdrop Tricks","Installing Eggdrop","The Party Line","TLS support","CTCP Module","Transfer Module","<no title>","Filesys Module","Server Module","Blowfish Module","Console Module"],objects:{},titleterms:{code:[],module_report:7,help:10,execut:2,global:12,obtain:10,tcp:12,tcl:12,miscellan:12,bottre:9,window:31,program:7,exempt:8,mail:10,main:11,match:12,"return":12,get:[18,10],faq:[],school:28,ssl:[33,2],botnet:[33,9,2],requir:[31,7],term:9,list:10,authent:33,server:38,stuff:10,module_clos:7,ban:8,output:12,eggdrop:[11,30,31,17,2,7,12,27,3,10],compil:[],certif:33,set:[33,11,24,10,2],old:28,startup:[31,10],procedur:12,connect:12,diff:28,download:28,bore:10,patch:28,variabl:12,what:[9,31,7,10],user:[12,15,9],legal:10,substitut:4,module_start:7,irc:[33,5],woobi:0,core:[11,2],iwelcom:[],kei:33,advanc:2,manipul:12,usag:[33,24,10],dcc:[12,33,2],quick:[31,10],ask:[31,19],path:2,appli:28,valu:12,addit:7,about:[33,3,24],invit:8,bot:9,weird:18,frequent:[31,19],first:27,via:28,overview:31,modul:[29,11,16,0,31,1,2,39,5,34,12,37,13,20,22,35,23,38,25,7,40],prefer:28,module_expmem:7,messag:18,instal:[33,11,24,31,7],guid:[],your:27,git:10,log:[18,2],script:[33,27,2],transfer:35,support:[33,24],question:[31,19],upgrad:10,submit:28,includ:7,basic:2,type:12,"function":7,consol:[40,2],appendic:11,share:[9,1],ipv6:24,notic:10,flag:[15,9],link:9,crontab:10,known:6,line:[32,10],filesi:[12,37],blowfish:39,module_t:7,setup:11,charact:12,trick:30,record:[12,9],problem:6,autobotchk:10,control:12,featur:17,creat:28,readm:10,indic:[],textfil:4,file:2,tabl:[],seen:13,cygwin:31,welcom:11,secur:33,ctcp:34,parti:32,make:9,uptim:25,note:[12,29],how:[7,10,28],document:[11,10],channel:[12,22],compress:[12,20],botflag:9,assoc:[12,16],telnet:2,why:7,github:28,directori:2,bind:12,inform:7,exampl:9,command:[12,10],incorpor:[]}}) +>>>>>>> parent of 7f5c04f... Commit ChangeLog in releaseprep if changed diff --git a/doc/sphinx_source/installAndSetup/install.rst b/doc/sphinx_source/installAndSetup/install.rst index d77b2e839..b21f8e5c7 100644 --- a/doc/sphinx_source/installAndSetup/install.rst +++ b/doc/sphinx_source/installAndSetup/install.rst @@ -12,6 +12,14 @@ experienced users. For more information on compiling Eggdrop, see the Compile Guide in doc/COMPILE-GUIDE (and of course, the README FILE). +Overview +-------- +1. What is Eggdrop? +2. Quick Startup +3. Cygwin Requirements (Windows) +4. Modules +5. Frequently Asked Questions + What is Eggdrop? ---------------- @@ -110,6 +118,19 @@ Eggdrop uses the GNU autoconfigure scripts to make things easier. 10. Smile, and if you haven't already read the README file in its entirety, go take a long walk off a short pier. +Cygwin Requirements (Windows) +---------------------------------------- + +Eggdrop requires the following packages to be added from the Cygwin +installation tool prior to compiling: + +:: + + Interpreters: tcl, tcl-devel + Net: openssl-devel + Devel: autoconf, gcc-core, git, make + Utils: diffutils + Modules ------- diff --git a/doc/sphinx_source/mainDocs/tcl-commands.rst b/doc/sphinx_source/mainDocs/tcl-commands.rst index 5be18892d..51f4be46e 100644 --- a/doc/sphinx_source/mainDocs/tcl-commands.rst +++ b/doc/sphinx_source/mainDocs/tcl-commands.rst @@ -1608,37 +1608,37 @@ Miscellaneous Commands Logfile flags: - +-----+------------------------------------------------------+ - | b | information about bot linking and userfile sharing | - +-----+------------------------------------------------------+ - | c | commands | - +-----+------------------------------------------------------+ - | d | misc debug information | - +-----+------------------------------------------------------+ - | h | raw share traffic | - +-----+------------------------------------------------------+ - | j | joins, parts, quits, and netsplits on the channel | - +-----+------------------------------------------------------+ - | k | kicks, bans, and mode changes on the channel | - +-----+------------------------------------------------------+ - | m | private msgs, notices and ctcps to the bot | - +-----+------------------------------------------------------+ - | o | misc info, errors, etc (IMPORTANT STUFF) | - +-----+------------------------------------------------------+ - | p | public text on the channel | - +-----+------------------------------------------------------+ - | r | raw incoming server traffic | - +-----+------------------------------------------------------+ - | s | server connects, disconnects, and notices | - +-----+------------------------------------------------------+ - | t | raw botnet traffic | - +-----+------------------------------------------------------+ - | v | raw outgoing server traffic | - +-----+------------------------------------------------------+ - | w | wallops (make sure the bot sets +w in init-server) | - +-----+------------------------------------------------------+ - | x | file transfers and file-area commands | - +-----+------------------------------------------------------+ + +-----+---------------------------------------------------------------------+ + | b | information about bot linking and userfile sharing | + +-----+---------------------------------------------------------------------+ + | c | commands | + +-----+---------------------------------------------------------------------+ + | d | misc debug information | + +-----+---------------------------------------------------------------------+ + | h | raw share traffic | + +-----+---------------------------------------------------------------------+ + | j | joins, parts, quits, topic changes, and netsplits on the channel | + +-----+---------------------------------------------------------------------+ + | k | kicks, bans, and mode changes on the channel | + +-----+---------------------------------------------------------------------+ + | m | private msgs, notices and ctcps to the bot | + +-----+---------------------------------------------------------------------+ + | o | misc info, errors, etc (IMPORTANT STUFF) | + +-----+---------------------------------------------------------------------+ + | p | public text on the channel | + +-----+---------------------------------------------------------------------+ + | r | raw incoming server traffic | + +-----+---------------------------------------------------------------------+ + | s | server connects, disconnects, and notices | + +-----+---------------------------------------------------------------------+ + | t | raw botnet traffic | + +-----+---------------------------------------------------------------------+ + | v | raw outgoing server traffic | + +-----+---------------------------------------------------------------------+ + | w | wallops (make sure the bot sets +w in init-server) | + +-----+---------------------------------------------------------------------+ + | x | file transfers and file-area commands | + +-----+---------------------------------------------------------------------+ Returns: filename of logfile created, or, if no logfile is specified, a list of logfiles such as: {mco * eggdrop.log} {jp #lame lame.log} @@ -1688,7 +1688,7 @@ Miscellaneous Commands Module: core -**timer [count]** +**utimer [count]** Description: executes the given Tcl command after a certain number of seconds have passed. If count is specified, the command will be executed count times with the given interval in between. If you specify a count of 0, the utimer will repeat until it's removed with killutimer or until the bot is restarted. @@ -2558,7 +2558,7 @@ The following is a list of bind types and how they work. Below each bind type is procname - Description: allows you to schedule procedure calls at certain times. mask matches 5 space separated integers of the form: "minute hour day month year". The month var starts at 00 (Jan) and ends at 11 (Dec). Minute, hour, day, month have a zero padding so they are exactly two characters long; year is zero characters. Flags are ignored. + Description: allows you to schedule procedure calls at certain times. mask matches 5 space separated integers of the form: "minute hour day month year". The month var starts at 00 (Jan) and ends at 11 (Dec). Minute, hour, day, month have a zero padding so they are exactly two characters long; year is four characters. Flags are ignored. Module: core diff --git a/doc/tcl-commands.doc b/doc/tcl-commands.doc index 10285ff64..701e66223 100644 --- a/doc/tcl-commands.doc +++ b/doc/tcl-commands.doc @@ -1908,23 +1908,23 @@ logfile [ ] Logfile flags: - ------ ------------------------------------------------------- - b information about bot linking and userfile sharing - c commands - d misc debug information - h raw share traffic - j joins, parts, quits, and netsplits on the channel - k kicks, bans, and mode changes on the channel - m private msgs, notices and ctcps to the bot - o misc info, errors, etc (IMPORTANT STUFF) - p public text on the channel - r raw incoming server traffic - s server connects, disconnects, and notices - t raw botnet traffic - v raw outgoing server traffic - w wallops (make sure the bot sets +w in init-server) - x file transfers and file-area commands - ------ ------------------------------------------------------- + ----- ------------------------------------------------------------------ + b information about bot linking and userfile sharing + c commands + d misc debug information + h raw share traffic + j joins, parts, quits, topic changes, and netsplits on the channel + k kicks, bans, and mode changes on the channel + m private msgs, notices and ctcps to the bot + o misc info, errors, etc (IMPORTANT STUFF) + p public text on the channel + r raw incoming server traffic + s server connects, disconnects, and notices + t raw botnet traffic + v raw outgoing server traffic + w wallops (make sure the bot sets +w in init-server) + x file transfers and file-area commands + ----- ------------------------------------------------------------------ Returns: filename of logfile created, or, if no logfile is specified, a list of logfiles such as: {mco * eggdrop.log} {jp #lame lame.log} @@ -1971,7 +1971,7 @@ timer [count] Module: core -timer [count] +utimer [count] Description: executes the given Tcl command after a certain number of seconds have passed. If count is specified, the command will be @@ -3034,7 +3034,7 @@ the Tcl proc, and an explanation. mask matches 5 space separated integers of the form: "minute hour day month year". The month var starts at 00 (Jan) and ends at 11 (Dec). Minute, hour, day, month have a zero padding so they are exactly two - characters long; year is zero characters. Flags are ignored. + characters long; year is four characters. Flags are ignored. Module: core diff --git a/eggdrop-basic.conf b/eggdrop-basic.conf index d0cfd70b8..a756fc5ff 100755 --- a/eggdrop-basic.conf +++ b/eggdrop-basic.conf @@ -68,6 +68,11 @@ set admin "Lamer " ## Set this to the IRC network your bot is connected to. set network "I.didn't.edit.my.config.file.net" +# Un-comment the next line and set the list of owners of the bot. +# You NEED to change this setting. +# This is a list of handles -- usernames in the bot. +#set owner "MrLame, MrsLame" + ## This is the bot's server list. The bot will start at the first server listed, ## and cycle through them whenever it gets disconnected. You need to change these ## servers to YOUR network's servers. @@ -191,6 +196,10 @@ set quiet-save 0 # Specify here the filename your userfile should be saved as. set userfile "LamestBot.user" +# Specify here where Eggdrop should look for help files. Don't modify this +# setting unless you know what you're doing! +set help-path "help/" + ##### BOTNET/DCC/TELNET ##### ## If you want to use a different nickname on the botnet than you use on diff --git a/eggdrop.conf b/eggdrop.conf index fa97b3a3d..930318751 100755 --- a/eggdrop.conf +++ b/eggdrop.conf @@ -124,7 +124,7 @@ set prefer-ipv6 0 # c - commands # d - misc debug information # h - raw share traffic -# j - joins, parts, quits, and netsplits on the channel +# j - joins, parts, quits, topic changes, and netsplits on the channel # k - kicks, bans, and mode changes on the channel # m - private msgs, notices and ctcps to the bot # o - misc info, errors, etc (IMPORTANT STUFF) @@ -670,7 +670,6 @@ set global-flood-kick 3:10 set global-flood-join 5:60 set global-flood-ctcp 3:60 set global-flood-nick 5:60 -set global-flood-size 1024:60 set global-aop-delay 5:30 set global-idle-kick 0 set global-chanmode "nt" @@ -834,11 +833,6 @@ set global-chanset { # constitutes a flood. Setting this to 0 or 0:0 disables nick flood # protection for the channel. # -# flood-size 1024:60 -# Set here how many bytes in how many seconds from one host constitutes -# a flood. Setting this to 0 or 0:0 disables size flood protection for -# the channel. -# # A complete list of all available channel settings: # # enforcebans diff --git a/misc/generateDocs b/misc/generateDocs index aaab0a071..b27cb5879 100755 --- a/misc/generateDocs +++ b/misc/generateDocs @@ -70,10 +70,10 @@ mv tmpdocs/core.txt $BASEDIR/../doc/settings/core.settings mv tmpdocs/ctcp.txt $BASEDIR/../doc/settings/mod.ctcp mv tmpdocs/dns.txt $BASEDIR/../doc/settings/mod.dns mv tmpdocs/faq.txt $BASEDIR/../doc/FAQ -mv tmpdocs/features.txt $BASEDIR/../../FEATURES +mv tmpdocs/features.txt $BASEDIR/../FEATURES mv tmpdocs/filesys.txt $BASEDIR/../doc/settings/mod.filesys mv tmpdocs/first-script.txt $BASEDIR/../doc/FIRST-SCRIPT -mv tmpdocs/install.txt $BASEDIR/../../INSTALL +mv tmpdocs/install.txt $BASEDIR/../INSTALL mv tmpdocs/ipv6.txt $BASEDIR/../doc/IPV6 mv tmpdocs/irc.txt $BASEDIR/../doc/settings/mod.irc mv tmpdocs/known-probs.txt $BASEDIR/../doc/KNOWN-PROBLEMS @@ -81,7 +81,7 @@ mv tmpdocs/modules.txt $BASEDIR/../doc/MODULES mv tmpdocs/notes.txt $BASEDIR/../doc/settings/mod.notes mv tmpdocs/partyline.txt $BASEDIR/../doc/PARTYLINE mv tmpdocs/patch.txt $BASEDIR/../doc/PATCH-HOWTO -mv tmpdocs/readme.txt $BASEDIR/../../README +mv tmpdocs/readme.txt $BASEDIR/../README mv tmpdocs/seen.txt $BASEDIR/../doc/settings/mod.seen mv tmpdocs/server.txt $BASEDIR/../doc/settings/mod.server mv tmpdocs/share.txt $BASEDIR/../doc/settings/mod.share @@ -95,5 +95,6 @@ mv tmpdocs/users.txt $BASEDIR/../doc/USERS mv tmpdocs/weird-msgs.txt $BASEDIR/../doc/WEIRD-MESSAGES mv tmpdocs/woobie.txt $BASEDIR/../doc/settings/mod.woobie rm -rf tmpdocs +rm -rf $BASEDIR/../doc/html/_sources echo "Yahtzee!" diff --git a/misc/getcommit b/misc/getcommit index dee354843..9bab9dfd3 100755 --- a/misc/getcommit +++ b/misc/getcommit @@ -23,8 +23,10 @@ # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. +command -v git >/dev/null 2>&1 +HASGIT=$? VER=`git describe --always 2>/dev/null` -if [ $? -ne 0 -o "x$VER" = "x" ]; then +if [ $? -ne 0 -o $HASGIT -ne 0 -o "x$VER" = "x" ]; then if [ -r src/patch.h ]; then VER=`cat src/patch.h | grep -E '^patch.*\);$'| awk '-F"' '{ print $2 }' 2>/dev/null` if [ $? -ne 0 -o "x$VER" = "x" ]; then diff --git a/misc/releaseprep b/misc/releaseprep index ba4597c14..18138e8d9 100755 --- a/misc/releaseprep +++ b/misc/releaseprep @@ -34,7 +34,13 @@ show_usage() { } git_log() { - git log $(git rev-list -n 1 $1)..HEAD --name-only --no-merges --pretty=format:"- - - - - - - - - - - - - - - %n%w(75)Commit %h (%ai) by %aN %n %s %n %b" > ChangeLog + DIFF=$(git log -1 --pretty="%s") + if [ "$DIFF" != "Update ChangeLog" ]; then + git log $(git rev-list -n 1 $1)..HEAD --name-only --no-merges --pretty=format:"- - - - - - - - - - - - - - -%n%w(75)Commit %h (%ai) by %aN%n %s %n %b" > ChangeLog + git add ChangeLog + git commit -m "Update ChangeLog" + git push origin develop + fi } regenerate_changelog() { @@ -184,6 +190,9 @@ echo Current patch: `misc/addpatch -s` echo "Complete." echo "" +exit + +### Maybe for the future... echo "This next step will commit, tag, and push to GitHub." echo "IT IS NOT REVERSIBLE!" echo "This is, like, the real deal." @@ -199,7 +208,7 @@ if [ $PUSH = "y" ]; then git checkout -B stable/$MAJMIN git merge develop git tag $RLS - git push origin stable/$MAJMIN + git push origin stable/$MAJMIN --tags else echo "Aborting. Coward." exit 0 diff --git a/src/botnet.c b/src/botnet.c index 0307f1ead..84e1746d5 100644 --- a/src/botnet.c +++ b/src/botnet.c @@ -842,7 +842,7 @@ int bots_in_subtree(tand_t *bot) if (!bot) return 0; for (b = tandbot; b; b = b->next) { - if (b->bot && (b->uplink == bot)) { + if (b->bot[0] && (b->uplink == bot)) { nr += bots_in_subtree(b); } } @@ -861,7 +861,7 @@ int users_in_subtree(tand_t *bot) if (!egg_strcasecmp(party[i].bot, bot->bot)) nr++; for (b = tandbot; b; b = b->next) - if (b->bot && (b->uplink == bot)) + if (b->bot[0] && (b->uplink == bot)) nr += users_in_subtree(b); return nr; } diff --git a/src/chan.h b/src/chan.h index a072fcc91..abc51392e 100644 --- a/src/chan.h +++ b/src/chan.h @@ -174,8 +174,6 @@ struct chanset_t { int flood_ctcp_time; int flood_nick_thr; int flood_nick_time; - int flood_size_thr; - int flood_size_time; int aop_min; int aop_max; long status; diff --git a/src/cmds.c b/src/cmds.c index 6a09338da..49477391e 100644 --- a/src/cmds.c +++ b/src/cmds.c @@ -1904,11 +1904,12 @@ static void cmd_chat(struct userrec *u, int idx, char *par) else { Tcl_SetVar(interp, "_chan", arg, 0); if ((Tcl_VarEval(interp, "assoc ", "$_chan", NULL) == TCL_OK) && - !tcl_resultempty()) + !tcl_resultempty()) { newchan = tcl_resultint(); if ((newchan >= GLOBAL_CHANS) && (newchan <= 199999)) { localchan = 1; } + } else newchan = -1; } diff --git a/src/dcc.c b/src/dcc.c index 13919b0bf..609702346 100644 --- a/src/dcc.c +++ b/src/dcc.c @@ -1590,7 +1590,7 @@ static void dcc_telnet_id(int idx, char *buf, int atr) } #ifdef TLS -int dcc_fingerprint(idx) +int dcc_fingerprint(int idx) { char *cf, *uf; struct flag_record fr = { FR_GLOBAL | FR_CHAN | FR_ANYWH, 0, 0, 0, 0, 0 }; diff --git a/src/dns.c b/src/dns.c index 4394b6221..f14b8595d 100644 --- a/src/dns.c +++ b/src/dns.c @@ -470,7 +470,7 @@ void block_dns_hostbyip(sockname_t *addr) if (addr->family == AF_INET) { if (!sigsetjmp(alarmret, 1)) { alarm(resolve_timeout); - hp = gethostbyaddr(&addr->addr.s4.sin_addr, + hp = gethostbyaddr((const char *) &addr->addr.s4.sin_addr, sizeof (struct in_addr), AF_INET); alarm(0); } @@ -480,7 +480,7 @@ void block_dns_hostbyip(sockname_t *addr) } else { if (!sigsetjmp(alarmret, 1)) { alarm(resolve_timeout); - hp = gethostbyaddr((char *) &addr->addr.s6.sin6_addr, + hp = gethostbyaddr((const char *) &addr->addr.s6.sin6_addr, sizeof (struct in6_addr), AF_INET6); alarm(0); } diff --git a/src/eggdrop.h b/src/eggdrop.h index 240e4cb3e..ab0595172 100644 --- a/src/eggdrop.h +++ b/src/eggdrop.h @@ -588,9 +588,8 @@ struct dupwait_info { #define FLOOD_JOIN 4 #define FLOOD_KICK 5 #define FLOOD_DEOP 6 -#define FLOOD_SIZE 7 -#define FLOOD_CHAN_MAX 8 +#define FLOOD_CHAN_MAX 7 #define FLOOD_GLOBAL_MAX 3 /* For local console: */ diff --git a/src/main.c b/src/main.c index 49df122b8..4e5b6ca4d 100644 --- a/src/main.c +++ b/src/main.c @@ -29,6 +29,22 @@ * list available at eggheads@eggheads.org. */ +/* We need config.h for CYGWIN_HACKS, but windows.h must be included before + * eggdrop headers, because the malloc/free/Context macros break the inclusion. + * The SSL undefs are a workaround for bug #2182 in openssl with msys/mingw. + */ +#include +#ifdef CYGWIN_HACKS +# include +# undef X509_NAME +# undef X509_EXTENSIONS +# undef X509_CERT_PAIR +# undef PKCS7_ISSUER_AND_SERIAL +# undef PKCS7_SIGNER_INFO +# undef OCSP_REQUEST +# undef OCSP_RESPONSE +#endif + #include "main.h" #include @@ -62,10 +78,6 @@ # include /* setrlimit() */ #endif -#ifdef CYGWIN_HACKS -# include -#endif - #ifndef _POSIX_SOURCE # define _POSIX_SOURCE 1 /* Solaris needs this */ #endif @@ -990,7 +1002,7 @@ int main(int arg_c, char **arg_v) /* Version info! */ egg_snprintf(ver, sizeof ver, "eggdrop v%s", egg_version); egg_snprintf(version, sizeof version, - "Eggdrop v%s (C) 1997 Robey Pointer (C) 2010 Eggheads", + "Eggdrop v%s (C) 1997 Robey Pointer (C) 2010-2016 Eggheads", egg_version); /* Now add on the patchlevel (for Tcl) */ sprintf(&egg_version[strlen(egg_version)], " %u", egg_numver); diff --git a/src/mem.c b/src/mem.c index 744393804..bc660610c 100644 --- a/src/mem.c +++ b/src/mem.c @@ -22,7 +22,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#define MEMTBLSIZE 25000 /* yikes! */ +#define MEMTBLSIZE 250000 /* yikes! */ #define COMPILING_MEM #include "main.h" @@ -356,9 +356,8 @@ void *n_malloc(int size, const char *file, int line) void *n_realloc(void *ptr, int size, const char *file, int line) { void *x; - int i = 0; - #ifdef DEBUG_MEM + int i = 0; char *p; #endif @@ -368,7 +367,6 @@ void *n_realloc(void *ptr, int size, const char *file, int line) x = (void *) realloc(ptr, size); if (x == NULL && size > 0) { - i = i; putlog(LOG_MISC, "*", "*** FAILED REALLOC %s (%d)", file, line); return NULL; } @@ -393,12 +391,13 @@ void *n_realloc(void *ptr, int size, const char *file, int line) void n_free(void *ptr, const char *file, int line) { +#ifdef DEBUG_MEM int i = 0; +#endif if (ptr == NULL) { putlog(LOG_MISC, "*", "*** ATTEMPTING TO FREE NULL PTR: %s (%d)", file, line); - i = i; return; } #ifdef DEBUG_MEM diff --git a/src/misc.c b/src/misc.c index 07bd948b1..b168bf618 100644 --- a/src/misc.c +++ b/src/misc.c @@ -600,7 +600,7 @@ void putlog EGG_VARARGS_DEF(int, arg1) * so put that in the file first. */ fprintf(logs[i].f, "%s", stamp); - fprintf(logs[i].f, "%s %d", MISC_LOGREPEAT, logs[i].repeats); + fprintf(logs[i].f, MISC_LOGREPEAT, logs[i].repeats); logs[i].repeats = 0; /* No need to reset logs[i].szlast here * because we update it later on... diff --git a/src/mod/channels.mod/channels.c b/src/mod/channels.mod/channels.c index 3ae0145e3..62a214589 100644 --- a/src/mod/channels.mod/channels.c +++ b/src/mod/channels.mod/channels.c @@ -45,8 +45,7 @@ static char glob_chanset[512]; /* Global flood settings */ static int gfld_chan_thr, gfld_chan_time, gfld_deop_thr, gfld_deop_time, gfld_kick_thr, gfld_kick_time, gfld_join_thr, gfld_join_time, - gfld_ctcp_thr, gfld_ctcp_time, gfld_nick_thr, gfld_nick_time, - gfld_size_thr, gfld_size_time; + gfld_ctcp_thr, gfld_ctcp_time, gfld_nick_thr, gfld_nick_time; #include "channels.h" #include "cmdschan.c" @@ -418,7 +417,7 @@ static void write_channels() "revenge-mode %d need-op %s need-invite %s need-key %s " "need-unban %s need-limit %s flood-chan %d:%d flood-ctcp %d:%d " "flood-join %d:%d flood-kick %d:%d flood-deop %d:%d " - "flood-nick %d:%d flood-size %d:%d aop-delay %d:%d ban-type %d ban-time %d " + "flood-nick %d:%d aop-delay %d:%d ban-type %d ban-time %d " "exempt-time %d invite-time %d %cenforcebans %cdynamicbans " "%cuserbans %cautoop %cautohalfop %cbitch %cgreet %cprotectops " "%cprotecthalfops %cprotectfriends %cdontkickops %cstatuslog " @@ -433,7 +432,6 @@ static void write_channels() chan->flood_kick_thr, chan->flood_kick_time, chan->flood_deop_thr, chan->flood_deop_time, chan->flood_nick_thr, chan->flood_nick_time, - chan->flood_size_thr, chan->flood_size_time, chan->aop_min, chan->aop_max, chan->ban_type, chan->ban_time, chan->exempt_time, chan->invite_time, PLSMNS(channel_enforcebans(chan)), @@ -832,7 +830,6 @@ static tcl_coups mychan_tcl_coups[] = { {"global-flood-join", &gfld_join_thr, &gfld_join_time}, {"global-flood-ctcp", &gfld_ctcp_thr, &gfld_ctcp_time}, {"global-flood-nick", &gfld_nick_thr, &gfld_nick_time}, - {"global-flood-size", &gfld_size_thr, &gfld_size_time}, {"global-aop-delay", &global_aop_min, &global_aop_max}, {NULL, NULL, NULL} }; @@ -952,10 +949,6 @@ char *channels_start(Function *global_funcs) gfld_join_time = 60; gfld_ctcp_thr = 5; gfld_ctcp_time = 60; - gfld_nick_thr = 5; - gfld_nick_time = 60; - gfld_size_thr = 1024; - gfld_size_time = 60; global_idle_kick = 0; global_aop_min = 5; global_aop_max = 30; diff --git a/src/mod/channels.mod/cmdschan.c b/src/mod/channels.mod/cmdschan.c index 96b1eb7b5..99508dc44 100644 --- a/src/mod/channels.mod/cmdschan.c +++ b/src/mod/channels.mod/cmdschan.c @@ -1424,17 +1424,15 @@ static void cmd_chaninfo(struct userrec *u, int idx, char *par) } - dprintf(idx, "flood settings: chan ctcp join kick deop nick size\n"); - dprintf(idx, "number: %3d %3d %3d %3d %3d %3d %4d\n", + dprintf(idx, "flood settings: chan ctcp join kick deop nick\n"); + dprintf(idx, "number: %3d %3d %3d %3d %3d %3d\n", chan->flood_pub_thr, chan->flood_ctcp_thr, chan->flood_join_thr, chan->flood_kick_thr, - chan->flood_deop_thr, chan->flood_nick_thr, - chan->flood_size_thr); - dprintf(idx, "time : %3d %3d %3d %3d %3d %3d %3d\n", + chan->flood_deop_thr, chan->flood_nick_thr); + dprintf(idx, "time : %3d %3d %3d %3d %3d %3d\n", chan->flood_pub_time, chan->flood_ctcp_time, chan->flood_join_time, chan->flood_kick_time, - chan->flood_deop_time, chan->flood_nick_time, - chan->flood_size_time); + chan->flood_deop_time, chan->flood_nick_time); putlog(LOG_CMDS, "*", "#%s# chaninfo %s", dcc[idx].nick, chname); } } diff --git a/src/mod/channels.mod/tclchan.c b/src/mod/channels.mod/tclchan.c index ed49140ba..622abd027 100644 --- a/src/mod/channels.mod/tclchan.c +++ b/src/mod/channels.mod/tclchan.c @@ -782,8 +782,6 @@ static int tcl_channel_info(Tcl_Interp *irp, struct chanset_t *chan) Tcl_AppendElement(irp, s); simple_sprintf(s, "%d:%d", chan->flood_nick_thr, chan->flood_nick_time); Tcl_AppendElement(irp, s); - simple_sprintf(s, "%d:%d", chan->flood_size_thr, chan->flood_size_time); - Tcl_AppendElement(irp, s); simple_sprintf(s, "%d:%d", chan->aop_min, chan->aop_max); Tcl_AppendElement(irp, s); simple_sprintf(s, "%d", chan->ban_type); @@ -1109,8 +1107,6 @@ static int tcl_channel_get(Tcl_Interp *irp, struct chanset_t *chan, simple_sprintf(s, "%d %d", chan->flood_deop_thr, chan->flood_deop_time); else if (!strcmp(setting, "flood-nick")) simple_sprintf(s, "%d %d", chan->flood_nick_thr, chan->flood_nick_time); - else if (!strcmp(setting, "flood-size")) - simple_sprintf(s, "%d %d", chan->flood_size_thr, chan->flood_size_time); else if (!strcmp(setting, "aop-delay")) simple_sprintf(s, "%d %d", chan->aop_min, chan->aop_max); else if CHKFLAG_POS(CHAN_ENFORCEBANS, "enforcebans", chan->status) @@ -1502,9 +1498,6 @@ static int tcl_channel_modify(Tcl_Interp *irp, struct chanset_t *chan, } else if (!strcmp(item[i] + 6, "nick")) { pthr = &chan->flood_nick_thr; ptime = &chan->flood_nick_time; - } else if (!strcmp(item[i] + 6, "size")) { - pthr = &chan->flood_size_thr; - ptime = &chan->flood_size_time; } else { if (irp) Tcl_AppendResult(irp, "illegal channel flood type: ", item[i], NULL); @@ -2074,8 +2067,6 @@ static int tcl_channel_add(Tcl_Interp *irp, char *newname, char *options) chan->flood_kick_time = gfld_kick_time; chan->flood_nick_thr = gfld_nick_thr; chan->flood_nick_time = gfld_nick_time; - chan->flood_size_thr = gfld_size_thr; - chan->flood_size_time = gfld_size_time; chan->stopnethack_mode = global_stopnethack_mode; chan->revenge_mode = global_revenge_mode; chan->ban_type = global_ban_type; diff --git a/src/mod/compress.mod/configure b/src/mod/compress.mod/configure index c7d622e28..d3159c160 100755 --- a/src/mod/compress.mod/configure +++ b/src/mod/compress.mod/configure @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.ac 29e1a08. +# From configure.ac 1d09756. # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for Eggdrop Compress Module 1.8.0. # diff --git a/src/mod/dns.mod/configure b/src/mod/dns.mod/configure index b6fcbe0f5..c31eb1721 100755 --- a/src/mod/dns.mod/configure +++ b/src/mod/dns.mod/configure @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.ac 29e1a08. +# From configure.ac 1d09756. # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for Eggdrop DNS Module 1.8.0. # diff --git a/src/mod/dns.mod/coredns.c b/src/mod/dns.mod/coredns.c index c18896fab..12f1fdb1b 100644 --- a/src/mod/dns.mod/coredns.c +++ b/src/mod/dns.mod/coredns.c @@ -273,8 +273,8 @@ static inline u_32bit_t getipbash(IP ip) #ifdef IPV6 static unsigned long getip6bash(struct in6_addr *ip6) { u_32bit_t x, y; - egg_memcpy(&x, &ip6->s6_addr , sizeof x); - egg_memcpy(&y, &ip6->s6_addr + 12, sizeof y); + egg_memcpy(&x, ip6->s6_addr , sizeof x); + egg_memcpy(&y, ip6->s6_addr + 12, sizeof y); x ^= y; return (unsigned long) BASH_MODULO(x); } @@ -1080,7 +1080,7 @@ void parserespacket(u_8bit_t *response, int len) static void dns_ack(void) { struct sockaddr_in from; - unsigned int fromlen = sizeof(struct sockaddr_in); + socklen_t fromlen = sizeof(struct sockaddr_in); int r, i; r = recvfrom(resfd, (u_8bit_t *) resrecvbuf, MAX_PACKETSIZE, 0, diff --git a/src/mod/filesys.mod/files.c b/src/mod/filesys.mod/files.c index ae3a209f2..b34867d3c 100644 --- a/src/mod/filesys.mod/files.c +++ b/src/mod/filesys.mod/files.c @@ -1389,7 +1389,7 @@ static cmd_t myfiles[] = { static int files_reget(int idx, char *fn, char *nick, int resend) { int i = 0; - char *p = NULL, *what = NULL, *destdir, *s = NULL; + char *p = NULL, *what = NULL, *destdir = NULL, *s = NULL; filedb_entry *fdbe = NULL; FILE *fdb = NULL; diff --git a/src/mod/irc.mod/chan.c b/src/mod/irc.mod/chan.c index 3c29e58c5..7ff95ce24 100644 --- a/src/mod/irc.mod/chan.c +++ b/src/mod/irc.mod/chan.c @@ -177,7 +177,7 @@ static void do_mask(struct chanset_t *chan, masklist *m, char *mask, char mode) * and handles kick & deop as well. */ static int detect_chan_flood(char *floodnick, char *floodhost, char *from, - struct chanset_t *chan, int which, char *victim, int size) + struct chanset_t *chan, int which, char *victim) { char h[UHOSTLEN], ftype[12], *p; struct userrec *u; @@ -232,11 +232,6 @@ static int detect_chan_flood(char *floodnick, char *floodhost, char *from, lapse = chan->flood_nick_time; strcpy(ftype, "nick"); break; - case FLOOD_SIZE: - thr = chan->flood_size_thr; - lapse = chan->flood_size_time; - strcpy(ftype, "pub"); - break; case FLOOD_JOIN: thr = chan->flood_join_thr; lapse = chan->flood_join_time; @@ -270,19 +265,13 @@ static int detect_chan_flood(char *floodnick, char *floodhost, char *from, strncpy(chan->floodwho[which], p, 80); chan->floodwho[which][80] = 0; chan->floodtime[which] = now; - if (which == FLOOD_SIZE) - chan->floodnum[which] = size; - else - chan->floodnum[which] = 1; + chan->floodnum[which] = 1; return 0; } if (chan->floodtime[which] < now - lapse) { /* Flood timer expired, reset it */ chan->floodtime[which] = now; - if (which == FLOOD_SIZE) - chan->floodnum[which] = size; - else - chan->floodnum[which] = 1; + chan->floodnum[which] = 1; return 0; } /* Deop'n the same person, sillyness ;) - so just ignore it */ @@ -292,12 +281,7 @@ static int detect_chan_flood(char *floodnick, char *floodhost, char *from, else strcpy(chan->deopd, victim); } - - if (which == FLOOD_SIZE) - chan->floodnum[which]+=size; - else - chan->floodnum[which]++; - + chan->floodnum[which]++; if (chan->floodnum[which] >= thr) { /* FLOOD */ /* Reset counters */ chan->floodnum[which] = 0; @@ -312,7 +296,6 @@ static int detect_chan_flood(char *floodnick, char *floodhost, char *from, case FLOOD_PRIVMSG: case FLOOD_NOTICE: case FLOOD_CTCP: - case FLOOD_SIZE: /* Flooding chan! either by public or notice */ if (!chan_sentkick(m) && (me_op(chan) || (me_halfop(chan) && !chan_hasop(m)))) { @@ -1745,7 +1728,7 @@ static int gotjoin(char *from, char *chname) chan->status &= ~CHAN_STOP_CYCLE; strcpy(uhost, from); nick = splitnick(&uhost); - detect_chan_flood(nick, uhost, from, chan, FLOOD_JOIN, NULL, 0); + detect_chan_flood(nick, uhost, from, chan, FLOOD_JOIN, NULL); chan = findchan(chname); if (!chan) { @@ -2077,7 +2060,7 @@ static int gotkick(char *from, char *origmsg) u = get_user_by_host(from); strcpy(uhost, from); whodid = splitnick(&uhost); - detect_chan_flood(whodid, uhost, from, chan, FLOOD_KICK, nick, 0); + detect_chan_flood(whodid, uhost, from, chan, FLOOD_KICK, nick); chan = findchan(chname); if (!chan) @@ -2168,7 +2151,7 @@ static int gotnick(char *from, char *msg) /* Compose a nick!user@host for the new nick */ sprintf(s1, "%s!%s", msg, uhost); strcpy(m->nick, msg); - detect_chan_flood(msg, uhost, from, chan, FLOOD_NICK, NULL, 0); + detect_chan_flood(msg, uhost, from, chan, FLOOD_NICK, NULL); if (!findchan_by_dname(chname)) { chan = oldchan; @@ -2335,8 +2318,7 @@ static int gotmsg(char *from, char *msg) strcpy(ctcp, p1); strcpy(p1 - 1, p + 1); detect_chan_flood(nick, uhost, from, chan, strncmp(ctcp, "ACTION ", 7) ? - FLOOD_CTCP : FLOOD_PRIVMSG, NULL, 0); - detect_chan_flood(nick, uhost, from, chan, FLOOD_SIZE, NULL, strlen(msg)); + FLOOD_CTCP : FLOOD_PRIVMSG, NULL); chan = findchan(realto); if (!chan) @@ -2393,8 +2375,7 @@ static int gotmsg(char *from, char *msg) int result = 0; /* Check even if we're ignoring the host. (modified by Eule 17.7.99) */ - detect_chan_flood(nick, uhost, from, chan, FLOOD_PRIVMSG, NULL, 0); - detect_chan_flood(nick, uhost, from, chan, FLOOD_SIZE, NULL, strlen(msg)); + detect_chan_flood(nick, uhost, from, chan, FLOOD_PRIVMSG, NULL); chan = findchan(realto); if (!chan) @@ -2458,8 +2439,7 @@ static int gotnotice(char *from, char *msg) p = strchr(msg, 1); detect_chan_flood(nick, uhost, from, chan, strncmp(ctcp, "ACTION ", 7) ? - FLOOD_CTCP : FLOOD_PRIVMSG, NULL, 0); - detect_chan_flood(nick, uhost, from, chan, FLOOD_SIZE, NULL, strlen(msg)); + FLOOD_CTCP : FLOOD_PRIVMSG, NULL); chan = findchan(realto); if (!chan) @@ -2487,8 +2467,7 @@ static int gotnotice(char *from, char *msg) if (msg[0]) { /* Check even if we're ignoring the host. (modified by Eule 17.7.99) */ - detect_chan_flood(nick, uhost, from, chan, FLOOD_NOTICE, NULL, 0); - detect_chan_flood(nick, uhost, from, chan, FLOOD_SIZE, NULL, strlen(msg)); + detect_chan_flood(nick, uhost, from, chan, FLOOD_NOTICE, NULL); chan = findchan(realto); if (!chan) diff --git a/src/mod/irc.mod/irc.h b/src/mod/irc.mod/irc.h index 35f1f62f2..5798723db 100644 --- a/src/mod/irc.mod/irc.h +++ b/src/mod/irc.mod/irc.h @@ -69,7 +69,7 @@ static void recheck_channel(struct chanset_t *, int); static void set_key(struct chanset_t *, char *); static void maybe_revenge(struct chanset_t *, char *, char *, int); static int detect_chan_flood(char *, char *, char *, struct chanset_t *, int, - char *, int); + char *); static void newmask(masklist *, char *, char *); static char *quickban(struct chanset_t *, char *); static void got_op(struct chanset_t *chan, char *nick, char *from, char *who, diff --git a/src/mod/irc.mod/mode.c b/src/mod/irc.mod/mode.c index b13a2bd4d..cd49959e4 100644 --- a/src/mod/irc.mod/mode.c +++ b/src/mod/irc.mod/mode.c @@ -653,7 +653,7 @@ static void got_deop(struct chanset_t *chan, char *nick, char *from, /* Check for mass deop */ if (nick[0]) - detect_chan_flood(nick, from, s1, chan, FLOOD_DEOP, who, 0); + detect_chan_flood(nick, from, s1, chan, FLOOD_DEOP, who); /* Having op hides your +v and +h status -- so now that someone's lost ops, * check to see if they have +v or +h diff --git a/src/mod/server.mod/servmsg.c b/src/mod/server.mod/servmsg.c index 46d2e59fe..9c2b49eaa 100644 --- a/src/mod/server.mod/servmsg.c +++ b/src/mod/server.mod/servmsg.c @@ -359,7 +359,7 @@ static int got442(char *from, char *msg) putlog(LOG_MISC, chname, IRC_SERVNOTONCHAN, chname); if (me && me->funcs) - (me->funcs[CHANNEL_CLEAR]) (chan, 1); + (me->funcs[CHANNEL_CLEAR]) (chan, CHAN_RESETALL); chan->status &= ~CHAN_ACTIVE; key = chan->channel.key[0] ? chan->channel.key : chan->key_prot; @@ -386,7 +386,7 @@ static void nuke_server(char *reason) for (chan = chanset; chan; chan = chan->next) { if (channel_active(chan)) if ((me = module_find("irc", 1, 3)) != NULL) - (me->funcs[IRC_RESET_CHAN_INFO]) (chan, CHAN_RESETALL); + (me->funcs[CHANNEL_CLEAR]) (chan, CHAN_RESETALL); } disconnect_server(servidx); @@ -1018,7 +1018,7 @@ static void kill_server(int idx, void *x) struct chanset_t *chan; for (chan = chanset; chan; chan = chan->next) - (me->funcs[CHANNEL_CLEAR]) (chan, 1); + (me->funcs[CHANNEL_CLEAR]) (chan, CHAN_RESETALL); } /* A new server connection will be automatically initiated in * about 2 seconds. */ diff --git a/src/mod/share.mod/share.c b/src/mod/share.mod/share.c index d7a89b858..35afa8f93 100644 --- a/src/mod/share.mod/share.c +++ b/src/mod/share.mod/share.c @@ -1262,7 +1262,7 @@ static void share_end(int idx, char *par) static void share_feats(int idx, char *par) { - (int) uf_features_check(idx, par); + uf_features_check(idx, par); } diff --git a/src/mod/share.mod/uf_features.c b/src/mod/share.mod/uf_features.c index 5bf043f7a..4fa365a52 100644 --- a/src/mod/share.mod/uf_features.c +++ b/src/mod/share.mod/uf_features.c @@ -221,7 +221,7 @@ static void uff_deltable(uff_table_t *ut) if (!ut) return; for (; ut->feature; ++ut) - (int) uff_delfeature(ut); + uff_delfeature(ut); } diff --git a/src/patch.h b/src/patch.h index a4026f859..904dbf66b 100644 --- a/src/patch.h +++ b/src/patch.h @@ -34,17 +34,17 @@ * * */ -patch("PRE-RELEASE"); /* RC version */ +patch("Git"); /* Git version */ /* * * */ -patch("1473549914"); /* current unixtime */ +patch("1476373641"); /* current unixtime */ /* * * */ -patch("RC1"); +patch("itcompiles"); /* * * diff --git a/src/tls.c b/src/tls.c index a8bcebeee..b820a12fd 100644 --- a/src/tls.c +++ b/src/tls.c @@ -298,7 +298,7 @@ static int ssl_hostmatch(char *cn, char *host) if ((r = strchr(cn + 1, '.')) && r[-1] == '*' && strchr(r, '.')) { for (p = cn, q = host; *p != '*'; p++, q++) - if (toupper(*p) != toupper(*q)) + if (toupper((unsigned char)*p) != toupper((unsigned char)*q)) return 0; if (!(p = strchr(host, '.')) || strcasecmp(p, r)) diff --git a/tcl.m4 b/tcl.m4 index 28d3f5621..caccbe5b0 100644 --- a/tcl.m4 +++ b/tcl.m4 @@ -20,9 +20,6 @@ dnl TEA_VERSION="3.10" # TEA_WINDOWINGSYSTEM - win32 aqua x11 (mirrors 'tk windowingsystem') # TEA_PLATFORM - windows unix # TEA_TK_EXTENSION - True if this is a Tk extension -# TEACUP_OS - windows macosx linux generic -# TEACUP_TOOLSET - Toolset in use (gcc,mingw,msvc,llvm) -# TEACUP_PROFILE - win32 # #------------------------------------------------------------------------ @@ -138,8 +135,9 @@ AC_DEFUN([TEA_PATH_TCLCONFIG], [ for i in `ls -d ${libdir} 2>/dev/null` \ `ls -d ${exec_prefix}/lib 2>/dev/null` \ `ls -d ${prefix}/lib 2>/dev/null` \ - `ls -d /usr/local/lib 2>/dev/null` \ `ls -d /usr/contrib/lib 2>/dev/null` \ + `ls -d /usr/local/lib 2>/dev/null` \ + `ls -d /usr/pkg/lib 2>/dev/null` \ `ls -d /usr/lib 2>/dev/null` \ `ls -d /usr/lib64 2>/dev/null` \ `ls -d /usr/lib/tcl8.6 2>/dev/null` \ @@ -577,26 +575,7 @@ AC_DEFUN([TEA_LOAD_TKCONFIG], [ AC_DEFUN([TEA_PROG_TCLSH], [ AC_MSG_CHECKING([for tclsh]) - - AC_ARG_WITH(tclsh, [ --with-tclsh Specify a local tcl shell to use for dynamic code], with_tclsh=${withval}) - # Use the value from --with-tclsh, if it was given - TCLSH_PROG=0 - if test x"${with_tclsh}" != x ; then - if test -f "${with_tclsh}" ; then - TCLSH_PROG=${with_tclsh} - else - if test -f "${with_tclsh}/tcl8.6" ; then - TCLSH_PROG="${with_tclsh}/tcl8.6" - else - if test -f "${with_tclsh}/tclsh86.exe" ; then - TCLSH_PROG="${with_tclsh}/tclsh86.exe" - else - AC_MSG_ERROR([${with_tclsh} does not point to a valid Tcl executable]) - fi - fi - fi - else - if test -f "${TCL_BIN_DIR}/Makefile" ; then + if test -f "${TCL_BIN_DIR}/Makefile" ; then # tclConfig.sh is in Tcl build directory if test "${TEA_PLATFORM}" = "windows"; then if test -f "${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT}" ; then @@ -611,7 +590,7 @@ AC_DEFUN([TEA_PROG_TCLSH], [ else TCLSH_PROG="${TCL_BIN_DIR}/tclsh" fi - else + else # tclConfig.sh is in install location if test "${TEA_PLATFORM}" = "windows"; then TCLSH_PROG="tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT}" @@ -628,8 +607,7 @@ AC_DEFUN([TEA_PROG_TCLSH], [ fi done TCLSH_PROG="${REAL_TCL_BIN_DIR}${TCLSH_PROG}" - fi - fi + fi AC_MSG_RESULT([${TCLSH_PROG}]) AC_SUBST(TCLSH_PROG) ]) @@ -668,7 +646,7 @@ AC_DEFUN([TEA_PROG_WISH], [ WISH_PROG="${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}st${EXEEXT}" fi else - WISH_PROG="${TK_BIN_DIR}/wish" + WISH_PROG="${TK_BIN_DIR}/wish" fi else # tkConfig.sh is in install location @@ -1374,8 +1352,6 @@ AC_DEFUN([TEA_CONFIG_CFLAGS], [ CFLAGS_OPTIMIZE="-O2 -fomit-frame-pointer" SHLIB_LD='${CC} -shared' UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a' - PRACTCL_UNSHARED_LIB_SUFFIX='.a' - LDFLAGS_CONSOLE="-wl,--subsystem,console ${lflags}" LDFLAGS_WINDOW="-wl,--subsystem,windows ${lflags}" @@ -2107,12 +2083,10 @@ dnl # preprocessing tests use only CPPFLAGS. AS_IF([test "$SHARED_LIB_SUFFIX" = ""], [ # TEA specific: use PACKAGE_VERSION instead of VERSION - SHARED_LIB_SUFFIX='${PACKAGE_VERSION}${SHLIB_SUFFIX}' - ]) + SHARED_LIB_SUFFIX='${PACKAGE_VERSION}${SHLIB_SUFFIX}']) AS_IF([test "$UNSHARED_LIB_SUFFIX" = ""], [ # TEA specific: use PACKAGE_VERSION instead of VERSION - UNSHARED_LIB_SUFFIX='${PACKAGE_VERSION}.a' - ]) + UNSHARED_LIB_SUFFIX='${PACKAGE_VERSION}.a']) if test "${GCC}" = "yes" -a ${SHLIB_SUFFIX} = ".dll"; then AC_CACHE_CHECK(for SEH support in compiler, @@ -2215,7 +2189,6 @@ dnl # preprocessing tests use only CPPFLAGS. AC_SUBST(STLIB_LD) AC_SUBST(SHLIB_LD) - AC_SUBST(SHLIB_SUFFIX) AC_SUBST(SHLIB_LD_LIBS) AC_SUBST(SHLIB_CFLAGS) @@ -2940,6 +2913,7 @@ AC_DEFUN([TEA_INIT], [ # TEA extensions pass this us the version of TEA they think they # are compatible with. TEA_VERSION="3.10" + AC_MSG_CHECKING([for correct TEA configuration]) if test x"${PACKAGE_NAME}" = x ; then AC_MSG_ERROR([ @@ -3410,131 +3384,98 @@ AC_DEFUN([TEA_SETUP_COMPILER], [ # MAKE_STUB_LIB Makefile rule for building a stub library # VC_MANIFEST_EMBED_DLL Makefile rule for embedded VC manifest in DLL # VC_MANIFEST_EMBED_EXE Makefile rule for embedded VC manifest in EXE -# -# PRACTCL_TOOLSET What toolset is in use (gcc or msvc) -# PRACTCL_SHARED_LIB Template rule for building a shared library -# PRACTCL_STATIC_LIB Template rule for building a static library -# PRACTCL_STUB_LIB Template rule for building a stub library -# PRACTCL_VC_MANIFEST_EMBED_DLL Template rule for embedded VC manifest in DLL -# PRACTCL_VC_MANIFEST_EMBED_EXE Template rule for embedded VC manifest in EXE -# PRACTCL_NAME_LIBRARY Template rule for naming libraries -# #------------------------------------------------------------------------ AC_DEFUN([TEA_MAKE_LIB], [ - PRACTCL_TOOLSET="gcc" - PRACTCL_VC_MANIFEST_EMBED_DLL=: - PRACTCL_VC_MANIFEST_EMBED_EXE=: - if test "${TEA_PLATFORM}" = "windows" -a "$GCC" != "yes"; then - PRACTCL_TOOLSET="msvc" - PRACTCL_STATIC_LIB="%STLIB_LD% -out:%OUTFILE% %LIBRARY_OBJECTS%" - PRACTCL_SHARED_LIB="%SHLIB_LD% %SHLIB_LD_LIBS% %LDFLAGS_DEFAULT% -out:%OUTFILE% %LIBRARY_OBJECTS%" - MAKE_STATIC_LIB="\${STLIB_LD} -out:\[$]@ \$(PKG_OBJECTS)" - MAKE_SHARED_LIB="\${SHLIB_LD} \${SHLIB_LD_LIBS} \${LDFLAGS_DEFAULT} -out:\[$]@ \$(PKG_OBJECTS)" - AC_EGREP_CPP([manifest needed], [ + if test "${TEA_PLATFORM}" = "windows" -a "$GCC" != "yes"; then + MAKE_STATIC_LIB="\${STLIB_LD} -out:\[$]@ \$(PKG_OBJECTS)" + MAKE_SHARED_LIB="\${SHLIB_LD} \${SHLIB_LD_LIBS} \${LDFLAGS_DEFAULT} -out:\[$]@ \$(PKG_OBJECTS)" + AC_EGREP_CPP([manifest needed], [ #if defined(_MSC_VER) && _MSC_VER >= 1400 print("manifest needed") #endif - ], [ - # Could do a CHECK_PROG for mt, but should always be with MSVC8+ - PRACTCL_VC_MANIFEST_EMBED_DLL="mt.exe -nologo -manifest %OUTFILE%.manifest -outputresource:%OUTFILE%\;2" - PRACTCL_VC_MANIFEST_EMBED_EXE="mt.exe -nologo -manifest %OUTFILE%.manifest -outputresource:%OUTFILE%\;1" - VC_MANIFEST_EMBED_DLL="if test -f \[$]@.manifest ; then mt.exe -nologo -manifest \[$]@.manifest -outputresource:\[$]@\;2 ; fi" - VC_MANIFEST_EMBED_EXE="if test -f \[$]@.manifest ; then mt.exe -nologo -manifest \[$]@.manifest -outputresource:\[$]@\;1 ; fi" - MAKE_SHARED_LIB="${MAKE_SHARED_LIB} ; ${VC_MANIFEST_EMBED_DLL}" - TEA_ADD_CLEANFILES([*.manifest]) - ]) - PRACTCL_STUB_LIB="%STLIB_LD% -nodefaultlib -out:%OUTFILE% %LIBRARY_OBJECTS%" - MAKE_STUB_LIB="\${STLIB_LD} -nodefaultlib -out:\[$]@ \$(PKG_STUB_OBJECTS)" - else - MAKE_STATIC_LIB="\${STLIB_LD} \[$]@ \$(PKG_OBJECTS)" - MAKE_SHARED_LIB="\${SHLIB_LD} -o \[$]@ \$(PKG_OBJECTS) \${SHLIB_LD_LIBS}" - MAKE_STUB_LIB="\${STLIB_LD} \[$]@ \$(PKG_STUB_OBJECTS)" - - PRACTCL_STATIC_LIB="%STLIB_LD% %OUTFILE% %LIBRARY_OBJECTS%" - PRACTCL_SHARED_LIB="%SHLIB_LD% -o %OUTFILE% %LIBRARY_OBJECTS% %SHLIB_LD_LIBS%" - PRACTCL_STUB_LIB="%STLIB_LD% %OUTFILE% %LIBRARY_OBJECTS%" - fi - - if test "${SHARED_BUILD}" = "1" ; then - MAKE_LIB="${MAKE_SHARED_LIB} " - else - MAKE_LIB="${MAKE_STATIC_LIB} " - fi - - #-------------------------------------------------------------------- - # Shared libraries and static libraries have different names. - # Use the double eval to make sure any variables in the suffix is - # substituted. (@@@ Might not be necessary anymore) - #-------------------------------------------------------------------- - if test "${TEA_PLATFORM}" = "windows" ; then - PRACTCL_NAME_LIBRARY="%LIBRARY_PREFIX%%LIBRARY_NAME%%LIBRARY_VERSION_NODOTS%" - if test "${SHARED_BUILD}" = "1" ; then + ], [ + # Could do a CHECK_PROG for mt, but should always be with MSVC8+ + VC_MANIFEST_EMBED_DLL="if test -f \[$]@.manifest ; then mt.exe -nologo -manifest \[$]@.manifest -outputresource:\[$]@\;2 ; fi" + VC_MANIFEST_EMBED_EXE="if test -f \[$]@.manifest ; then mt.exe -nologo -manifest \[$]@.manifest -outputresource:\[$]@\;1 ; fi" + MAKE_SHARED_LIB="${MAKE_SHARED_LIB} ; ${VC_MANIFEST_EMBED_DLL}" + TEA_ADD_CLEANFILES([*.manifest]) + ]) + MAKE_STUB_LIB="\${STLIB_LD} -nodefaultlib -out:\[$]@ \$(PKG_STUB_OBJECTS)" + else + MAKE_STATIC_LIB="\${STLIB_LD} \[$]@ \$(PKG_OBJECTS)" + MAKE_SHARED_LIB="\${SHLIB_LD} -o \[$]@ \$(PKG_OBJECTS) \${SHLIB_LD_LIBS}" + MAKE_STUB_LIB="\${STLIB_LD} \[$]@ \$(PKG_STUB_OBJECTS)" + fi + + if test "${SHARED_BUILD}" = "1" ; then + MAKE_LIB="${MAKE_SHARED_LIB} " + else + MAKE_LIB="${MAKE_STATIC_LIB} " + fi + + #-------------------------------------------------------------------- + # Shared libraries and static libraries have different names. + # Use the double eval to make sure any variables in the suffix is + # substituted. (@@@ Might not be necessary anymore) + #-------------------------------------------------------------------- + + if test "${TEA_PLATFORM}" = "windows" ; then + if test "${SHARED_BUILD}" = "1" ; then # We force the unresolved linking of symbols that are really in # the private libraries of Tcl and Tk. if test x"${TK_BIN_DIR}" != x ; then - SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TK_BIN_DIR}/${TK_STUB_LIB_FILE}`\"" + SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TK_BIN_DIR}/${TK_STUB_LIB_FILE}`\"" fi SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}`\"" if test "$GCC" = "yes"; then - SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -static-libgcc" + SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -static-libgcc" fi eval eval "PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" - else + else eval eval "PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" if test "$GCC" = "yes"; then - PKG_LIB_FILE=lib${PKG_LIB_FILE} + PKG_LIB_FILE=lib${PKG_LIB_FILE} fi - fi - # Some packages build their own stubs libraries - eval eval "PKG_STUB_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}" - if test "$GCC" = "yes"; then - PKG_STUB_LIB_FILE=lib${PKG_STUB_LIB_FILE} - fi - # These aren't needed on Windows (either MSVC or gcc) - RANLIB=: - RANLIB_STUB=: - else - PRACTCL_NAME_LIBRARY="lib%LIBRARY_PREFIX%%LIBRARY_NAME%%LIBRARY_VERSION%" - RANLIB_STUB="${RANLIB}" - if test "${SHARED_BUILD}" = "1" ; then - SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TCL_STUB_LIB_SPEC}" - if test x"${TK_BIN_DIR}" != x ; then - SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TK_STUB_LIB_SPEC}" - fi - eval eval "PKG_LIB_FILE=lib${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" - RANLIB=: + fi + # Some packages build their own stubs libraries + eval eval "PKG_STUB_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}" + if test "$GCC" = "yes"; then + PKG_STUB_LIB_FILE=lib${PKG_STUB_LIB_FILE} + fi + # These aren't needed on Windows (either MSVC or gcc) + RANLIB=: + RANLIB_STUB=: else - eval eval "PKG_LIB_FILE=lib${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" + RANLIB_STUB="${RANLIB}" + if test "${SHARED_BUILD}" = "1" ; then + SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TCL_STUB_LIB_SPEC}" + if test x"${TK_BIN_DIR}" != x ; then + SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TK_STUB_LIB_SPEC}" + fi + eval eval "PKG_LIB_FILE=lib${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" + RANLIB=: + else + eval eval "PKG_LIB_FILE=lib${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" + fi + # Some packages build their own stubs libraries + eval eval "PKG_STUB_LIB_FILE=lib${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}" fi - # Some packages build their own stubs libraries - eval eval "PKG_STUB_LIB_FILE=lib${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}" - fi - - # Store the raw CFLAGS before we add the trimmings - PRACTCL_CFLAGS=${CFLAGS} - # These are escaped so that only CFLAGS is picked up at configure time. - # The other values will be substituted at make time. - CFLAGS="${CFLAGS} \${CFLAGS_DEFAULT} \${CFLAGS_WARNING}" - if test "${SHARED_BUILD}" = "1" ; then - CFLAGS="${CFLAGS} \${SHLIB_CFLAGS}" - fi - - AC_SUBST(MAKE_LIB) - AC_SUBST(MAKE_SHARED_LIB) - AC_SUBST(MAKE_STATIC_LIB) - AC_SUBST(MAKE_STUB_LIB) - AC_SUBST(RANLIB_STUB) - AC_SUBST(VC_MANIFEST_EMBED_DLL) - AC_SUBST(VC_MANIFEST_EMBED_EXE) - AC_SUBST(PRACTCL_CFLAGS) - AC_SUBST(PRACTCL_TOOLSET) - AC_SUBST(PRACTCL_SHARED_LIB) - AC_SUBST(PRACTCL_STATIC_LIB) - AC_SUBST(PRACTCL_STUB_LIB) - AC_SUBST(PRACTCL_VC_MANIFEST_EMBED_DLL) - AC_SUBST(PRACTCL_VC_MANIFEST_EMBED_EXE) - AC_SUBST(PRACTCL_NAME_LIBRARY) + + # These are escaped so that only CFLAGS is picked up at configure time. + # The other values will be substituted at make time. + CFLAGS="${CFLAGS} \${CFLAGS_DEFAULT} \${CFLAGS_WARNING}" + if test "${SHARED_BUILD}" = "1" ; then + CFLAGS="${CFLAGS} \${SHLIB_CFLAGS}" + fi + + AC_SUBST(MAKE_LIB) + AC_SUBST(MAKE_SHARED_LIB) + AC_SUBST(MAKE_STATIC_LIB) + AC_SUBST(MAKE_STUB_LIB) + AC_SUBST(RANLIB_STUB) + AC_SUBST(VC_MANIFEST_EMBED_DLL) + AC_SUBST(VC_MANIFEST_EMBED_EXE) ]) #------------------------------------------------------------------------ @@ -4296,100 +4237,6 @@ AC_DEFUN([TEA_PATH_CELIB], [ fi fi ]) - -#-------------------------------------------------------------------- -# TEA_CONFIG_TEAPOT -# -# Try to determine the canonical name for this package's binary -# target -# -# Arguments: -# none -AC_DEFUN([TEA_CONFIG_TEAPOT], [ - TEACUP_OS=$system - TEACUP_ARCH="unknown" - TEACUP_TOOLSET="gcc" - TEACUP_PROFILE="unknown" - arch="unknown" - if test "${TEA_PLATFORM}" = "windows" ; then - if test "$GCC" = "yes" ; then - TEACUP_TOOLSET="gcc" - else - TEACUP_TOOLSET="msvc" - fi - if test "$do64bit" != "no" ; then - case "$do64bit" in - amd64|x64|yes) - arch="x86_64" - TEACUP_PROFILE="win32-x86_64" - ;; - ia64) - arch="ia64" - TEACUP_PROFILE="win32-ia64" - ;; - esac - else - arch="ix86" - TEACUP_PROFILE="win32-ix86" - fi - else - case $system in - Linux*) - TEACUP_OS="linux" - arch=`uname -m` - TEACUP_PROFILE="linux-glibc2.3-$arch" - ;; - GNU*) - TEACUP_OS="gnu" - arch=`uname -m` - ;; - NetBSD-Debian) - TEACUP_OS="netbsd-debian" - arch=`uname -m` - ;; - OpenBSD-*) - TEACUP_OS="openbsd" - arch=`arch -s` - ;; - Darwin*) - TEACUP_OS="macosx" - TEACUP_PROFILE="macosx-universal" - arch=`uname -m` - if test $arch = "x86_64"; then - TEACUP_PROFILE="macosx10.5-i386-x86_84" - fi - ;; - OpenBSD*) - TEACUP_OS="openbsd" - arch=`arch -s` - ;; - esac - fi - TEACUP_ARCH=$arch - if test "$TEACUP_PROFILE" = "unknown"; then - if test $arch = "unknown"; then - arch=`uname -m` - fi - case $arch in - i*86) - arch="ix86" - ;; - amd64) - arch="x86_64" - ;; - esac - TEACUP_PROFILE="$TEACUP_OS-$arch" - fi - TEA_SYSTEM=$system - AC_SUBST(TEA_SYSTEM) - AC_SUBST(TEA_PLATFORM) - AC_SUBST(TEA_WINDOWINGSYSTEM) - AC_SUBST(TEACUP_OS) - AC_SUBST(TEACUP_ARCH) - AC_SUBST(TEACUP_TOOLSET) - AC_SUBST(TEACUP_PROFILE) -]) - # Local Variables: # mode: autoconf # End:

b
jjoins, parts, quits, and netsplits on the channeljoins, parts, quits, topic changes, and netsplits on the channel
k kicks, bans, and mode changes on the channel