Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

nlsadmin(1M)

pmadm(1M)

sac(1M)

sacadm(1M)

doconfig(3N)

nlsgetcall(3N)

nlsprovider(3N)

appropriate_privilege(5)

cap_defaults(5)

streamio(7)



listen(1M)                     DG/UX R4.11MU05                    listen(1M)


NAME
       listen - network listener server

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 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 utmp 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.  When the -m devstem
       option is specified, the listener will use devstem as the prefix for
       the pathname.  In either case, the representation of the minor device
       number will be at least two digits (e.g., 05 or 27), but will be
       longer when 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 especially
       t_sync(3N)) 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(3N), although doconfig is invoked with both the NORUN and
       NOASSIGN flags.  The server receives the file descriptor for the
       connection in a strrecvfd structure via an I_RECVFD ioctl(2).

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

FILES
       /etc/saf/pmtag/*

SEE ALSO
       nlsadmin(1M), pmadm(1M), sac(1M), sacadm(1M),
       doconfig(3N), nlsgetcall(3N), nlsprovider(3N),
       appropriate_privilege(5),
       cap_defaults(5).
       streamio(7).
       Network Programmer's Guide

NOTES
       You must have appropriate privilege to use listen.  For systems
       supporting the DG/UX Capability Option, appropriate privilege is
       defined as having one or more specific capabilities enabled in the
       effective capability set of the user.  See cap_defaults(5) for the
       default capabilities for this command.

       On systems without the DG/UX Capability Option, appropriate privilege
       means that your process has an effective UID of root.  See the
       appropriate_privilege(5) man page for more information.

       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.


Licensed material--property of copyright holder(s)

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026