]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#899] added documentation
authorRazvan Becheriu <razvan@isc.org>
Mon, 15 Feb 2021 13:45:33 +0000 (15:45 +0200)
committerRazvan Becheriu <razvan@isc.org>
Thu, 18 Feb 2021 17:23:57 +0000 (19:23 +0200)
doc/sphinx/arm/hooks-run-script.rst [new file with mode: 0644]
doc/sphinx/arm/rst_arm_sources.mk
doc/sphinx/conf.py
src/hooks/dhcp/run_script/run_script.dox
src/hooks/dhcp/run_script/tests/run_script_test.sh.in
src/lib/util/process_spawn.h

diff --git a/doc/sphinx/arm/hooks-run-script.rst b/doc/sphinx/arm/hooks-run-script.rst
new file mode 100644 (file)
index 0000000..ae7a87b
--- /dev/null
@@ -0,0 +1,623 @@
+.. _hooks-run-script:
+
+Run Script Support
+==================
+
+This hooks library adds support for calling an external script with vendor information extensions
+
+The library is available since Kea 1.9.5 and can be loaded in a
+similar way as other hook libraries by the ``kea-dhcp4`` and
+``kea-dhcp6`` processes.
+
+::
+
+    "Dhcp4": {
+        "hook_libraries": [
+            {   "library": "/usr/local/lib/libdhcp_run_script.so",
+                "parameters": {
+                    "name": "/path_to/script_name.sh",
+                    "sync": false
+                }
+            },
+            ...
+        ]
+    }
+
+::
+
+    "Dhcp6": {
+        "hook_libraries": [
+            {   "library": "/usr/local/lib/libdhcp_run_script.so",
+                "parameters": {
+                    "name": "/path_to/script_name.sh",
+                    "sync": false
+                }
+            },
+            ...
+        ]
+    }
+
+
+The parameters contain the 'name' which indicates the path and name of the
+external script to be called on each hookpoint, and also the 'sync' option
+to be able to wait synchronously for the script to finish execution.
+If the 'sync' parameter is false, then the script will be launched and Kea
+will not wait for the execution to finish, causing all the OUT parameters of
+the script (including next step) to be ignored.
+
+
+.. note::
+
+   Currently the functionality underneath 'sync' parameter is not implemented
+   and enabling synchronous calls to external script is not supported.
+
+
+.. _hooks-run-script-hook-points:
+
+This library has several hook points functions implemented which will be
+called at the specific packet processing stage.
+
+The dhcpv4 hook points:
+
+::
+
+   lease4_renew
+   lease4_expire
+   lease4_recover
+   leases4_committed
+   lease4_release
+   lease4_decline
+
+
+The dhcpv6 hook points:
+
+::
+
+   lease6_renew
+   lease6_rebind
+   lease6_expire
+   lease6_recover
+   leases6_committed
+   lease6_release
+   lease6_decline
+
+Each hook point extracts the Kea internal data and exports it as string
+environment variables. These parameters are shared with the target script
+using the child process environment.
+The only parameter passed to the call of the target script is the name of
+the hook point.
+
+An example of a script implementing all hook points is presented below.
+
+::
+
+   #!/bin/bash
+
+   unknown_handle() {
+       echo "Unhandled function call ${@}"
+       exit 123
+   }
+
+
+   lease4_renew () {
+       ...
+   }
+
+   lease4_expire () {
+       ...
+   }
+
+   lease4_recover () {
+       ...
+   }
+
+   leases4_committed () {
+       ...
+   }
+
+   lease4_release () {
+       ...
+   }
+
+   lease4_decline () {
+       ...
+   }
+
+   lease6_renew () {
+       ...
+   }
+
+   lease6_rebind () {
+       ...
+   }
+
+   lease6_expire () {
+       ...
+   }
+
+   lease6_recover () {
+       ...
+   }
+
+   leases6_committed () {
+       ...
+   }
+
+   lease6_release () {
+       ...
+   }
+
+   lease6_decline () {
+       ...
+   }
+
+   case "$1" in
+       "lease4_renew")
+           lease4_renew
+           ;;
+       "lease4_expire")
+           lease4_expire
+           ;;
+       "lease4_recover")
+           lease4_recover
+           ;;
+       "leases4_committed")
+           leases4_committed
+           ;;
+       "lease4_release")
+           lease4_release
+           ;;
+       "lease4_decline")
+           lease4_decline
+           ;;
+       "lease6_renew")
+           lease6_renew
+           ;;
+       "lease6_rebind")
+           lease6_rebind
+           ;;
+       "lease6_expire")
+           lease6_expire
+           ;;
+       "lease6_recover")
+           lease6_recover
+           ;;
+       "leases6_committed")
+           leases6_committed
+           ;;
+       "lease6_release")
+           lease6_release
+           ;;
+       "lease6_decline")
+           lease6_decline
+           ;;
+       *)
+           unknown_handle "${@}"
+           ;;
+   esac
+
+
+.. _hooks-run-script-exported-environment-variables:
+
+Available parameters for each hook points are presented below.
+
+DHCPv4:
+
+lease4_renew
+
+::
+
+   QUERY4_TYPE
+   QUERY4_TXID
+   QUERY4_LOCAL_ADDR
+   QUERY4_LOCAL_PORT
+   QUERY4_REMOTE_ADDR
+   QUERY4_REMOTE_PORT
+   QUERY4_IFACE_INDEX
+   QUERY4_IFACE_NAME
+   QUERY4_HOPS
+   QUERY4_SECS
+   QUERY4_FLAGS
+   QUERY4_CIADDR
+   QUERY4_SIADDR
+   QUERY4_YIADDR
+   QUERY4_GIADDR
+   QUERY4_RELAYED
+   QUERY4_HWADDR
+   QUERY4_HWADDR_TYPE
+   QUERY4_LOCAL_HWADDR
+   QUERY4_LOCAL_HWADDR_TYPE
+   QUERY4_REMOTE_HWADDR
+   QUERY4_REMOTE_HWADDR_TYPE
+   SUBNET4_ID
+   SUBNET4_NAME
+   SUBNET4_PREFIX
+   SUBNET4_PREFIX_LEN
+   PKT4_CLIENT_ID
+   PKT4_HWADDR
+   PKT4_HWADDR_TYPE
+   LEASE4_ADDRESS
+   LEASE4_CLTT
+   LEASE4_HOSTNAME
+   LEASE4_HWADDR
+   LEASE4_HWADDR_TYPE
+   LEASE4_STATE
+   LEASE4_SUBNET_ID
+   LEASE4_VALID_LIFETIME
+   LEASE4_CLIENT_ID
+
+lease4_expire
+
+::
+
+   LEASE4_ADDRESS
+   LEASE4_CLTT
+   LEASE4_HOSTNAME
+   LEASE4_HWADDR
+   LEASE4_HWADDR_TYPE
+   LEASE4_STATE
+   LEASE4_SUBNET_ID
+   LEASE4_VALID_LIFETIME
+   LEASE4_CLIENT_ID
+   REMOVE_LEASE
+
+lease4_recover
+
+::
+
+   LEASE4_ADDRESS
+   LEASE4_CLTT
+   LEASE4_HOSTNAME
+   LEASE4_HWADDR
+   LEASE4_HWADDR_TYPE
+   LEASE4_STATE
+   LEASE4_SUBNET_ID
+   LEASE4_VALID_LIFETIME
+   LEASE4_CLIENT_ID
+
+leases4_committed
+
+::
+
+   QUERY4_TYPE
+   QUERY4_TXID
+   QUERY4_LOCAL_ADDR
+   QUERY4_LOCAL_PORT
+   QUERY4_REMOTE_ADDR
+   QUERY4_REMOTE_PORT
+   QUERY4_IFACE_INDEX
+   QUERY4_IFACE_NAME
+   QUERY4_HOPS
+   QUERY4_SECS
+   QUERY4_FLAGS
+   QUERY4_CIADDR
+   QUERY4_SIADDR
+   QUERY4_YIADDR
+   QUERY4_GIADDR
+   QUERY4_RELAYED
+   QUERY4_HWADDR
+   QUERY4_HWADDR_TYPE
+   QUERY4_LOCAL_HWADDR
+   QUERY4_LOCAL_HWADDR_TYPE
+   QUERY4_REMOTE_HWADDR
+   QUERY4_REMOTE_HWADDR_TYPE
+   LEASES4_SIZE
+   DELETED_LEASES4_SIZE
+
+If LEASES4_SIZE or DELETED_LEASES4_SIZE are non zero, then each lease
+will have it's own unique identifier as shown below. First index starts
+at 0.
+
+::
+
+   LEASES4_AT0_ADDRESS
+   LEASES4_AT0_CLTT
+   LEASES4_AT0_HOSTNAME
+   LEASES4_AT0_HWADDR
+   LEASES4_AT0_HWADDR_TYPE
+   LEASES4_AT0_STATE
+   LEASES4_AT0_SUBNET_ID
+   LEASES4_AT0_VALID_LIFETIME
+   LEASES4_AT0_CLIENT_ID
+   DELETED_LEASES4_AT0_ADDRESS
+   DELETED_LEASES4_AT0_CLTT
+   DELETED_LEASES4_AT0_HOSTNAME
+   DELETED_LEASES4_AT0_HWADDR
+   DELETED_LEASES4_AT0_HWADDR_TYPE
+   DELETED_LEASES4_AT0_STATE
+   DELETED_LEASES4_AT0_SUBNET_ID
+   DELETED_LEASES4_AT0_VALID_LIFETIME
+   DELETED_LEASES4_AT0_CLIENT_ID
+
+lease4_release
+
+::
+
+   QUERY4_TYPE
+   QUERY4_TXID
+   QUERY4_LOCAL_ADDR
+   QUERY4_LOCAL_PORT
+   QUERY4_REMOTE_ADDR
+   QUERY4_REMOTE_PORT
+   QUERY4_IFACE_INDEX
+   QUERY4_IFACE_NAME
+   QUERY4_HOPS
+   QUERY4_SECS
+   QUERY4_FLAGS
+   QUERY4_CIADDR
+   QUERY4_SIADDR
+   QUERY4_YIADDR
+   QUERY4_GIADDR
+   QUERY4_RELAYED
+   QUERY4_HWADDR
+   QUERY4_HWADDR_TYPE
+   QUERY4_LOCAL_HWADDR
+   QUERY4_LOCAL_HWADDR_TYPE
+   QUERY4_REMOTE_HWADDR
+   QUERY4_REMOTE_HWADDR_TYPE
+   LEASE4_ADDRESS
+   LEASE4_CLTT
+   LEASE4_HOSTNAME
+   LEASE4_HWADDR
+   LEASE4_HWADDR_TYPE
+   LEASE4_STATE
+   LEASE4_SUBNET_ID
+   LEASE4_VALID_LIFETIME
+   LEASE4_CLIENT_ID
+
+lease4_decline
+
+::
+
+   QUERY4_TYPE
+   QUERY4_TXID
+   QUERY4_LOCAL_ADDR
+   QUERY4_LOCAL_PORT
+   QUERY4_REMOTE_ADDR
+   QUERY4_REMOTE_PORT
+   QUERY4_IFACE_INDEX
+   QUERY4_IFACE_NAME
+   QUERY4_HOPS
+   QUERY4_SECS
+   QUERY4_FLAGS
+   QUERY4_CIADDR
+   QUERY4_SIADDR
+   QUERY4_YIADDR
+   QUERY4_GIADDR
+   QUERY4_RELAYED
+   QUERY4_HWADDR
+   QUERY4_HWADDR_TYPE
+   QUERY4_LOCAL_HWADDR
+   QUERY4_LOCAL_HWADDR_TYPE
+   QUERY4_REMOTE_HWADDR
+   QUERY4_REMOTE_HWADDR_TYPE
+   LEASE4_ADDRESS
+   LEASE4_CLTT
+   LEASE4_HOSTNAME
+   LEASE4_HWADDR
+   LEASE4_HWADDR_TYPE
+   LEASE4_STATE
+   LEASE4_SUBNET_ID
+   LEASE4_VALID_LIFETIME
+   LEASE4_CLIENT_ID
+
+DHCPv6:
+
+lease6_renew
+
+::
+
+   QUERY6_TYPE
+   QUERY6_TXID
+   QUERY6_LOCAL_ADDR
+   QUERY6_LOCAL_PORT
+   QUERY6_REMOTE_ADDR
+   QUERY6_REMOTE_PORT
+   QUERY6_IFACE_INDEX
+   QUERY6_IFACE_NAME
+   QUERY6_REMOTE_HWADDR
+   QUERY6_REMOTE_HWADDR_TYPE
+   QUERY6_PROTO
+   QUERY6_CLIENT_ID
+   LEASE6_ADDRESS
+   LEASE6_CLTT
+   LEASE6_HOSTNAME
+   LEASE6_HWADDR
+   LEASE6_HWADDR_TYPE
+   LEASE6_STATE
+   LEASE6_SUBNET_ID
+   LEASE6_VALID_LIFETIME
+   LEASE6_DUID
+   LEASE6_IAID
+   LEASE6_PREFERRED_LIFETIME
+   LEASE6_PREFIX_LEN
+   LEASE6_TYPE
+   PKT6_IA_IAID
+   PKT6_IA_IA_TYPE
+   PKT6_IA_IA_T1
+   PKT6_IA_IA_T2
+
+lease6_rebind
+
+::
+
+   QUERY6_TYPE
+   QUERY6_TXID
+   QUERY6_LOCAL_ADDR
+   QUERY6_LOCAL_PORT
+   QUERY6_REMOTE_ADDR
+   QUERY6_REMOTE_PORT
+   QUERY6_IFACE_INDEX
+   QUERY6_IFACE_NAME
+   QUERY6_REMOTE_HWADDR
+   QUERY6_REMOTE_HWADDR_TYPE
+   QUERY6_PROTO
+   QUERY6_CLIENT_ID
+   LEASE6_ADDRESS
+   LEASE6_CLTT
+   LEASE6_HOSTNAME
+   LEASE6_HWADDR
+   LEASE6_HWADDR_TYPE
+   LEASE6_STATE
+   LEASE6_SUBNET_ID
+   LEASE6_VALID_LIFETIME
+   LEASE6_DUID
+   LEASE6_IAID
+   LEASE6_PREFERRED_LIFETIME
+   LEASE6_PREFIX_LEN
+   LEASE6_TYPE
+   PKT6_IA_IAID
+   PKT6_IA_IA_TYPE
+   PKT6_IA_IA_T1
+   PKT6_IA_IA_T2
+
+lease6_expire
+
+::
+
+   LEASE6_ADDRESS
+   LEASE6_CLTT
+   LEASE6_HOSTNAME
+   LEASE6_HWADDR
+   LEASE6_HWADDR_TYPE
+   LEASE6_STATE
+   LEASE6_SUBNET_ID
+   LEASE6_VALID_LIFETIME
+   LEASE6_DUID
+   LEASE6_IAID
+   LEASE6_PREFERRED_LIFETIME
+   LEASE6_PREFIX_LEN
+   LEASE6_TYPE
+   REMOVE_LEASE
+
+lease6_recover
+
+::
+
+   LEASE6_ADDRESS
+   LEASE6_CLTT
+   LEASE6_HOSTNAME
+   LEASE6_HWADDR
+   LEASE6_HWADDR_TYPE
+   LEASE6_STATE
+   LEASE6_SUBNET_ID
+   LEASE6_VALID_LIFETIME
+   LEASE6_DUID
+   LEASE6_IAID
+   LEASE6_PREFERRED_LIFETIME
+   LEASE6_PREFIX_LEN
+   LEASE6_TYPE
+
+leases6_committed
+
+::
+
+   QUERY6_TYPE
+   QUERY6_TXID
+   QUERY6_LOCAL_ADDR
+   QUERY6_LOCAL_PORT
+   QUERY6_REMOTE_ADDR
+   QUERY6_REMOTE_PORT
+   QUERY6_IFACE_INDEX
+   QUERY6_IFACE_NAME
+   QUERY6_REMOTE_HWADDR
+   QUERY6_REMOTE_HWADDR_TYPE
+   QUERY6_PROTO
+   QUERY6_CLIENT_ID
+   LEASES6_SIZE
+   DELETED_LEASES6_SIZE
+
+If LEASES6_SIZE or DELETED_LEASES6_SIZE are non zero, then each lease
+will have it's own unique identifier as shown below. First index starts
+at 0.
+
+::
+
+   LEASES6_AT0_ADDRESS
+   LEASES6_AT0_CLTT
+   LEASES6_AT0_HOSTNAME
+   LEASES6_AT0_HWADDR
+   LEASES6_AT0_HWADDR_TYPE
+   LEASES6_AT0_STATE
+   LEASES6_AT0_SUBNET_ID
+   LEASES6_AT0_VALID_LIFETIME
+   LEASES6_AT0_DUID
+   LEASES6_AT0_IAID
+   LEASES6_AT0_PREFERRED_LIFETIME
+   LEASES6_AT0_PREFIX_LEN
+   LEASES6_AT0_TYPE
+   DELETED_LEASES6_AT0_ADDRESS
+   DELETED_LEASES6_AT0_CLTT
+   DELETED_LEASES6_AT0_HOSTNAME
+   DELETED_LEASES6_AT0_HWADDR
+   DELETED_LEASES6_AT0_HWADDR_TYPE
+   DELETED_LEASES6_AT0_STATE
+   DELETED_LEASES6_AT0_SUBNET_ID
+   DELETED_LEASES6_AT0_VALID_LIFETIME
+   DELETED_LEASES6_AT0_DUID
+   DELETED_LEASES6_AT0_IAID
+   DELETED_LEASES6_AT0_PREFERRED_LIFETIME
+   DELETED_LEASES6_AT0_PREFIX_LEN
+   DELETED_LEASES6_AT0_TYPE
+
+lease6_release
+
+::
+
+   QUERY6_TYPE
+   QUERY6_TXID
+   QUERY6_LOCAL_ADDR
+   QUERY6_LOCAL_PORT
+   QUERY6_REMOTE_ADDR
+   QUERY6_REMOTE_PORT
+   QUERY6_IFACE_INDEX
+   QUERY6_IFACE_NAME
+   QUERY6_REMOTE_HWADDR
+   QUERY6_REMOTE_HWADDR_TYPE
+   QUERY6_PROTO
+   QUERY6_CLIENT_ID
+   LEASE6_ADDRESS
+   LEASE6_CLTT
+   LEASE6_HOSTNAME
+   LEASE6_HWADDR
+   LEASE6_HWADDR_TYPE
+   LEASE6_STATE
+   LEASE6_SUBNET_ID
+   LEASE6_VALID_LIFETIME
+   LEASE6_DUID
+   LEASE6_IAID
+   LEASE6_PREFERRED_LIFETIME
+   LEASE6_PREFIX_LEN
+   LEASE6_TYPE
+
+lease6_decline
+
+::
+
+   QUERY6_TYPE
+   QUERY6_TXID
+   QUERY6_LOCAL_ADDR
+   QUERY6_LOCAL_PORT
+   QUERY6_REMOTE_ADDR
+   QUERY6_REMOTE_PORT
+   QUERY6_IFACE_INDEX
+   QUERY6_IFACE_NAME
+   QUERY6_REMOTE_HWADDR
+   QUERY6_REMOTE_HWADDR_TYPE
+   QUERY6_PROTO
+   QUERY6_CLIENT_ID
+   LEASE6_ADDRESS
+   LEASE6_CLTT
+   LEASE6_HOSTNAME
+   LEASE6_HWADDR
+   LEASE6_HWADDR_TYPE
+   LEASE6_STATE
+   LEASE6_SUBNET_ID
+   LEASE6_VALID_LIFETIME
+   LEASE6_DUID
+   LEASE6_IAID
+   LEASE6_PREFERRED_LIFETIME
+   LEASE6_PREFIX_LEN
+   LEASE6_TYPE
+
+
index 282312b8a6bb54c1eb1368eaba7c93e89fc1e7ce..bc87c3201f68554b9743d3136e71d904dab3bd3a 100644 (file)
@@ -18,8 +18,9 @@ rst_arm_sources += arm/hooks-host-cache.rst
 rst_arm_sources += arm/hooks-lease-cmds.rst
 rst_arm_sources += arm/hooks-lease-query.rst
 rst_arm_sources += arm/hooks-radius.rst
