Subject: CVS commit: basesrc
To: None <>
From: Luke Mewburn <>
List: source-changes
Date: 12/12/1999 06:05:56
Module Name:	basesrc
Committed By:	lukem
Date:		Sun Dec 12 14:05:56 UTC 1999

Modified Files:
	basesrc/libexec/ftpd: conf.c extern.h ftpcmd.y ftpd.8 ftpd.c popen.c

Log Message:
* change format of /etc/ftpusers lines from
	userglob [allow|deny]
	userglob[@host] [allow|deny  [classname]]
  where class is a userdefined classname.
  - if host is given it may either be a CIDR address (e.g, `') or a
    hostglob (e.g, `*'), and the remote host is matched against that.
  - if classname is given, use that to match entries in ftpd.conf (defaults
    to `guest' for `anonymous'/`ftp' logins, `chroot' for users found in
    /etc/ftpchroot, and `real' for everyone else.

* implement new /etc/ftpd.conf directives:
    classtype classname type	set type of classname to GUEST, CHROOT, or REAL
    motd classname file		file to use instead of /etc/motd
    rateget classname rate	set rateget throttle to rate
    rateput classname rate	set rateput throttle to rate
    upload classname		allow/deny uploads (STOU, STOR, APPE). if
				denied, also acts as `modify deny'.

* implement new `SITE' commands:
    RATEGET	as per /etc/ftpd.conf rateget, but cannot exceed that
    RATEPUT	as per /etc/ftpd.conf rateput, but cannot exceed that

* implement format_file(), which outputs a file to the user, parsing %
  escapes. use to print /etc/ftpwelcome, /etc/motd, and the `display' file.

* implement strsuftoi() (from ftp(1)), which parses a number and
  optional suffix (for use with rateget, etc)

* don't bother seteuid(0) ; bind(...) ; seteuid(pw->pw_uid), since
  we don't need reserved ports (at wasn't getting them anyway).

* update & reorder copyrights

* use strlcpy() as appropriate

To generate a diff of this commit:
cvs rdiff -r1.23 -r1.24 basesrc/libexec/ftpd/conf.c
cvs rdiff -r1.20 -r1.21 basesrc/libexec/ftpd/extern.h
cvs rdiff -r1.40 -r1.41 basesrc/libexec/ftpd/ftpcmd.y
cvs rdiff -r1.41 -r1.42 basesrc/libexec/ftpd/ftpd.8
cvs rdiff -r1.72 -r1.73 basesrc/libexec/ftpd/ftpd.c
cvs rdiff -r1.17 -r1.18 basesrc/libexec/ftpd/popen.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.