Path to this page:
Subject: CVS commit: pkgsrc/net/uftp
From: Nia Alarie
Date: 2019-09-13 12:42:05
Message id: 20190913104205.DE6D7FBF4@cvs.NetBSD.org
Log Message:
uftp: Update to 4.10
Note: this now supports OpenSSL 1.1.
Version 4.10 - 7/10/2019
Allow specifying transmission rates of up to 1 Tbps. This involved changing
a number of variables tracking the rate from 32 bit to 64 bit types. It
also changed the tracking of wait times between data packet transmissions
from microseconds to nanoseconds.
Fixed a bug when getting the list of network interfaces in the event that
an interface does not have an interface index number.
Version 4.9.11 - 5/13/2019
The error check added in 4.9.10 on chdir wasn't checking the correct value,
causing the client and proxy to not start in background mode. Bug fixed.
Version 4.9.10 - 5/9/2019
The initial CLR selection was picking the receiver with the lowest RTT
instead of the higest. Fixed to select the receiver with the highest RTT.
While the server is sending, check for CTRL-C by the user at least once a
second instead of waiting for a GRTT cycle if it is longer.
Fixed rate calculation bug when TFMCC is specified with -R -1.
Minor error checking / log format fixes
Version 4.9.9 - 2/17/2019
Fixed handling of min_time in TFMCC mode
Version 4.9.8 - 8/29/2018
When compiling with MSVC 2017, the IP_MTU_DISCOVER flag is defined but not
implemented, resulting in errors when attempting to set it. Added check
for the case if the flag is not implemented.
Machines with a blank IP address for the first interface were getting a
default UID of 0. When this happens, check for a non-blank interface
to derive the UID from.
Cleaned up setting of key exchange random numbers to avoid aliasing violation
Version 4.9.7 - 5/27/2018
Fixed delay in server sending thread causing transfer of large files to
time out. The block number to send was being incremented once per
iteration of the main sending loop. This main loop also locks and unlocks
a mutex to update data shared by the receiving thread. When a large
number of consecutive blocks do not need to be sent, the lock/unlock
cycles resulted in delays where no data was sent. Changed to increment
the block number until a block to send is found without reiterating
the main loop.
Version 4.9.6 - 4/17/2018
When a response proxy sends a PROXY_KEY message, send it on all public
multicast addresses, not just the first one
Version 4.9.5 - 12/16/2017
Upated encryption module to support OpenSSL 1.1.x and 1.0.x.
Removed support for OpenSSL 0.9.8
Changed install directory of uftpd uftpproxyd to /usr/bin
Added CPPFLAGS to makefile for build hardening as requested by Debian
Version 4.9.4 - 10/7/2017
When initializing TFMCC loss history, use datapacketsize if no recent packets
found or if counter wraps. This fixes a divide-by-zero bug.
Only run postreceive script when the incoming file has not yet been closed.
This prevents the script from running twice if a duplicate DONE is received.
Clarified documentation regarding incompatibility of temp dir and sync mode.
Version 4.9.3 - 1/21/2017
Fixed a race condition in the server between the sending and receiving
threads when building CONG_CTRL messages. The receiving thread was
not locking when placing messages on a queue. Added proper locking.
Minor updates to includes and typedefs to support 64-bit Windows builds.
Now requires Visual Studio 2015 or higher.
Changed manpage formatting and makefile options as suggested by Debian team.
Added missing include for sys/time.h
Version 4.9.2 - 4/3/2016
Under TFMCC when a client first experiences loss, it calculates the average
packet size of the packets received either in the last GRTT or the last
64K packets, whichever is less. In the event the sequence number of the
first lost packet is the same as the first packet received (which can
happen due to wraparound), this wasn't being captures properly resulting
in a divide by zero bug. Made a fix to properly account for sequence
number wraparound.
When calculating the average packet size above, a cast was used that could
result in a negative number being returned for this value. Removed the
offending cast.
Fixed off-by-one bug when counting the number of DONE messages sent by the
server before declaring clients as lost.
Version 4.9.1 - 3/15/2016
A bug was introduced in 4.8.1 when a fix was made for received files having
extra bytes appended when packets were received out of order. When a
file's size is an exact multiple of the block size, the last block was
getting truncated. Made a fix to account for this case.
Version 4.9 - 2/28/2016
Added the -a option to the server, which specifies the maximum number of
passes through transmitting a file before aborting any clients that have
not yet received the entire file.
When specifying TFMCC mode, the initial, minimum, and maximum rates were
being read as bytes per second instead of the documented Kbps. These
fields are now being properly read as Kbps.
In TFMCC mode, when the CLR received a CONG_CTRL message, it was responding
with a CC_ACK before updating its RTT value, resulting in the CLR reporting
an outdated RTT. Made a fix to first update the RTT, then send the CC_ACK.
Version 4.8.1 - 2/4/2016
When the last data block in the file arrived at the receiver out-of-order,
additional null bytes were being appended to the end of the file. This
was due to a bug in calculating the current cache size. Bug fixed.
Clients normally check for sufficient free space before attempting to receive
a file. This was not working correctly when -t was specified. Bug fixed.
Version 4.8 - 1/5/2016
Added support for initial and minimum rates for TFMCC as well as a max rate.
These may be specified as follows:
-C tfmcc:min=min_rate:init=init_rate:max=max_rate
See the man page for more details.
Changed logging level for "invalid message" messages from level 1 to \
level 4.
This should cut down on unnecessary log messages at lower levels.
Fixed man page typos.
Version 4.7 - 5/16/2015
Added group instance ID (i.e. restart number) to all log messages.
Make sure that the client flushes the disk cache when a session is aborted.
This wasn't being done previously, resulting in unnecessary retransmissions
on the subsequent restart session.
Previously, when a client registers via a proxy, the server added that client
to the list of clients serviced by that proxy. There was a bug that
allowed a client sending back multiple registers to be added to this list
multiple times, resulting in a buffer overrun if there are a large number
of clients registering via a given proxy. Fixed the bug by removing the
list altogether, since the server doesn't really care which proxy a
client registers via.
Version 4.6.1 - 3/15/2015
At the start of the transfer phase with congestion control enabled, the
server would sometimes select a client that had dropped out earlier in
the session as the initial CLR, slowing down the file transfer. Fixed.
In restart mode for a partially sent file, the server sends a DONE right
away before sending data to get NAKs from the clients. The clients
normally have a short delay before responding to a DONE to ensure that
out of order data packets arrive. In this case, since no data has been
sent yet, the clients will now respond right away to avoid the unneeded
delay.
When the clients joins or leaves a multicast group, it checks to see if any
other active sessions are using that group before doing so. Fixed a bug
that prevented the client from searching the whole list.
Version 4.6 - 12/30/2014
Added the -F option to the client to print status info to a file. Like
the server's -s option, passing in @LOG mixes this info with the regular
logging output.
The client now prints the hostname/IP address where an ANNOUNCE originates
from, which may be either the server itself or a proxy. The -q option
was added to prevent DNS lookups in the event it causes delays.
Several spelling fixes in documentation and code comments.
Fixed a memory leak in the fingerprint parsing routine.
Version 4.5.1 - 9/14/2014
On the rare occasion a seek call made by the client errors or returns a
file offset that was unexpected, a second call to seek is made to set the
destination file offset to the proper place. However, this second seek
was jumping to the wrong place in the file. This has been fixed, and
a similar fix was made on the server as well.
Allow the -s (status file) option on the server to take a special value of
@LOG, which allows status info to be mixed with the regular logging output.
This behavior is consistent with older versions that did this when sync
mode was enabled.
Version 4.5 - 8/26/2014
Added disk caching on the client, greatly improving high speed throughput.
The cache size is controlled via the -c option.
Changed logging levels on several log statements so that effectively
level 0 is "error" and level 1 is "warning". The \
default log level of 2
will continue to contain semi-detailed logging.
Increased client timeout for REG_CONF and DONE_CONF to 4*robust*grtt.
This helps to prevent client from timing out too early.
When the server receives a REGISTER or FILEINFO_ACK from a client and
calculates its round trip time, enforce a lower limit of 0.01 seconds.
This prevent client from timing out too quickly.
Occurrences of SIGPIPE while writing to a log could result in an infinite
loop. SIGPIPE is now ignored, relying on normal error handling instead.
Version 4.4 - 7/22/2014
Added max rate option to TFMCC implementation
Added -U option to server to specify the server's UID
Removed stale UFTP3 congestion control code
Version 4.3.1 - 7/3/2014
Have clients send an ABORT for all active sessions on shutdown
Fixed #ifs that enable dual mode sockets
Removed -O0 from BSD section of makefile
Version 4.3 - 5/27/2014
Added support for ECN (Explicit Congestion Notification) in the TFMCC
implementation in the server and client. Proxy support is forthcoming.
See the man pages for known supported systems.
Fixed warning in encrypt_openssl.c when compiling under FreeBSD x64.
Explicitly enable dual mode IPv4/IPv6 sockets when IPv6 is used on systems
that support it.
Version 4.2 - 5/12/2014
Added distinct exit codes for various error conditions
In client and proxy, check if private address is already in use before joining
Fixed log rolling under Windows
Version 4.1.5 - 3/1/2014
Fixed casting bug in server TFMCC operations when calculating client rate.
Fixed server proxy bug where group round trip time was being read from
client messages when it should only be read from server messages.
Version 4.1.4 - 12/5/2013
During a restart session, a bug caused the full file to be resent on the
first pass, and client wouldn't send back NAKs for the first session.
This has been fixed.
Fixed incorrect reading of client ID lists in DONE, DONE_CONF, and CONG_CTRL
messages.
Added group ID and file ID to server logging when timestamps are enabled.
Added more warning checks for Linux and corrected warnings.
Cleaned up error checking code for malloc and calloc calls.
Version 4.1.3 - 10/13/2013
Since 4.0, compilation failed on MacOSX. This has been fixed.
Files: