# Eggdrop 1.8.2 Botnet Core

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

## Description
Eggdrop 1.8.2 is a full-featured IRC bot designed for use in large botnets, providing advanced flood protection and channel management capabilities.

## Key Features
- **Flood Protection:** Implements robust flood protection mechanisms.
- **Botnet Management:** Supports linking and managing multiple bots within a network.
- **Channel Operations:** Automates joining, parting, kicking, and oping users on channels.
- **User Management:** Includes user-level access control and management.

## File Analysis
- **bg.c** — Handles background process management for the bot.
- **bg.h** — Header file defining structures and prototypes used in `bg.c`.
- **botcmd.c** — Manages commands that come across the botnet, including userfile transfer and update commands from sharebots.
- **botmsg.c** — Formats messages to be sent on the botnet and sends different messages to different versioned bots.
- **botnet.c** — Tracks which bots are connected where in the chain, handles channel name associations, and manages pinging of bots.
- **chan.h** — Common header file for `chan.c` and `mode.c`, requiring users.h as well.
- **chanprog.c** — Manages server list maintenance, revenge punishment, timers, utimers, and initializes Tcl scripts.
- **cmdt.h** — Header file used by `tcl.c` and `tclhash.c`.
- **dcc.c** — Handles activity on a DCC socket, including disconnects and various commands.
- **dns.c** — Manages DNS resolve calls and events, providing Tcl commands for DNS lookups.
- **eggdrop.h** — Compile-time settings for Eggdrop.
- **flags.c** — Handles flag matching and conversion functions.
- **flags.h** — Header file defining flags used in `flags.c`.
- **language.c** — Supports language translations within the bot.
- **main.c** — Core event handling, signal handling, command line arguments, context and assert debugging.
- **misc.c** — Manages various utility functions like wildcard matching, hostmask matching, logging, and more.
- **modules.c** — Provides support for modules in Eggdrop.
- **net.c** — Handles all raw network I/O operations.
- **rfc1459.c** — Implements RFC 1459 compliant IRC protocol handling.
- **stat.h** — File attribute management.
- **tcl.c** — Manages Tcl commands and initialization, including variable setting and getting.
- **tclegg.h** — Header file used by `tcl.c` and `tclhash.c`.
- **tclhash.c** — Handles binding and unbinding, checking and triggering in-bot bindings, adding/removing new binding tables, and more.
- **tls.c** — Provides TLS support functions for secure connections.
- **userent.c** — Manages user entries with a more versatile approach.
- **users.c** — Tests and enforces ignores, adds and removes ignores, lists ignores, auto-links bots, sends/receives userfiles, and performs WHOIS matching.