Kea  1.5.0
lease_cmds_callouts.cc
Go to the documentation of this file.
1 // Copyright (C) 2017-2018 Internet Systems Consortium, Inc. ("ISC")
2 //
3 // This Source Code Form is subject to the terms of the End User License
4 // Agreement. See COPYING file in the premium/ directory.
5 
6 
7 // Functions accessed by the hooks framework use C linkage to avoid the name
8 // mangling that accompanies use of the C++ compiler as well as to avoid
9 // issues related to namespaces.
10 
11 #include <config.h>
12 
13 #include <lease_cmds.h>
14 #include <lease_cmds_log.h>
15 #include <cc/command_interpreter.h>
16 #include <hooks/hooks.h>
17 
18 using namespace isc::config;
19 using namespace isc::data;
20 using namespace isc::hooks;
21 using namespace isc::lease_cmds;
22 
23 extern "C" {
24 
31 int lease4_add(CalloutHandle& handle) {
32  LeaseCmds lease_cmds;
33  return(lease_cmds.leaseAddHandler(handle));
34 }
35 
42 int lease6_add(CalloutHandle& handle) {
43  LeaseCmds lease_cmds;
44  return(lease_cmds.leaseAddHandler(handle));
45 }
46 
53 int lease4_get(CalloutHandle& handle) {
54  LeaseCmds lease_cmds;
55  return(lease_cmds.leaseGetHandler(handle));
56 }
57 
64 int lease6_get(CalloutHandle& handle) {
65  LeaseCmds lease_cmds;
66  return(lease_cmds.leaseGetHandler(handle));
67 }
68 
76  LeaseCmds lease_cmds;
77  return (lease_cmds.leaseGetAllHandler(handle));
78 }
79 
87  LeaseCmds lease_cmds;
88  return (lease_cmds.leaseGetAllHandler(handle));
89 }
90 
98  LeaseCmds lease_cmds;
99  return (lease_cmds.leaseGetPageHandler(handle));
100 }
101 
109  LeaseCmds lease_cmds;
110  return (lease_cmds.leaseGetPageHandler(handle));
111 }
112 
119 int lease4_del(CalloutHandle& handle) {
120  LeaseCmds lease_cmds;
121  return(lease_cmds.lease4DelHandler(handle));
122 }
123 
130 int lease6_del(CalloutHandle& handle) {
131  LeaseCmds lease_cmds;
132  return(lease_cmds.lease6DelHandler(handle));
133 }
134 
142  LeaseCmds lease_cmds;
143  return(lease_cmds.lease4UpdateHandler(handle));
144 }
145 
153  LeaseCmds lease_cmds;
154  return(lease_cmds.lease6UpdateHandler(handle));
155 }
156 
164  LeaseCmds lease_cmds;
165  return(lease_cmds.lease4WipeHandler(handle));
166 }
167 
175  LeaseCmds lease_cmds;
176  return(lease_cmds.lease6WipeHandler(handle));
177 }
178 
183 int load(LibraryHandle& handle) {
184  handle.registerCommandCallout("lease4-add", lease4_add);
185  handle.registerCommandCallout("lease6-add", lease6_add);
186  handle.registerCommandCallout("lease4-get", lease4_get);
187  handle.registerCommandCallout("lease6-get", lease6_get);
188  handle.registerCommandCallout("lease4-get-all", lease4_get_all);
189  handle.registerCommandCallout("lease6-get-all", lease6_get_all);
190  handle.registerCommandCallout("lease4-get-page", lease4_get_page);
191  handle.registerCommandCallout("lease6-get-page", lease6_get_page);
192  handle.registerCommandCallout("lease4-del", lease4_del);
193  handle.registerCommandCallout("lease6-del", lease6_del);
194  handle.registerCommandCallout("lease4-update", lease4_update);
195  handle.registerCommandCallout("lease6-update", lease6_update);
196  handle.registerCommandCallout("lease4-wipe", lease4_wipe);
197  handle.registerCommandCallout("lease6-wipe", lease6_wipe);
198 
199  LOG_INFO(lease_cmds_logger, LEASE_CMDS_INIT_OK);
200  return (0);
201 }
202 
206 int unload() {
207  LOG_INFO(lease_cmds_logger, LEASE_CMDS_DEINIT_OK);
208  return (0);
209 }
210 
211 } // end extern "C"
lease_cmds.h
hooks.h
isc::hooks::CalloutHandle
Per-packet callout handle.
Definition: callout_handle.h:84
lease6_wipe
int lease6_wipe(CalloutHandle &handle)
This is a command callout for 'lease6-wipe' command.
Definition: lease_cmds_callouts.cc:174
lease4_add
int lease4_add(CalloutHandle &handle)
This is a command callout for 'lease4-add' command.
Definition: lease_cmds_callouts.cc:31
lease4_get_page
int lease4_get_page(CalloutHandle &handle)
This is a command callout for 'lease4-get-page' command.
Definition: lease_cmds_callouts.cc:97
lease4_wipe
int lease4_wipe(CalloutHandle &handle)
This is a command callout for 'lease4-wipe' command.
Definition: lease_cmds_callouts.cc:163
isc::config
Definition: command_interpreter.cc:23
isc::lease_cmds::LeaseCmds
Implements the logic for processing commands pertaining to lease manipulation.
Definition: lease_cmds.h:26
isc::lease_cmds::LeaseCmds::lease6UpdateHandler
int lease6UpdateHandler(hooks::CalloutHandle &handle)
lease6-update handler
Definition: lease_cmds.cc:1037
isc::lease_cmds::lease_cmds_logger
isc::log::Logger lease_cmds_logger("lease-cmds-hooks")
Definition: lease_cmds_log.h:17
isc::lease_cmds::LeaseCmds::lease6DelHandler
int lease6DelHandler(hooks::CalloutHandle &handle)
lease6-del command handler
Definition: lease_cmds.cc:1027
lease6_get_all
int lease6_get_all(CalloutHandle &handle)
This is a command callout for 'lease6-get-all' command.
Definition: lease_cmds_callouts.cc:86
isc::data
Definition: cfg_to_element.h:25
lease4_del
int lease4_del(CalloutHandle &handle)
This is a command callout for 'lease4-del' command.
Definition: lease_cmds_callouts.cc:119
lease6_get
int lease6_get(CalloutHandle &handle)
This is a command callout for 'lease6-get' command.
Definition: lease_cmds_callouts.cc:64
isc::hooks::LibraryHandle
Library handle.
Definition: library_handle.h:60
isc::lease_cmds
Definition: lease_cmds.cc:40
lease_cmds_log.h
unload
int unload()
This function is called when the library is unloaded.
Definition: lease_cmds_callouts.cc:206
lease4_get
int lease4_get(CalloutHandle &handle)
This is a command callout for 'lease4-get' command.
Definition: lease_cmds_callouts.cc:53
lease6_get_page
int lease6_get_page(CalloutHandle &handle)
This is a command callout for 'lease6-get-page' command.
Definition: lease_cmds_callouts.cc:108
isc::lease_cmds::LeaseCmds::leaseGetAllHandler
int leaseGetAllHandler(hooks::CalloutHandle &handle)
lease4-get-all, lease6-get-all commands handler
Definition: lease_cmds.cc:1012
isc::lease_cmds::LeaseCmds::leaseGetHandler
int leaseGetHandler(hooks::CalloutHandle &handle)
lease4-get, lease6-get command handler
Definition: lease_cmds.cc:1007
isc::lease_cmds::LeaseCmds::lease4WipeHandler
int lease4WipeHandler(hooks::CalloutHandle &handle)
lease4-wipe handler
Definition: lease_cmds.cc:1042
command_interpreter.h
lease4_update
int lease4_update(CalloutHandle &handle)
This is a command callout for 'lease4-update' command.
Definition: lease_cmds_callouts.cc:141
isc::lease_cmds::LeaseCmds::leaseAddHandler
int leaseAddHandler(hooks::CalloutHandle &handle)
lease4-add, lease6-add command handler
Definition: lease_cmds.cc:1002
lease6_update
int lease6_update(CalloutHandle &handle)
This is a command callout for 'lease6-update' command.
Definition: lease_cmds_callouts.cc:152
isc::lease_cmds::LeaseCmds::leaseGetPageHandler
int leaseGetPageHandler(hooks::CalloutHandle &handle)
lease4-get-page, lease6-get-page commands handler
Definition: lease_cmds.cc:1017
lease6_add
int lease6_add(CalloutHandle &handle)
This is a command callout for 'lease6-add' command.
Definition: lease_cmds_callouts.cc:42
load
int load(LibraryHandle &handle)
This function is called when the library is loaded.
Definition: lease_cmds_callouts.cc:183
isc::lease_cmds::LeaseCmds::lease4DelHandler
int lease4DelHandler(hooks::CalloutHandle &handle)
lease4-del command handler
Definition: lease_cmds.cc:1022
isc::hooks
Definition: callout_handle.cc:21
isc::hooks::LibraryHandle::registerCommandCallout
void registerCommandCallout(const std::string &command_name, CalloutPtr callout)
Register control command handler.
Definition: library_handle.cc:41
lease4_get_all
int lease4_get_all(CalloutHandle &handle)
This is a command callout for 'lease4-get-all' command.
Definition: lease_cmds_callouts.cc:75
lease6_del
int lease6_del(CalloutHandle &handle)
This is a command callout for 'lease6-del' command.
Definition: lease_cmds_callouts.cc:130
LOG_INFO
#define LOG_INFO(LOGGER, MESSAGE)
Macro to conveniently test info output and log it.
Definition: macros.h:20
isc::lease_cmds::LeaseCmds::lease6WipeHandler
int lease6WipeHandler(hooks::CalloutHandle &handle)
lease6-wipe handler
Definition: lease_cmds.cc:1047
isc::lease_cmds::LeaseCmds::lease4UpdateHandler
int lease4UpdateHandler(hooks::CalloutHandle &handle)
lease4-update handler
Definition: lease_cmds.cc:1032