Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ listen(1a) — NEWS-os 5.0.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

nlsadmin(1M)

pmadm(1M)

sac(1M)

sacadm(1M)

doconfig(3N)

nlsprovider(3N)

streamio(7)



listen(1M)       SYSTEM ADMINISTRATION COMMANDS        listen(1M)



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  tran-
     sport  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 tsync(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  ser-
     vice 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 connec-
     tion is passed in the form of a file descriptor that  refers



                                                                1





listen(1M)       SYSTEM ADMINISTRATION COMMANDS        listen(1M)



     to  the  new transport endpoint.  Before the file descriptor
     is sent to the server, the listener  interprets  any  confi-
     guration   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, nlsprovider(3N),
     streamio(7).
     Network Programmer's Guide

CAVEATS
     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  sin-
     gle  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 other-
     wise valid address, and would result from a  dynamic-address
     service  having  been  bound  to that address by a different
     instance of the listener.



















                                                                2



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