Trivial tcp/ip pipe based on libvanessa_socket
vanessa_socket_pipe [options]
A TCP/IP pipe is a user space programme that listens for TCP/IP connections on port on the local host and when a client connects makes a connection to a TCP port, possibly on another host. Once both connections are established data sent on one connection is relayed to the other, hence forming a bi-directional pipe.
Uses include enabling connections to specific ports on hosts behind a packet filter.
This code is intended primarily as an example of how many of the features of libvanessa_socket work.
-c|--connection_limit:
Maximum number of connections to accept simultaneously. A value of zero sets no limit on the number of simultaneous connections. (default 0)
-d|--debug:
Turn on verbose debuging to stderr.
-h|--help:
Display this message.
-L|--listen_port:
Port to listen on. (mandatory)
-l|--listen_host:
Address to listen on. May be a hostname or an IP address. If not defined then listen on all local addresses.
-n|--no_lookup:
Turn off lookup of hostnames and portnames. That is, hosts must be given as IP addresses and ports must be given as numbers.
-O|--outgoing_port:
Define a port to connect to. If not specified -l|--listen_port will be used.
-o|--outgoing_host:
Define host to connect to. May be a hostname or an IP address. (mandatory)
-q|--quiet:
Only log errors. Overriden by -d|--debug.
-t|--timeout:
Idle timeout in seconds. Value of zero sets infinite timeout. (default 1800)
Notes:
Default value for binary flags is off.
-L|--listen_port and -o|--outgoing_host must be defined.
Simon Horman <[email protected]>