An attempt to document the modules and what they do. =================================================== appconf ------- The application configuration module. Contains everything you need to get information from the ircfs.conf file. select ------ The select module is used to monitor unix based file descriptors. Also "idle" events can be setup from this module. file ---- The root file module. If you need to access a file, use the interface described in the file module, and not the system calls (like open(2)) or the calls in ufs (see below). The reason for having a parent file module is a) Ease porting to MS-DOS/Mac based systems b) To enable transparent use of Database based file systems. c) So a file system can be represented in a standard way through the fserv. socket ------ The socket module contains everything you could want for dealing with sockets server ------ The server module represents an IRC server. servfunc -------- Internal module to server user ---- The user module represents an IRC user. console ------- The console ircfs was run from. channel ------- The channel module represents an IRC channel. dccchat ------- A DCC CHAT session with a user. dccfile ------- A DCC SEND/RECV session with a user. ufs --- The Unix/Posix file system. This is a submodule of the file module, it shouldn't be referenced directly. ctcp ---- CTCP messages, send 'em, recv 'em. fserv ----- The fserv module is responsible for loading and starting each fserv. It reads the ircfs.conf file for what fservs to offer. The fserv module isn't responsible for ratios/access limits/etc. That is the responsibility of a session module. session ------- The session module is a very basic fserv setup. Ircfs can have multiple session modules, maybe one to do a leech server, one to do ratio, etc. The session module is responsible for talking to the user through a DCC CHAT (or, theoretically, other means), and offering files. Files received from the user don't go to the a session module since its impossible to tell what session module the user wants. However session modules can listen to events from the fserv module to notice when a user successfully uploads a file. timer ----- Setting, resetting, destroying, etc timers here stats ----- Aka the debug module, produce online statistics, num of users memory usage, etc, etc.