-rst_arm_sources += arm/hooks.rst
+rst_arm_sources += arm/hooks-run-script.rst
 rst_arm_sources += arm/hooks-stat-cmds.rst
+rst_arm_sources += arm/hooks.rst
 rst_arm_sources += arm/install.rst
 rst_arm_sources += arm/intro.rst
 rst_arm_sources += arm/keactrl.rst
index 688a3b75e4d45ff83fa6016702b7ced329461433..ffd9ff7d8c48e3a64967dc4afecbcc145e923b95 100644 (file)
@@ -85,6 +85,7 @@ exclude_patterns = [
     'arm/hooks-lease-cmds.rst',
     'arm/hooks-lease-query.rst',
     'arm/hooks-radius.rst',
+    'arm/hooks-run-script.rst',
     'arm/hooks-stat-cmds.rst',
     'arm/hammer.rst',
 ]
index 561cdd7a56ec0976c0ad38dcb1c20747cfa9e5e8..d2e714bcf9f8e0765074ff730057cea7312e2bfd 100644 (file)
@@ -51,8 +51,9 @@ configuration:
 The parameters contain the 'name' which indicates the path and name of the
 external script to be called on each hookpoint, and also the 'sync' option
 to be able to wait synchronously for the script to finish execution.
-If the 'sync' parameter is false, then the script will be launched and all
-the OUT parameters of the script will be ignored.
+If the 'sync' parameter is false, then the script will be launched and Kea
+will not wait for the execution to finish, causing all the OUT parameters of
+the script (including next step) to be ignored.
 Currently the functionality underneath 'sync' parameter is not implemented
 and enabling synchronous calls to external script is not supported.
 
