diff --git a/TODO b/TODO new file mode 100644 index 0000000..d5c5446 --- /dev/null +++ b/TODO @@ -0,0 +1,97 @@ +FSP SUITE TO DO LIST BY RADIM KOLAR /hsn -at- cybermail * net / + +LARGEFILES64 how to turn them on: +Cygwin: #define __LARGE64_FILES fopen64,ftello64,fseeko64 _off64_t +glibc 2.3: #define _LARGEFILE64_SOURCE off64_t +native: _FILE_OFFSETS_BITS = 32 / 64 then use off_t + +Radim Kolar's personal wishlist 1997 +show loosers online (finfo command) and server statz +rename command +password change command + +TESTING NEEDED: +Write a simple FSP protocol testing tool +Write a test suite using testing tool +test if ending slashes do not confuse directory engine +test for /../ root escapes +test for remote buffer overflows +Test new command rename /when implemented/ +Test if >2GB files but <4GB works correctly with and without --disable-largefile + +SECURITY BUGS: +symlink to FILE can escape from FSP root directory. OLD known problem. + +PROTOCOL-RELATED BUGS: + +PORTING +Sven's Slowaris 8 compile problem + +NEEDS IMPROVMENT: +random number generator in server is low random quality on low bits. + +Client LIBRARY +local bind address FSP_LOCALIP +remove stale lock files if not needed, port code from fspclient. +:low: +fver and others add support new syntax fsp://host:port/file +add sem locking method +flscmd does stat before directory listing, why? +:better to write a new code instead fixing old crap +=convert to multi threaded= +make setup from env a separate function +do not use global variables + +CLIENTS +ALL: normalize return error codes of all clients +write new clients for new commands - fsprencmd fpasswd finfo +fgetcmd deletes partially transfered file on errors? +:low: +add support for more sane fsplist file format (as used by warez +ppl) to fhostcmd +clients do not freeing memory allocated from glob() + +FUTURE FEATURES FOR SERVER: +:high: +can be run multiple times on the same port, how to check? +write RENAME FSP command +bind-ip-address for server (and client via FSP_LOCAL_IP) +report number of clients connected, size of hostable in new command + CC_INFO command +special defence against rapid/double fire clients +write FSP_CHANGE_PASSWORD command +new transfer log wuftpd file format +new common log format + +:midle:may not be in 2.8.2 +Native Supports for symbolic links (needed for mirroring Debian) + +:low:this will sure go after 2.8.2: +FSP_GET/SET OWNERS like file transfer +hashed passwords +add switch for dir vs global access priority, override table +use ntons a podobne funkce v iprange.c +pouzivat nejaky jiny typ nez unsigned long pro ip adresu +hard coded directory access rights in configuration instead of loading from FS +support for user directory namespace ~hsn / public_html, check links to outside! +privileged Hosts, excluded from Byte transfer Limit (hard to do) +FSP Proxy repeater + +PERFORMANCE: +host hashtable shrinking sometimes +stat cache pro FSP_STAT a ostatni +background time() alarm() caller + +MAN: +update FAQ - urgent!! +separate manpage for 7 fsp (protocol definition) == write FSP RFC + +libraries and support for FSP protocol +====================================== + +new small,light fsplib for C. +FSP plugin do Netscape/MSIE +FSP library for Java +Transfer HTTP over fsp transport +FSP backend for APT +FSP support to lftp diff --git a/man/fhostcmd.1 b/man/fhostcmd.1 new file mode 100644 index 0000000..41e3aa6 --- /dev/null +++ b/man/fhostcmd.1 @@ -0,0 +1,126 @@ +.TH FHOST 1 "15 Oct 2003" FSP +.SH NAME +fhostcmd, fhost \- set environment variables +.SH SYNOPSIS +.B fhostcmd [-d delay] [-p local port] [-l local directory] [-o timeout] +[-t trace] [-w password] [-f filename] [-h number | name] [-c | -b] +[host port [directory] | abbreviation] +.LP +.B fhost [-d delay] [-p local port] [-l local directory] [-o timeout] +[-t trace] [-w password] [-f filename] [-h number | name] [-c | -b] +[host port [directory] | abbreviation] +.SH DESCRIPTION +.LP +.B fhost +uses a resources files to set all environmant variables needed to connect to a +given host via FSP. If a -f option is given, the given filename is also used +as resources file. +.B fhost +loads all available resource files. If server is defined in multiple +files, first match is returned. Load order is +.I .fsp_prof +in the current working directory and in the user's home +directory. Then a system wide default file is used. +If +.B fhost +is invoked with an abbreviation given, the resource files are searched for the +first host to match this abbreviation. The values given for this host will +be set. +.LP +If +.B fhost +is invoked with a given host and port number, this host will be used and no +searching in the resource file will be done. +.LP +Setting up the host the user can change between using the host name or the +internet address. In case only one is given and the other should be used +.B fhost +tries to find it using a built in mini-nslookup facility. The default is to use +what is given and to use the number if both are given. +.LP +Since programs cannot change environment variables of their parent shell in +a simple way, it is recommended that the user defines a shell alias or +function to make it possible. +.B csh +example: +.LP +.nf +alias fhost 'eval `fhostcmd \!*`' +.fi +.SH FSP_PROF +For more information about the resource file confer +.I fsp_prof(5). +Here's just a short example of how it works. If your resource file contains +the following + +.nf +host seismo.soar.cs.cmu.edu +fsp port 30 +local directory ~/sources/fsp-266.1 +trace off +.fi + +a call of +.B fhost +seismo in +.B csh +will produce the following output to be evaluated + +.nf +unsetenv FSP_TRACE; +setenv FSP_PORT 30; +setenv FSP_LOCAL_DIR ~/sources/fsp-266.1; +setenv FSP_HOST seismo.soar.cs.cmu.edu; +setenv FSP_DIR /; +.fi +.SH ARGUMENTS +.LP +.B -d +-- set FSP_DELAY to +.I delay +.LP +.B -p +-- set FSP_LOCALPORT to +.I local port +.LP +.B -l +-- set FSP_LOCAL_DIR to +.I local directory +.LP +.B -o +-- set FSP_TIMEOUT to +.I timeout +.LP +.B -t +-- set FSP_TRACE if +.I trace += +.I on, +unset it if +.I trace += +.I off +.LP +.B -p +-- set FSP_PASSWORD to +.I password +.LP +.B -f +-- use +.I filename +as resource file +.LP +.B -b +-- output Bourne shell code +.LP +.B -c +-- output C shell code +.SH ENVIRONMENT +.LP +The environment variables associate this program with a FSP database and are +set (resp. unset) if needed. See fsp_env(7) for list. +.SH "SEE ALSO" +.PD +fcatcmd(1), fcdcmd(1), fgetcmd(1), fgrabcmd(1), flscmd(1), fmkdir(1), +fprocmd(1), fput(1), frmcmd(1), frmdircmd(1), fver(1), fducmd(1), +fhostcmd(1), fspd(1), fsp_prof(5), ffindcmd(1), fsp_env(7) diff --git a/man/fsp_prof.5 b/man/fsp_prof.5 new file mode 100644 index 0000000..a5053c0 --- /dev/null +++ b/man/fsp_prof.5 @@ -0,0 +1,74 @@ +.TH FSP_PROF 5 "15 Oct 2003" +.SH NAME +fsp_prof \- file for fsp remote login data +.SH DESCRIPTION +The +.B \&.fsp_prof +file contains data for logging in to a +remote host over the network for file transfers by +.BR fsp +commands. This file resides in the user's current or home directory +on the machine initiating the file transfer. A system wide default file +will be also used. +If passwords are stored in this file, its permissions should be set to +disallow read access by group and others (see +.BR chmod (1)). +.LP +The following tokens +are recognized; they may be separated by +.SM SPACE +or +.SM NEWLINE +characters (except the +.I host +command which has to be on a line of its own): +.TP +.BI host | machine " name | internet-addr [ alias ...]" +Identify a remote machine name. +The auto-login process searches the +.B .fsp_prof +file for a +token that matches the alias or hostname given. +Once a match is made, the subsequent +.B .fsp_prof +tokens are processed, stopping when the +.SM EOF +is reached or another +.B host +token is encountered. +.TP +.BI "[fsp] port" " port" +Identify the remote fsp port. +.TP +.BI "local port" " port" +Identify the local port to be used by fsp. +.TP +.BI "[fsp] directory" " dir" +Set the directory in the FSP database. +.TP +.BI "local directory" " dir" +Set the local working directory. +.TP +.BI delay " delay" +Set the delay value. +.TP +.BI timeout " tim" +Set the timeout value. +.TP +.BI trace " on | off" +Enable resp. disable tracing. +.TP +.BI password " password" +Supply a password. +Note: if this token is present the +.B .fsp_prof +file shouldn't be readable by anyone besides the user. See +.BR chmod (1). +.SH FILES +.PD +.B ~/.fsp_prof +.SH "SEE ALSO" +.PD +fcatcmd(1), fcdcmd(1), fgetcmd(1), fgrabcmd(1), flscmd(1), fmkdir(1), +fprocmd(1), fput(1), frmcmd(1), frmdircmd(1), fver(1), fducmd(1), +fsethostcmd(1), fspd(1), fsp_prof(5), ffindcmd(1), fsp_env(7)