2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-09-02 06:55:16 +00:00

[#899] added documentation

This commit is contained in:
Razvan Becheriu
2021-02-15 15:45:33 +02:00
parent 54d8ffd477
commit 37cde2ced7
6 changed files with 968 additions and 347 deletions

View File

@@ -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

View 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-cmds.rst
rst_arm_sources += arm/hooks-lease-query.rst rst_arm_sources += arm/hooks-lease-query.rst
rst_arm_sources += arm/hooks-radius.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-stat-cmds.rst
rst_arm_sources += arm/hooks.rst
rst_arm_sources += arm/install.rst rst_arm_sources += arm/install.rst
rst_arm_sources += arm/intro.rst rst_arm_sources += arm/intro.rst
rst_arm_sources += arm/keactrl.rst rst_arm_sources += arm/keactrl.rst

View File

@@ -85,6 +85,7 @@ exclude_patterns = [
'arm/hooks-lease-cmds.rst', 'arm/hooks-lease-cmds.rst',
'arm/hooks-lease-query.rst', 'arm/hooks-lease-query.rst',
'arm/hooks-radius.rst', 'arm/hooks-radius.rst',
'arm/hooks-run-script.rst',
'arm/hooks-stat-cmds.rst', 'arm/hooks-stat-cmds.rst',
'arm/hammer.rst', 'arm/hammer.rst',
] ]

View File

