1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216
|
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.
|