Initial revision
This commit is contained in:
parent
574be9ac93
commit
90ef0525aa
330
ChangeLog
Normal file
330
ChangeLog
Normal file
|
|
@ -0,0 +1,330 @@
|
|||
W.I.P
|
||||
fspd: update mtime for directory listing after .FSP_CONTENT write
|
||||
flscmd: do not list file size > 2GB as negative, same for block count
|
||||
fspscan: install it when doing make install
|
||||
fspd: -l logfile switch
|
||||
removed crash when logfile is in use
|
||||
|
||||
Version 2.8.1b15 -- 15 Oct 2003
|
||||
Sven writes manpage for fspscan.1
|
||||
junked concept of private directory, now directory has flag
|
||||
+g - public can get files
|
||||
dir_priv -> dir_get
|
||||
fprocmd flags changed +p -> -g (incompatible change in protocol)
|
||||
fgetprocmd works in private directories. There are no more
|
||||
private.
|
||||
.FSP_PRIVATE -> .FSP_NO_GET for avoiding user confusion because
|
||||
i have axed marking directories as private in beta6
|
||||
fixed off-by-one error in getpro cmd
|
||||
fsetpro cmd shows command syntax on error
|
||||
fspd: do not save readme files to disk (avoids truncation them
|
||||
to 1k)
|
||||
fspd: fixed reply for makedir command (size of reply block was
|
||||
not included)
|
||||
fspd: getdirlisting checks for seek offsets (do not allow send partial
|
||||
packets of dir listings)
|
||||
Done item from my 1997 fsp wishlist: check 4 rights before
|
||||
uploading!
|
||||
fver command can be disabled on server -- protection against FSP
|
||||
detectors.
|
||||
fspscan: end port -e switch
|
||||
configure.ac add check for compiler warning options
|
||||
removed multiple definition of process from bsd_src/find.c and
|
||||
ffindcmd.c
|
||||
cleaned some warnings in bsd_src/
|
||||
cleaned some warnings in server/
|
||||
configure: do not use -O when in maint. mode
|
||||
client library: do not integer overflow when downloading largefile
|
||||
client library: detect out of diskspace
|
||||
fver: print HOST_LOOKUP status
|
||||
fver: print CLIENT_TIMEOUT status
|
||||
fhostcmd: use $HOME if no passwd entry is found
|
||||
fsp_prof: allow `machine` to be alias for `host`
|
||||
fsp_prof: made `fsp` in `fsp port` optional
|
||||
fsp_prof: made `fsp` in `fsp directory' optional
|
||||
fhostcmd has now parser written in flex, should be less brain
|
||||
damaged and more stable
|
||||
fhostcmd: searching can now match full hostname or alias, not
|
||||
a subpart of hostname or alias.
|
||||
fhostcmd: added -? switch
|
||||
fhostcmd: merges infos from all available configuration files
|
||||
(cmdline,curdir,userhome,system)
|
||||
mklargefile moved from contrib/ to test/
|
||||
mklargefile: use LFS from fsp
|
||||
mklargefile: refuse to create >2GB files on non LFS-enables OSes.
|
||||
do not use echo -e when building fspmerge client
|
||||
updated manpages for fhostcmd.1 and fsp_prof.5
|
||||
fspd: really reuse cached directory listings. Forgot to update
|
||||
mtime after loading and they were loaded for every dirlisting
|
||||
packet.
|
||||
client library: do not use CC_STAT when building a directory listing.
|
||||
fix in beta14 do not fixed the problem when working in non root
|
||||
directory.
|
||||
|
||||
Version 2.8.1b14 -- 22 Sep 2003
|
||||
Sven fixed bash shell script
|
||||
fspd: list files over 4GB as 4GB in directory listings
|
||||
fspd: do not allow seeking over 2GB when OS is not LFS friendly
|
||||
fspd: print command names instead of numbers in debug mode
|
||||
added new program fspscan.c to package. Well known fsp port scanner
|
||||
made in 1992. Paranoid people calls this program fsp exploit.
|
||||
added new SGML FSP FAQ made by Sven
|
||||
fspd: debug messages are printed to stderr
|
||||
PROTOCOL: added talking about timeouts
|
||||
fcatcmd: removed debug messages
|
||||
!!dirlist cache hit ratio is bad - something overwrites that!!
|
||||
!!only happens when compiled without EFENCE??
|
||||
fixed by fifocache malloc -> calloc
|
||||
fspd: return 'is a directory' when trying to download directory
|
||||
client library: do not use CC_STAT when building a directory listing
|
||||
PLEASE!!! It is S l o w. Fixed: Performance of flscmd -l is now
|
||||
back to the normal speed. EnJoy!
|
||||
fstatcmd: print dates in ISO format, avoid tabs in output
|
||||
fspd: support for long local directory names > 1024 but < 2048
|
||||
fixed SECURITY prob: stat can stat any file (even out of FSP root!)
|
||||
added support for fstat to both shell scripts
|
||||
fifocache.c support for memory profiler functions
|
||||
fifocache.c supports nice memory stats
|
||||
do not limit filecache to 64 max. Default to 10
|
||||
cache stats are dumped to dumpfile also on SIGUSR1
|
||||
|
||||
Version 2.8.1b13 -- 10 Sep 2003
|
||||
fver: reports if timestamping is supported
|
||||
CC_VER: now reports fspd + version + \n
|
||||
Hanno Hecker help us port shell script from CSH to BASH
|
||||
large file support activated in configure
|
||||
example.conf -> fspd.conf
|
||||
added contrib/mklargefile.c program for creating a large file with
|
||||
hole
|
||||
fver -l reports max file size supported and LFS mode
|
||||
server detects i/o errors when uploading (out of diskspace)
|
||||
4GB-1 files should work from server p. of view if LFS is on
|
||||
fspd -F runs in foreground, for broken startup scripts
|
||||
random port for fspd (-p 65535) important for keeping lamers out of
|
||||
your warez site.
|
||||
changed exit codes for server, for easy debuging
|
||||
manual page for fspd updated - exit codes added
|
||||
PROTOCOL: added support for timestamping on uploads
|
||||
fspd: added support for timestamping on uploads
|
||||
fspd: -T switch for setting temporary directory for uploads
|
||||
fput.c: added support for timestamping uploads
|
||||
fcdcmd supports new permisions also
|
||||
fput - made timestamping optional -p option
|
||||
correct stats dumping - now dumpfile is used (really)
|
||||
inetd mode now works!
|
||||
updated INFO document
|
||||
moved faq, history and protocol to a new doc subdirectory
|
||||
turning off timestamping in fput
|
||||
|
||||
Version 2.8.1b12 -- 3 Sep 2003
|
||||
port setting in config file works
|
||||
manual page for fprocmd updated
|
||||
fstatcmd now uses remote wildcard expansion like rest of fsp
|
||||
merged fgetcmd and fgrabcmd commands
|
||||
merged patch Geoffrey T. Dairiki. Server records new keyid from client
|
||||
when serving session timeout.
|
||||
updated Bash version of CSH setup script, but still do not works
|
||||
NEW FEATURE: fget/fgrab can now set file timestamps to remote date
|
||||
When I have first used FSP in 1996 - I wanted this option.
|
||||
Cygwin has now different builtin defaults
|
||||
modified man page for fgetcmd - after 10 years! same goes for
|
||||
fgrabcmd
|
||||
default mode of fget/grab changed to unique fnames. Should I
|
||||
change it to noclober
|
||||
fget/grab has now -h help
|
||||
|
||||
Version 2.8.1b11 -- 27 Aug 2003
|
||||
do not use pointer arith. on void *
|
||||
use const char * where working with constant strings
|
||||
stat type log switch
|
||||
new command FSP_STAT (not tested)
|
||||
some code cleanup in client/ and common/ directories, warnings
|
||||
removed.
|
||||
PROTOCOL definition updated (stat and rename commands added)
|
||||
auto_del.csh script added to server directory (untested)
|
||||
return only file or directory objects in dir listing and stat command.
|
||||
documented command FSP_RENAME (not yet implemented w.i.p)
|
||||
server has -? and -h options
|
||||
new command fstatcmd (no manpage yet)
|
||||
fixed main arg count in merged fsp client
|
||||
client library now uses a new command FSP_STAT if server supports it
|
||||
fprocmd without args displays directory name instead of .
|
||||
fprocmd now supports 2.8.1bXX extented access rights
|
||||
|
||||
Version 2.8.1b10 -- 21 Jul 2003
|
||||
fixed sever command line arguments handling
|
||||
removed -Wconversion from debug gcc switches
|
||||
MAJOR BUGFIX: can CD to more than 1 level deep
|
||||
changes init order in server/main.c so we can see error messages
|
||||
during server startup
|
||||
|
||||
Version 2.8.1b9 -- 19 Jul 2003
|
||||
missing tmpdir switches fspd to read-only mode (really!)
|
||||
daemonize is on by default
|
||||
added port to default cnf file for fspd
|
||||
check for -lefence in configure script
|
||||
check for sys/syslimits.h - needed for cygwin
|
||||
default port is 21 in conf.c
|
||||
FIXED BUG when server root != file system root
|
||||
Now compiles and runs on cygwin
|
||||
do not use -1 exit code in server/main.c
|
||||
server now tries to create tmpdirectory on startup
|
||||
fspd: allow command line overide even when -f is used
|
||||
|
||||
Version 2.8.1b8 -- 17 Jul 2003
|
||||
new cfg switch: setgid
|
||||
use /dev/random for seeding a random number generator
|
||||
new cfg switches: umask and serverumask (octal value). Umask
|
||||
for creating server files
|
||||
fixed compilation on GCC < 3.0
|
||||
fixed check for maintainer_mode in server/Makefile.am and
|
||||
clients/Makefile.am
|
||||
fhostcmd: check for $SHELL if we have csh-like shell
|
||||
fhostcmd: options -c or -b to force C or Bourne shell syntax
|
||||
server tables dump signal changed from alarm -> sigusr1
|
||||
new cfg switch: dumpname for dumping runtime stats
|
||||
clean server shutdown on sigint, sigterm
|
||||
new cfg switch: grabcommand on/off
|
||||
env. vars removed from individual manual pages and moved to a New
|
||||
manpage fsp_env 7.
|
||||
updated PROTOCOL definition of FSP. Fixed some bugs, added method
|
||||
of packet checksum.
|
||||
updated example configuration file for server
|
||||
removed all prints when debug is not on
|
||||
updated FILES section in fspd manpage
|
||||
|
||||
Version 2.8.1b7 -- 13 Jul 2003
|
||||
do not sent zero length blocks if client asks for them
|
||||
filecache.c nuked
|
||||
new cfg statement tmpdir for placing files during upload
|
||||
all server code (except host.c) rewriting complete.
|
||||
|
||||
Version 2.8.1b6 -- 2 Jul 2003
|
||||
configuration file was not closed after reading (found by valgrind)
|
||||
link against Eletric Fence only in maintainer mode
|
||||
compile server/cachecheck only in maintainer mode
|
||||
removed long files check and support for code. FSP has maximum path
|
||||
about 1024; it is no need to check if file can be longer than 14 chars
|
||||
use config.guess for guessing OS type.
|
||||
simplified configure.ac
|
||||
up to date BETA.README
|
||||
MACHINES file lives again
|
||||
allow files starting with \ in directory listing
|
||||
directory content is builded correctly on systems with pragma pack > 1
|
||||
fixed another bug in generating of directory listing which violates FSP
|
||||
protocol definiton (but worked in current code anyway)
|
||||
use extern only in header files
|
||||
key was not initialised when using shmem locking method
|
||||
default timeout for clients changed from 4 to 180 sec.
|
||||
removed option -r from fcatcmd
|
||||
init socket data in udp io and avoid using sin there (gcc builtin)
|
||||
server debug option changed from -d to -X
|
||||
server argument -d directory -> sets root directory
|
||||
server now runs also without configuration file!
|
||||
keys generated by server are now 16bit random, not 8bit random
|
||||
directory_cache nuked - it was uneffective and it has a file
|
||||
descriptor leak!
|
||||
new cfg. use_prebuild_dirlists (load/save) content file
|
||||
new directory memory based cache engine works!
|
||||
new directory .FSP_CONTENT load/save engine works
|
||||
clear buffer before generating a directory listing (no information
|
||||
leak)
|
||||
fixed buffer overflow (exploitable if file uploads was allowed).
|
||||
new cfg keyword statcache - size of dirstatcache
|
||||
new cfg keyword statcache_timeout - (sec)
|
||||
new cfg keyword use_access_files - boolean
|
||||
fixed bug when home directory was symlinked to somewhere
|
||||
removed remote FSP support from PPATH. It was never used in code.
|
||||
new cfg use_directory_mtime - boolean. For windows set it to NO.
|
||||
!!! NEW DIRECTORY STATE ENGINE CACHE !!!
|
||||
new .FSP_PASSWORD access file
|
||||
new .FSP_OWNER owner file (not yet implemented)
|
||||
resend of BYE command is also accepted, why not?
|
||||
no memory leaks in new code. Last leaks are in code which is going
|
||||
to be rewrited
|
||||
!!! MAJOR PERFORMANCE SPEEDUP. Need only 1 syscal to serve a
|
||||
packet (if everything is cached).
|
||||
do not list special files as directories
|
||||
added file COPYRIGHT
|
||||
speedup when loading access files
|
||||
min delay for clients was increased from 0.5s to 1.5s (packets
|
||||
was are just thrown out by server for <3sec reply). Performance
|
||||
tested on our WireLess network. Today only 65% packets loss!
|
||||
new configuration option homedir_restricted for following symlinks
|
||||
out of home_directory
|
||||
if $test in configure changed to x$test
|
||||
ip range and IP parsing function moved out of host.c to iprange.c
|
||||
host type must be specified (in config or in owner file)
|
||||
renamed cfg. bufsize -> packetsize
|
||||
use packetsize when generatin a directory listing. -> max packet size
|
||||
management moved from user cfg. to server cfg.
|
||||
added support for readme files to new dirstat engine
|
||||
public directory list flag changed from negative to positive
|
||||
new cfg option permit_passwordless_owners
|
||||
NEW SECURITY ENGINE implemented
|
||||
fixed infinite loop in client library if server sends directory
|
||||
in smaller blocks than expected.
|
||||
removed buffer overflow in log code (remote exploitable of course)
|
||||
added new log switch 'readonly'
|
||||
fixed security hole in grab command
|
||||
rewrite log in packet processing (more readable)
|
||||
corrected handling of public rights in private directories
|
||||
detect if cached directory listings are out of date
|
||||
|
||||
Version 2.8.1b5 -- 25 June 2003
|
||||
configure.ac upgaded to autoconf 2.57 and cleaned
|
||||
added missing include headers to source code
|
||||
vms code nuked from rest of headers
|
||||
prefix is now used when finding configuration file
|
||||
check for max. number of open files and adjust open handle cache
|
||||
removed long file limit hack for FAT/VMS filesystems. Nonstandard and
|
||||
unsecure.
|
||||
removed include/version.h - use autoconf instead
|
||||
added -V server option (display version)
|
||||
do not use dircache as upload cache. Uploads now works even without
|
||||
dircache
|
||||
turn off cachedir when it do not exists
|
||||
better init of random number generator. It should be really random.
|
||||
fixed use of prebuild directory content and dircache
|
||||
turn of logging if no log file is set
|
||||
clean cache directory on startup
|
||||
merged security patch from Debian package fsp_2.81.b3-4, i have
|
||||
fixed this problem in 2.8.1b4; but Debian code looks better.
|
||||
removed non standard NEED_ from configure.ac, use HAVE_
|
||||
fver displays locking method and used config. files.
|
||||
give lockf locking method priority over flock method
|
||||
fgetcmd and fgrabcmd now understands -c continue download
|
||||
fixed check for in.fspd
|
||||
we have called check_required_vars twice
|
||||
display copyright in fspd -V
|
||||
INFO document updated, fixed spelling errors, added section
|
||||
FSP today
|
||||
added -t option for fspd; specifes timeout for inetd mode (or
|
||||
when debug is on for normal more also)
|
||||
|
||||
Version 2.8.1b4 -- 30 March, 2001
|
||||
-------------------------------------------------------------------------
|
||||
New maintainer: Radim Kolar hsn/at/cybermail.net now maintains FSP codebase.
|
||||
-------------------------------------------------------------------------
|
||||
1) Eliminated a lot of warnings when compiling with -Wall.
|
||||
2) Moved to autoconf 2.12. Replaced old m4 macros with Autoconf's.
|
||||
All autoconf's values are cached.
|
||||
3) Makefiles are now generated by automake.
|
||||
4) include/tweak.h.in is generated by autoheader.
|
||||
5) Added faq.html.
|
||||
6) Server now writes more messages when in debug mode. Debug mode is
|
||||
disabled when running in inetd mode. Daemonize is disabled when
|
||||
running in debug mode.
|
||||
7) Server accepts command line switches -d (debug) -i (inetd)
|
||||
-v (version) -p <port> (Alternate port number). Uses now getopt.
|
||||
8) Server has now configurable timeouts, maximal packetsize,
|
||||
directory and file handles caches.
|
||||
9) REMOVED VMS part vms/ and vms_src/. Is was out of date.
|
||||
10) Removed file MACHINES. It was out of date. After my changes in
|
||||
autoconf, it may not compile on non-Linux systems.
|
||||
11) Implemented a check for reliable signals in the configure script.
|
||||
12) Return type of signal handler is detected in configure script.
|
||||
13) ANSI prototypes are now used, if host compiler supports them.
|
||||
14) When server is running in read-only mode, server send this
|
||||
information to clients, instead generic "Permission denied".
|
||||
15) Access checking and uploading was fixed. Now works.
|
||||
65
server/log.c
Normal file
65
server/log.c
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
/*********************************************************************\
|
||||
* Copyright (c) 2003 by Radim Kolar (hsn@cybermail.net) *
|
||||
* Copyright (c) 1991 by Wen-King Su (wen-king@vlsi.cs.caltech.edu) *
|
||||
* *
|
||||
* You may copy or modify this file in any manner you wish, provided *
|
||||
* that this notice is always included, and that you hold the author *
|
||||
* harmless for any loss or damage resulting from the installation or *
|
||||
* use of this software. *
|
||||
\*********************************************************************/
|
||||
|
||||
#include "tweak.h"
|
||||
#include "server_def.h"
|
||||
#include "s_extern.h"
|
||||
#include "my-string.h"
|
||||
#include <stdarg.h>
|
||||
|
||||
int logfd = -1; /* logfile file descriptor */
|
||||
|
||||
/****************************************************************************
|
||||
* A slightly better logging function.. It now takes a format string and *
|
||||
* any number of args. *
|
||||
****************************************************************************/
|
||||
|
||||
#define LOGBUFFER 1024+80
|
||||
static char logbuf[LOGBUFFER]; /* buffer for log message */
|
||||
static size_t logpos = 0; /* current log message length */
|
||||
|
||||
/* append some text to the log message */
|
||||
void fsploga(const char *fmt, ...)
|
||||
{
|
||||
va_list args;
|
||||
|
||||
va_start(args, fmt);
|
||||
/* fmt = va_arg(args, char *); */
|
||||
vsprintf(logbuf + logpos, fmt, args);
|
||||
logpos += strlen(logbuf + logpos);
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
/* add a datestamp to begining of the log message, clear text in buffer */
|
||||
void fsplogs PROTO0((void))
|
||||
{
|
||||
|
||||
int timelen;
|
||||
char *timestr;
|
||||
|
||||
timestr = (char *)ctime(&cur_time);
|
||||
timelen = strlen(timestr) - 1; /* strip the CR */
|
||||
timestr[timelen] = '\0';
|
||||
strcpy(logbuf, timestr);
|
||||
logbuf[timelen] = ' ';
|
||||
logpos = timelen + 1;
|
||||
}
|
||||
|
||||
/* flush logfile */
|
||||
void fsplogf PROTO0((void))
|
||||
{
|
||||
if(dbug) {
|
||||
fwrite("[LOG] ",6,1,stdout);
|
||||
fwrite(logbuf,logpos,1,stdout);
|
||||
fflush(stdout);
|
||||
}
|
||||
write(logfd, logbuf, logpos);
|
||||
logpos = 0;
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user