1PMDAATTRIBUTE(3)           Library Functions Manual           PMDAATTRIBUTE(3)
2
3
4

NAME

6       pmdaAttribute - informs a PMDA about client connection attributes
7

C SYNOPSIS

9       #include <pcp/pmapi.h>
10       #include <pcp/impl.h>
11       #include <pcp/pmda.h>
12
13       int  pmdaAttribute(int  context,  int  key,  char  *value,  int length,
14       pmdaExt *pmda);
15
16       cc ... -lpcp_pmda -lpcp
17

DESCRIPTION

19       As part of  the  Performance  Metrics  Domain  Agent  (PMDA)  API  (see
20       PMDA(3)),  pmdaAttribute  is  the  generic  callback  for responding to
21       client connection attributes.  These attributes include client  creden‐
22       tial information, such as user ID and group ID.
23
24       A  PMDA  that  supports  connection  attributes  will provide a private
25       pmdaAttribute callback by assignment to  version.six.attribute  of  the
26       pmdaInterface  structure,  and  implement  custom  logic for any of the
27       attribute key-value pairs of interest to it.
28
29       All attributes are associated with a specific client context, and these
30       can  be  uniquely  identified  using  the ctx first argument.  The PMDA
31       should track client connections, and disconnections using  the  pmdaSe‐
32       tEndContextCallBack(3)  interface,  as a result.  The pmdaGetContext(3)
33       interface may be particularly helpful also.
34
35       All attributes are passed as key-value pairs and the  value  is  always
36       passed  as  a  null-terminated  string  of given length.  This includes
37       numeric attributes like the user ID.
38
39       The  most  commonly  used  attributes  would  be  PCP_ATTR_USERID   and
40       PCP_ATTR_GROUPID  but  others  may  also  be optionally passed (such as
41       PCP_ATTR_USERNAME) if they are available.  Some attributes will be con‐
42       sumed by pmcd and never through passed to PMDAs, such as PCP_ATTR_PASS‐
43       WORD.  A complete list of all possible attributes can be found  in  the
44       headers listed above, all are prefixed by PCP_ATTR.
45

DIAGNOSTICS

47       pmdaAttribute  should  return  either  zero  on  success, or a negative
48       return code to indicate an  error  in  handling  the  attribute.   This
49       return  code  cannot  be used to indicate a client should be disallowed
50       access - such functionality must be performed by the agent in  response
51       to  callbacks  for  the client in question (using PM_ERR_PERMISSION for
52       those specific callbacks, for that specific client.   In  other  words,
53       errors  will  be  be passed to PMCD but there is no guarantee made that
54       the error will be return to the client and result in termination of the
55       client, for example.
56

CAVEAT

58       The  PMDA  must  be using PMDA_PROTOCOL_6 or later, as specified in the
59       call to pmdaDSO(3) or pmdaDaemon(3).
60

SEE ALSO

62       PMAPI(3), PMDA(3), pmdaDaemon(3), pmdaDSO(3), pmdaMain(3) and  pmdaGet‐
63       Context(3).
64
65
66
67Performance Co-Pilot                  PCP                     PMDAATTRIBUTE(3)
Impressum