connld(7) DEVICES AND MODULES connld(7)
NAME
connld - line discipline for unique stream connections
DESCRIPTION
connld is a STREAMS-based module that provides unique con-
nections between server and client processes. It can only
be pushed [see streamio(7)] onto one end of a STREAMS-based
pipe that may subsequently be attached to a name in the file
system name space. After the pipe end is attached, a new
pipe is created internally when an originating process
attempts to open(2) or creat(2) the file system name. A
file descriptor for one end of the new pipe is packaged into
a message identical to that for the ioctl ISENDFD [see
streamio(7)] and is transmitted along the stream to the
server process on the other end. The originating process is
blocked until the server responds. The server responds to
the ISENDFD request by accepting the file descriptor
through the IRECVFD ioctl message. When this happens, the
file descriptor associated with the other end of the new
pipe is transmitted to the originating process as the file
descriptor returned from open(2) or creat(2). If the server
does not respond to the ISENDFD request, the stream that
the connld module is pushed on becomes uni-directional
because the server will not be able to retrieve any data off
the stream until the IRECVFD request is issued. If the
server process exits before issuing the IRECVFD request,
the open(2) or the creat(2) system calls will fail and
return -1 to the originating process. When the connld
module is pushed onto a pipe, messages going back and forth
through the pipe are ignored by connld. On success, an open
of connld returns 0. On failure, errno is set to the fol-
lowing values:
EINVAL A stream onto which connld is being pushed is
not a pipe or the pipe does not have a write
queue pointer pointing to a stream head read
queue.
EINVAL The other end of the pipe onto which connld is
being pushed is linked under a multiplexor.
EPIPE connld is being pushed onto a pipe end whose
other end is no longer there.
ENOMEM An internal pipe could not be created.
ENXIO An MHANGUP message is at the stream head of
the pipe onto which connld is being pushed.
EAGAIN Internal data structures could not be allo-
cated.
1
connld(7) DEVICES AND MODULES connld(7)
ENFILE A file table entry could not be allocated.
SEE ALSO
streamio(7)
Programmer's Guide: STREAMS
2