/**************************************************************************** Copyright (c) 1999,2000 WU-FTPD Development Group. All rights reserved. Portions Copyright (c) 1980, 1985, 1988, 1989, 1990, 1991, 1993, 1994 The Regents of the University of California. Portions Copyright (c) 1993, 1994 Washington University in Saint Louis. Portions Copyright (c) 1996, 1998 Berkeley Software Design, Inc. Portions Copyright (c) 1989 Massachusetts Institute of Technology. Portions Copyright (c) 1998 Sendmail, Inc. Portions Copyright (c) 1983, 1995, 1996, 1997 Eric P. Allman. Portions Copyright (c) 1997 by Stan Barber. Portions Copyright (c) 1997 by Kent Landfield. Portions Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997 Free Software Foundation, Inc. Use and distribution of this software and its source code are governed by the terms and conditions of the WU-FTPD Software License ("LICENSE"). If you did not receive a copy of the license, it may be obtained online at http://www.wu-ftpd.org/license.html. $Id: TODO,v 1.11 2000/07/01 17:49:09 wuftpd Exp $ ****************************************************************************/ TODO o Add a configuration option changing the behavior of the daemon when an upload overwrites an existing file. Version 2.5.0 of the daemon leaves the original ownership and permissions unchanged. This option would have the overwrite obey the ownership and permissions specified on the upload clause. This feature will be added only if there appears to be a desire for it. o Rewrite all configuration file handling for robustness and calrity. o Limit logins based upon system load. From a patch submitted to the mailing list by pschwan@apk.net on Sep 27, 1997. This closes Stan's TODO item 18. Phil has lost his patch. I'm thinking about yanking the code from sendmail to determine the system load and recreating Phil's work from that base. o Limit logins and/or uploads based upon free space. Take a look at how sendmail determines how much space is available. o Add 'onupload' syntax to run external programs/scripts at the end of an upload. A Frequently Requested Feature. From a request to the mailing list from breif@rol3.com on Aug 25, 1997. o Add 'virtual-retrieve' to run specified program and pipe output when a given GET is handled. If wildcards/globbing/regex is allowed, pass the requested name to the program for processing. o Use a stats file in addition to or in place of SETPROCTITLE. From a patch referenced on the mailing list by mjm@doc.ic.ac.uk on Jun 12, 1997. This closes Stan's TODO items 4 and 6 and possbily item 8. I'm thinking about yanking the code from Apache's scoreboard to use as a base for this. o Add ability to limit connections by domain. o Enhance ftp-pid files to become single file with continuous process status. o Write ftpstat program, including -k option to kill off all FTP daemons o Write dynamic ftp monitoring program o Add ability to log different info to different files o Write ftplogd. Ftp processes send log info to ftplogd which configurably writes data to a lot of different places (syslog[@loghost], logfile(s)). o Add ability to limit total connections from any domain. o Include descriptive ls program, add ".private" file to disable directory listings... o Include system load as a limit parameter (load < xxx, maxusers = nnn) o Log more information into PID files: - files/bytes transferred - current action (a la SETPROCNAME) - remote host - classes o Write an ftp status program to take advantage of new PID file o Add exclusions available in the timeout or transfer limiting code. We really should be able to exclude some sites from those limitations. Reasoning: 1. Company has a public ftp site where limitations should exist but does not want to see their internal uses limited in any way. 2. Public sites that have official mirrors should be able to grant exclusions to the official mirror sites so that the mirroring process is not aborted leaving the official mirrors in an possible inconsistent state until the next mirroring cycle. o Investigate the feasability of adding rlimits as configuration options.