There are four tables which act as the "glue" between the core ProFTPD engine and a module. None of the tables are required; however, having none would make the module fairly useless.
Each module can define up to three different handler tables, which themselves are registered via the module table. These need not all be supplied.
They are grouped by the type of handler:
conftable
lists all the configuration directive handler functions for the module.cmdtable
lists all the FTP command handler functions for the module, includingPRE_CMD
,POST_CMD
, andLOG_CMD
handlers.authtable
lists alternative authentication functions to be used, overriding the system-provided functions.
The fourth table, the module
table, is required to be
defined by a module; indeed, this table/structure is the module definition.