@@ -82,7 +83,7 @@ An example of a script implementing all hook points is presented below.
 #!/bin/bash
 
 unknown_handle() {
-    echo "Unhandled function call"
+    echo "Unhandled function call ${@}"
     exit 123
 }
 
@@ -179,7 +180,7 @@ case "$1" in
         lease6_decline
         ;;
     *)
-        unknown_handle
+        unknown_handle "${@}"
         ;;
 esac
 
@@ -191,44 +192,44 @@ lease4_renew
 
 @code
 
-QUERY4_TYPE=
-QUERY4_TXID=
-QUERY4_LOCAL_ADDR=
-QUERY4_LOCAL_PORT=
-QUERY4_REMOTE_ADDR=
-QUERY4_REMOTE_PORT=
-QUERY4_IFACE_INDEX=
-QUERY4_IFACE_NAME=
-QUERY4_HOPS=
-QUERY4_SECS=
-QUERY4_FLAGS=
-QUERY4_CIADDR=
-QUERY4_SIADDR=
-QUERY4_YIADDR=
-QUERY4_GIADDR=
-QUERY4_RELAYED=
-QUERY4_HWADDR=
-QUERY4_HWADDR_TYPE=
-QUERY4_LOCAL_HWADDR=
-QUERY4_LOCAL_HWADDR_TYPE=
-QUERY4_REMOTE_HWADDR=
-QUERY4_REMOTE_HWADDR_TYPE=
-SUBNET4_ID=
-SUBNET4_NAME=
-SUBNET4_PREFIX=
-SUBNET4_PREFIX_LEN=
-PKT4_CLIENT_ID=
-PKT4_HWADDR=
-PKT4_HWADDR_TYPE=
-LEASE4_ADDRESS=
-LEASE4_CLTT=
-LEASE4_HOSTNAME=
-LEASE4_HWADDR=
-LEASE4_HWADDR_TYPE=
-LEASE4_STATE=
-LEASE4_SUBNET_ID=
-LEASE4_VALID_LIFETIME=
-LEASE4_CLIENT_ID=
+QUERY4_TYPE
+QUERY4_TXID
+QUERY4_LOCAL_ADDR
+QUERY4_LOCAL_PORT
+QUERY4_REMOTE_ADDR
+QUERY4_REMOTE_PORT
+QUERY4_IFACE_INDEX
+QUERY4_IFACE_NAME
+QUERY4_HOPS
+QUERY4_SECS
+QUERY4_FLAGS
+QUERY4_CIADDR
+QUERY4_SIADDR
+QUERY4_YIADDR
+QUERY4_GIADDR
+QUERY4_RELAYED
+QUERY4_HWADDR
+QUERY4_HWADDR_TYPE
+QUERY4_LOCAL_HWADDR
+QUERY4_LOCAL_HWADDR_TYPE
+QUERY4_REMOTE_HWADDR
+QUERY4_REMOTE_HWADDR_TYPE
+SUBNET4_ID
+SUBNET4_NAME
+SUBNET4_PREFIX
+SUBNET4_PREFIX_LEN
+PKT4_CLIENT_ID
+PKT4_HWADDR
+PKT4_HWADDR_TYPE
+LEASE4_ADDRESS
+LEASE4_CLTT
+LEASE4_HOSTNAME
+LEASE4_HWADDR
+LEASE4_HWADDR_TYPE
+LEASE4_STATE
+LEASE4_SUBNET_ID
+LEASE4_VALID_LIFETIME
+LEASE4_CLIENT_ID
 
 @endcode
 
