# IRCfs - IRC FileServ for *nix

**Category:** Standalone_Bot
**Original Author:** Nick 'Zaf' Clifford <zaf@nrc.co.nz>

## Description
IRCfs is a standalone IRC FileServer written in C. It provides file transfer capabilities over IRC and includes features like user management, channel handling, and CTCP support.

## Key Features
- Implements file transfers via IRC.
- Manages users and their sessions.
- Handles channel joins, parts, and kicks.
- Supports CTCP commands for extended functionality.
- Includes a configuration system for server settings.

## File Analysis
- **bootstrap.sh** — Automates the build process using autoconf and automake.
- **rfc1459.txt** — Contains the RFC 1459 specification for IRC.
- **archdep.h** — Architecture-specific definitions.
- **archlinux.c** — Linux-specific implementation details.
- **archlinux.h** — Linux-specific function declarations.
- **channel.c** — Manages IRC channels and user interactions.
- **channel.h** — Channel event definitions.
- **circbuf.c** — Circular buffer implementation for efficient data storage.
- **circbuf.h** — Header file for circular buffer operations.
- **console.c** — Console interface for user interaction.
- **console.h** — Header file for console functions.
- **crash.c** — Handles crash reporting and debugging.
- **crash.h** — Header file for crash handling.
- **ctcp.c** — CTCP command processing.
- **ctcp.h** — Header file for CTCP events.
- **dccchat.c** — Direct Client-to-Client Chat implementation.
- **dccchat.h** — Header file for DCC chat events.
- **dccfile.c** — Direct Client-to-Client File Transfer implementation.
- **dccfile.h** — Header file for DCC file transfer events.
- **debug.c** — Debugging utilities and logging.
- **debug.h** — Header file for debugging functions.
- **event.c** — Event handling system.
- **event.h** — Header file for event definitions.
- **file.c** — File handling module.
- **file.h** — Header file for file handler functions.
- **fserv.c** — Main server implementation.
- **fserv.h** — Header file for server operations.
- **genmods.sh** — Script to generate module files.
- **ircfs.conf** — Configuration file for the IRC FileServer.
- **list.c** — Generic list implementation.
- **list.h** — Header file for list functions.
- **magic.h** — Magic number definitions for object identification.
- **misc.c** — Miscellaneous utility functions.
- **misc.h** — Header file for miscellaneous utilities.
- **module.c** — Module initialization and management.
- **module.h** — Header file for module definitions.
- **num_hash.c** — Numeric hash table implementation.
- **num_hash.h** — Header file for numeric hash functions.
- **pool.c** — Memory pool management.
- **pool.h** — Header file for memory pool operations.
- **runtime.c** — Runtime system and event loop.
- **runtime.h** — Header file for runtime definitions.
- **select.c** — Select module for handling I/O events.
- **select.h** — Header file for select functions.
- **server.c** — Server management and connection handling.
- **server.h** — Header file for server operations.
- **servfunc.c** — Server command handling.
- **servfunc.h.sh** — Script to generate server function headers.
- **servint.h** — Internal server event definitions.
- **session.c** — Session management.
- **session.h** — Header file for session operations.
- **socket.c** — Socket communication module.
- **socket.h** — Header file for socket functions.
- **stack.h** — Stack implementation using lists.
- **stats.c** — Runtime statistics and monitoring.
- **stats.h** — Header file for stats events.
- **str_hash.c** — String hash table implementation.
- **str_hash.h** — Header file for string hash functions.
- **timer.c** — Timer module for scheduling tasks.
- **timer.h** — Header file for timer operations.
- **timeutil.c** — Time utility functions.
- **timeutil.h** — Header file for time utilities.
- **ufs.c** — User File System implementation.
- **user.c** — User management and session handling.
- **user.h** — Header file for user operations.
- **appconf.c** — Application configuration system.
- **appconf.h** — Header file for application configuration.
- **internal.h** — Internal utility functions.
- **parser.c** — Configuration parser.
- **INSTALL** — Installation instructions.
- **LICENSE** — GNU General Public License v2.
- **README** — Project overview and installation guide.
- **install-sh** — Shell script for installing the software.