No description
Find a file
2024-12-06 11:42:09 +01:00
doc Socks5 with 3 args and option socksport 2024-08-24 14:22:49 +02:00
BUGREPORTS socat V1.6.0.0 (initial GIT commit) 2008-01-27 13:00:08 +01:00
CHANGES Version 1.8.0.2 - CVE-2024-54661: Arbitrary file overwrite in readline.sh 2024-12-06 11:42:09 +01:00
CHANGES.ISO-8859-1 Converted CHANGES from ISO-8859-1 to UTF-8 2020-02-23 12:37:19 +01:00
compat.h Missing NETDB_INTERNAL now falls back to -1 2024-07-28 12:58:48 +02:00
config.h.in Added the optional DEVTESTS feature for developer tests with controlled name resolution to both IPv4 and IPV6 addresses 2024-08-20 12:02:25 +02:00
configure.ac Mitigated regressions of 1.8.0.0 with TCP-LISTEN e.a. by making -4 the default 2024-08-24 14:20:32 +02:00
configure.in Renamed configure.in to configure.ac 2019-03-12 22:00:46 +01:00
COPYING libwrap only logs to syslog; actual COPYING file 2014-03-02 16:37:11 +01:00
COPYING.OpenSSL socat V1.6.0.0 (initial GIT commit) 2008-01-27 13:00:08 +01:00
daemon.sh Added contributors to copyright notices 2016-12-09 21:46:02 +01:00
dalan.c Fixed a bug in dalan that could lead to SIGSEGV 2023-06-11 22:47:22 +02:00
dalan.h New option setsockopt-listen using dalan 2020-12-29 16:48:05 +01:00
DEVELOPMENT Removed obsolete xio.help and obsolete parts of test.sh 2023-09-30 11:47:13 +02:00
error.c Fixed possible buffer overrun with long log lines 2024-08-05 17:51:46 +02:00
error.h Fixed unwanted recvfrom() with signal handler logs 2023-06-12 21:22:26 +02:00
EXAMPLES Longer Socat examples are now splitted into two or three lines; improved CSS 2023-06-12 21:02:21 +02:00
FAQ Shell scripts are now headed with: env /usr/bin/env bash 2019-03-03 13:59:49 +01:00
fdname.c Procan: print umask, CC, and couple more new infos 2023-11-11 17:40:52 +01:00
filan.c New option f-setpipe-sz 2023-11-06 21:36:37 +01:00
filan.h Filan prints symlink target 2022-10-29 21:07:09 +02:00
filan_main.c Filan: Fixed diag_set() call in filan_main.c 2023-06-12 08:06:14 +02:00
FILES Removed obsolete xio.help and obsolete parts of test.sh 2023-09-30 11:47:13 +02:00
ftp.sh Added contributors to copyright notices 2016-12-09 21:46:02 +01:00
hostan.c Procan: Try to identify controlling terminal 2023-11-11 17:45:02 +01:00
hostan.h Added contributors to copyright notices 2016-12-09 21:46:02 +01:00
install-sh socat V1.6.0.0 (initial GIT commit) 2008-01-27 13:00:08 +01:00
mail.sh Added contributors to copyright notices 2016-12-09 21:46:02 +01:00
Makefile.in Makefile.in: Fixed srcdir/; and CC with spaces 2024-07-28 12:59:03 +02:00
mytypes.h Added contributors to copyright notices 2016-12-09 21:46:02 +01:00
nestlex.c Removed trailing white space from *.h and *.c files 2023-06-12 23:01:54 +02:00
nestlex.h Added contributors to copyright notices 2016-12-09 21:46:02 +01:00
PORTING Removed obsolete xio.help and obsolete parts of test.sh 2023-09-30 11:47:13 +02:00
procan-cdefs.c _FILE_OFFSET_BITS,_LARGE_FILES for direct largefile support 2023-11-12 18:40:47 +01:00
procan.c Procan: Try to identify controlling terminal 2023-11-11 17:45:02 +01:00
procan.h Added contributors to copyright notices 2016-12-09 21:46:02 +01:00
procan_main.c Added contributors to copyright notices 2016-12-09 21:46:02 +01:00
proxy.sh Added option http-version 2023-10-26 16:36:26 +02:00
proxyecho.sh Changes for new Linux distributions: grep -E, -F 2024-07-28 12:58:32 +02:00
readline-test.sh Shell scripts are now headed with: env /usr/bin/env bash 2019-03-03 13:59:49 +01:00
readline.sh Version 1.8.0.2 - CVE-2024-54661: Arbitrary file overwrite in readline.sh 2024-12-06 11:42:09 +01:00
README Version 1.8.0.2 - CVE-2024-54661: Arbitrary file overwrite in readline.sh 2024-12-06 11:42:09 +01:00
README.FIPS socat V1.6.0.0 (initial GIT commit) 2008-01-27 13:00:08 +01:00
RESEARCH OpenSSL options min-version, max-version 2020-12-28 12:38:52 +01:00
SECURITY socat V1.6.0.0 (initial GIT commit) 2008-01-27 13:00:08 +01:00
snprinterr.c Added contributors to copyright notices 2016-12-09 21:46:02 +01:00
snprinterr.h Added contributors to copyright notices 2016-12-09 21:46:02 +01:00
socat-broker.sh More docu fixes 2024-08-24 14:21:55 +02:00
socat-chain.sh socat-chain.sh, socat-mux.sh, and socat-broker.sh work with older Socat versions 2024-08-05 08:50:18 +02:00
socat-mux.sh socat-mux.sh and socat-broker.sh use low ports when run as root 2024-08-05 08:50:29 +02:00
socat.c Mitigated regressions of 1.8.0.0 with TCP-LISTEN e.a. by making -4 the default 2024-08-24 14:20:32 +02:00
socat.spec Version 1.8.0.2 - CVE-2024-54661: Arbitrary file overwrite in readline.sh 2024-12-06 11:42:09 +01:00
socat_buildscript_for_android.sh Android build script with pty code 2014-03-02 20:11:06 +01:00
socks4a-echo.sh Shell scripts are now headed with: env /usr/bin/env bash 2019-03-03 13:59:49 +01:00
socks4echo.sh Added socat-chain.sh for layering protocols 2023-11-11 18:03:44 +01:00
sslcls.c Renewed port to OpenBSD 2023-11-06 08:38:24 +01:00
sslcls.h Renewed port to OpenBSD 2023-11-06 08:38:24 +01:00
sycls.c New option f-setpipe-sz 2023-11-06 21:36:37 +01:00
sycls.h New option f-setpipe-sz 2023-11-06 21:36:37 +01:00
sysincludes.h For isastream() include stropts.h instead of sys/stropts.h 2024-08-05 08:57:28 +02:00
sysutils.c IP-SENDTO with pf=ip4 failed with "trailing garbage" 2024-08-21 09:17:16 +02:00
sysutils.h Lots of minor corrections 2023-11-05 20:57:35 +01:00
test.sh Version 1.8.0.2 - CVE-2024-54661: Arbitrary file overwrite in readline.sh 2024-12-06 11:42:09 +01:00
utils.c Again ported to NetBSD 2024-07-28 12:58:16 +02:00
utils.h Again ported to NetBSD 2024-07-28 12:58:16 +02:00
VERSION Version 1.8.0.2 - CVE-2024-54661: Arbitrary file overwrite in readline.sh 2024-12-06 11:42:09 +01:00
vsnprintf_r.c Removed trailing white space from *.h and *.c files 2023-06-12 23:01:54 +02:00
vsnprintf_r.h Added contributors to copyright notices 2016-12-09 21:46:02 +01:00
xio-ascii.c Added contributors to copyright notices 2016-12-09 21:46:02 +01:00
xio-ascii.h Added contributors to copyright notices 2016-12-09 21:46:02 +01:00
xio-creat.c On bad parameter number print syntax; struct single pointers are now mostly called sfd 2023-11-05 22:19:10 +01:00
xio-creat.h Formatted help output; address keywords in help now uppercase 2023-10-26 14:56:50 +02:00
xio-dccp.c Implementation of DCCP socket addresses 2023-11-06 22:01:50 +01:00
xio-dccp.h Implementation of DCCP socket addresses 2023-11-06 22:01:50 +01:00
xio-exec.c On bad parameter number print syntax; struct single pointers are now mostly called sfd 2023-11-05 22:19:10 +01:00
xio-exec.h Formatted help output; address keywords in help now uppercase 2023-10-26 14:56:50 +02:00
xio-fd.c Options res-* now apply to whole open phase 2023-11-05 19:39:01 +01:00
xio-fd.h Added contributors to copyright notices 2016-12-09 21:46:02 +01:00
xio-fdnum.c Fixed the end-close option, it just did not work 2023-11-06 21:23:27 +01:00
xio-fdnum.h On bad parameter number print syntax; struct single pointers are now mostly called sfd 2023-11-05 22:19:10 +01:00
xio-file.c On bad parameter number print syntax; struct single pointers are now mostly called sfd 2023-11-05 22:19:10 +01:00
xio-file.h Formatted help output; address keywords in help now uppercase 2023-10-26 14:56:50 +02:00
xio-fs.c ext2-* options are renamed to fs-* 2020-12-28 12:37:49 +01:00
xio-fs.h ext2-* options are renamed to fs-* 2020-12-28 12:37:49 +01:00
xio-gopen.c New option bind-tempname for parallel UNIX domain SENDTO clients 2023-11-06 20:40:49 +01:00
xio-gopen.h Formatted help output; address keywords in help now uppercase 2023-10-26 14:56:50 +02:00
xio-interface.c Fixed the end-close option, it just did not work 2023-11-06 21:23:27 +01:00
xio-interface.h Improve option retrieve-vlan 2023-11-06 08:19:17 +01:00
xio-ip.c Reworked domain name resolution, centralized IPv4/IPv6 sorting 2024-08-24 14:21:35 +02:00
xio-ip.h Reworked domain name resolution, centralized IPv4/IPv6 sorting 2024-08-24 14:21:35 +02:00
xio-ip4.c Options res-* now apply to whole open phase 2023-11-05 19:39:01 +01:00
xio-ip4.h Options res-* now apply to whole open phase 2023-11-05 19:39:01 +01:00
xio-ip6.c Options ipv6-join-group and ipv6-join-source-group failed 2024-08-05 08:50:06 +02:00
xio-ip6.h Options res-* now apply to whole open phase 2023-11-05 19:39:01 +01:00
xio-ipapp.c Reworked domain name resolution, centralized IPv4/IPv6 sorting 2024-08-24 14:21:35 +02:00
xio-ipapp.h Reworked domain name resolution, centralized IPv4/IPv6 sorting 2024-08-24 14:21:35 +02:00
xio-listen.c Client addresses with option fork now apply option max-children 2023-11-06 21:23:11 +01:00
xio-listen.h New address ACCEPT-FD 2023-11-05 19:40:50 +01:00
xio-named.c Restrict option umask to the address it is applied to 2023-11-06 07:56:33 +01:00
xio-named.h Restrict option umask to the address it is applied to 2023-11-06 07:56:33 +01:00
xio-namespaces.c New option chdir (cd) 2023-11-06 08:15:42 +01:00
xio-namespaces.h New option chdir (cd) 2023-11-06 08:15:42 +01:00
xio-openssl.c Print CRL warning only once 2024-08-24 14:23:04 +02:00
xio-openssl.h New options openssl-maxfraglen, openssl-maxsendfrag 2023-10-26 16:43:20 +02:00
xio-pipe.c Check pipe size for possible blocking 2023-11-06 21:42:11 +01:00
xio-pipe.h Check pipe size for possible blocking 2023-11-06 21:42:11 +01:00
xio-posixmq.c Fixed the end-close option, it just did not work 2023-11-06 21:23:27 +01:00
xio-posixmq.h New feature POSIX message queues (MQ) 2023-11-05 20:48:35 +01:00
xio-process.c New option netns for network namespace setting 2023-11-05 19:40:22 +01:00
xio-process.h Added contributors to copyright notices 2016-12-09 21:46:02 +01:00
xio-progcall.c Fixed IP-SENDTO with option pf with protocol name 2024-08-05 08:57:39 +02:00
xio-progcall.h New option sitout-eio 2023-10-26 18:43:40 +02:00
xio-proxy.c Reworked domain name resolution, centralized IPv4/IPv6 sorting 2024-08-24 14:21:35 +02:00
xio-proxy.h Options res-* now apply to whole open phase 2023-11-05 19:39:01 +01:00
xio-pty.c A couple of minor corrections 2023-11-12 10:57:15 +01:00
xio-pty.h Formatted help output; address keywords in help now uppercase 2023-10-26 14:56:50 +02:00
xio-rawip.c Mitigated regressions of 1.8.0.0 with TCP-LISTEN e.a. by making -4 the default 2024-08-24 14:20:32 +02:00
xio-rawip.h Formatted help output; address keywords in help now uppercase 2023-10-26 14:56:50 +02:00
xio-readline.c Fixed the end-close option, it just did not work 2023-11-06 21:23:27 +01:00
xio-readline.h Formatted help output; address keywords in help now uppercase 2023-10-26 14:56:50 +02:00
xio-sctp.c Formatted help output; address keywords in help now uppercase 2023-10-26 14:56:50 +02:00
xio-sctp.h Formatted help output; address keywords in help now uppercase 2023-10-26 14:56:50 +02:00
xio-shell.c New feature SHELL address 2023-11-05 22:19:21 +01:00
xio-shell.h New feature SHELL address 2023-11-05 22:19:21 +01:00
xio-socket.c Fixed IP-SENDTO with option pf with protocol name 2024-08-05 08:57:39 +02:00
xio-socket.h Fixed SO_PROTOCOL on new Illumos 2024-08-24 14:22:05 +02:00
xio-socketpair.c Fixed IP-SENDTO with option pf with protocol name 2024-08-05 08:57:39 +02:00
xio-socketpair.h New address SOCKETPAIR for echoing datagrams 2023-11-05 19:40:37 +01:00
xio-socks.c Socks5 with 3 args and option socksport 2024-08-24 14:22:49 +02:00
xio-socks.h Socks5 with 3 args and option socksport 2024-08-24 14:22:49 +02:00
xio-socks5.c Socks5 with 3 args and option socksport 2024-08-24 14:22:49 +02:00
xio-socks5.h Added socks5 client feature for connect and listen (experimental) 2023-11-05 20:46:22 +01:00
xio-stdio.c Fixed the end-close option, it just did not work 2023-11-06 21:23:27 +01:00
xio-stdio.h Formatted help output; address keywords in help now uppercase 2023-10-26 14:56:50 +02:00
xio-streams.c Internal: Reworked xioopts 2023-11-05 21:05:55 +01:00
xio-streams.h Removed trailing white space from *.h and *.c files 2023-06-12 23:01:54 +02:00
xio-system.c On bad parameter number print syntax; struct single pointers are now mostly called sfd 2023-11-05 22:19:10 +01:00
xio-system.h Formatted help output; address keywords in help now uppercase 2023-10-26 14:56:50 +02:00
xio-tcp.c Formatted help output; address keywords in help now uppercase 2023-10-26 14:56:50 +02:00
xio-tcp.h Formatted help output; address keywords in help now uppercase 2023-10-26 14:56:50 +02:00
xio-tcpwrap.c On bad parameter number print syntax; struct single pointers are now mostly called sfd 2023-11-05 22:19:10 +01:00
xio-tcpwrap.h Added contributors to copyright notices 2016-12-09 21:46:02 +01:00
xio-termios.c Internal: Reworked xioopts 2023-11-05 21:05:55 +01:00
xio-termios.h Header of xiotermios_speed() declared parameter unsigned int instead of speed_t 2019-09-08 18:19:57 +02:00
xio-tun.c Improve option retrieve-vlan 2023-11-06 08:19:17 +01:00
xio-tun.h Interface flags now defined with INTERFACE, inherited by TUN 2023-10-26 19:08:26 +02:00
xio-udp.c IP-SENDTO with pf=ip4 failed with "trailing garbage" 2024-08-21 09:17:16 +02:00
xio-udp.h UDP-Lite (UDPlite) support 2023-11-11 17:18:06 +01:00
xio-udplite.c UDP-Lite (UDPlite) support 2023-11-11 17:18:06 +01:00
xio-udplite.h UDP-Lite (UDPlite) support 2023-11-11 17:18:06 +01:00
xio-unix.c Fixed the end-close option, it just did not work 2023-11-06 21:23:27 +01:00
xio-unix.h New option bind-tempname for parallel UNIX domain SENDTO clients 2023-11-06 20:40:49 +01:00
xio-vsock.c Fixed the end-close option, it just did not work 2023-11-06 21:23:27 +01:00
xio-vsock.h Formatted help output; address keywords in help now uppercase 2023-10-26 14:56:50 +02:00
xio.h Print CRL warning only once 2024-08-24 14:23:04 +02:00
xioclose.c Fixed loop of RECVFROM with fork when second address failed 2024-08-05 08:48:48 +02:00
xioconfig.h Corrections for better 32bit systems support, and some minor fixes 2023-11-13 20:08:23 +01:00
xiodiag.c Added contributors to copyright notices 2016-12-09 21:46:02 +01:00
xiodiag.h Added contributors to copyright notices 2016-12-09 21:46:02 +01:00
xioexit.c Output statistics per option and SIGUSR1 2023-10-26 18:42:41 +02:00
xiohelp.c Socks5 with 3 args and option socksport 2024-08-24 14:22:49 +02:00
xiohelp.h On bad parameter number print syntax; struct single pointers are now mostly called sfd 2023-11-05 22:19:10 +01:00
xioinitialize.c Print CRL warning only once 2024-08-24 14:23:04 +02:00
xiolayer.c New option bind-tempname for parallel UNIX domain SENDTO clients 2023-11-06 20:40:49 +01:00
xiolayer.h New option chdir (cd) 2023-11-06 08:15:42 +01:00
xiolockfile.c Removed trailing white space from *.h and *.c files 2023-06-12 23:01:54 +02:00
xiolockfile.h Added contributors to copyright notices 2016-12-09 21:46:02 +01:00
xiomodes.h UDP-Lite (UDPlite) support 2023-11-11 17:18:06 +01:00
xioopen.c Corrections for better 32bit systems support, and some minor fixes 2023-11-13 20:08:23 +01:00
xioopen.h On bad parameter number print syntax; struct single pointers are now mostly called sfd 2023-11-05 22:19:10 +01:00
xioopts.c Added the optional DEVTESTS feature for developer tests with controlled name resolution to both IPv4 and IPV6 addresses 2024-08-20 12:02:25 +02:00
xioopts.h Socks5 with 3 args and option socksport 2024-08-24 14:22:49 +02:00
xioparam.c Check pipe size for possible blocking 2023-11-06 21:42:11 +01:00
xioread.c Improve option retrieve-vlan 2023-11-06 08:19:17 +01:00
xioshutdown.c Fixed the end-close option, it just did not work 2023-11-06 21:23:27 +01:00
xiosigchld.c Print CRL warning only once 2024-08-24 14:23:04 +02:00
xiosignal.c New feature SHELL address 2023-11-05 22:19:21 +01:00
xiosysincludes.h The previous correction of ip-add-source-membership build broke this option 2023-06-11 22:27:39 +02:00
xiowrite.c New option f-setpipe-sz 2023-11-06 21:36:37 +01:00