@@ -236,16 +237,16 @@ lease4_expire
 
 @code
 
-LEASE4_ADDRESS=
-LEASE4_CLTT=
-LEASE4_HOSTNAME=
-LEASE4_HWADDR=
-LEASE4_HWADDR_TYPE=
-LEASE4_STATE=
-LEASE4_SUBNET_ID=
-LEASE4_VALID_LIFETIME=
-LEASE4_CLIENT_ID=
-REMOVE_LEASE=
+LEASE4_ADDRESS
+LEASE4_CLTT
+LEASE4_HOSTNAME
+LEASE4_HWADDR
+LEASE4_HWADDR_TYPE
+LEASE4_STATE
+LEASE4_SUBNET_ID
+LEASE4_VALID_LIFETIME
+LEASE4_CLIENT_ID
+REMOVE_LEASE
 
 @endcode
 
@@ -253,15 +254,15 @@ lease4_recover
 
 @code
 
-LEASE4_ADDRESS=
-LEASE4_CLTT=
-LEASE4_HOSTNAME=
-LEASE4_HWADDR=
-LEASE4_HWADDR_TYPE=
-LEASE4_STATE=
-LEASE4_SUBNET_ID=
-LEASE4_VALID_LIFETIME=
-LEASE4_CLIENT_ID=
+LEASE4_ADDRESS
+LEASE4_CLTT
+LEASE4_HOSTNAME
+LEASE4_HWADDR
+LEASE4_HWADDR_TYPE
+LEASE4_STATE
+LEASE4_SUBNET_ID
+LEASE4_VALID_LIFETIME
+LEASE4_CLIENT_ID
 
 @endcode
 
