Name

tcpserver — listen for incoming TCP connections and spawn a child per conection

Synopsis

tcpserver [-O] [-P] [-q] [-Q] [-R] [-H] [-d] [-b backlog] [-v] [-D] [-o] [-l localname] [-c connlimit] [-U] [-B banner] {host} {port} {next-prog}

Description

tcpserver is a utility that opens a TCP socket bound to host and port, and loops forever, accepting TCP connections and (for each such connection) spawning next-prog, closing the listening socket in the child process and setting the connected socket as the child process' standard input and standard output. It devolves to a combination of tcp-socket-listen(1), tcp-socket-accept(1), line-banner(1), and setuidgid_fromenv(1).

next-prog may contain its own command line options, which tcpserver will ignore.

The -O , -P , -q , -Q , -H , -R , and -d command-line options simply would enact what are already the defaults, are thus present solely for compatibility, and are thus ignored.

The -b command-line option is passed through to tcp-socket-listen, with any of its option arguments. The -v , -D , -o -l , and -c options are passed through to tcp-socket-accept, with any of their option arguments. The -U command-line option causes setuidgid-fromenv to be invoked. The -B banner command-line option causes line-banner to be invoked, with banner as the banner.

Security

The options that permit attackers to run IDENT and DNS servers and inject attacker-supplied data into the server process' environment, are expressly not supported.

Author

Jonathan de Boyne Pollard