about
-----

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 (readline), a program, or a combination of two of these. 
These modes include generation of "listening" sockets, named pipes, and pseudo
terminals.

socat can be used, e.g., as TCP port forwarder (one-shot or daemon), as an
external socksifier, for attacking weak firewalls, as a shell interface to UNIX
sockets, IP6 relay, for redirecting TCP oriented programs to a serial line, to
logically connect serial lines on different computers, or to establish a
relatively secure environment (su and  chroot) for running client or server
shell scripts with network connections. 

Many options are available to refine socats behaviour:
terminal parameters, open() options, file permissions, file and process owners,
basic socket options like bind address, advanced socket options like IP source
routing, linger, TTL, TOS (type of service), or TCP performance tuning.

More capabilities, like daemon mode with forking, client address check,
"tail -f" mode, some stream data processing (line terminator conversion),
choosing sockets, pipes, or ptys for interprocess communication, debug and
trace options, logging to syslog, stderr or file, and last but not least
precise error messages make it a versatile tool for many different purposes.

In fact, many of these features already exist in specialized tools; but until
now, there does not seem to exists another tool that provides such a generic,
flexible, simple and almost comprehensive (UNIX) byte stream connector.


packages
--------

before bothering with compilers, dependencies and include files, you might
try to get a binary distribution that matches your platform. Have a look at 
the projects home page for actual information regarding socat binary 
distributions.


