


tcpsvd(8)                                               tcpsvd(8)


NAME
       tcpsvd - TCP/IP service daemon

SYNOPSIS
       tcpsvd [-hpEvv] [-c n] [-C n:msg] [-b n] [-u user] [-l name] [-i dir|-x
       cdb] [ -t sec] host port prog

DESCRIPTION
       tcpsvd creates a TCP/IP socket, binds it to the address host:port,  and
       listens on the socket for incoming connections.

       On  each incoming connection, tcpsvd conditionally runs a program, with
       standard input reading from the socket, and standard output writing  to
       the  socket,  to handle this connection.  tcpsvd keeps listening on the
       socket for new connections, and can handle multiple connections  simul-
       taneously.

       tcpsvd  optionally  checks for special instructions depending on the IP
       address or hostname of the client that initiated  the  connection,  see
       ipsvd-instruct(5).

OPTIONS
       host   host either is a hostname, or a dotted-decimal IP address, or 0.
              If host is  0,  tcpsvd  accepts  connections  to  any  local  IP
              address.

       port   tcpsvd  accepts  connections  to  host:port.  port may be a name
              from /etc/services or a number.

       prog   prog consists of one or more arguments.   For  each  connection,
              tcpsvd  normally  runs prog, with file descriptor 0 reading from
              the network, and file descriptor 1 writing to the  network.   By
              default  it  also sets up TCP-related environment variables, see
              tcp-environ(5)

       -i dir read instructions for handling new connections from the instruc-
              tions directory dir.  See ipsvd-instruct(5) for details.

       -x cdb read instructions for handling new connections from the constant
              database cdb.  The constant database normally is created from an
              instructions directory by running ipsvd-cdb(8).

       -t sec timeout.   This  option  only  takes  effect if the -i option is
              given.  While checking the  instructions  directory,  check  the
              time of last access of the file that matches the clients address
              or hostname if any, discard and remove the  file  if  it  wasn't
              accessed within the last sec seconds; tcpsvd does not discard or
              remove a file if the user's write permission  is  not  set,  for
              those  files the timeout is disabled.  Default is 0, which means
              that the timeout is disabled.

       -l name
              local hostname.  Do not look up the local hostname in  DNS,  but
              use name as hostname.  This option must be set if tcpsvd listens



                                                                1





tcpsvd(8)                                               tcpsvd(8)


              on port 53 to avoid loops.

       -u user[:group]
              drop permissions.  Switch user ID to user's UID, and group ID to
              user's primary GID after creating and binding to the socket.  If
              user is followed by a colon and a group name, the  group  ID  is
              switched  to the GID of group instead.  All supplementary groups
              are removed.

       -c n   concurrency.   Handle  up  to  n   connections   simultaneously.
              Default is 30.  If there are n connections active, tcpsvd defers
              acceptance of a new connection until  an  active  connection  is
              closed.

       -C n[:msg]
              per  host  concurrency.  Allow only up to n connections from the
              same IP address simultaneously.  If there are n  active  connec-
              tions from one IP address, new incoming connections from this IP
              address are closed immediately.  If n is followed by  :msg,  the
              message msg is written to the client if possible, before closing
              the connection.  By default msg is empty.  See ipsvd-instruct(5)
              for supported escape sequences in msg.

              For  each  accepted connection, the current per host concurrency
              is available through the environment variable TCPCONCURRENCY.  n
              and  msg can be overwritten by ipsvd(7) instructions, see ipsvd-
              instruct(5).  By default tcpsvd doesn't keep  track  of  connec-
              tions.

       -h     Look up the client's hostname in DNS.

       -p     paranoid.   After  looking up the client's hostname in DNS, look
              up the IP addresses in DNS for that hostname, and  forget  about
              the  hostname  if  none  of  the addresses match the client's IP
              address.  You should set this option if you use  hostname  based
              instructions.  The -p option implies the -h option.

       -b n   backlog.   Allow a backlog of approximately n TCP SYNs.  On some
              systems n is silently limited.  Default is 20.

       -E     no special environment.  Do not set up  TCP-related  environment
              variables.

       -v     verbose.  Print verbose messsages to standard output.

       -vv    more verbose.  Print more verbose messages to standard output.

SEE ALSO
       ipsvd(7),   sslsvd(8),   udpsvd(8),   ipsvd-instruct(5),  ipsvd-cdb(8),
       sslio(8)

       http://smarden.org/ipsvd/





                                                                2





tcpsvd(8)                                               tcpsvd(8)


AUTHOR
       Gerrit Pape <pape@smarden.org>























































                                                                3


