beta 17
This commit is contained in:
parent
af762f008b
commit
488c23e932
|
|
@ -6,11 +6,11 @@ FSP Development Battle plan:
|
||||||
============================
|
============================
|
||||||
* for next 2.8 Stable version (will be called 2.8.2)
|
* for next 2.8 Stable version (will be called 2.8.2)
|
||||||
- add FSP Rename command
|
- add FSP Rename command
|
||||||
- add FSP change password command
|
|
||||||
- add FSP info command
|
- add FSP info command
|
||||||
- go out this version as soon as possible. 2.8.1b3 and lower are buggy.
|
- go out this version as soon as possible. 2.8.1b3 and lower are buggy.
|
||||||
* for next point Stable version 2.8.3
|
* for next point Stable version 2.8.3
|
||||||
- add native symbolic link support
|
- add native symbolic link support
|
||||||
|
- add FSP change password command
|
||||||
- add FSP command for changing owners
|
- add FSP command for changing owners
|
||||||
- add FSP command for listing directory owners
|
- add FSP command for listing directory owners
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,12 @@
|
||||||
|
Version 2.8.1b17 -- 17 Nov 2003
|
||||||
Allow filenames with spaces inside
|
Allow filenames with spaces inside
|
||||||
check for fork() and setsid() in configure.ac
|
check for fork() and setsid() in configure.ac
|
||||||
|
wu-ftpd compatible `xferlog` -- usernames are not supported, all
|
||||||
|
transfers are logged as anonymous
|
||||||
|
flex output is included in the distribution archive, you do not
|
||||||
|
need flex to build fsp
|
||||||
|
MACHINES file updated
|
||||||
|
|
||||||
Version 2.8.1b16 -- 8 Nov 2003
|
Version 2.8.1b16 -- 8 Nov 2003
|
||||||
This version fixes 2 major bugs in beta 15 release.
|
This version fixes 2 major bugs in beta 15 release.
|
||||||
fspd: update mtime for directory listing after .FSP_CONTENT write
|
fspd: update mtime for directory listing after .FSP_CONTENT write
|
||||||
|
|
|
||||||
4
MACHINES
4
MACHINES
|
|
@ -10,3 +10,7 @@ FSP Version CPU OS Compiler C library
|
||||||
--------------------------------------------------------------------------
|
--------------------------------------------------------------------------
|
||||||
2.8.1 Beta 5 i386 Linux 2.4 GCC-3.2 GLIBC 2.3.1
|
2.8.1 Beta 5 i386 Linux 2.4 GCC-3.2 GLIBC 2.3.1
|
||||||
2.8.1 Beta 10 i386 Linux 2.4 GCC-2.95 GLIBC 2.3.1
|
2.8.1 Beta 10 i386 Linux 2.4 GCC-2.95 GLIBC 2.3.1
|
||||||
|
2.8.1 Beta 14 i386 Debian/woody
|
||||||
|
2.8.1 Beta 14 i386 Debian/testing-unstable
|
||||||
|
2.8.1 Beta 14 i386 RedHat 7.3
|
||||||
|
2.8.1 Beta 14 i386 Conectiva Linux 9
|
||||||
|
|
|
||||||
3
TODO
3
TODO
|
|
@ -59,12 +59,11 @@ bind-ip-address for server (and client via FSP_LOCAL_IP)
|
||||||
report number of clients connected, size of hostable in new command
|
report number of clients connected, size of hostable in new command
|
||||||
CC_INFO command
|
CC_INFO command
|
||||||
special defence against rapid/double fire clients
|
special defence against rapid/double fire clients
|
||||||
write FSP_CHANGE_PASSWORD command
|
|
||||||
new transfer log wuftpd file format
|
|
||||||
new common log format
|
new common log format
|
||||||
|
|
||||||
:midle:may not be in 2.8.2
|
:midle:may not be in 2.8.2
|
||||||
Native Supports for symbolic links (needed for mirroring Debian)
|
Native Supports for symbolic links (needed for mirroring Debian)
|
||||||
|
write FSP_CHANGE_PASSWORD command
|
||||||
|
|
||||||
:low:this will sure go after 2.8.2:
|
:low:this will sure go after 2.8.2:
|
||||||
FSP_GET/SET OWNERS like file transfer
|
FSP_GET/SET OWNERS like file transfer
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
dnl Process this file with autoconf to produce a working configure script.
|
dnl Process this file with autoconf to produce a working configure script.
|
||||||
dnl tested with autoconf 2.57
|
dnl tested with autoconf 2.57
|
||||||
AC_INIT(fsp,2.8.1b16+cvs,hsn@cybermail.net)
|
AC_INIT(fsp,2.8.1b17,hsn@cybermail.net)
|
||||||
AC_CONFIG_SRCDIR(server/main.c)
|
AC_CONFIG_SRCDIR(server/main.c)
|
||||||
AM_INIT_AUTOMAKE([dist-bzip2])
|
AM_INIT_AUTOMAKE([dist-bzip2])
|
||||||
AM_MAINTAINER_MODE
|
AM_MAINTAINER_MODE
|
||||||
|
|
|
||||||
|
|
@ -117,6 +117,10 @@ logfile ../logs/logfile
|
||||||
#
|
#
|
||||||
log all !readonly
|
log all !readonly
|
||||||
|
|
||||||
|
#The 'xferlog' command tells server where to use wuftpd compatible
|
||||||
|
#transfer log file.
|
||||||
|
xferlog ../logs/xferlog
|
||||||
|
|
||||||
# The 'thruput' command is used to specify the maximum average
|
# The 'thruput' command is used to specify the maximum average
|
||||||
# number of bytes per second that the server will transmit. Use
|
# number of bytes per second that the server will transmit. Use
|
||||||
# 'thruput off' to specify no through put control. A negative value or
|
# 'thruput off' to specify no through put control. A negative value or
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ extern gid_t run_gid;
|
||||||
extern unsigned int maxthcallowed;
|
extern unsigned int maxthcallowed;
|
||||||
extern unsigned short udp_port,packetsize;
|
extern unsigned short udp_port,packetsize;
|
||||||
extern time_t retry_timeout,session_timeout,stat_cache_timeout;
|
extern time_t retry_timeout,session_timeout,stat_cache_timeout;
|
||||||
extern char *logname,*readme_file,*dumpname;
|
extern char *logname,*tlogname,*readme_file,*dumpname;
|
||||||
extern char *home_dir;
|
extern char *home_dir;
|
||||||
extern unsigned int dir_cache_limit, stat_cache_limit,fp_cache_limit;
|
extern unsigned int dir_cache_limit, stat_cache_limit,fp_cache_limit;
|
||||||
extern char *tmp_dir;
|
extern char *tmp_dir;
|
||||||
|
|
@ -78,6 +78,7 @@ const char * require_access_rights PROTO4(const DIRINFO *,di,unsigned char,right
|
||||||
|
|
||||||
/* log.c */
|
/* log.c */
|
||||||
extern int logfd;
|
extern int logfd;
|
||||||
|
extern int tlogfd;
|
||||||
void fsplogf PROTO0((void));
|
void fsplogf PROTO0((void));
|
||||||
void fsplogs PROTO0((void));
|
void fsplogs PROTO0((void));
|
||||||
#ifdef __STDC__
|
#ifdef __STDC__
|
||||||
|
|
@ -85,5 +86,6 @@ void fsploga(const char *fmt, ...);
|
||||||
#else
|
#else
|
||||||
void fsploga(va_alist);
|
void fsploga(va_alist);
|
||||||
#endif
|
#endif
|
||||||
|
void xferlog(char direction, const char *filename,unsigned long filesize,const char *hostname);
|
||||||
|
|
||||||
#endif /* _FSP_S_EXTERN_H_ */
|
#endif /* _FSP_S_EXTERN_H_ */
|
||||||
|
|
|
||||||
|
|
@ -51,6 +51,7 @@ time_t retry_timeout = 3;
|
||||||
time_t session_timeout = 60;
|
time_t session_timeout = 60;
|
||||||
time_t stat_cache_timeout = 25;
|
time_t stat_cache_timeout = 25;
|
||||||
char *logname = NULL;
|
char *logname = NULL;
|
||||||
|
char *tlogname = NULL;
|
||||||
char *dumpname = NULL;
|
char *dumpname = NULL;
|
||||||
char *home_dir = NULL;
|
char *home_dir = NULL;
|
||||||
char *tmp_dir = NULL;
|
char *tmp_dir = NULL;
|
||||||
|
|
@ -139,6 +140,9 @@ static void read_configuration PROTO1(const char *, name)
|
||||||
} else if(strcasecmp(p, "logfile") == 0) {
|
} else if(strcasecmp(p, "logfile") == 0) {
|
||||||
if(logname) free(logname);
|
if(logname) free(logname);
|
||||||
logname = strdup(q);
|
logname = strdup(q);
|
||||||
|
} else if(strcasecmp(p, "xferlog") == 0) {
|
||||||
|
if(tlogname) free(tlogname);
|
||||||
|
tlogname = strdup(q);
|
||||||
} else if(strcasecmp(p, "dumpfile") == 0) {
|
} else if(strcasecmp(p, "dumpfile") == 0) {
|
||||||
if(dumpname) free(dumpname);
|
if(dumpname) free(dumpname);
|
||||||
dumpname = strdup(q);
|
dumpname = strdup(q);
|
||||||
|
|
@ -274,6 +278,7 @@ void destroy_configuration PROTO0((void))
|
||||||
if(readme_file) free(readme_file);
|
if(readme_file) free(readme_file);
|
||||||
if(home_dir) free(home_dir);
|
if(home_dir) free(home_dir);
|
||||||
if(logname) free(logname);
|
if(logname) free(logname);
|
||||||
|
if(tlogname) free(tlogname);
|
||||||
if(tmp_dir) free(tmp_dir);
|
if(tmp_dir) free(tmp_dir);
|
||||||
if(dumpname) free(dumpname);
|
if(dumpname) free(dumpname);
|
||||||
if(iptab) free_ip_table(iptab);
|
if(iptab) free_ip_table(iptab);
|
||||||
|
|
|
||||||
22
server/log.c
22
server/log.c
|
|
@ -15,6 +15,7 @@
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
|
||||||
int logfd = -1; /* logfile file descriptor */
|
int logfd = -1; /* logfile file descriptor */
|
||||||
|
int tlogfd = -1; /* transfer log file descriptor */
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* A slightly better logging function.. It now takes a format string and *
|
* A slightly better logging function.. It now takes a format string and *
|
||||||
|
|
@ -63,3 +64,24 @@ void fsplogf PROTO0((void))
|
||||||
write(logfd, logbuf, logpos);
|
write(logfd, logbuf, logpos);
|
||||||
logpos = 0;
|
logpos = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* wu ftpd xferlog subsystem */
|
||||||
|
static char tlogbuf[LOGBUFFER]; /* buffer for log message */
|
||||||
|
|
||||||
|
void xferlog(char direction, const char *filename,unsigned long filesize,const char *hostname)
|
||||||
|
{
|
||||||
|
size_t pos=0,timelen;
|
||||||
|
char *timestr;
|
||||||
|
|
||||||
|
if(!tlogname) return; /* xfer logging is not enabled */
|
||||||
|
|
||||||
|
/* current-time */
|
||||||
|
timestr = (char *)ctime(&cur_time);
|
||||||
|
timelen = strlen(timestr) - 1; /* strip the CR */
|
||||||
|
timestr[timelen] = '\0';
|
||||||
|
strcpy(tlogbuf, timestr);
|
||||||
|
pos = timelen;
|
||||||
|
/* transfer-time, remote-host, file-size, file-name, ... */
|
||||||
|
pos+=sprintf(tlogbuf+pos," 1 %s %lu %s b * %c a fsp fsp 0 * c\n",hostname,filesize,filename,direction);
|
||||||
|
write(tlogfd, tlogbuf, pos);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -212,6 +212,21 @@ int main PROTO2(int, argc, char **, argv)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(tlogname)
|
||||||
|
{
|
||||||
|
if (dbug)
|
||||||
|
fprintf(stderr,"logging transfers to %s\n",tlogname);
|
||||||
|
|
||||||
|
/* test to see if logfile can be written */
|
||||||
|
if((tlogfd=open(tlogname, O_WRONLY | O_APPEND | O_CREAT, 0640)) < 0)
|
||||||
|
{
|
||||||
|
if(! inetd_mode )
|
||||||
|
fprintf(stderr, "Error opening transferfile: %s, transfer logging disabled.\n",tlogname);
|
||||||
|
free(tlogname);
|
||||||
|
tlogname=NULL; /* no logging */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
init_htab();
|
init_htab();
|
||||||
/* we can enable table dumping from there */
|
/* we can enable table dumping from there */
|
||||||
signal(SIGINT,server_interrupt);
|
signal(SIGINT,server_interrupt);
|
||||||
|
|
|
||||||
|
|
@ -582,6 +582,7 @@ static void server_process_packet PROTO5(unsigned, bytes, UBUF *, ub, int, old,
|
||||||
if (!pos) {
|
if (!pos) {
|
||||||
FSP_STAT(pp.fullp,&sd); /* log filesizes */
|
FSP_STAT(pp.fullp,&sd); /* log filesizes */
|
||||||
ACTIONINFO(L_GETFILE,(" (%d)",sd.st_size));
|
ACTIONINFO(L_GETFILE,(" (%d)",sd.st_size));
|
||||||
|
xferlog('o',pp.fullp,sd.st_size,inetstr);
|
||||||
}
|
}
|
||||||
send_file(from,ub,fp,l2,s2);
|
send_file(from,ub,fp,l2,s2);
|
||||||
if (!pos) ACTIONOK(L_GETFILE);
|
if (!pos) ACTIONOK(L_GETFILE);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user