mod_casemodule is designed to help ProFTPD be case-insensitive, for those sites that may need it (e.g. those that are migrating from a Windows environment or have mounted Windows filesystems).
mod_case works by performing two checks on the filename used in
FTP commands. First,
mod_case will scan the directory to see
if there is already a file whose name exactly matches the given filename. If
mod_case will scan the directory again, this time looking
for case-insensitive matches.
This module is contained in the
mod_case.c file for
ProFTPD 1.3.x, and is not compiled by default. Installation instructions
are discussed here.
The most current version of
mod_case can be found at:
Please contact TJ Saunders <tj at castaglia.org> with any questions, concerns, or suggestions regarding this module.
CaseEngine directive enables or disables the module's
runtime case-matching engine. If it is set to off this module does no
case-insensitive checking. Use this directive to disable the module instead of
commenting out all
CaseIgnore directive is used to enable case-insensitive
matching, possibly on a per-FTP command basis. If it is set to off,
no case-insensitive matching is performed. If set to on, then
case-insensitive matcing is performed for all FTP commands that
mod_case handles (see below). Otherwise, one can configure
a cmd-list, which is a comma-separated list of FTP commands for
mod_case is to do case-insensitive matching.
mod_case handles the following FTP commands: APPE, CWD, DELE,
LIST, MDTM, MKD, MLSD, MLST, NLST, RETR, RMD, RNFR, RNTO, SIZE, STOR, XCWD,
XMKD, and XRMD.
# Enable case-insensitivity for all FTP commands handled by mod_case CaseIgnore on # Enable case-insensitivity only for downloads CaseIgnore RETR # Enable case-insensitivity for uploads and downloads CaseIgnore APPE,RETR,STOR
CaseLog directive is used to a specify a log file for
mod_case reporting and debugging, and can be done a per-server
basis. The path parameter must be the full path to the file to use for
logging. Note that this path must not be to a world-writeable
directory and, unless
AllowLogSymlinks is explicitly set to
on (generally a bad idea), the path must not be a symbolic
If path is "none", no logging will be done at all; this
setting can be used to override a
CaseLog setting inherited from
mod_case, copy the
proftpd-dir/contrib/after unpacking the latest proftpd-1.2 source code. Then follow the usual steps for using third-party modules in proftpd:
./configure --with-modules=mod_case make make install