* new ftpd.conf directive:
template class [refclass] following directives for refclass will apply to class as well. this makes setting up a `template' class with many default settings easy, whilst allowing for class-specific overrides * prevent crash when the optional limitfile wasn't given to limit * document count_users() * document default setting of limit in ftpd.conf(5) * crank version
This commit is contained in:
parent
ddc897f64e
commit
7e80378800
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: conf.c,v 1.25 2000/01/08 11:09:56 lukem Exp $ */
|
||||
/* $NetBSD: conf.c,v 1.26 2000/01/09 10:08:45 lukem Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1997-2000 The NetBSD Foundation, Inc.
|
||||
@ -38,7 +38,7 @@
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
__RCSID("$NetBSD: conf.c,v 1.25 2000/01/08 11:09:56 lukem Exp $");
|
||||
__RCSID("$NetBSD: conf.c,v 1.26 2000/01/09 10:08:45 lukem Exp $");
|
||||
#endif /* not lint */
|
||||
|
||||
#include <sys/types.h>
|
||||
@ -101,8 +101,6 @@ init_curclass()
|
||||
REASSIGN(curclass.motd, xstrdup(_PATH_FTPLOGINMESG));
|
||||
REASSIGN(curclass.notify, NULL);
|
||||
curclass.passive = 1;
|
||||
curclass.maxrateget = 0;
|
||||
curclass.maxrateput = 0;
|
||||
curclass.rateget = 0;
|
||||
curclass.rateput = 0;
|
||||
curclass.timeout = 900; /* 15 minutes */
|
||||
@ -124,7 +122,7 @@ parse_conf(findclass)
|
||||
size_t len;
|
||||
int none, match, rate;
|
||||
char *endp;
|
||||
char *class, *word, *arg;
|
||||
char *class, *word, *arg, *template;
|
||||
const char *infile;
|
||||
size_t line;
|
||||
unsigned int timeout;
|
||||
@ -142,6 +140,7 @@ parse_conf(findclass)
|
||||
return;
|
||||
|
||||
line = 0;
|
||||
template = NULL;
|
||||
for (;
|
||||
(buf = fparseln(f, &len, &line, NULL, FPARSELN_UNESCCOMM |
|
||||
FPARSELN_UNESCCONT | FPARSELN_UNESCESC)) != NULL;
|
||||
@ -162,7 +161,8 @@ parse_conf(findclass)
|
||||
continue;
|
||||
if (strcasecmp(class, "none") == 0)
|
||||
none = 1;
|
||||
if (strcasecmp(class, findclass) != 0 &&
|
||||
if ((strcasecmp(class, findclass) != 0 &&
|
||||
(template != NULL && strcasecmp(class, template) != 0)) &&
|
||||
!none && strcasecmp(class, "all") != 0)
|
||||
continue;
|
||||
|
||||
@ -261,7 +261,8 @@ parse_conf(findclass)
|
||||
continue;
|
||||
}
|
||||
curclass.limit = limit;
|
||||
REASSIGN(curclass.limitfile, xstrdup(p));
|
||||
REASSIGN(curclass.limitfile,
|
||||
EMPTYSTR(p) ? NULL : xstrdup(p));
|
||||
|
||||
} else if (strcasecmp(word, "maxtimeout") == 0) {
|
||||
if (none || EMPTYSTR(arg))
|
||||
@ -368,6 +369,11 @@ parse_conf(findclass)
|
||||
}
|
||||
curclass.timeout = timeout;
|
||||
|
||||
} else if (strcasecmp(word, "template") == 0) {
|
||||
if (none)
|
||||
continue;
|
||||
REASSIGN(template, EMPTYSTR(arg) ? NULL : xstrdup(arg));
|
||||
|
||||
} else if (strcasecmp(word, "umask") == 0) {
|
||||
mode_t umask;
|
||||
|
||||
@ -397,6 +403,7 @@ parse_conf(findclass)
|
||||
continue;
|
||||
}
|
||||
}
|
||||
REASSIGN(template, NULL);
|
||||
fclose(f);
|
||||
}
|
||||
|
||||
@ -742,6 +749,14 @@ strsuftoi(arg)
|
||||
return (val);
|
||||
}
|
||||
|
||||
/*
|
||||
* Count the number of current connections, reading from
|
||||
* /var/run/ftpd.pids-<class>
|
||||
* Does a kill -0 on each pid in that file, and only counts
|
||||
* processes that exist (or frees the slot if it doesn't).
|
||||
* Adds getpid() to the first free slot. Truncates the file
|
||||
* if possible.
|
||||
*/
|
||||
void
|
||||
count_users()
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
.\" $NetBSD: ftpd.conf.5,v 1.6 2000/01/08 11:09:56 lukem Exp $
|
||||
.\" $NetBSD: ftpd.conf.5,v 1.7 2000/01/09 10:08:45 lukem Exp $
|
||||
.\"
|
||||
.\" Copyright (c) 1997-2000 The NetBSD Foundation, Inc.
|
||||
.\" All rights reserved.
|
||||
@ -34,7 +34,7 @@
|
||||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
.\" POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.Dd January 8, 2000
|
||||
.Dd January 9, 2000
|
||||
.Dt FTPD.CONF 5
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -200,7 +200,7 @@ Otherwise, each time the user enters a new directory, check if
|
||||
exists, and if so, display its contents to the user.
|
||||
Escape sequences are supported; refer to
|
||||
.Sx Display file escape sequences
|
||||
in
|
||||
in
|
||||
.Xr ftpd 8
|
||||
for more information.
|
||||
.It Xo Sy limit Ar class
|
||||
@ -258,7 +258,7 @@ Otherwise, use
|
||||
as the message of the day file to display after login.
|
||||
Escape sequences are supported; refer to
|
||||
.Sx Display file escape sequences
|
||||
in
|
||||
in
|
||||
.Xr ftpd 8
|
||||
for more information.
|
||||
.It Sy notify Ar class Op Ar fileglob
|
||||
@ -290,7 +290,7 @@ If
|
||||
.Ar rate
|
||||
is 0, the throttle is disabled.
|
||||
.Pp
|
||||
An optional suffix may be provided, which changes the intrepretation of
|
||||
An optional suffix may be provided, which changes the intrepretation of
|
||||
.Ar rate
|
||||
as follows:
|
||||
.Bl -tag -width 3n -offset indent -compact
|
||||
@ -310,6 +310,25 @@ to
|
||||
.Ar rate ,
|
||||
which is parsed as per
|
||||
.Sy rateget Ar rate .
|
||||
.It Sy template Ar class Op Ar refclass
|
||||
Define
|
||||
.Ar refclass
|
||||
as the
|
||||
.Sq template
|
||||
for
|
||||
.Ar class ;
|
||||
any reference to
|
||||
.Ar refclass
|
||||
in following directives will also apply to members of
|
||||
.Ar class .
|
||||
This is useful to define a template class so that other classes which are
|
||||
to share common attributes can be easily defined without unnecessary
|
||||
duplication.
|
||||
There can be only one template defined at a time.
|
||||
If
|
||||
.Ar refclass
|
||||
is not given, disable the template for
|
||||
.Ar class .
|
||||
.It Sy timeout Ar class Ar time
|
||||
Set the inactivity timeout period.
|
||||
(the default is fifteen minutes).
|
||||
@ -354,6 +373,7 @@ classtype chroot CHROOT
|
||||
classtype guest GUEST
|
||||
classtype real REAL
|
||||
display none
|
||||
limit all -1 # unlimited connections
|
||||
maxtimeout all 7200 # 2 hours
|
||||
modify all
|
||||
motd all motd
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: version.h,v 1.4 2000/01/08 11:09:56 lukem Exp $ */
|
||||
/* $NetBSD: version.h,v 1.5 2000/01/09 10:08:45 lukem Exp $ */
|
||||
/*-
|
||||
* Copyright (c) 1999, 2000 The NetBSD Foundation, Inc.
|
||||
* All rights reserved.
|
||||
@ -36,5 +36,5 @@
|
||||
*/
|
||||
|
||||
#ifndef FTPD_VERSION
|
||||
#define FTPD_VERSION "Version: NetBSD-ftpd/20000108"
|
||||
#define FTPD_VERSION "Version: NetBSD-ftpd/20000109"
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user