# Eggdrop Bot 1.8.4rc1

**Category:** Eggdrop_Bot
**Original Author:** Unknown

## Description
This is an older version of the Eggdrop IRC bot software, designed to run unattended on a server and automate various tasks such as channel management, user interactions, and file transfers.

## Key Features
- **.resolve/.dns**: Lookup hostnames or IP addresses without blocking.
- **.whois**: Enhanced whois command for DCC connections.
- **.op/.deop**: Manage operator privileges in channels.
- **.floodprotection**: Flood protection system with integrated CTCP simulation.
- **.dccfiletransfer**: Handle file transfers via DCC.
- **.klinehandling**: Automatically handle k-lines by removing servers from the bot's list.

## File Analysis
- **conf.py** — Configuration documentation for Eggdrop.
- **mod.irc** — IRC module controlling bot interactions on IRC.
- **docsfilter.py** — Python script to filter and convert documentation files.
- **action.fix.tcl** — Fixes for mIRC dcc chat /me actions and telnet session /me's.
- **alltools.tcl** — Collection of various tools including toolbox, toolkit, and moretools.
- **cmd_resolve.tcl** — Command for resolving hostnames or IP addresses via DCC.
- **compat.tcl** — Compatibility script to map old Tcl commands to new ones.
- **dccwhois.tcl** — Enhanced whois command for DCC connections.
- **getops.tcl** — Script for requesting and giving ops to each other in a botnet.
- **klined.tcl** — Handles k-line removal from the server list when detected.
- **notes2.tcl** — Note indexing system for tracking user notes.
- **ques5.tcl** — Web file handling script with URL conversion and HTML source indenting.
- **quotepass.tcl** — Sends a quote pass to servers that require it.
- **quotepong.tcl** — Sends pong :<cookie> when ident is broken or disabled.
- **sentinel.tcl** — Flood protection system for Eggdrop bots.
- **userinfo.tcl** — User information retrieval and display script.
- **bg.c** — Handles moving the process to the background while keeping threads happy.
- **bg.h** — Header file for background process handling.
- **botcmd.c** — Handles commands that come across the botnet and userfile transfer from sharebots.
- **botmsg.c** — Handles formatting of messages sent on the botnet and sending different messages to different versioned bots.
- **botnet.c** — Keeps track of connected bots, channel name associations, and pinging bots periodically.
- **chan.h** — Common header file for channel-related functions.
- **chanprog.c** — Maintains server list, revenge punishment, timers, utimers, and initializes tcl scripts.
- **cmds.c** — Handles commands from a user via dcc.
- **cmdt.h** — Header file for built-in commands.
- **dcc.c** — Handles activity on a dcc socket and disconnects.
- **dccutil.c** — Manages formatted text sending to various connections, .who/.whom/.dccstat code, and memory management for dcc structures.
- **dns.c** — Handles DNS resolve calls and events, provides Tcl commands for DNS module.
- **eggdrop.h** — Compile-time settings for Eggdrop.
- **flags.c** — Handles flag matching/conversion functions.
- **flags.h** — Header file for flags handling.
- **language.c** — Language support code.
- **main.c** — Core event handling, signal handling, command line arguments, and context/assert debugging.
- **main.h** — Include file to include most other include files.
- **match.c** — Wildcard matching functions.
- **mem.c** — Handles memory allocation and deallocation.
- **misc.c** — Handles logging, queueing output, resync buffers for sharebots, help system, motd display, and %var substitution.
- **misc_file.c** — Handles file operations like copyfile(), movefile(), and file_readable().
- **modules.c** — Supports modules in Eggdrop.
- **net.c** — Handles all raw network i/o.
- **proto.h** — Prototypes for every function used outside its own module.
- **rfc1459.c** — RFC 1459 protocol handling.
- **stat.h** — File attributes.
- **tandem.h** — Header file for tandem functions.
- **tcl.c** — Handles Tcl commands and initialization, getting/setting Tcl/eggdrop variables.
- **tcldcc.c** — Tcl stubs for dcc commands.
- **tclegg.h** — Header file used by tcl.c and tclhash.c.
- **tclhash.c** — Handles bind/unbind, checking/triggering in-bot bindings, listing current bindings, adding/removing new binding tables, and procedure lookups.
- **tclhash.h** — Header file for tclhash.c.
- **tclmisc.c** — Tcl stubs for everything else.
- **tcluser.c** — Tcl stubs for user-record-oriented commands.
- **tls.c** — Handles TLS support functions, certificate handling, and OpenSSL initialization/shutdown.
- **userent.c** — User-entry handling with new style more versatile.
- **userrec.c** — Handles add_q(), del_q(), str2flags(), flags2str(), str2chflags(), chflags2str() for user records.
- **users.c** — Handles testing and enforcing ignores, adding/removing ignores, listing ignores, auto-linking bots, sending/receiving a userfile from a bot, listing users, and reading the user file.
- **users.h** — Structures and definitions used by users.c and userrec.c.