2008/10/15: socat version 1.7.0.0 brings support for SCTP stream, raw
interface, and generic sockets. New option escape allows to interrupt raw
terminal connections. Listening and receiving sockets can set a couple of
environment variables. Added base control of System V STREAMS. Lots of
corrections were performed. socat compiles on Mac OS X again.
Patch from Leonardo Taccari
new features:
new datagram modes for udp, rawip, unix domain sockets
socat option -T specifies inactivity timeout
rewrote lexical analysis to allow nested socat calls
addresses tcp, udp, tcp-l, udp-l, and rawip now support IPv4 and IPv6
socat options -4, -6 and environment variables SOCAT_DEFAULT_LISTEN_IP,
SOCAT_PREFERRED_RESOLVE_IP for control of protocol selection
addresses ssl, ssl-l, socks, proxy now support IPv4 and IPv6
option protocol-family (pf), esp. for openssl-listen
range option supports IPv6 - syntax: range=[::1/128]
option ipv6-v6only (ipv6only)
new tcp-wrappers options allow-table, deny-table, tcpwrap-etc
FIPS version of OpenSSL can be integrated - initial patch provided by
David Acker. See README.FIPS
support for resolver options res-debug, aaonly, usevc, primary, igntc,
recurse, defnames, stayopen, dnsrch
options for file attributes on advanced filesystems (ext2, ext3,
reiser): secrm, unrm, compr, ext2-sync, immutable, ext2-append, nodump,
ext2-noatime, journal-data etc.
option cool-write controls severeness of write failure (EPIPE, ECONNRESET)
option o-noatime
socat option -lh for hostname in log output
traffic dumping provides packet headers
configure.in became part of distribution
socats unpack directory now has full version, e.g. socat-1.5.0.0/
corrected docu of option verify
corrections:
fixed tcpwrappers integration - initial fix provided by Rudolf Cejka
exec with pipes,stderr produced error
setuid-early was ignored with many address types
some minor corrections
> ####################### V 1.4.3.1:
>
> corrections:
> PROBLEM: UNIX socket listen accepted only one (or a few) connections.
> FIX: do not remove listening UNIX socket in child process
>
> PROBLEM: SIGSEGV when TCP part of SSL connect failed
> FIX: check ssl pointer before calling SSH_shutdown
>
> In debug mode, show connect client port even when connect fails
>
> ####################### V 1.4.3.0:
>
> new features:
> socat options -L, -W for application level locking
>
> options "lockfile", "waitlock" for address level locking
> (Stefan Luethje)
>
> option "readbytes" limits read length (Adam Osuchowski)
>
> option "retry" for unix-connect, unix-listen, tcp6-listen (Dale Dude)
> socat options -L, -W for application level locking
>
> options "lockfile", "waitlock" for address level locking
> (Stefan Luethje)
>
> option "readbytes" limits read length (Adam Osuchowski)
>
> option "retry" for unix-connect, unix-listen, tcp6-listen (Dale Dude)
>
> pty symlink, unix listen socket, and named pipe are per default removed
> after use; option unlink-close overrides this new behaviour and also
> controls removal of other socat generated files (Stefan Luethje)
>
> corrections:
> option "retry" did not work with tcp-listen
>
> EPIPE condition could result in a 100% CPU loop
>
> further changes:
> support systems without SHUT_RD etc.
> handle more size_t types
> try to find makedepend options with gcc 3 (richard/OpenMacNews)
- Change to my NetBSD email address
####################### V 1.4.0.2:
corrections:
exec'd write-only addresses get a chance to flush before being killed
error handler: print notice on error-exit
filan printed wrong file type information
####################### V 1.4.0.1:
corrections:
socks4a constructed invalid header. Problem found, reported, and fixed
by Thomas Themel, by Peter Palfrader, and by rik
with nofork, don't forget to apply some process related options
(chroot, setsid, setpgid, ...)
####################### V 1.4.0.0:
new features:
simple openssl server (ssl-l), experimental openssl trust
new options "cafile", "capath", "key", "cert", "egd", and "pseudo" for
openssl
new options "retry", "forever", and "intervall"
option "fork" for address TCP improves `gender changer´
options "sigint", "sigquit", and "sighup" control passing of signals to
sub process (thanks to David Shea who contributed to this issue)
readline takes respect to the prompt issued by the peer address
options "prompt" and "noprompt" allow to override readline's new
default behaviour
readline supports invisible password with option "noecho"
socat option -lp allows to set hostname in log output
socat option -lu turns on microsecond resolution in log output
corrections:
before reading available data, check if writing on other channel is
possible
tcp6, udp6: support hostname specification (not only IP address), and
map IP4 names to IP6 addresses
openssl client checks server certificate per default
support unidirectional communication with exec/system subprocess
try to restore original terminal settings when terminating
test.sh uses tmp dir /tmp/$USER/$$ instead of /tmp/$$
socks4 failed on platforms where long does not have 32 bits
(thanks to Peter Palfrader and Thomas Seyrat)
hstrerror substitute wrote wrong messages (HP-UX, Solaris)
proxy error message was truncated when answer contained multiple spaces
porting:
compiles with AIX xlc, HP-UX cc, Tru64 cc (but might not link)
and slightly modified by me.
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.