@@ -269,30 +270,30 @@ leases4_committed
 
 @code
 
-QUERY4_TYPE=
-QUERY4_TXID=
-QUERY4_LOCAL_ADDR=
-QUERY4_LOCAL_PORT=
-QUERY4_REMOTE_ADDR=
-QUERY4_REMOTE_PORT=
-QUERY4_IFACE_INDEX=
-QUERY4_IFACE_NAME=
-QUERY4_HOPS=
-QUERY4_SECS=
-QUERY4_FLAGS=
-QUERY4_CIADDR=
-QUERY4_SIADDR=
-QUERY4_YIADDR=
-QUERY4_GIADDR=
-QUERY4_RELAYED=
-QUERY4_HWADDR=
-QUERY4_HWADDR_TYPE=
-QUERY4_LOCAL_HWADDR=
-QUERY4_LOCAL_HWADDR_TYPE=
-QUERY4_REMOTE_HWADDR=
-QUERY4_REMOTE_HWADDR_TYPE=
-LEASES4_SIZE=
-DELETED_LEASES4_SIZE=
+QUERY4_TYPE
+QUERY4_TXID
+QUERY4_LOCAL_ADDR
+QUERY4_LOCAL_PORT
+QUERY4_REMOTE_ADDR
+QUERY4_REMOTE_PORT
+QUERY4_IFACE_INDEX
+QUERY4_IFACE_NAME
+QUERY4_HOPS
+QUERY4_SECS
+QUERY4_FLAGS
+QUERY4_CIADDR
+QUERY4_SIADDR
+QUERY4_YIADDR
+QUERY4_GIADDR
+QUERY4_RELAYED
+QUERY4_HWADDR
+QUERY4_HWADDR_TYPE
+QUERY4_LOCAL_HWADDR
+QUERY4_LOCAL_HWADDR_TYPE
+QUERY4_REMOTE_HWADDR
+QUERY4_REMOTE_HWADDR_TYPE
+LEASES4_SIZE
+DELETED_LEASES4_SIZE
 
 @endcode
 
@@ -302,24 +303,24 @@ at 0.
 
 @code
 
-LEASES4_AT0_ADDRESS=
-LEASES4_AT0_CLTT=
-LEASES4_AT0_HOSTNAME=
-LEASES4_AT0_HWADDR=
-LEASES4_AT0_HWADDR_TYPE=
-LEASES4_AT0_STATE=
-LEASES4_AT0_SUBNET_ID=
-LEASES4_AT0_VALID_LIFETIME=
-LEASES4_AT0_CLIENT_ID=
-DELETED_LEASES4_AT0_ADDRESS=
-DELETED_LEASES4_AT0_CLTT=
-DELETED_LEASES4_AT0_HOSTNAME=
-DELETED_LEASES4_AT0_HWADDR=
-DELETED_LEASES4_AT0_HWADDR_TYPE=
-DELETED_LEASES4_AT0_STATE=
-DELETED_LEASES4_AT0_SUBNET_ID=
-DELETED_LEASES4_AT0_VALID_LIFETIME=
-DELETED_LEASES4_AT0_CLIENT_ID=
+LEASES4_AT0_ADDRESS
+LEASES4_AT0_CLTT
+LEASES4_AT0_HOSTNAME
+LEASES4_AT0_HWADDR
+LEASES4_AT0_HWADDR_TYPE
+LEASES4_AT0_STATE
+LEASES4_AT0_SUBNET_ID
+LEASES4_AT0_VALID_LIFETIME
+LEASES4_AT0_CLIENT_ID
+DELETED_LEASES4_AT0_ADDRESS
+DELETED_LEASES4_AT0_CLTT
+DELETED_LEASES4_AT0_HOSTNAME
+DELETED_LEASES4_AT0_HWADDR
+DELETED_LEASES4_AT0_HWADDR_TYPE
+DELETED_LEASES4_AT0_STATE
+DELETED_LEASES4_AT0_SUBNET_ID
+DELETED_LEASES4_AT0_VALID_LIFETIME
+DELETED_LEASES4_AT0_CLIENT_ID
 
 @endcode
 
@@ -327,37 +328,37 @@ lease4_release
 
 @code
 
-QUERY4_TYPE=
-QUERY4_TXID=
-QUERY4_LOCAL_ADDR=
-QUERY4_LOCAL_PORT=
-QUERY4_REMOTE_ADDR=
-QUERY4_REMOTE_PORT=
-QUERY4_IFACE_INDEX=
-QUERY4_IFACE_NAME=
-QUERY4_HOPS=
-QUERY4_SECS=
-QUERY4_FLAGS=
-QUERY4_CIADDR=
-QUERY4_SIADDR=
-QUERY4_YIADDR=
-QUERY4_GIADDR=
-QUERY4_RELAYED=
-QUERY4_HWADDR=
-QUERY4_HWADDR_TYPE=
-QUERY4_LOCAL_HWADDR=
-QUERY4_LOCAL_HWADDR_TYPE=
-QUERY4_REMOTE_HWADDR=
-QUERY4_REMOTE_HWADDR_TYPE=
-LEASE4_ADDRESS=
-LEASE4_CLTT=
-LEASE4_HOSTNAME=
-LEASE4_HWADDR=
-LEASE4_HWADDR_TYPE=
-LEASE4_STATE=
-LEASE4_SUBNET_ID=
-LEASE4_VALID_LIFETIME=
-LEASE4_CLIENT_ID=
+QUERY4_TYPE
+QUERY4_TXID
+QUERY4_LOCAL_ADDR
+QUERY4_LOCAL_PORT
+QUERY4_REMOTE_ADDR
+QUERY4_REMOTE_PORT
+QUERY4_IFACE_INDEX
+QUERY4_IFACE_NAME
+QUERY4_HOPS
+QUERY4_SECS
+QUERY4_FLAGS
+QUERY4_CIADDR
+QUERY4_SIADDR
+QUERY4_YIADDR
+QUERY4_GIADDR
+QUERY4_RELAYED
+QUERY4_HWADDR
+QUERY4_HWADDR_TYPE
+QUERY4_LOCAL_HWADDR
+QUERY4_LOCAL_HWADDR_TYPE
+QUERY4_REMOTE_HWADDR
+QUERY4_REMOTE_HWADDR_TYPE
+LEASE4_ADDRESS
+LEASE4_CLTT
+LEASE4_HOSTNAME
+LEASE4_HWADDR
+LEASE4_HWADDR_TYPE
+LEASE4_STATE
+LEASE4_SUBNET_ID
+LEASE4_VALID_LIFETIME
+LEASE4_CLIENT_ID
 
 @endcode
 