platforms
---------

socat 1.8.0 has been compiled and more or less successfully tested under the
following operating systems:

Debian 4 on x86_64
FreeBSD 10 on amd64
OpenBSD 7.2 on amd64
OpenIndiana 2021-04 on i386 with gcc
Ubuntu 10.04 on i386
Ubuntu 12..24
Rocky 9
Cygwin 10.0


install
-------

Get the tarball and extract it:
	tar xzf socat.tar.gz
	cd socat-1.8.0.2
	./configure
	make
	su
	make install	# installs socat, filan, and procan in /usr/local/bin

For compiling socat, gcc (or clang) is recommended.
If gcc (or a compiler with similar front end) is not available, the configure
script might fail to determine some features

If you have problems with the OpenSSL library, you can apply the option
"--disable-openssl" to configure.

If you have problems with the readline library or (n)curses, you can apply the
option "--disable-readline" to configure.

If you have problems with the tcp wrappers library, you can apply the option
"--disable-libwrap" to configure.

If you still get errors or a tremendous amount of warnings you can exclude 
the features for system call tracing and file descriptor analyzing by
applying the options "--disable-sycls --disable-filan" to configure.

You still need the functions vsnprintf and snprintf that are in the GNU libc,
but might not be available with some proprietary libc's.

The configure script looks for headers and libraries of openssl, readline, and
tcp wrappers in the OS'es standard places and in the subdirectories include/
and lib/ of the following places: 
   /sw/
   /usr/local/
   /opt/freeware/
   /usr/sfw/
