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/pmda.h>
11
12       int  pmdaAttribute(int  context,  int key, char *value, int length, pm‐
13       daExt *pmda);
14
15       cc ... -lpcp_pmda -lpcp
16

DESCRIPTION

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

CAVEAT

46       The  PMDA  must  be using PMDA_PROTOCOL_6 or later, as specified in the
47       call to pmdaDSO(3) or pmdaDaemon(3).
48

DIAGNOSTICS

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

SEE ALSO

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