@@ -365,37 +366,37 @@ lease4_decline
 
 @code
 
-QUERY4_TYPE=
-QUERY4_TXID=
-QUERY4_LOCAL_ADDR=
-QUERY4_LOCAL_PORT=
-QUERY4_REMOTE_ADDR=
-QUERY4_REMOTE_PORT=
-QUERY4_IFACE_INDEX=
-QUERY4_IFACE_NAME=
-QUERY4_HOPS=
-QUERY4_SECS=
-QUERY4_FLAGS=
-QUERY4_CIADDR=
-QUERY4_SIADDR=
-QUERY4_YIADDR=
-QUERY4_GIADDR=
-QUERY4_RELAYED=
-QUERY4_HWADDR=
-QUERY4_HWADDR_TYPE=
-QUERY4_LOCAL_HWADDR=
-QUERY4_LOCAL_HWADDR_TYPE=
-QUERY4_REMOTE_HWADDR=
-QUERY4_REMOTE_HWADDR_TYPE=
-LEASE4_ADDRESS=
-LEASE4_CLTT=
-LEASE4_HOSTNAME=
-LEASE4_HWADDR=
-LEASE4_HWADDR_TYPE=
-LEASE4_STATE=
-LEASE4_SUBNET_ID=
-LEASE4_VALID_LIFETIME=
-LEASE4_CLIENT_ID=
+QUERY4_TYPE
+QUERY4_TXID
+QUERY4_LOCAL_ADDR
+QUERY4_LOCAL_PORT
+QUERY4_REMOTE_ADDR
+QUERY4_REMOTE_PORT
+QUERY4_IFACE_INDEX
+QUERY4_IFACE_NAME
+QUERY4_HOPS
+QUERY4_SECS
+QUERY4_FLAGS
+QUERY4_CIADDR
+QUERY4_SIADDR
+QUERY4_YIADDR
+QUERY4_GIADDR
+QUERY4_RELAYED
+QUERY4_HWADDR
+QUERY4_HWADDR_TYPE
+QUERY4_LOCAL_HWADDR
+QUERY4_LOCAL_HWADDR_TYPE
+QUERY4_REMOTE_HWADDR
+QUERY4_REMOTE_HWADDR_TYPE
+LEASE4_ADDRESS
+LEASE4_CLTT
+LEASE4_HOSTNAME
+LEASE4_HWADDR
+LEASE4_HWADDR_TYPE
+LEASE4_STATE
+LEASE4_SUBNET_ID
+LEASE4_VALID_LIFETIME
+LEASE4_CLIENT_ID
 
 @endcode
 
@@ -403,35 +404,35 @@ lease6_renew
 
 @code
 
-QUERY6_TYPE=
-QUERY6_TXID=
-QUERY6_LOCAL_ADDR=
-QUERY6_LOCAL_PORT=
-QUERY6_REMOTE_ADDR=
-QUERY6_REMOTE_PORT=
-QUERY6_IFACE_INDEX=
-QUERY6_IFACE_NAME=
-QUERY6_REMOTE_HWADDR=
-QUERY6_REMOTE_HWADDR_TYPE=
-QUERY6_PROTO=
-QUERY6_CLIENT_ID=
-LEASE6_ADDRESS=
-LEASE6_CLTT=
-LEASE6_HOSTNAME=
-LEASE6_HWADDR=
-LEASE6_HWADDR_TYPE=
-LEASE6_STATE=
-LEASE6_SUBNET_ID=
-LEASE6_VALID_LIFETIME=
-LEASE6_DUID=
-LEASE6_IAID=
-LEASE6_PREFERRED_LIFETIME=
-LEASE6_PREFIX_LEN=
-LEASE6_TYPE=
-PKT6_IA_IAID=
-PKT6_IA_IA_TYPE=
-PKT6_IA_IA_T1=
-PKT6_IA_IA_T2=
+QUERY6_TYPE
+QUERY6_TXID
+QUERY6_LOCAL_ADDR
+QUERY6_LOCAL_PORT
+QUERY6_REMOTE_ADDR
+QUERY6_REMOTE_PORT
+QUERY6_IFACE_INDEX
+QUERY6_IFACE_NAME
+QUERY6_REMOTE_HWADDR
+QUERY6_REMOTE_HWADDR_TYPE
+QUERY6_PROTO
+QUERY6_CLIENT_ID
+LEASE6_ADDRESS
+LEASE6_CLTT
+LEASE6_HOSTNAME
+LEASE6_HWADDR
+LEASE6_HWADDR_TYPE
+LEASE6_STATE
+LEASE6_SUBNET_ID
+LEASE6_VALID_LIFETIME
+LEASE6_DUID
+LEASE6_IAID
+LEASE6_PREFERRED_LIFETIME
+LEASE6_PREFIX_LEN
+LEASE6_TYPE
+PKT6_IA_IAID
+PKT6_IA_IA_TYPE
+PKT6_IA_IA_T1
+PKT6_IA_IA_T2
 
 @endcode
 
@@ -439,35 +440,35 @@ lease6_rebind
 
 @code
 