and for openssl also in:
   /usr/local/ssl/
In case of unexpected behaviour it is important to understand that configure
first searches for the appropriate include file and then expects to find the
library in the associated lib directory. That means, when e.g. a OpenSSL
installation resides under /usr/local and there is a symbolic link from
/usr/include/ssl/ssl.h to /usr/local/ssl/include/ssl/ssl.h, configure will find
the /usr/include/... header and will therefore expect libssl in /usr/lib
instead of /usr/local/...

If configure does not find a header file or library but you know where it is,
you can specify additional search locations, e.g.:
   export LIBS="-L$HOME/lib"
   export CPPFLAGS="-I$HOME/include"
before running configure and make.

For other operating systems, if socat does not compile without errors, refer to
the file PORTING.


platform specifics - Debian (Ubuntu, ...)
-----------------------------------------

libssl-dev


platform specifics - redhat
---------------------------

Install the following packages before building socat:
  tcp_wrappers-devel
  readline-devel
  openssl-devel

On RedHat Linux 9.0, including openssl/ssl.h might fail due to problems with
the krb5-devel package. configure reacts with disabling openssl integration. 
To solve this issue, help cpp to find the krb5.h include file:
CPPFLAGS="-I/usr/kerberos/include" ./configure


platform specifics - aix
------------------------