@@ -51,8 +51,9 @@ configuration:
The parameters contain the 'name' which indicates the path and name of the 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 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. 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 If the 'sync' parameter is false, then the script will be launched and Kea
the OUT parameters of the script will be ignored. 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 Currently the functionality underneath 'sync' parameter is not implemented
and enabling synchronous calls to external script is not supported. 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 #!/bin/bash
unknown_handle() { unknown_handle() {
echo "Unhandled function call" echo "Unhandled function call ${@}"
exit 123 exit 123
} }
@@ -179,7 +180,7 @@ case "$1" in
lease6_decline lease6_decline
;; ;;
*) *)
unknown_handle unknown_handle "${@}"
;; ;;
esac esac
@@ -191,44 +192,44 @@ lease4_renew
@code @code
QUERY4_TYPE= QUERY4_TYPE
QUERY4_TXID= QUERY4_TXID
QUERY4_LOCAL_ADDR= QUERY4_LOCAL_ADDR
QUERY4_LOCAL_PORT= QUERY4_LOCAL_PORT
QUERY4_REMOTE_ADDR= QUERY4_REMOTE_ADDR
QUERY4_REMOTE_PORT= QUERY4_REMOTE_PORT
QUERY4_IFACE_INDEX= QUERY4_IFACE_INDEX
QUERY4_IFACE_NAME= QUERY4_IFACE_NAME
QUERY4_HOPS= QUERY4_HOPS
QUERY4_SECS= QUERY4_SECS
QUERY4_FLAGS= QUERY4_FLAGS
QUERY4_CIADDR= QUERY4_CIADDR
QUERY4_SIADDR= QUERY4_SIADDR
QUERY4_YIADDR= QUERY4_YIADDR
QUERY4_GIADDR= QUERY4_GIADDR
QUERY4_RELAYED= QUERY4_RELAYED
QUERY4_HWADDR= QUERY4_HWADDR
QUERY4_HWADDR_TYPE= QUERY4_HWADDR_TYPE
QUERY4_LOCAL_HWADDR= QUERY4_LOCAL_HWADDR
QUERY4_LOCAL_HWADDR_TYPE= QUERY4_LOCAL_HWADDR_TYPE
QUERY4_REMOTE_HWADDR= QUERY4_REMOTE_HWADDR
QUERY4_REMOTE_HWADDR_TYPE= QUERY4_REMOTE_HWADDR_TYPE
SUBNET4_ID= SUBNET4_ID
SUBNET4_NAME= SUBNET4_NAME
SUBNET4_PREFIX= SUBNET4_PREFIX
SUBNET4_PREFIX_LEN= SUBNET4_PREFIX_LEN
PKT4_CLIENT_ID= PKT4_CLIENT_ID
PKT4_HWADDR= PKT4_HWADDR
PKT4_HWADDR_TYPE= PKT4_HWADDR_TYPE
LEASE4_ADDRESS= LEASE4_ADDRESS
LEASE4_CLTT= LEASE4_CLTT
LEASE4_HOSTNAME= LEASE4_HOSTNAME
LEASE4_HWADDR= LEASE4_HWADDR
LEASE4_HWADDR_TYPE= LEASE4_HWADDR_TYPE
LEASE4_STATE= LEASE4_STATE
LEASE4_SUBNET_ID= LEASE4_SUBNET_ID
LEASE4_VALID_LIFETIME= LEASE4_VALID_LIFETIME
LEASE4_CLIENT_ID= LEASE4_CLIENT_ID
@endcode @endcode
@@ -236,16 +237,16 @@ lease4_expire
@code @code
LEASE4_ADDRESS= LEASE4_ADDRESS
LEASE4_CLTT= LEASE4_CLTT
LEASE4_HOSTNAME= LEASE4_HOSTNAME
LEASE4_HWADDR= LEASE4_HWADDR
LEASE4_HWADDR_TYPE= LEASE4_HWADDR_TYPE
LEASE4_STATE= LEASE4_STATE
LEASE4_SUBNET_ID= LEASE4_SUBNET_ID
LEASE4_VALID_LIFETIME= LEASE4_VALID_LIFETIME
LEASE4_CLIENT_ID= LEASE4_CLIENT_ID
REMOVE_LEASE= REMOVE_LEASE
@endcode @endcode
@@ -253,15 +254,15 @@ lease4_recover
@code @code
LEASE4_ADDRESS= LEASE4_ADDRESS
LEASE4_CLTT= LEASE4_CLTT
LEASE4_HOSTNAME= LEASE4_HOSTNAME
LEASE4_HWADDR= LEASE4_HWADDR
LEASE4_HWADDR_TYPE= LEASE4_HWADDR_TYPE
LEASE4_STATE= LEASE4_STATE
LEASE4_SUBNET_ID= LEASE4_SUBNET_ID
LEASE4_VALID_LIFETIME= LEASE4_VALID_LIFETIME
LEASE4_CLIENT_ID= LEASE4_CLIENT_ID
@endcode @endcode
@@ -269,30 +270,30 @@ leases4_committed
@code @code
QUERY4_TYPE= QUERY4_TYPE
QUERY4_TXID= QUERY4_TXID
QUERY4_LOCAL_ADDR= QUERY4_LOCAL_ADDR
QUERY4_LOCAL_PORT= QUERY4_LOCAL_PORT
QUERY4_REMOTE_ADDR= QUERY4_REMOTE_ADDR
QUERY4_REMOTE_PORT= QUERY4_REMOTE_PORT
QUERY4_IFACE_INDEX= QUERY4_IFACE_INDEX
QUERY4_IFACE_NAME= QUERY4_IFACE_NAME
QUERY4_HOPS= QUERY4_HOPS
QUERY4_SECS= QUERY4_SECS
QUERY4_FLAGS= QUERY4_FLAGS
QUERY4_CIADDR= QUERY4_CIADDR
QUERY4_SIADDR= QUERY4_SIADDR
QUERY4_YIADDR= QUERY4_YIADDR
QUERY4_GIADDR= QUERY4_GIADDR
QUERY4_RELAYED= QUERY4_RELAYED
QUERY4_HWADDR= QUERY4_HWADDR
QUERY4_HWADDR_TYPE= QUERY4_HWADDR_TYPE
QUERY4_LOCAL_HWADDR= QUERY4_LOCAL_HWADDR
QUERY4_LOCAL_HWADDR_TYPE= QUERY4_LOCAL_HWADDR_TYPE
QUERY4_REMOTE_HWADDR= QUERY4_REMOTE_HWADDR
QUERY4_REMOTE_HWADDR_TYPE= QUERY4_REMOTE_HWADDR_TYPE
LEASES4_SIZE= LEASES4_SIZE
DELETED_LEASES4_SIZE= DELETED_LEASES4_SIZE
@endcode @endcode
@@ -302,24 +303,24 @@ at 0.
@code @code
LEASES4_AT0_ADDRESS= LEASES4_AT0_ADDRESS
LEASES4_AT0_CLTT= LEASES4_AT0_CLTT
LEASES4_AT0_HOSTNAME= LEASES4_AT0_HOSTNAME
LEASES4_AT0_HWADDR= LEASES4_AT0_HWADDR
LEASES4_AT0_HWADDR_TYPE= LEASES4_AT0_HWADDR_TYPE
LEASES4_AT0_STATE= LEASES4_AT0_STATE
LEASES4_AT0_SUBNET_ID= LEASES4_AT0_SUBNET_ID
LEASES4_AT0_VALID_LIFETIME= LEASES4_AT0_VALID_LIFETIME
LEASES4_AT0_CLIENT_ID= LEASES4_AT0_CLIENT_ID
DELETED_LEASES4_AT0_ADDRESS= DELETED_LEASES4_AT0_ADDRESS
DELETED_LEASES4_AT0_CLTT= DELETED_LEASES4_AT0_CLTT
DELETED_LEASES4_AT0_HOSTNAME= DELETED_LEASES4_AT0_HOSTNAME
DELETED_LEASES4_AT0_HWADDR= DELETED_LEASES4_AT0_HWADDR
DELETED_LEASES4_AT0_HWADDR_TYPE= DELETED_LEASES4_AT0_HWADDR_TYPE
DELETED_LEASES4_AT0_STATE= DELETED_LEASES4_AT0_STATE
DELETED_LEASES4_AT0_SUBNET_ID= DELETED_LEASES4_AT0_SUBNET_ID
DELETED_LEASES4_AT0_VALID_LIFETIME= DELETED_LEASES4_AT0_VALID_LIFETIME
DELETED_LEASES4_AT0_CLIENT_ID= DELETED_LEASES4_AT0_CLIENT_ID
@endcode @endcode
@@ -327,37 +328,37 @@ lease4_release
@code @code
QUERY4_TYPE= QUERY4_TYPE
QUERY4_TXID= QUERY4_TXID
QUERY4_LOCAL_ADDR= QUERY4_LOCAL_ADDR
QUERY4_LOCAL_PORT= QUERY4_LOCAL_PORT
QUERY4_REMOTE_ADDR= QUERY4_REMOTE_ADDR
QUERY4_REMOTE_PORT= QUERY4_REMOTE_PORT
QUERY4_IFACE_INDEX= QUERY4_IFACE_INDEX
QUERY4_IFACE_NAME= QUERY4_IFACE_NAME
QUERY4_HOPS= QUERY4_HOPS
QUERY4_SECS= QUERY4_SECS
QUERY4_FLAGS= QUERY4_FLAGS
QUERY4_CIADDR= QUERY4_CIADDR
QUERY4_SIADDR= QUERY4_SIADDR
QUERY4_YIADDR= QUERY4_YIADDR
QUERY4_GIADDR= QUERY4_GIADDR
QUERY4_RELAYED= QUERY4_RELAYED
QUERY4_HWADDR= QUERY4_HWADDR
QUERY4_HWADDR_TYPE= QUERY4_HWADDR_TYPE
QUERY4_LOCAL_HWADDR= QUERY4_LOCAL_HWADDR
QUERY4_LOCAL_HWADDR_TYPE= QUERY4_LOCAL_HWADDR_TYPE
QUERY4_REMOTE_HWADDR= QUERY4_REMOTE_HWADDR
QUERY4_REMOTE_HWADDR_TYPE= QUERY4_REMOTE_HWADDR_TYPE
LEASE4_ADDRESS= LEASE4_ADDRESS
LEASE4_CLTT= LEASE4_CLTT
LEASE4_HOSTNAME= LEASE4_HOSTNAME
LEASE4_HWADDR= LEASE4_HWADDR
LEASE4_HWADDR_TYPE= LEASE4_HWADDR_TYPE
LEASE4_STATE= LEASE4_STATE
LEASE4_SUBNET_ID= LEASE4_SUBNET_ID
LEASE4_VALID_LIFETIME= LEASE4_VALID_LIFETIME
LEASE4_CLIENT_ID= LEASE4_CLIENT_ID
@endcode @endcode
@@ -365,37 +366,37 @@ lease4_decline
@code @code
QUERY4_TYPE= QUERY4_TYPE
QUERY4_TXID= QUERY4_TXID
QUERY4_LOCAL_ADDR= QUERY4_LOCAL_ADDR
QUERY4_LOCAL_PORT= QUERY4_LOCAL_PORT
QUERY4_REMOTE_ADDR= QUERY4_REMOTE_ADDR
QUERY4_REMOTE_PORT= QUERY4_REMOTE_PORT
QUERY4_IFACE_INDEX= QUERY4_IFACE_INDEX
QUERY4_IFACE_NAME= QUERY4_IFACE_NAME
QUERY4_HOPS= QUERY4_HOPS
QUERY4_SECS= QUERY4_SECS
QUERY4_FLAGS= QUERY4_FLAGS
QUERY4_CIADDR= QUERY4_CIADDR
QUERY4_SIADDR= QUERY4_SIADDR
QUERY4_YIADDR= QUERY4_YIADDR
QUERY4_GIADDR= QUERY4_GIADDR
QUERY4_RELAYED= QUERY4_RELAYED
QUERY4_HWADDR= QUERY4_HWADDR
QUERY4_HWADDR_TYPE= QUERY4_HWADDR_TYPE
QUERY4_LOCAL_HWADDR= QUERY4_LOCAL_HWADDR
QUERY4_LOCAL_HWADDR_TYPE= QUERY4_LOCAL_HWADDR_TYPE
QUERY4_REMOTE_HWADDR= QUERY4_REMOTE_HWADDR
QUERY4_REMOTE_HWADDR_TYPE= QUERY4_REMOTE_HWADDR_TYPE
LEASE4_ADDRESS= LEASE4_ADDRESS
LEASE4_CLTT= LEASE4_CLTT
LEASE4_HOSTNAME= LEASE4_HOSTNAME
LEASE4_HWADDR= LEASE4_HWADDR
LEASE4_HWADDR_TYPE= LEASE4_HWADDR_TYPE
LEASE4_STATE= LEASE4_STATE
LEASE4_SUBNET_ID= LEASE4_SUBNET_ID
LEASE4_VALID_LIFETIME= LEASE4_VALID_LIFETIME
LEASE4_CLIENT_ID= LEASE4_CLIENT_ID
@endcode @endcode
@@ -403,35 +404,35 @@ lease6_renew
@code @code
QUERY6_TYPE= QUERY6_TYPE
QUERY6_TXID= QUERY6_TXID
QUERY6_LOCAL_ADDR= QUERY6_LOCAL_ADDR
QUERY6_LOCAL_PORT= QUERY6_LOCAL_PORT
QUERY6_REMOTE_ADDR= QUERY6_REMOTE_ADDR
QUERY6_REMOTE_PORT= QUERY6_REMOTE_PORT
QUERY6_IFACE_INDEX= QUERY6_IFACE_INDEX
QUERY6_IFACE_NAME= QUERY6_IFACE_NAME
QUERY6_REMOTE_HWADDR= QUERY6_REMOTE_HWADDR
QUERY6_REMOTE_HWADDR_TYPE= QUERY6_REMOTE_HWADDR_TYPE
QUERY6_PROTO= QUERY6_PROTO
QUERY6_CLIENT_ID= QUERY6_CLIENT_ID
LEASE6_ADDRESS= LEASE6_ADDRESS
LEASE6_CLTT= LEASE6_CLTT
LEASE6_HOSTNAME= LEASE6_HOSTNAME
LEASE6_HWADDR= LEASE6_HWADDR
LEASE6_HWADDR_TYPE= LEASE6_HWADDR_TYPE
LEASE6_STATE= LEASE6_STATE
LEASE6_SUBNET_ID= LEASE6_SUBNET_ID
LEASE6_VALID_LIFETIME= LEASE6_VALID_LIFETIME
LEASE6_DUID= LEASE6_DUID
LEASE6_IAID= LEASE6_IAID
LEASE6_PREFERRED_LIFETIME= LEASE6_PREFERRED_LIFETIME
LEASE6_PREFIX_LEN= LEASE6_PREFIX_LEN
LEASE6_TYPE= LEASE6_TYPE
PKT6_IA_IAID= PKT6_IA_IAID
PKT6_IA_IA_TYPE= PKT6_IA_IA_TYPE
PKT6_IA_IA_T1= PKT6_IA_IA_T1
PKT6_IA_IA_T2= PKT6_IA_IA_T2
@endcode @endcode
@@ -439,35 +440,35 @@ lease6_rebind
@code @code
QUERY6_TYPE= QUERY6_TYPE
QUERY6_TXID= QUERY6_TXID
QUERY6_LOCAL_ADDR= QUERY6_LOCAL_ADDR
QUERY6_LOCAL_PORT= QUERY6_LOCAL_PORT
QUERY6_REMOTE_ADDR= QUERY6_REMOTE_ADDR
QUERY6_REMOTE_PORT= QUERY6_REMOTE_PORT
QUERY6_IFACE_INDEX= QUERY6_IFACE_INDEX
QUERY6_IFACE_NAME= QUERY6_IFACE_NAME
QUERY6_REMOTE_HWADDR= QUERY6_REMOTE_HWADDR
QUERY6_REMOTE_HWADDR_TYPE= QUERY6_REMOTE_HWADDR_TYPE
QUERY6_PROTO= QUERY6_PROTO
QUERY6_CLIENT_ID= QUERY6_CLIENT_ID
LEASE6_ADDRESS= LEASE6_ADDRESS
LEASE6_CLTT= LEASE6_CLTT
LEASE6_HOSTNAME= LEASE6_HOSTNAME
LEASE6_HWADDR= LEASE6_HWADDR
LEASE6_HWADDR_TYPE= LEASE6_HWADDR_TYPE
LEASE6_STATE= LEASE6_STATE
LEASE6_SUBNET_ID= LEASE6_SUBNET_ID
LEASE6_VALID_LIFETIME= LEASE6_VALID_LIFETIME
LEASE6_DUID= LEASE6_DUID
LEASE6_IAID= LEASE6_IAID
LEASE6_PREFERRED_LIFETIME= LEASE6_PREFERRED_LIFETIME
LEASE6_PREFIX_LEN= LEASE6_PREFIX_LEN
LEASE6_TYPE= LEASE6_TYPE
PKT6_IA_IAID= PKT6_IA_IAID
PKT6_IA_IA_TYPE= PKT6_IA_IA_TYPE
PKT6_IA_IA_T1= PKT6_IA_IA_T1
PKT6_IA_IA_T2= PKT6_IA_IA_T2
@endcode @endcode
@@ -475,20 +476,20 @@ lease6_expire
@code @code
LEASE6_ADDRESS= LEASE6_ADDRESS
LEASE6_CLTT= LEASE6_CLTT
LEASE6_HOSTNAME= LEASE6_HOSTNAME
LEASE6_HWADDR= LEASE6_HWADDR
LEASE6_HWADDR_TYPE= LEASE6_HWADDR_TYPE
LEASE6_STATE= LEASE6_STATE
LEASE6_SUBNET_ID= LEASE6_SUBNET_ID
LEASE6_VALID_LIFETIME= LEASE6_VALID_LIFETIME
LEASE6_DUID= LEASE6_DUID
LEASE6_IAID= LEASE6_IAID
LEASE6_PREFERRED_LIFETIME= LEASE6_PREFERRED_LIFETIME
LEASE6_PREFIX_LEN= LEASE6_PREFIX_LEN
LEASE6_TYPE= LEASE6_TYPE
REMOVE_LEASE= REMOVE_LEASE
@endcode @endcode
@@ -496,19 +497,19 @@ lease6_recover
@code @code
LEASE6_ADDRESS= LEASE6_ADDRESS
LEASE6_CLTT= LEASE6_CLTT
LEASE6_HOSTNAME= LEASE6_HOSTNAME
LEASE6_HWADDR= LEASE6_HWADDR
LEASE6_HWADDR_TYPE= LEASE6_HWADDR_TYPE
LEASE6_STATE= LEASE6_STATE
LEASE6_SUBNET_ID= LEASE6_SUBNET_ID
LEASE6_VALID_LIFETIME= LEASE6_VALID_LIFETIME
LEASE6_DUID= LEASE6_DUID
LEASE6_IAID= LEASE6_IAID
LEASE6_PREFERRED_LIFETIME= LEASE6_PREFERRED_LIFETIME
LEASE6_PREFIX_LEN= LEASE6_PREFIX_LEN
LEASE6_TYPE= LEASE6_TYPE
@endcode @endcode
@@ -516,20 +517,20 @@ leases6_committed
@code @code
QUERY6_TYPE= QUERY6_TYPE
QUERY6_TXID= QUERY6_TXID
QUERY6_LOCAL_ADDR= QUERY6_LOCAL_ADDR
QUERY6_LOCAL_PORT= QUERY6_LOCAL_PORT
QUERY6_REMOTE_ADDR= QUERY6_REMOTE_ADDR
QUERY6_REMOTE_PORT= QUERY6_REMOTE_PORT
QUERY6_IFACE_INDEX= QUERY6_IFACE_INDEX
QUERY6_IFACE_NAME= QUERY6_IFACE_NAME
QUERY6_REMOTE_HWADDR= QUERY6_REMOTE_HWADDR
QUERY6_REMOTE_HWADDR_TYPE= QUERY6_REMOTE_HWADDR_TYPE
QUERY6_PROTO= QUERY6_PROTO
QUERY6_CLIENT_ID= QUERY6_CLIENT_ID
LEASES6_SIZE= LEASES6_SIZE
DELETED_LEASES6_SIZE= DELETED_LEASES6_SIZE
@endcode @endcode
@@ -539,32 +540,32 @@ at 0.
@code @code
LEASES6_AT0_ADDRESS= LEASES6_AT0_ADDRESS
LEASES6_AT0_CLTT= LEASES6_AT0_CLTT
LEASES6_AT0_HOSTNAME= LEASES6_AT0_HOSTNAME
LEASES6_AT0_HWADDR= LEASES6_AT0_HWADDR
LEASES6_AT0_HWADDR_TYPE= LEASES6_AT0_HWADDR_TYPE
LEASES6_AT0_STATE= LEASES6_AT0_STATE
LEASES6_AT0_SUBNET_ID= LEASES6_AT0_SUBNET_ID
LEASES6_AT0_VALID_LIFETIME= LEASES6_AT0_VALID_LIFETIME
LEASES6_AT0_DUID= LEASES6_AT0_DUID
LEASES6_AT0_IAID= LEASES6_AT0_IAID
LEASES6_AT0_PREFERRED_LIFETIME= LEASES6_AT0_PREFERRED_LIFETIME
LEASES6_AT0_PREFIX_LEN= LEASES6_AT0_PREFIX_LEN
LEASES6_AT0_TYPE= LEASES6_AT0_TYPE
DELETED_LEASES6_AT0_ADDRESS= DELETED_LEASES6_AT0_ADDRESS
DELETED_LEASES6_AT0_CLTT= DELETED_LEASES6_AT0_CLTT
DELETED_LEASES6_AT0_HOSTNAME= DELETED_LEASES6_AT0_HOSTNAME
DELETED_LEASES6_AT0_HWADDR= DELETED_LEASES6_AT0_HWADDR
DELETED_LEASES6_AT0_HWADDR_TYPE= DELETED_LEASES6_AT0_HWADDR_TYPE
DELETED_LEASES6_AT0_STATE= DELETED_LEASES6_AT0_STATE
DELETED_LEASES6_AT0_SUBNET_ID= DELETED_LEASES6_AT0_SUBNET_ID
DELETED_LEASES6_AT0_VALID_LIFETIME= DELETED_LEASES6_AT0_VALID_LIFETIME
DELETED_LEASES6_AT0_DUID= DELETED_LEASES6_AT0_DUID
DELETED_LEASES6_AT0_IAID= DELETED_LEASES6_AT0_IAID
DELETED_LEASES6_AT0_PREFERRED_LIFETIME= DELETED_LEASES6_AT0_PREFERRED_LIFETIME
DELETED_LEASES6_AT0_PREFIX_LEN= DELETED_LEASES6_AT0_PREFIX_LEN
DELETED_LEASES6_AT0_TYPE= DELETED_LEASES6_AT0_TYPE
@endcode @endcode
@@ -572,31 +573,31 @@ lease6_release
@code @code
QUERY6_TYPE= QUERY6_TYPE
QUERY6_TXID= QUERY6_TXID
QUERY6_LOCAL_ADDR= QUERY6_LOCAL_ADDR
QUERY6_LOCAL_PORT= QUERY6_LOCAL_PORT
QUERY6_REMOTE_ADDR= QUERY6_REMOTE_ADDR
QUERY6_REMOTE_PORT= QUERY6_REMOTE_PORT
QUERY6_IFACE_INDEX= QUERY6_IFACE_INDEX
QUERY6_IFACE_NAME= QUERY6_IFACE_NAME
QUERY6_REMOTE_HWADDR= QUERY6_REMOTE_HWADDR
QUERY6_REMOTE_HWADDR_TYPE= QUERY6_REMOTE_HWADDR_TYPE
QUERY6_PROTO= QUERY6_PROTO
QUERY6_CLIENT_ID= QUERY6_CLIENT_ID
LEASE6_ADDRESS= LEASE6_ADDRESS
LEASE6_CLTT= LEASE6_CLTT
LEASE6_HOSTNAME= LEASE6_HOSTNAME
LEASE6_HWADDR= LEASE6_HWADDR
LEASE6_HWADDR_TYPE= LEASE6_HWADDR_TYPE
LEASE6_STATE= LEASE6_STATE
LEASE6_SUBNET_ID= LEASE6_SUBNET_ID
LEASE6_VALID_LIFETIME= LEASE6_VALID_LIFETIME
LEASE6_DUID= LEASE6_DUID
LEASE6_IAID= LEASE6_IAID
LEASE6_PREFERRED_LIFETIME= LEASE6_PREFERRED_LIFETIME
LEASE6_PREFIX_LEN= LEASE6_PREFIX_LEN
LEASE6_TYPE= LEASE6_TYPE
@endcode @endcode
@@ -604,31 +605,31 @@ lease6_decline
@code @code
QUERY6_TYPE= QUERY6_TYPE
QUERY6_TXID= QUERY6_TXID
QUERY6_LOCAL_ADDR= QUERY6_LOCAL_ADDR
QUERY6_LOCAL_PORT= QUERY6_LOCAL_PORT
QUERY6_REMOTE_ADDR= QUERY6_REMOTE_ADDR
QUERY6_REMOTE_PORT= QUERY6_REMOTE_PORT
QUERY6_IFACE_INDEX= QUERY6_IFACE_INDEX
QUERY6_IFACE_NAME= QUERY6_IFACE_NAME
QUERY6_REMOTE_HWADDR= QUERY6_REMOTE_HWADDR
QUERY6_REMOTE_HWADDR_TYPE= QUERY6_REMOTE_HWADDR_TYPE
QUERY6_PROTO= QUERY6_PROTO
QUERY6_CLIENT_ID= QUERY6_CLIENT_ID
LEASE6_ADDRESS= LEASE6_ADDRESS
LEASE6_CLTT= LEASE6_CLTT
LEASE6_HOSTNAME= LEASE6_HOSTNAME
LEASE6_HWADDR= LEASE6_HWADDR
LEASE6_HWADDR_TYPE= LEASE6_HWADDR_TYPE
LEASE6_STATE= LEASE6_STATE
LEASE6_SUBNET_ID= LEASE6_SUBNET_ID
LEASE6_VALID_LIFETIME= LEASE6_VALID_LIFETIME
LEASE6_DUID= LEASE6_DUID
LEASE6_IAID= LEASE6_IAID
LEASE6_PREFERRED_LIFETIME= LEASE6_PREFERRED_LIFETIME
LEASE6_PREFIX_LEN= LEASE6_PREFIX_LEN
LEASE6_TYPE= LEASE6_TYPE
@endcode @endcode

View File

@@ -514,6 +514,6 @@ case "$1" in
lease6_decline lease6_decline
;; ;;
*) *)
unknown_handle unknown_handle "${@}"
;; ;;
esac esac

View File

@@ -49,11 +49,6 @@ typedef std::vector<std::string> ProcessEnvVars;
/// it. The exit code can be retrieved by the caller using the /// it. The exit code can be retrieved by the caller using the
/// @c ProcessSpawn::getExitStatus method. /// @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 /// This class is made noncopyable so that we don't have attempts
/// to make multiple copies of an object. This avoid problems /// to make multiple copies of an object. This avoid problems
/// with multiple copies of objects for a single global resource /// with multiple copies of objects for a single global resource