-QUERY6_TYPE=
-QUERY6_TXID=
-QUERY6_LOCAL_ADDR=
-QUERY6_LOCAL_PORT=
-QUERY6_REMOTE_ADDR=
-QUERY6_REMOTE_PORT=
-QUERY6_IFACE_INDEX=
-QUERY6_IFACE_NAME=
-QUERY6_REMOTE_HWADDR=
-QUERY6_REMOTE_HWADDR_TYPE=
-QUERY6_PROTO=
-QUERY6_CLIENT_ID=
-LEASE6_ADDRESS=
-LEASE6_CLTT=
-LEASE6_HOSTNAME=
-LEASE6_HWADDR=
-LEASE6_HWADDR_TYPE=
-LEASE6_STATE=
-LEASE6_SUBNET_ID=
-LEASE6_VALID_LIFETIME=
-LEASE6_DUID=
-LEASE6_IAID=
-LEASE6_PREFERRED_LIFETIME=
-LEASE6_PREFIX_LEN=
-LEASE6_TYPE=
-PKT6_IA_IAID=
-PKT6_IA_IA_TYPE=
-PKT6_IA_IA_T1=
-PKT6_IA_IA_T2=
+QUERY6_TYPE
+QUERY6_TXID
+QUERY6_LOCAL_ADDR
+QUERY6_LOCAL_PORT
+QUERY6_REMOTE_ADDR
+QUERY6_REMOTE_PORT
+QUERY6_IFACE_INDEX
+QUERY6_IFACE_NAME
+QUERY6_REMOTE_HWADDR
+QUERY6_REMOTE_HWADDR_TYPE
+QUERY6_PROTO
+QUERY6_CLIENT_ID
+LEASE6_ADDRESS
+LEASE6_CLTT
+LEASE6_HOSTNAME
+LEASE6_HWADDR
+LEASE6_HWADDR_TYPE
+LEASE6_STATE
+LEASE6_SUBNET_ID
+LEASE6_VALID_LIFETIME
+LEASE6_DUID
+LEASE6_IAID
+LEASE6_PREFERRED_LIFETIME
+LEASE6_PREFIX_LEN
+LEASE6_TYPE
+PKT6_IA_IAID
+PKT6_IA_IA_TYPE
+PKT6_IA_IA_T1
+PKT6_IA_IA_T2
 
 @endcode
 
@@ -475,20 +476,20 @@ lease6_expire
 
 @code
 
-LEASE6_ADDRESS=
-LEASE6_CLTT=
-LEASE6_HOSTNAME=
-LEASE6_HWADDR=
-LEASE6_HWADDR_TYPE=
-LEASE6_STATE=
-LEASE6_SUBNET_ID=
-LEASE6_VALID_LIFETIME=
-LEASE6_DUID=
-LEASE6_IAID=
-LEASE6_PREFERRED_LIFETIME=
-LEASE6_PREFIX_LEN=
-LEASE6_TYPE=
-REMOVE_LEASE=
+LEASE6_ADDRESS
+LEASE6_CLTT
+LEASE6_HOSTNAME
+LEASE6_HWADDR
+LEASE6_HWADDR_TYPE
+LEASE6_STATE
+LEASE6_SUBNET_ID
+LEASE6_VALID_LIFETIME
+LEASE6_DUID
+LEASE6_IAID
+LEASE6_PREFERRED_LIFETIME
+LEASE6_PREFIX_LEN
+LEASE6_TYPE
+REMOVE_LEASE
 
 @endcode
 
@@ -496,19 +497,19 @@ lease6_recover
 
 @code
 
-LEASE6_ADDRESS=
-LEASE6_CLTT=
-LEASE6_HOSTNAME=
-LEASE6_HWADDR=
-LEASE6_HWADDR_TYPE=
-LEASE6_STATE=
-LEASE6_SUBNET_ID=
-LEASE6_VALID_LIFETIME=
-LEASE6_DUID=
-LEASE6_IAID=
-LEASE6_PREFERRED_LIFETIME=
-LEASE6_PREFIX_LEN=
-LEASE6_TYPE=
+LEASE6_ADDRESS
+LEASE6_CLTT
+LEASE6_HOSTNAME
+LEASE6_HWADDR
+LEASE6_HWADDR_TYPE
+LEASE6_STATE
+LEASE6_SUBNET_ID
+LEASE6_VALID_LIFETIME
+LEASE6_DUID
+LEASE6_IAID
+LEASE6_PREFERRED_LIFETIME
+LEASE6_PREFIX_LEN
+LEASE6_TYPE
 
 @endcode
 
@@ -516,20 +517,20 @@ leases6_committed
 
 @code
 
-QUERY6_TYPE=
-QUERY6_TXID=
-QUERY6_LOCAL_ADDR=
-QUERY6_LOCAL_PORT=
-QUERY6_REMOTE_ADDR=
-QUERY6_REMOTE_PORT=
-QUERY6_IFACE_INDEX=
-QUERY6_IFACE_NAME=
-QUERY6_REMOTE_HWADDR=
-QUERY6_REMOTE_HWADDR_TYPE=
-QUERY6_PROTO=
-QUERY6_CLIENT_ID=
-LEASES6_SIZE=
-DELETED_LEASES6_SIZE=
+QUERY6_TYPE
+QUERY6_TXID
+QUERY6_LOCAL_ADDR
+QUERY6_LOCAL_PORT
+QUERY6_REMOTE_ADDR
+QUERY6_REMOTE_PORT
+QUERY6_IFACE_INDEX
+QUERY6_IFACE_NAME
+QUERY6_REMOTE_HWADDR
+QUERY6_REMOTE_HWADDR_TYPE
+QUERY6_PROTO
+QUERY6_CLIENT_ID
+LEASES6_SIZE
+DELETED_LEASES6_SIZE
 
 @endcode
 
@@ -539,32 +540,32 @@ at 0.
 
 @code
 
-LEASES6_AT0_ADDRESS=
-LEASES6_AT0_CLTT=
-LEASES6_AT0_HOSTNAME=
-LEASES6_AT0_HWADDR=
-LEASES6_AT0_HWADDR_TYPE=
-LEASES6_AT0_STATE=
-LEASES6_AT0_SUBNET_ID=
-LEASES6_AT0_VALID_LIFETIME=
-LEASES6_AT0_DUID=
-LEASES6_AT0_IAID=
-LEASES6_AT0_PREFERRED_LIFETIME=
-LEASES6_AT0_PREFIX_LEN=
-LEASES6_AT0_TYPE=
-DELETED_LEASES6_AT0_ADDRESS=
-DELETED_LEASES6_AT0_CLTT=
-DELETED_LEASES6_AT0_HOSTNAME=
-DELETED_LEASES6_AT0_HWADDR=
-DELETED_LEASES6_AT0_HWADDR_TYPE=
-DELETED_LEASES6_AT0_STATE=
-DELETED_LEASES6_AT0_SUBNET_ID=
-DELETED_LEASES6_AT0_VALID_LIFETIME=
-DELETED_LEASES6_AT0_DUID=
-DELETED_LEASES6_AT0_IAID=
-DELETED_LEASES6_AT0_PREFERRED_LIFETIME=
-DELETED_LEASES6_AT0_PREFIX_LEN=
-DELETED_LEASES6_AT0_TYPE=
+LEASES6_AT0_ADDRESS
+LEASES6_AT0_CLTT
+LEASES6_AT0_HOSTNAME
+LEASES6_AT0_HWADDR
+LEASES6_AT0_HWADDR_TYPE
+LEASES6_AT0_STATE
+LEASES6_AT0_SUBNET_ID
+LEASES6_AT0_VALID_LIFETIME
+LEASES6_AT0_DUID
+LEASES6_AT0_IAID
+LEASES6_AT0_PREFERRED_LIFETIME
+LEASES6_AT0_PREFIX_LEN
+LEASES6_AT0_TYPE
+DELETED_LEASES6_AT0_ADDRESS
+DELETED_LEASES6_AT0_CLTT
+DELETED_LEASES6_AT0_HOSTNAME
+DELETED_LEASES6_AT0_HWADDR
+DELETED_LEASES6_AT0_HWADDR_TYPE
+DELETED_LEASES6_AT0_STATE
+DELETED_LEASES6_AT0_SUBNET_ID
+DELETED_LEASES6_AT0_VALID_LIFETIME
+DELETED_LEASES6_AT0_DUID
+DELETED_LEASES6_AT0_IAID
+DELETED_LEASES6_AT0_PREFERRED_LIFETIME
+DELETED_LEASES6_AT0_PREFIX_LEN
+DELETED_LEASES6_AT0_TYPE
 
 @endcode
 