The flock() prototype is not available but the function is. Thus, to enable the
socat flock options, run configure and then change in config.h the line 
/* #undef HAVE_FLOCK */
to
#define HAVE_FLOCK 1
and continue the build process.

When using the OpenSSL rpm provided by IBM, configure might need the 
environment variable setting:
LIBS="-L/opt/freeware/lib"

When using the OpenSSL bundle provided by IBM, egd needs to be installed too
to get enough entropy.

socat compiles not only with gcc, but also with xlc. Just adapt the Makefile:
replace gcc by /usr/vac/bin/xlc and remove gcc specific options 
"-Wall -Wno-parentheses".

When linking with the OpenSSL library provided by IBM, errors may occur:
ld: 0711-317 ERROR: Undefined symbol: .__umoddi3
In this case, you need to link with libgcc or compile libcrypt yourself using
xlc, or disable SSL (in config.h, undefine WITH_OPENSSL and recompile)

The score of test.sh can be improved by uncommenting MISCDELAY=1 in this
script.


platform specifics - solaris
----------------------------

If libreadline or libssl are in a directory not searched by the loader per
default, e.g. /opt/sfw/lib, you must add this directory to $LD_LIBRARY_PATH,
for running both configure and the socat executables, e.g.:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/sfw/lib

For some shell scripts, it is preferable to have /usr/xpg4/bin at a prominent
position in $PATH.

