Kea 2.7.6
|
Classes | |
class | CalloutHandle |
Per-packet callout handle. More... | |
class | CalloutHandleAssociate |
Base class for classes which need to be associated with a CalloutHandle object. More... | |
class | CalloutManager |
Callout Manager. More... | |
class | DuplicateHook |
Duplicate hook. More... | |
class | HooksConfig |
Wrapper class that holds hooks libraries configuration. More... | |
class | HooksLibrariesParser |
Parser for hooks library list. More... | |
class | HooksManager |
Hooks Manager. More... | |
class | InvalidHooksLibraries |
Exception thrown when a library failed to validate. More... | |
class | LibrariesStillOpened |
Libraries still opened. More... | |
class | LibraryHandle |
Library handle. More... | |
class | LibraryManager |
Library manager. More... | |
class | LibraryManagerCollection |
Library manager collection. More... | |
class | LoadLibrariesNotCalled |
LoadLibraries not called. More... | |
class | NoCalloutManager |
No Callout Manager. More... | |
class | NoSuchArgument |
No such argument. More... | |
class | NoSuchCalloutContext |
No such callout context item. More... | |
class | NoSuchHook |
Invalid hook. More... | |
class | NoSuchLibrary |
No such library. More... | |
class | ParkingLot |
Parking lot for objects, e.g. More... | |
class | ParkingLotHandle |
Provides a limited view to the ParkingLot . More... | |
class | ParkingLots |
Collection of parking lots for various hook points. More... | |
class | PointerConverter |
Local class for conversion of void pointers to function pointers. More... | |
class | ScopedCalloutHandleState |
Wrapper class around callout handle which automatically resets handle's state. More... | |
class | ServerHooks |
Server hook collection. More... | |
Typedefs | |
typedef boost::shared_ptr< CalloutHandle > | CalloutHandlePtr |
A shared pointer to a CalloutHandle object. | |
typedef int(* | CalloutPtr) (CalloutHandle &) |
Typedef for a callout pointer. (Callouts must have "C" linkage.) | |
typedef std::pair< std::string, data::ConstElementPtr > | HookLibInfo |
Entity that holds information about hook libraries and their parameters. | |
typedef std::vector< HookLibInfo > | HookLibsCollection |
A storage for information about hook libraries. | |
typedef boost::shared_ptr< HookLibsCollection > | HookLibsCollectionPtr |
Shared pointer to collection of hooks libraries. | |
typedef boost::shared_ptr< ParkingLotHandle > | ParkingLotHandlePtr |
Pointer to the parking lot handle. | |
typedef boost::shared_ptr< ParkingLot > | ParkingLotPtr |
Type of the pointer to the parking lot. | |
typedef boost::shared_ptr< ParkingLots > | ParkingLotsPtr |
Type of the pointer to the parking lots. | |
typedef boost::shared_ptr< ServerHooks > | ServerHooksPtr |
Functions | |
std::vector< std::string > | extractNames (const isc::hooks::HookLibsCollection &libraries) |
Extracts names from HookLibsCollection. | |
void | hooksStaticLinkInit () |
User-Library Initialization for Statically-Linked Kea. | |
typedef boost::shared_ptr<CalloutHandle> isc::hooks::CalloutHandlePtr |
A shared pointer to a CalloutHandle object.
Definition at line 470 of file callout_handle.h.
typedef int(* isc::hooks::CalloutPtr) (CalloutHandle &) |
Typedef for a callout pointer. (Callouts must have "C" linkage.)
Definition at line 22 of file library_handle.h.
typedef std::pair<std::string, data::ConstElementPtr> isc::hooks::HookLibInfo |
Entity that holds information about hook libraries and their parameters.
The first parameter is a full filename with path to the library. The second parameter is a map of parameters that configure the library. There's always at least one parameter: "library", which contains the library name.
typedef std::vector<HookLibInfo> isc::hooks::HookLibsCollection |
typedef boost::shared_ptr<HookLibsCollection> isc::hooks::HookLibsCollectionPtr |
typedef boost::shared_ptr<ParkingLotHandle> isc::hooks::ParkingLotHandlePtr |
Pointer to the parking lot handle.
Definition at line 381 of file parking_lots.h.
typedef boost::shared_ptr<ParkingLot> isc::hooks::ParkingLotPtr |
Type of the pointer to the parking lot.
Definition at line 294 of file parking_lots.h.
typedef boost::shared_ptr<ParkingLots> isc::hooks::ParkingLotsPtr |
Type of the pointer to the parking lots.
Definition at line 421 of file parking_lots.h.
typedef boost::shared_ptr<ServerHooks> isc::hooks::ServerHooksPtr |
Definition at line 43 of file server_hooks.h.
std::vector< std::string > isc::hooks::extractNames | ( | const isc::hooks::HookLibsCollection & | libraries | ) |
Extracts names from HookLibsCollection.
Extracts library names from full library information structure.
libraries | Hook libraries collection |
Definition at line 19 of file libinfo.cc.
Referenced by isc::hooks::HooksConfig::verifyLibraries().
void isc::hooks::hooksStaticLinkInit | ( | ) |
User-Library Initialization for Statically-Linked Kea.
If Kea is statically-linked, a user-created hooks library will not be able to access symbols in it. In particular, it will not be able to access singleton objects.
The hooks framework handles some of this. For example, although there is a singleton ServerHooks object, hooks framework objects store a reference to it when they are created. When the user library needs to register a callout (which requires access to the ServerHooks information), it accesses the ServerHooks object through a pointer passed from the Kea image.
The logging framework is more problematical. Here the code is partly statically linked (the Kea logging library) and partly shared (the log4cplus). The state of the former is not accessible to the user library, but the state of the latter is. So within the user library, we need to initialize the Kea logging library but not initialize the log4cplus code. Some of the initialization is done when the library is loaded, but other parts are done at run-time.
This function - to be called by the user library code in its load() function when running against a statically linked Kea - initializes the Kea logging library. In particular, it loads the message dictionary with the text of the Kea messages.
Definition at line 428 of file library_manager.cc.
References isc::log::initLogger(), and isc::log::isLoggingInitialized().
isc::log::Logger isc::hooks::callouts_logger | ( | "callouts" | ) |
Callouts logger.
This is the specialized logger used to log messages pertaining to the callouts execution. In particular, it logs when the callout is invoked and when it ends. It also logs the callout execution times.
Definition at line 44 of file hooks_log.h.
Referenced by isc::hooks::CalloutManager::callCallouts(), isc::hooks::CalloutManager::deregisterAllCallouts(), isc::hooks::CalloutManager::deregisterCallout(), and isc::hooks::CalloutManager::registerCallout().
|
extern |
Definition at line 11 of file hooks_messages.h.
Referenced by isc::hooks::CalloutManager::deregisterAllCallouts().
|
extern |
Definition at line 15 of file hooks_messages.h.
Referenced by isc::hooks::CalloutManager::callCallouts().
|
extern |
Definition at line 16 of file hooks_messages.h.
Referenced by isc::hooks::CalloutManager::deregisterCallout().
|
extern |
Definition at line 17 of file hooks_messages.h.
Referenced by isc::hooks::CalloutManager::callCallouts().
|
extern |
Definition at line 18 of file hooks_messages.h.
Referenced by isc::hooks::CalloutManager::callCallouts().
|
extern |
Definition at line 19 of file hooks_messages.h.
Referenced by isc::hooks::CalloutManager::registerCallout().
|
extern |
Definition at line 12 of file hooks_messages.h.
Referenced by isc::hooks::CalloutManager::callCallouts().
|
extern |
Definition at line 13 of file hooks_messages.h.
Referenced by isc::hooks::CalloutManager::callCallouts().
|
extern |
Definition at line 14 of file hooks_messages.h.
Referenced by isc::hooks::LibraryManager::prepareUnloadLibrary().
|
extern |
Definition at line 20 of file hooks_messages.h.
Referenced by isc::hooks::LibraryManager::closeLibrary().
|
extern |
Definition at line 25 of file hooks_log.h.
Referenced by isc::hooks::CalloutManager::callCallouts(), isc::hooks::LibraryManager::checkMultiThreadingCompatible(), isc::hooks::LibraryManager::checkVersion(), isc::hooks::LibraryManager::prepareUnloadLibrary(), isc::hooks::CalloutManager::registerCallout(), and isc::hooks::LibraryManager::registerStandardCallouts().
|
extern |
Definition at line 29 of file hooks_log.h.
Referenced by isc::hooks::CalloutManager::callCallouts(), isc::hooks::CalloutManager::deregisterAllCallouts(), and isc::hooks::CalloutManager::deregisterCallout().
|
extern |
Hooks debug Logging levels.
Defines the levels used to output debug messages in the Hooks framework. Note that higher numbers equate to more verbose (and detailed) output.
Definition at line 22 of file hooks_log.h.
Referenced by isc::hooks::LibraryManager::loadLibrary(), isc::hooks::LibraryManager::prepareUnloadLibrary(), isc::hooks::LibraryManager::runLoad(), and isc::hooks::LibraryManager::unloadLibrary().
|
extern |
Definition at line 21 of file hooks_messages.h.
Referenced by isc::hooks::ServerHooks::reset().
|
extern |
Definition at line 22 of file hooks_messages.h.
Referenced by isc::hooks::LibraryManager::checkVersion().
|
extern |
Definition at line 23 of file hooks_messages.h.
Referenced by isc::hooks::LibraryManager::closeLibrary().
|
extern |
Definition at line 24 of file hooks_messages.h.
Referenced by isc::hooks::LibraryManager::loadLibrary().
|
extern |
Definition at line 25 of file hooks_messages.h.
Referenced by isc::hooks::LibraryManager::loadLibrary().
|
extern |
Definition at line 26 of file hooks_messages.h.
Referenced by isc::hooks::LibraryManager::checkMultiThreadingCompatible().
|
extern |
Definition at line 27 of file hooks_messages.h.
Referenced by isc::hooks::LibraryManager::checkMultiThreadingCompatible().
|
extern |
Definition at line 28 of file hooks_messages.h.
Referenced by isc::hooks::LibraryManager::unloadLibrary().
|
extern |
Definition at line 29 of file hooks_messages.h.
Referenced by isc::hooks::LibraryManager::unloadLibrary().
|
extern |
Definition at line 30 of file hooks_messages.h.
Referenced by isc::hooks::LibraryManager::checkVersion().
|
extern |
Definition at line 31 of file hooks_messages.h.
Referenced by isc::hooks::LibraryManager::runLoad().
|
extern |
Definition at line 32 of file hooks_messages.h.
Referenced by isc::hooks::LibraryManager::runLoad().
|
extern |
Definition at line 33 of file hooks_messages.h.
Referenced by isc::hooks::LibraryManager::runLoad().
|
extern |
Definition at line 34 of file hooks_messages.h.
Referenced by isc::hooks::LibraryManager::runLoad().
isc::log::Logger isc::hooks::hooks_logger | ( | "hooks" | ) |
Hooks Logger.
Define the logger used to log messages. We could define it in multiple modules, but defining in a single module and linking to it saves time and space.
Definition at line 37 of file hooks_log.h.
Referenced by isc::hooks::LibraryManager::checkMultiThreadingCompatible(), isc::hooks::LibraryManager::checkVersion(), isc::hooks::LibraryManager::closeLibrary(), isc::dhcp::Dhcpv4Srv::declineLease(), isc::dhcp::Dhcpv6Srv::declineLease(), isc::dhcp::Dhcp4to6Ipc::handler(), isc::dhcp::Dhcp6to4Ipc::handler(), isc::hooks::LibraryManager::loadLibrary(), isc::hooks::LibraryManager::openLibrary(), isc::hooks::LibraryManager::prepareUnloadLibrary(), isc::dhcp::Dhcpv6Srv::processClientFqdn(), isc::dhcp::Dhcpv4Srv::processClientName(), isc::dhcp::Dhcpv4Srv::processLocalizedQuery4(), isc::dhcp::Dhcpv6Srv::processLocalizedQuery6(), isc::dhcp::Dhcpv4Srv::processPacket(), isc::dhcp::Dhcpv6Srv::processPacket(), isc::dhcp::Dhcpv4Srv::processPacketBufferSend(), isc::dhcp::Dhcpv6Srv::processPacketBufferSend(), isc::dhcp::Dhcpv4Srv::processPacketPktSend(), isc::dhcp::Dhcpv6Srv::processPacketPktSend(), isc::dhcp::Dhcpv4Srv::processRelease(), isc::hooks::LibraryManager::registerStandardCallouts(), isc::dhcp::Dhcpv6Srv::releaseIA_NA(), isc::dhcp::Dhcpv6Srv::releaseIA_PD(), isc::hooks::ServerHooks::reset(), isc::hooks::LibraryManager::runLoad(), isc::dhcp::Dhcpv4Srv::selectSubnet(), isc::dhcp::Dhcpv6Srv::selectSubnet(), isc::dhcp::Dhcpv4Srv::selectSubnet4o6(), and isc::hooks::LibraryManager::unloadLibrary().
|
extern |
Definition at line 35 of file hooks_messages.h.
Referenced by isc::hooks::LibraryManager::checkMultiThreadingCompatible().
|
extern |
Definition at line 36 of file hooks_messages.h.
Referenced by isc::hooks::LibraryManager::runLoad().
|
extern |
Definition at line 37 of file hooks_messages.h.
Referenced by isc::hooks::LibraryManager::prepareUnloadLibrary().
|
extern |
Definition at line 38 of file hooks_messages.h.
Referenced by isc::hooks::LibraryManager::checkVersion().
|
extern |
Definition at line 39 of file hooks_messages.h.
Referenced by isc::hooks::LibraryManager::openLibrary().
|
extern |
Definition at line 40 of file hooks_messages.h.
Referenced by isc::hooks::LibraryManager::registerStandardCallouts().
|
extern |
Definition at line 41 of file hooks_messages.h.
Referenced by isc::hooks::LibraryManager::prepareUnloadLibrary().
|
extern |
Definition at line 42 of file hooks_messages.h.
Referenced by isc::hooks::LibraryManager::prepareUnloadLibrary().
|
extern |
Definition at line 43 of file hooks_messages.h.
Referenced by isc::hooks::LibraryManager::prepareUnloadLibrary().
|
extern |
Definition at line 44 of file hooks_messages.h.
Referenced by isc::hooks::LibraryManager::prepareUnloadLibrary().
|
extern |
Definition at line 45 of file hooks_messages.h.
Referenced by isc::hooks::LibraryManager::checkVersion().