@@ -572,31 +573,31 @@ lease6_release
 
 @code
 
-QUERY6_TYPE=
-QUERY6_TXID=
-QUERY6_LOCAL_ADDR=
-QUERY6_LOCAL_PORT=
-QUERY6_REMOTE_ADDR=
-QUERY6_REMOTE_PORT=
-QUERY6_IFACE_INDEX=
-QUERY6_IFACE_NAME=
-QUERY6_REMOTE_HWADDR=
-QUERY6_REMOTE_HWADDR_TYPE=
-QUERY6_PROTO=
-QUERY6_CLIENT_ID=
-LEASE6_ADDRESS=
-LEASE6_CLTT=
-LEASE6_HOSTNAME=
-LEASE6_HWADDR=
-LEASE6_HWADDR_TYPE=
-LEASE6_STATE=
-LEASE6_SUBNET_ID=
-LEASE6_VALID_LIFETIME=
-LEASE6_DUID=
-LEASE6_IAID=
-LEASE6_PREFERRED_LIFETIME=
-LEASE6_PREFIX_LEN=
-LEASE6_TYPE=
+QUERY6_TYPE
+QUERY6_TXID
+QUERY6_LOCAL_ADDR
+QUERY6_LOCAL_PORT
+QUERY6_REMOTE_ADDR
+QUERY6_REMOTE_PORT
+QUERY6_IFACE_INDEX
+QUERY6_IFACE_NAME
+QUERY6_REMOTE_HWADDR
+QUERY6_REMOTE_HWADDR_TYPE
+QUERY6_PROTO
+QUERY6_CLIENT_ID
+LEASE6_ADDRESS
+LEASE6_CLTT
+LEASE6_HOSTNAME
+LEASE6_HWADDR
+LEASE6_HWADDR_TYPE
+LEASE6_STATE
+LEASE6_SUBNET_ID
+LEASE6_VALID_LIFETIME
+LEASE6_DUID
+LEASE6_IAID
+LEASE6_PREFERRED_LIFETIME
+LEASE6_PREFIX_LEN
+LEASE6_TYPE
 
 @endcode
 
@@ -604,31 +605,31 @@ lease6_decline
 
 @code
 
-QUERY6_TYPE=
-QUERY6_TXID=
-QUERY6_LOCAL_ADDR=
-QUERY6_LOCAL_PORT=
-QUERY6_REMOTE_ADDR=
-QUERY6_REMOTE_PORT=
-QUERY6_IFACE_INDEX=
-QUERY6_IFACE_NAME=
-QUERY6_REMOTE_HWADDR=
-QUERY6_REMOTE_HWADDR_TYPE=
-QUERY6_PROTO=
-QUERY6_CLIENT_ID=
-LEASE6_ADDRESS=
-LEASE6_CLTT=
-LEASE6_HOSTNAME=
-LEASE6_HWADDR=
-LEASE6_HWADDR_TYPE=
-LEASE6_STATE=
-LEASE6_SUBNET_ID=
-LEASE6_VALID_LIFETIME=
-LEASE6_DUID=
-LEASE6_IAID=
-LEASE6_PREFERRED_LIFETIME=
-LEASE6_PREFIX_LEN=
-LEASE6_TYPE=
+QUERY6_TYPE
+QUERY6_TXID
+QUERY6_LOCAL_ADDR
+QUERY6_LOCAL_PORT
+QUERY6_REMOTE_ADDR
+QUERY6_REMOTE_PORT
+QUERY6_IFACE_INDEX
+QUERY6_IFACE_NAME
+QUERY6_REMOTE_HWADDR
+QUERY6_REMOTE_HWADDR_TYPE
+QUERY6_PROTO
+QUERY6_CLIENT_ID
+LEASE6_ADDRESS
+LEASE6_CLTT
+LEASE6_HOSTNAME
+LEASE6_HWADDR
+LEASE6_HWADDR_TYPE
+LEASE6_STATE
+LEASE6_SUBNET_ID
+LEASE6_VALID_LIFETIME
+LEASE6_DUID
+LEASE6_IAID
+LEASE6_PREFERRED_LIFETIME
+LEASE6_PREFIX_LEN
+LEASE6_TYPE
 
 @endcode
 
index 17f5517e951d62dbd3d938b24dd036a6ac5c1f5e..7ed0d81cabc1c9867062355f5224a34398e820f6 100644 (file)
@@ -514,6 +514,6 @@ case "$1" in
         lease6_decline
         ;;
     *)
-        unknown_handle
+        unknown_handle "${@}"
         ;;
 esac
index 99bbe4efb692e7710057e379d384619cea49b874..3fb10669a82df654e7ef37288e46066dc839c8bd 100644 (file)
@@ -49,11 +49,6 @@ typedef std::vector<std::string> ProcessEnvVars;
 /// it. The exit code can be retrieved by the caller using the
 /// @c ProcessSpawn::getExitStatus method.
 ///
-/// @warning Only one instance of the @c ProcessSpawn class may exist
-/// at the given time. Creating additional instance would cause an
-/// attempt to register a new SIGCHLD signal handler and, as a
-/// consequence, the new @c ProcessSpawn object will fail to create.
-///
 /// This class is made noncopyable so that we don't have attempts
 /// to make multiple copies of an object.  This avoid problems
 /// with multiple copies of objects for a single global resource