mod_case
mod_case
module 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).
The mod_case
module 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 not, mod_case
will then looks for any
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:
https://github.com/Castaglia/proftpd-mod_case
Please contact TJ Saunders <tj at castaglia.org> with any questions, concerns, or suggestions regarding this module.
<VirtualHost>
, <Global>
The 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 mod_case
directives.
<VirtualHost>
, <Global>
, <Anonymous>
, <Directory>
The 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 matching 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
which mod_case
is to do case-insensitive matching.
The mod_case
module handles the following FTP commands:
APPE
CWD
/XCWD
DELE
LIST
MDTM
MKD
/XMKD
MLSD
MLST
NLST
RETR
RMD
/XRMD
RNFR
RNTO
SITE CPFR
(from mod_copy
)
SITE CPTO
(from mod_copy
)
SITE CHGRP
SITE CHMOD
SIZE
STAT
STOR
Examples:
# 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
<VirtualHost>
, <Global>
The 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-writable
directory and, unless AllowLogSymlinks
is explicitly set to
on (generally a bad idea), the path must not be a symbolic
link.
If path is "none", no logging will be done at all; this
setting can be used to override a CaseLog
setting inherited from
a <Global>
context.
mod_case
, copy the mod_case.c
file into
proftpd-dir/contrib/after unpacking the latest proftpd-1.3.x source code. Then follow the usual steps for using third-party modules in proftpd:
$ ./configure --with-modules=mod_case $ make $ make install
Alternatively, if your proftpd
was compiled with DSO support, you
can use the prxs
tool to build mod_case
as a
shared module:
$ prxs -c -i -d mod_case.c