-
Notifications
You must be signed in to change notification settings - Fork 2
/
mod_case.html
176 lines (151 loc) · 5.58 KB
/
mod_case.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
<html>
<head>
<title>ProFTPD module mod_case</title>
</head>
<body bgcolor=white>
<hr>
<center>
<h2><b>ProFTPD module <code>mod_case</code></b></h2>
</center>
<hr><br>
The <code>mod_case</code> module is designed to help ProFTPD be
case-insensitive, for those sites that may need it (<i>e.g.</i> those
that are migrating from a Windows environment or have mounted Windows
filesystems).
<p>
The <code>mod_case</code> module works by performing two checks on the
filename used in FTP commands. First, <code>mod_case</code> will scan the
directory to see if there is already a file whose name exactly matches the
given filename. If not, <code>mod_case</code> will then looks for any
case-insensitive matches.
<p>
This module is contained in the <code>mod_case.c</code> file for
ProFTPD 1.3.<i>x</i>, and is not compiled by default. Installation instructions
are discussed <a href="#Installation">here</a>.
<p>
The most current version of <code>mod_case</code> can be found at:
<pre>
<a href="https://github.com/Castaglia/proftpd-mod_case">https://github.com/Castaglia/proftpd-mod_case</a>
</pre>
<h2>Author</h2>
<p>
Please contact TJ Saunders <tj <i>at</i> castaglia.org> with any
questions, concerns, or suggestions regarding this module.
<h2>Directives</h2>
<ul>
<li><a href="#CaseEngine">CaseEngine</a>
<li><a href="#CaseIgnore">CaseIgnore</a>
<li><a href="#CaseLog">CaseLog</a>
</ul>
<hr>
<h2><a name="CaseEngine">CaseEngine</a></h2>
<strong>Syntax:</strong> CaseEngine <em>on|off</em><br>
<strong>Default:</strong> off<br>
<strong>Context:</strong> server config, <code><VirtualHost></code>, <code><Global></code><br>
<strong>Module:</strong> mod_case<br>
<strong>Compatibility:</strong> 1.2.9 and later
<p>
The <code>CaseEngine</code> directive enables or disables the module's
runtime case-matching engine. If it is set to <em>off</em> this module does no
case-insensitive checking. Use this directive to disable the module instead of
commenting out all <code>mod_case</code> directives.
<p>
<hr>
<h2><a name="CaseIgnore">CaseIgnore</a></h2>
<strong>Syntax:</strong> CaseIgnore <em>on|off|cmd-list</em><br>
<strong>Default:</strong> off<br>
<strong>Context:</strong> server config, <code><VirtualHost></code>, <code><Global></code>, <code><Anonymous></code>, <code><Directory></code><br>
<strong>Module:</strong> mod_case<br>
<strong>Compatibility:</strong> 1.2.9 and later
<p>
The <code>CaseIgnore</code> directive is used to enable case-insensitive
matching, possibly on a per-FTP command basis. If it is set to <em>off</em>,
no case-insensitive matching is performed. If set to <em>on</em>, then
case-insensitive matching is performed for all FTP commands that
<code>mod_case</code> handles (see below). Otherwise, one can configure
a <em>cmd-list</em>, which is a comma-separated list of FTP commands for
which <code>mod_case</code> is to do case-insensitive matching.
<p>
The <code>mod_case</code> module handles the following FTP commands:
<ul>
<li><code>APPE</code>
<li><code>CWD</code>/<code>XCWD</code>
<li><code>DELE</code>
<li><code>LIST</code>
<li><code>MDTM</code>
<li><code>MKD</code>/<code>XMKD</code>
<li><code>MLSD</code>
<li><code>MLST</code>
<li><code>NLST</code>
<li><code>RETR</code>
<li><code>RMD</code>/<code>XRMD</code>
<li><code>RNFR</code>
<li><code>RNTO</code>
<li><code>SITE CPFR</code> (from <a href="mod_copy.html"><code>mod_copy</code></a>)
<li><code>SITE CPTO</code> (from <a href="mod_copy.html"><code>mod_copy</code></a>)
<li><code>SITE CHGRP</code>
<li><code>SITE CHMOD</code>
<li><code>SIZE</code>
<li><code>STAT</code>
<li><code>STOR</code>
</ul>
<p>
Examples:
<pre>
# 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
</pre>
<p>
<hr>
<h2><a name="CaseLog">CaseLog</a></h2>
<strong>Syntax:</strong> CaseLog <em>path</em>|"none"<br>
<strong>Default:</strong> None<br>
<strong>Context:</strong> server config, <code><VirtualHost></code>, <code><Global></code><br>
<strong>Module:</strong> mod_case<br>
<strong>Compatibility:</strong> 1.2.9 and later
<p>
The <code>CaseLog</code> directive is used to a specify a log file for
<code>mod_case</code> reporting and debugging, and can be done a per-server
basis. The <em>path</em> parameter must be the full path to the file to use for
logging. Note that this path must <b>not</b> be to a world-writable
directory and, unless <code>AllowLogSymlinks</code> is explicitly set to
<em>on</em> (generally a bad idea), the path must <b>not</b> be a symbolic
link.
<p>
If <em>path</em> is "none", no logging will be done at all; this
setting can be used to override a <code>CaseLog</code> setting inherited from
a <code><Global></code> context.
<p>
<hr>
<h2><a name="Installation">Installation</a></h2>
To install <code>mod_case</code>, copy the <code>mod_case.c</code> file into
<pre>
<i>proftpd-dir</i>/contrib/
</pre>
after unpacking the latest proftpd-1.3.<i>x</i> source code. Then follow the
usual steps for using third-party modules in proftpd:
<pre>
$ ./configure --with-modules=mod_case
$ make
$ make install
</pre>
<p>
Alternatively, if your <code>proftpd</code> was compiled with DSO support, you
can use the <code>prxs</code> tool to build <code>mod_case</code> as a
shared module:
<pre>
$ prxs -c -i -d mod_case.c
</pre>
<p>
<hr><br>
<font size=2><b><i>
© Copyright 2004-2021 TJ Saunders<br>
All Rights Reserved<br>
</i></b></font>
<hr><br>
</body>
</html>