./net/socat, netcat++ (extended design, new implementation)

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version:, Package name: socat-, Maintainer: leot

socat is a relay for bidirectional data transfer between two
independent data channels. Each of these data channels may be a file,
pipe, device (serial line etc. or a pseudo terminal), a socket (UNIX,
IP4, IP6 - raw, UDP, TCP), an SSL socket, proxy CONNECT connection, a
file descriptor (stdin etc.), the GNU line editor, a program, or a
combination of two of these. These modes include generation of
"listening" sockets, pipes and pseudo terminals.

Required to run:
[security/openssl] [devel/readline]

Required to build:

Package options: inet6

Master sites:

SHA1: 9fe5a0a0b13dded556a66259b68eb672b900f1d1
RMD160: de37a31a8bf95ca301263ec6778dbb016b184301
Filesize: 633.68 KB

Version history: (Expand)

CVS history: (Expand)

   2021-01-10 23:07:28 by Juraj Lutter | Files touched by this commit (2) | Package updated
Log message:
net/socat: Update to

Fix compilation on 32-bit systems and file transfer with OpenSSL.
   2021-01-08 09:47:29 by Juraj Lutter | Files touched by this commit (5)
Log message:
socat: Fix build on SmartOS
   2021-01-06 16:12:31 by Leonardo Taccari | Files touched by this commit (2) | Package updated