With the default compiler define _GNU_SOURCE, the CMSG_* macros are not
available, and therefore ancillary messages cannot be used. To enable these try
the following:
After running ./configure, edit Makefile and replace "-D_GNU_SOURCE" with
"-D_XPG4_2 -D__EXTENSIONS__" and run make


platform specifics - hp-ux
--------------------------

Ancillary messages cannot be compiled in with socat: both struct msghdr and
struct cmsghdr are required. Compiling with -D_XOPEN_SOURCE_EXTENDED provides
struct msghdr but disables struct cmsghdr while -D_OPEN_SOURCE disables struct
msghdr but disables struct cmsghdr. Please contact socat development if you
know a solution.

Shutting down the write channel of a UNIX domain socket does not seem to
trigger an EOF on the peer socket. This makes problems with the exec and
system addresses.

This OS provides the type "long long", but not the strtoll() function to read
data into a long long variable.

UNIX domain sockets are only supported with SOCK_STREAM, not with datagrams
(see man 7 unix).

With UDP sockets it seems to happen that the select() call reports available
data (or EOF) but a subsequent read() call hangs.


platform specifics - tru64
--------------------------

When the use of the readline address fails with an error like:
socat: /sbin/loader: Fatal Error: Reference to unresolvable symbol "tgetent" in ".../libreadline.so.4"
and you still want to use shared libraries, try the following workaround: 
$ make distclean; LIBS="-static" ./configure
remove the "-static" occurrence in Makefile
$ make


