</para>
<para>
Another point to note is that it is possible for a process to
- load multiple libraries. At every hook point, Kea calls all
- hooks library functions attached it. If multiple libraries have
- attached a function to a given hook point, Kea calls all of them.
- The order in which the functions are called is the order in which
- the libraries are specified in the configuration file. This may
- be important: consult the documentation of the libraries to see
- if this is the case.
+ load multiple libraries. When processing reaches a hook point,
+ Kea calls the hooks library functions attached to it. If multiple
+ libraries have attached a function to a given hook point, Kea calls
+ all of them, in the order in which the libraries are specified in
+ the configuration file. The order may be important: consult the
+ documentation of the libraries to see if this is the case.
</para>
<para>
The next section describes how to configure hooks libraries. If you
code, the latter is built independently of Kea in the form of
a shared library (or libraries). These are made known to Kea
through its configuration mechanism, and Kea loads the library at
-run time. Libraries can be unloaded and reloaded as needed while BIND
-10 is running.
+run time. Libraries can be unloaded and reloaded as needed while Kea
+is running.
Use of a defined API and the Kea configuration mechanism means that
as new versions of Kea are released, there is no need to modify
extern "C" {
int version() {
- return (BIND10_HOOKS_VERSION);
+ return (KEA_HOOKS_VERSION);
}
}
@subsubsection hooksdgCalloutContext Per-Request Context
Although the Kea modules can be characterised as handling a single
-packet at a time - e.g. the DHCPv4 server receives a DISCOVER packet,
-processes it and responds with an OFFER, this may not always be true.
+packet at a time - e.g. the DHCPv4 server receives a DHCPDISCOVER packet,
+processes it and responds with an DHCPOFFER, this may not always be true.
Future developments may have the server processing multiple packets
simultaneously, or to suspend processing on a packet and resume it at
a later time after other packets have been processed.