pmdaConnect
initializes an IPC channel between a
PMDA(3)
and the
pmcd(1)
process on the local host. The type of the connection is dependent on the
e_io
field of the
pmdaExt
structure:
pmdaPipe
Use
stdin/stdout
to communicate; assumes this is a pipe created by
pmcd
before the
PMDA(3)
was launched.
pmdaInet
Assume
pmcd(1)
will establish a connection to an internet domain socket set up by the
PMDA(3).
The name or number of the port must be specified in the
e_sockname
or
e_port
fields of the
pmdaExt
structure, respectively.
pmdaUnix
Assume
pmcd(1)
will establish a connection to a unix domain socket set up by the
PMDA(3).
The port number must be specified in the
e_port
field of the
pmdaExt structure.
pmdaUnknown
The initial value of
e_io
which defaults to using
stdin/stdout.
The relevant
pmdaExt
fields are initialized by
pmdaInit(3)
and set by
pmdaGetOpt(3),
so most PMDAs should not need to access or modify them.
DIAGNOSTICS
pmdaConnect
will log the type of connection made to
pmcd(1)
if the
PMAPI(3)
debug control variable
(pmDebug)
has the
DBG_TRACE_LIBPMDA
flag set.
If an error occurs that is unrecoverable,
dispatch->status
is set to a value less than 0, otherwise it is zero or positive.
CAVEAT
The PMDA must be using
PMDA_INTERFACE_2
or later, as specified in the call to
pmdaDaemon(3).