documentation
-------------

These files reside in the doc subdirectory:

socat.1 is the man page, socat.html is the HTML based man page. It is actual,
but describes only the more useful options.

doc/socat-openssltunnel.html is a simple tutorial for a private SSL connection.
doc/socat-multicast.html is a short tutorial for multicast and broadcast
communications.
doc/socat-tun shows how to build a virtual network between two hosts.

socat.1 and socat.html can be generated from socat.yo (which is released with
socat 1.6.0.1 and later) using the yodl document language package. Maintenance
of yodl had been discontinued by its author
(http://www.xs4all.nl/~jantien/yodl/) (there seems to be a revival at
http://yodl.sourceforge.net/ though). For socat, the revival version 3.03 is used,


license
-------

socat is distributed under the terms of the GNU GPLv2;
except for install-sh, which is copyright MIT, with its own license;

In addition, as a special exception, the copyright holder
gives permission to link the code of this program with
any version of the OpenSSL library which is distributed
under a license identical to that listed in the included
COPYING.OpenSSL file, and distribute linked combinations
including the two. You must obey the GNU General Public
License in all respects for all of the code used other
than OpenSSL. If you modify this file, you may extend this
exception to your version of the file, but you are not
obligated to do so. If you do not wish to do so, delete
this exception statement from your version.


    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, version 2 of the License

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.


contact
-------

For questions, bug reports, ideas, contributions etc. please contact
socat@dest-unreach.org

For socat source distribution, bug fixes, and latest news see
        http://www.dest-unreach.org/socat/

www.socat.org is an alternate site providing the same contents.

public git repository:
	git://repo.or.cz/socat.git
	http://repo.or.cz/socat.git