History log of /freebsd-current/contrib/tnftp/src/main.c
Revision Date Author Comments
# 43092b7d 27-Feb-2020 Hiroki Sato <hrs@FreeBSD.org>

Fix poor performance of ftp(1) due to small SO_SNDBUF and SO_RCVBUF.

ftp(1) from vendor/tnftp always tried the following for
every TCP connection:

1. Get the current buffer length of SO_SNDBUF and SO_RCVBUF
by getsockopt(2).

2. Invoke setsockopt(2) to set them to the same values
after checking if they are in a range between 8 KiB to 8 MiB.

This behavior broke dynamic buffer sizing enabled by
default (net.inet.tcp.{recv,send}buf_auto sysctls) and
led to a very poor transfer rate. The fetch(1) utility
does not have this problem.

This change prevents SO_SNDBUF and SO_RCVBUF from configuring
when the buffer auto-sizing is enabled unless the buffer sizes are
explicitly specified.

PR: 240827
Spotted by: Yuichiro NAITO
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D23732


# 49e49bdb 10-Mar-2012 Gavin Atkinson <gavin@FreeBSD.org>

Move determination of socket buffer sizes from startup to the first time a
socket is used. The previous code structure assumed that AF_INET sockets
were always available, which is an invalid assumption on IPv6-only systems.

This merges the fololowing revisions from NetBSD:
src/usr.bin/ftp/main.c 1.120
src/usr.bin/ftp/util.c 1.156

PR: bin/162661
Tested by: bz
Obtained from: NetBSD
MFC after: 1 week


# f982db4a 19-Jun-2011 Gavin Atkinson <gavin@FreeBSD.org>

Copy lukemftp to its new home, tnftp. I'm doing this in stages so as to
not confuse the CVS exporter.