'i' - Reflector DBM Get Information Command
The reflector DBM returns information about its internal state in response to an 'i' command.
The information is returned in message fields, identifier 'M' (PUIDNETD_DATA_MSG in puidnetd.h).
The puidnetd.h symbol for the 'i' command is PUIDNETD_CMD_GETINFO.
The 'i' command with no options returns default information.
MPID: p; b in malloc arena; (n,m) PUID range\t
MFWD: f is forwarding client's PID
MRE: cd def ct; cx max ct; md def ms; mx max ms
PID: -- is the prefix for the default information.
p -- is the UNIX Process ID of the DBM process
b in malloc arena -- is the amount of dynamically allocated memory in use in bytes (This information is restricted to PUID_ROOT.)
(n,m) PUID range -- is the range of PUIDs known to the DBM
f -- is the forwarding child's PID.
cd -- is the default regular expression count limit.
cx -- is the maximum regular expression count limit.
md -- is the default regular expression millisecond time limit.
mx -- is the maximum regular expression millisecond time limit.
Information Requests - Selections from a set of request characters may be supplied in the value of a message field accompanying the 'i' command. These request characters are supported by the authorizer DBM:
A -- get all DBM information (PUIDNETD_GIFO_ALL).
(Some information is restricted to PUID_ROOT callers). Here's an example.
a -- get DBM information about aliases (PUIDNETD_GIFO_AKA). (This information is restricted to PUID_ROOT callers.) Here's an example.
b -- get a PUID's DBM-specific DBM ACL bits (PUIDNETD_GIFO_GETACL). (This is a restricted option.) Here's an example.
n -- get DBM information about common names (PUIDNETD_GIFO_CN). (This information is restricted to PUID_ROOT callers.) Here's an example.
p -- get DBM information about PUIDs (PUIDNETD_GIFO_PUID). (This information is restricted to PUID_ROOT callers.) Here's an example.
q -- get a DBM's queue statistics (PUIDNETD_GIFO_Q). (This information is restricted to PUID_ROOT callers.) Here's an example.
Restricted options may be used only by client applications that have identified a PUID to a net damon via client-side
SSL, and the PUID has permission to use
the option. The DBM ACL section gives
more information on how PUIDs are given permission to use restricted DBM facilities.
Restriction of some options or selected information of some options to callers whose PUID is PUID_ROOT is done for reasons of performance.
Parsing and Identifying Information Messages
DBM information is returned in messages that have unique prefixes. Client applications can scan the returned messages for ones of interest by using the prefixes. The prefixes are named in the following option examples.
Option Information Descriptions via Examples
Descriptions of the information returned in response to PUIDNETD_GIFO options specific to the reflector DBM are described in
the following examples. Links to other examples may be found in Information
Get Information about Common Names (PUIDNETD_GIFO_CN) - This example shows a request for information about the reflector's storage of common name information. (This information is restricted to PUID_ROOT callers.)
Reply message, excluding the default information, described above:
MName: h hashes use b of bb buckets
MName: [bm,bx] per bucket
MName: nb bytes in [lm,lx] lengths
MName: dn name matches, [dm,dx] per match
Name: -- is the prefix for common name information.
h -- indicates the total number of names in the name hash table.
b of bb -- the h hashed names use b of the bb hash buckets.
bm -- the minimum hash bucket size
bx -- the maximum hash bucket size
nb -- the number of bytes used by names.
lm -- the minimum name length.
lx -- the maximum name length
dn -- the number of duplicate names
dm -- the minimum duplicate name hash bucket size
dx -- the maximum duplicate name hash bucket size
Get All Information (PUIDNETD_GIFO_ALL) - An "all information" request ('A') provides all reflector DBM information, including the default information. (Some information is restricted to PUID_ROOT callers.)