LISTEN(8)LISTEN(8)

NAME

listen, listen1, tcp7, tcp9, tcp19, tcp21, tcp23, tcp25, tcp53, tcp110, tcp113, tcp143, tcp445, tcp513, tcp515, tcp564, tcp565, tcp566, tcp567, tcp993, tcp995, tcp1723, tcp17007, tcp17008, tcp17009, tcp17010, tcp17013 – listen for calls on a network device

SYNOPSIS

aux/listen [-iq] [-d srvdir] [-t trustsrvdir] [-n namespace] [-p maxprocs] [net]

aux/listen1 [ -tv ] [-p maxprocs] [-n namespace] addr cmd [ args... ]

DESCRIPTION

listen listens on a network for inbound calls to local services. Net is the network protocol on which to listen, by default /net/tcp. The services available are executable, non-empty files in srvdir or trustsrvdir. If neither srvdir nor trustsrvdir is given, listen looks for executable files in /bin/service. Services found in srvdir are executed as user none; services found in trustsrvdir are executed as the user who started listen. When changing user to none, a new namespace is created, usually by executing /lib/namespace, but -n selects an alternate namespace. The -p option limits the number of processes that listen spawns to service the connections. If the maxprocs limit is reached, listen will log the event and delay servicing until the number of connection processes drops below the limit again. A maxprocs smaller or equal zero means no limit (default). Option -q suppresses affirmative log information. Option -i suppresses the periodic scan of the service directories for changes.

Service names are made by concatenating the name of the network with the name of the service or port. For example, an inbound call on the TCP network for port 565 executes service tcp565.

At least the following services are available in /bin/service.

tcp564

serve a piece of the name space using the Plan 9 file system protocol, with authentication via Tauth (in attach(5)), no encryption, and multiplex multiple users on a single connection (used by srv(4), and also by Unix systems to see Plan 9 files).  

tcp17007

serve a piece of the name space using the Plan 9 file system protocol, with authentication at the start, optional SSL encryption, and no multiplexing of users (typically used by cpu(1) and import(4)). Not usable by user none.  

tcp17008

like tcp17007, but serves the root of the tree, forgoing the negotiation for which subtree to serve.  

tcp17009

rx remote execution.  

tcp17010

server for cpu(1) command.  

tcp17013

server for old cpu(1) command for compatibility with old clients.  

tcp17019

server for rcpu(1), replaces rx, import(4) and cpu(1) using TLS for encryption.  

tcp7

echo any bytes received (bit mirror)  

tcp9

consume any bytes received (bit bucket)  

tcp19

chargen service.  

tcp21

FTP daemon  

tcp23

telnet terminal connection.  

tcp25

mail delivery.  

tcp53

TCP port for DNS.  

tcp110

POP3 port.  

tcp113

Ident port (always reports none).  

tcp143

IMAP4rev1 port.  

tcp445

CIFS/SMB file sharing.  

tcp513

rlogin terminal connection.  

tcp515

LP daemon; see lp(8).  

tcp565

report the address of the incoming call.  

tcp993

Secure IMAP4rev1 port.  

tcp995

Secure POP3 port.  

tcp1723

PPTP (point-to-point tunnelling protocol) service.  

At least the following services are available in /bin/service.auth, the usual trustsrvdir.

tcp566

validate a SecureNet box.  

tcp567

Plan 9 authentication-ticket service.  

Listen1 is a lightweight listener intended for personal use, modeled from Inferno’s listen(1). announces on address, running cmd args... for each incoming connection; the network directory is passed in the environment as $net. Option -t causes listen1 to run as the invoking user; the default is to become none before listening. Option -v causes verbose logging on standard output. See /rc/bin/tlssrvtunnel for an example.

FILES

/net/tcp

by convention, TCP device bind point  

SOURCE

/sys/src/cmd/aux/listen*.c
/rc/bin/service*

SEE ALSO

authsrv(6), dial(2)

BUGS

Srvdir, trustsrvdir and namespace must all be absolute path names.