|
Since my editor writes downward this Changes file is written
downward, too, i.e. the latest change is noticed in the last
paragraph.
|
Version 0.2.7 |
|
The first version was released on 1996-09-01.
|
Version 0.4.X |
|
A quite small bug was detected. But to fix this bug meant to
make this version incompatible with all minor versions. pftp
is now able to send/receive directories recursively. pftp
can send standard input on origin host to standard output on
destination host.
|
Version 0.5.X |
|
Since the client reconnected to the server every time it sent
a file, the whole program was revised in order to send all
files / directories within the same connection. The increase
of velocity was incredible! Next the mechanism of logging
all errors has been included, a manual page was written, and
hopefully all bugs have been fixed ;^)
|
|
Option handling was much improved: now options may be given
as you want as long as they are given behind the port number,
if there is any, and before the host name, if there is any
given by name and not by number. Improvement of the
interactive handling with existing files implied to deal
with the tty modes. Introducing a new feature: a resource
file is read in, if it exists: The default port number is
taken from the resource files, but can be overwritten with
a given port number on command line.
|
Version 0.6.X |
|
The Makefile was then simplified: the Macro CDEF2=-DCTLC is
now, hopefully correct, automaticly recognized.
|
|
The source file system was rearranged in order to get a
better overview. Bug fixing.
|
|
The buffer size is set to zero for standard input/output.
The listing was a little bit fastened using some vt100
compatible settings. In order to have a little more security
I introduce a mechanism that allows the server to accept
specified clients only(see option '-c').
|
|
This is the break through for pftp! pftp is now able to
filter all files before sending them over the network, i.e.
you may use a compression program or an encryption program or
what ever you like. :)
|
|
Adding the ability to send the rest of a file (see option
'-o'). Now pftp shows some statistic when files are
received.
|
Version 0.7.X |
|
The server was modified in order to receive more than one
file at once. Since the server has to create a new
subprocess for each connection the load average increased.
Thus made it necessary to find a more convenient way to
handle it. Introducing POSIX Threads was the best way.
|
|
pftp is slightly faster than ftp--if compiled with
USE_POSIX_THREAD and files are sent without a compression
filter. The socket buffer size is adjusted to each file
before the file is sent--which increased the velocity once
more and reduced the lack.
|
|
Option `-b' controls the net buffer size manually when stdin
is sent. This increases the velocity when sending data from
stdin. `-c' had a little bug when specifying multiple hosts.
This was fixed now.
|
|
Ported pftp to FreeBSD. By now pftp runs on many Un*xes like
AIX, FreeBSD (new), IRIX, Linux, NEXTSTEP, SunOS and ULTRIX.
Variables may also be set in the resource file after the
first line and before the host name list. All lines
beginning with a hash or new line character are ignored now.
|
|
Added some more error checking and fixed some bugs.
Since the statistical values were incorrect, there is now
only an overall statistical output for a connection.
|
|
Option `-B' is an alias to `-b32767'. Ported pftp to HP-UX.
Added silent mode with `-q' which enables pftp to run from
shell skripts and the like.
|
Version 0.8.X |
|
Since normal ftp rarely offers a chance to transfer files
compressed or encrypted and even not to transfer directories,
I added to pftp a capability to be started by inetd with
`-i'. pftp may also run as a daemon with `-d' started by a
normal user or by root. The destination directory and the
filter programm if any is chosen by the client. Files and
directories may also be uploaded in a directory that is set
by `PFTPRECEIVE' from any user with `-n'. The maximum amount
of bytes in that directory is given by `PFTPUPLIMIT'. If
`PFTPRECEIVE' is not set no data can be uploaded.
|
|
The via `-n' uploaded files and directories may be saved with
the simple pftp file and directory manager. Also a message
file and a subject line can be added to the files with the
client. The message file name can be given on command line
or the file can interactively be edited with an editor
specified by PFTPEDITOR. Files in the upload directory can
be viewed with the internal pftp pager or an external pager
specified by PFTPPAGER.
|
|
The maximum package size can now manually be given with the
variable PFTPNETBUF.
|
|
Added optional sorting order within the pfm. You may peek
for new data in the upload directory with option `-N'.
|
|
Ported pftp to unicos. pftp was ported to OpenBSD (see
CREDITS file). Bandwith may be set with `-W' given by
variable PFTPBANDWID. Fixed a bug caused by an unreachable
nameserver which resulted in segmentation fault. Port to
OSF1. Fixed the Zombie-Bug on FreeBSD completely and on
SunOS partially.
|
|
The host name on command line may look like a host name list
entry without the following port number. If it contains a
user name pftp contacts the remote's pftp server started by
inetd.
|
|
Added a patch for the Makefile which is necessary for the
latest RedHat Linux version. Added a patch for glibc2.1
which is necessary for 'other' Linux architectures like
Sparc. This patch was produced by Christian Meder (see
CREDITS).
|
|
File names may now be read from stdin using option `-j'.
Fixed a service denial bug which occured when a user send an
empty file.
|
Version 0.9.X |
|
If no pftp resource files exists pftp may create one if the
user agrees. Symbolic link names may be written to a script
which is sent after all files have been sent. The script is
a normal shell script. Now the value for the bandwidth and
the send resp. receive buffer size can be given along with
the options on command line. Made pftp fit for its front
end. Though there is no front end by now. Added the
capability to perform a tcp based network performance test.
Introduced support for the next Internet protocol IPv6.
Restructured the whole program a little bit to gain more
speed. `-v' outputs buffer sizes. Former `-o' is now `-a'
whereas `-o' now means to allow only one connection at a
time.
|
|
In order to send AUDIO and VIDEO streams over the net I
developed a code fragment to support sending datagrams, i.e.
udps. On Linux it is posible to interactively increase or
decrease the bandwidth, interactively drop datagrams
periodically, and turn on and off of displaying the number of
bytes received. The network performance test can also be
done based on udp. The bandwidth checking mechanism was
improved. Now the daemon no longer accepts streams since the
size of files is just checked once. The client gets the
timing info from the server. What is a program capable of
sending and receiving UDP datagrams if it could not send and
receive multicasted datagrams? Well, pftp is able to send
and receive multicasted datagrams now. Changed the default
port for `-n' to 26 since it is unassigned. Now the Solaris
binary works fine.
|
Version 1.0.X |
|
Made extensive tests on most supported platforms and decided
to release now version 1 of pftp. Fixed a bug that occured
on SunOS 4.1.x when sending datagrams and added a little more
error handlings. Fixed a bug which occured when stopping and
continuing UDP datagrams. The POSIX thread version exited
with segmentation fault when more than three client were
connected at once. Fixed the zombie bug on SunOS 4.1.x.
pftp now offers the possibility to specify the maximum number
of accepted clients on command line. Improved signal
handling and included more error handling. Fixed a bug in
the daemon which occured when sending filtered data followed
by not filtered data. Fixed a bug that occured when pftp
asks for overwrite. Implemented a simple mechanism to
determine the avarage bitrate of mpeg audio files. For UDP
based data transfer on Linux files may be skipped by typing
`n'. PFTPAUSER may be used to set an alias name for a login
name. pftp may change to a different directory before
receiving data. Fixed a bug that occured when reading file
and directory names from standard input(`-j'). Improved
pfm's handling of incoming data. Found and fixed a security
hole--sorry, my fault! Switch to a complete low level I/O
mechanism for data transfer. This reduces usage of system
resources. Made pftp's daemon and server much more stable to
be an alternative for an ftp upload directory. Improved
sending and pfm's handling of the additional message file.
Fixed a timing bug and some minor bugs too. Now it is
possible to send just a message without files.
|
|
pftp has now 662 as its officially assigned system port.
This was possible due to the nice people from the Internet
Assigned Numbers Authority (IANA). Updated the source code
and the manual page accordingly.
|
|
Made a small work around a bug in FreeBSD which caused an
ugly file listing in the pfm.
|
|
Fixed a bug that occured when sending files recursively and
another that occured when sending in quiet mode.
|
|
Accepted host names are converted to numbers-and-dots
notation to be compared with remote host IPs in
numbers-and-dots notation. Furthermore you can specify nets
in numbers-and-dots notation from which hosts are to be
accepted. Introduced a mechanism of host name specific
variable checking. Environment variables can be set for the
filter program via PFTPCFVARnum respectively PFTPSFVARnum.
Corrected some mistakes in the manual and added new ones.
|
Version 1.1.X |
|
Option `-nl' can be used to browse through the different
upload directories. Option `-N[NUM]' is useful to peek for
new data in the different upload directories. Added
different return statuses in order to let pftp be more
manageable for scripts using it. Since chdir() is not thread
safe at the moment I created a work around. Added an
interactive help for the internal pager which is called by
typing `?'. Exchanged initgroups() with setgroups() since
memory was not freed after the process exited. New files can
optionally automatically be renamed if there are already
existing files with the same names. The net performance test
can now be done with random character strings. Option `-I'
can be used to copy directory permissions, the user and the
group ids, and the time of last modification of files and
directories as long as the remote server supports it (>
version 1.1.0); otherwise `-I' it is just ignored. To use
`-I' by default the variable PFTPSINFO can be set. If
PFTPAINFO is set to `0' the file information being sent is
ignored by the daemon on the server side.
|
|
There was a bug which prevented the pfm from listing
directories with more than 126 entries. This was fixed and
in addition the number of the current file is displayed now
in the lower left corner. Another bug that caused
incompatibility of `-T' with `R' was fixed. Improved
calculation of the maximum upload limit. Setting PFTPUPLIMIT
to zero means that the upload limit is limited to the size of
your hard disk space. Setting PFTPPERCENT to one will
permanently show the number of bytes sent to the local
network device. Fixed a bug that occurred when creating a
new resource file.
|
|
Fixed a bug that occured if pftp was just started with option
`-M'. Since glibc 2.1 is IPv6 capable I adjusted the
Makefile. Changed the comparison mechanism of IP numbers a
little bit. Added some more helpful error handling. Made
some adjustments for Gigabit Ethernet links. I managed to
make the source code compilable with the cygwin package.
|
|
Made some adjustments for kpftp, which is a KDE frontend for
pftp's TCP based client features.
|
|
Removed a bug that prevents you from compiling pftp on
non-IPv6 systems.
|
|
Fixed a minor bug that results in a wrong default port
number under some complex conditions. Fixed a bug
that caused malfunctioning on the Linux operating
system when using option `-aNUM': introducing
`sendfile' the file offset had not been correctly
adjusted. Substituted bubble sort with quick sort
within the pfm. Now pftp also supports long files
on the Linux operating system if the kernel supports
it too. Function sending() is no longer called
recursively because glibc's POSIX threads are
unfortunately still too unstable. Changed the
mechanism of calculating the random string. Thus it is
now for times faster using a new random string for
every loop.
|
|
|