Log message:
socat: Update to

 Buffer size option (-b) is internally doubled for CR-CRLF conversion,
 but not checked for integer overflow. This could lead to heap based
 buffer overflow, assuming the attacker could provide this parameter.
 Thanks to Lê Hiếu Bùi for reporting this issue and sending an
 example exploit.

 Socats address parser read over end of string when there were unbalanced

 Removed unused usleep() call from sycls.c

 Unsetenv() was conditional in sysutils.c but not in xio-openssl.c thus
 building failed on Solaris 9.
 Thanks to Greg Earle for reporting this issue and providing a patch.

 Mitigated race condition of quickly terminating SYSTEM or EXEC child

 Option o-direct might require alignment of read/write buffer to, e.g.,
 512 bytes, Socat now takes care of this when allocating the buffer.
 With this fix read() succeeds, however, write() still might fail when
 not writing complete pages.

 There was a race condition in the way Socat UDP-RECVFROM and similar
 addresses with option fork prevents one packet from triggering
 multiple processes. The symptom was that Socat master process seemed to
 hang and did not process further packets. The fix makes use of
 pselect() system call.
 Thanks to Fulvio Scapin for reporting this issue.

 UNIX domain client addresses applied file system entry options (group
 NAMED) to the server socket instead of the client (bind) socket entry.
 Thanks to Nico Williams for reporting this major issue.

 Length of single address options was limited to 511 bytes. This value
 is now increased to 2047 bytes.
 Change suggested by Mario Camou.

 Addresses of type RECVFROM with option fork looped with an error
 message in case that the second address failed before consuming the
 packet. The fix makes RECVFROM drop the packet when the second address
 failed before reading it. Use retry or forever option with the second
 address if you want to avoid data loss.
 Thanks to Chunmei Xu for reporting this issue and proving the patch.

 Socats DTLS implementation has been reworked and appears to work now
 reasonably over UDP.
 Thanks to Brandon Carpenter, Qing Wan, and Pavel Nakonechnyi for
 sending patches.

 filan did not output the socket protocol.
 filan -s assumed each stream socket to be TCP and each datagram socket
 to be UDP. Now it uses SO_PROTOCOL and getprotoent() for correct output.

 Help text showed two parameters for UDP4-RECVFROM address, but only
 <port> is allowed.
 Thanks to John the Scott for reporting this issue.

 Error messages from SSL_read() and SSL_write() sometimes stated
 SSL_connect instead of originating function name.

 Fixed some more non functional minor issues.

 In gcc version 10 the default changed from -fcommon to -fno-common.
 Consequently, linking filan and procan failed with error
 "multiple definition of `deny_severity'" and `allow_severity'
 Fixed by removing definitions in filan.c and procan.c
 Debian issue 957823
 Thanks to László Böszörményi and others for reporting this issue.

 Solaris 9 does not provide strndup(); added substitute code.
 Thanks to Greg Earle for providing a patch.

 Added configure option --enable-openssl-base to specify the location of
 a non-OS OpenSSL installation

 There are systems whose kernel understands SCTP but getaddrinfo does
 not. As workaround after EIA_SOCKTYPE on name and service resolution
 fall back to ai_socktype=0; if it fails with EAI_SERVICE, set
 ai_protocol=0 and try again

 Per file filesystem options were still name ext2-* and depended on
 <linux/ext2_fs.h>. Now they are called fs-* and depend on <linux/fs.h>.
 These fs-* options are also available on old systems with ext2_fs.h

 New options openssl-min-proto-version (min-version) and
 openssl-max-proto-version (max-version) give access to the related
 OpenSSL set-macros and substitute deprecated version-specific methods.

 With OpenSSL use OPENSSL_init_SSL when available, instead of deprecated

 With OPENSSL_API_COMPAT=0x10000000L the files openssl/dh.h, openssl/bn.h
 must explicitely be included.
 Thanks to Rosen Penev for reporting and sending a patch.

 test.sh now produces a list of tests that could not be performed for
 any reason. This helps to analyse these cases.

 OpenSSL s_server appearently started to neglect TCPs half close feature.
 Test OPENSSL_TCP4 has been changed to tolerate this.

 OpenSSL changed its behaviour when connection is rejected. Tests
 OPENSSL_CN_SERVER_SECURITY now tolerate this.

 OpenSSL no longer allows explicit renegotiation with TLSv1.3, thus the
 appropriate tests failed.
 Fix: use TLSv1.2 for renegotiation tests

 Ubuntu 20.04 requires 2048 bit certificates with OpenSSL

 Archlinux 2020 has not which command; its ip,ss commands have modified
 version strings

 More testing issues solved:
 * ss to pipe might omit column separator
 * UDP6MULTICAST_UNIDIR fails on newer Linux kernels
 * do not use sort -V
 * renamed testaddrs() to testfeats(), and introduced new testaddrs()

New features:
 GOPEN and UNIX-CLIENT addresses now support sockets of type SEQPACKET.
 Feature suggested by vi0oss.

 The generic setsockopt-int and related options are, in case of
 listening/accepting addresses, applied to the connected socket(s). To enable
 setting options on the listening socket, a new option setsockopt-listen
 has been implemented. See the documentation for info on data types.
 Thanks to Steven Danna and Korian Edeline for reporting this issue.

 Filan option -S gives short description like -s but with improved

 Socat OpenSSL client, when server was specified using IP address, did
 not verify connection on certificates SubjectAltName IP entries.
 Fixes Red Hat bug 1805132

 Added options -r and -R for raw dump of transferred data to files.

 Added option ip-transparent (socket option IP_TRANSPARENT)
 Thanks to Wang Shanker for sending a patch.

 OPENSSL-CONNECT now automatically uses the SNI feature, option
 openssl-no-sni turns it off. Option openssl-snihost overrides the value
 of option openssl-commonname or the server name.
 Thanks to Travis Burtrum for providing the initial patch

 New option accept-timeout (listen-timeout)
 Proposed by Roland

 New option ip-add-source-membership
 Feature inspired by Brian (b f31415)

 INCOMPATIBLE CHANGE: Address UDP-DATAGRAM now does not check peerport
 of replies, as it did up to version Use option sourceport when
 you need the old behaviour.
 Feature inspired by Hans Bueckler for SSDP inquiry (for UPnP)

 New option proxy-authorization-file reads PROXY-CONNECT credentials
 from file and makes it possible to hide this data from the process
 Thanks to Charles Stephens for sending an initial patch.

 Added AF_VSOCK support with VSOCK-CONNECT and VSOCK-LISTEN addresses.
 Developed by Stefano Garzarella.

 Added printf formats for uint16_t etc.

 Address UDP-RECV does not support option fork.
 Thanks to Fulvio Scapin for reporting that mistake in docu.

 TUN address documentation showed TCP for backend which may merge
 consecutive packets which causes data loss.
 Thanks to Tomasz Lakota for reporting this issue.
   2020-05-18 13:19:13 by Nia Alarie | Files touched by this commit (3) | Package updated
Log message:
socat: Update to

####################### V

	Header of xiotermios_speed() declared parameter unsigned int instead of
	speed_t, thus compiling failed on MacOS
	Thanks to Joe Strout and others for reporting this bug.
	Thanks to Andrew Childs and others for sending a patch.

	Under certain circumstances, termios options of the first address were
	applied to the second address, resulting in error
	"Inappropriate ioctl for device"
	This affected version only.
	Thanks to Ivan J. for reporting this issue.

	Socat failed to compile when no poll() system call was found by
	Thanks to Jason White for sending a patch.

	Due to use of SSL_CTX_clear_mode() Socat failed to compile on old
	systems with, e.g., OpenSSL-0.9.8. Thanks to Simon Matter and Moritz B.
	for reporting this problem and sending initial patches.

	getaddrinfo() in IP4-SENDTO and IP6-SENDTO addresses failed with
	"ai_socktype not supported" when protocol 6 was addressed.
	The fix removes the possibility to use service names with SCTP.
	Test: IP_SENDTO_6
	Thanks to Sören for sending an initial patch.

	Under certain circumstances, Socat printed the "socket ... is at EOF"
	multiple times.

	Newer parts of test.sh used substitutions ${x,,*} or ${x^^*} that are
	not implemented in older bash versions.
   2020-02-09 14:19:55 by Jaromir Dolecek | Files touched by this commit (1)
Log message:
actually remove the hacks.mk file
   2020-02-09 14:19:10 by Jaromir Dolecek | Files touched by this commit (1)
Log message:
remove the Darwin BIND 8 hack, it's using bind9 for at least a decade already
   2020-01-18 22:51:16 by Jonathan Perkin | Files touched by this commit (1836)
Log message:
*: Recursive revision bump for openssl 1.1.1.
   2019-06-25 18:43:48 by Amitai Schleier | Files touched by this commit (2)
Log message:
Use speed_t to match definition, fixing at least OS X build.