LISTEN(8) Maintenance Commands and Procedures LISTEN(8)

NAME


listen - network listener daemon

SYNOPSIS


/usr/lib/saf/listen [-m devstem] net_spec


DESCRIPTION


The listen process ``listens'' to a network for service requests,
accepts requests when they arrive, and invokes servers in response to
those service requests. The network listener process may be used with
any connection-oriented network (more precisely, with any connection-
oriented transport provider) that conforms to the Transport Layer
Interface (TLI) Specification.


The listener internally generates a pathname for the minor device for
each connection; it is this pathname that is used in the utmpx entry
for a service, if one is created. By default, this pathname is the
concatenation of the prefix /dev/netspec with the decimal
representation of the minor device number. In either case, the
representation of the minor device number will be at least two digits
(for example, 05 or 27), or longer when it is necessary to
accommodate minor device numbers larger than 99.

SERVER INVOCATION


When a connection indication is received, the listener creates a new
transport endpoint and accepts the connection on that endpoint.
Before giving the file descriptor for this new connection to the
server, any designated STREAMS modules are pushed and the
configuration script is executed, (if one exists). This file
descriptor is appropriate for use with either TLI (see t_sync(3NSL) )
or the sockets interface library.


By default, a new instance of the server is invoked for each
connection. When the server is invoked, file descriptor 0 refers to
the transport endpoint, and is open for reading and writing. File
descriptors 1 and 2 are copies of file descriptor 0; no other file
descriptors are open. The service is invoked with the user and group
IDs of the user name under which the service was registered with the
listener, and with the current directory set to the HOME directory of
that user.


Alternatively, a service may be registered so that the listener will
pass connections to a standing server process through a FIFO or a
named stream, instead of invoking the server anew for each
connection. In this case, the connection is passed in the form of a
file descriptor that refers to the new transport endpoint. Before the
file descriptor is sent to the server, the listener interprets any
configuration script registered for that service using
doconfig(3NSL), although doconfig is invoked with both the NORUN and
NOASSIGN flags. The server receives the file descriptor for the
connection in a strrecvfd structure using an I_RECVFD ioctl(2).


For more details about the listener and its administration, see
nlsadmin(8).

OPTIONS


-mdevstem
The listener will use devstem as the prefix for the
pathname.


FILES


/etc/saf/pmtag/*

SEE ALSO


ioctl(2), doconfig(3NSL), nlsgetcall(3NSL), nlsprovider(3NSL),
t_sync(3NSL), streamio(4I), attributes(7), nlsadmin(8), pmadm(8),
sac(8), sacadm(8)


NOTES


When passing a connection to a standing server, the user and group
IDs contained in the strrecvfd structure will be those for the
listener (that is, they will both be 0); the user name under which
the service was registered with the listener is not reflected in
these IDs.


When operating multiple instances of the listener on a single
transport provider, there is a potential race condition in the
binding of addresses during initialization of the listeners, if any
of their services have dynamically assigned addresses. This condition
would appear as an inability of the listener to bind a static-address
service to its otherwise valid address, and would result from a
dynamic-address service having been bound to that address by a
different instance of the listener.

April 3, 1997 LISTEN(8)

tribblix@gmail.com :: GitHub :: Privacy