Kea  1.9.9-git
lease_cmds_callouts.cc
Go to the documentation of this file.
1 // Copyright (C) 2017-2020 Internet Systems Consortium, Inc. ("ISC")
2 //
3 // This Source Code Form is subject to the terms of the Mozilla Public
4 // License, v. 2.0. If a copy of the MPL was not distributed with this
5 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
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 
54  LeaseCmds lease_cmds;
55  return (lease_cmds.lease6BulkApplyHandler(handle));
56 }
57 
64 int lease4_get(CalloutHandle& handle) {
65  LeaseCmds lease_cmds;
66  return(lease_cmds.leaseGetHandler(handle));
67 }
68 
75 int lease6_get(CalloutHandle& handle) {
76  LeaseCmds lease_cmds;
77  return(lease_cmds.leaseGetHandler(handle));
78 }
79 
87  LeaseCmds lease_cmds;
88  return (lease_cmds.leaseGetAllHandler(handle));
89 }
90 
98  LeaseCmds lease_cmds;
99  return (lease_cmds.leaseGetAllHandler(handle));
100 }
101 
109  LeaseCmds lease_cmds;
110  return (lease_cmds.leaseGetPageHandler(handle));
111 }
112 
120  LeaseCmds lease_cmds;
121  return (lease_cmds.leaseGetPageHandler(handle));
122 }
123 
131  LeaseCmds lease_cmds;
132  return (lease_cmds.leaseGetByHwAddressHandler(handle));
133 }
134 
142  LeaseCmds lease_cmds;
143  return (lease_cmds.leaseGetByClientIdHandler(handle));
144 }
145 
153  LeaseCmds lease_cmds;
154  return (lease_cmds.leaseGetByDuidHandler(handle));
155 }
156 
164  LeaseCmds lease_cmds;
165  return (lease_cmds.leaseGetByHostnameHandler(handle));
166 }
167 
175  LeaseCmds lease_cmds;
176  return (lease_cmds.leaseGetByHostnameHandler(handle));
177 }
178 
185 int lease4_del(CalloutHandle& handle) {
186  LeaseCmds lease_cmds;
187  return(lease_cmds.lease4DelHandler(handle));
188 }
189 
196 int lease6_del(CalloutHandle& handle) {
197  LeaseCmds lease_cmds;
198  return(lease_cmds.lease6DelHandler(handle));
199 }
200 
208  LeaseCmds lease_cmds;
209  return(lease_cmds.lease4UpdateHandler(handle));
210 }
211 
219  LeaseCmds lease_cmds;
220  return(lease_cmds.lease6UpdateHandler(handle));
221 }
222 
230  LeaseCmds lease_cmds;
231  return(lease_cmds.lease4WipeHandler(handle));
232 }
233 
241  LeaseCmds lease_cmds;
242  return(lease_cmds.lease6WipeHandler(handle));
243 }
244 
252  LeaseCmds lease_cmds;
253  return(lease_cmds.lease4ResendDdnsHandler(handle));
254 }
255 
263  LeaseCmds lease_cmds;
264  return(lease_cmds.lease6ResendDdnsHandler(handle));
265 }
266 
271 int load(LibraryHandle& handle) {
272  handle.registerCommandCallout("lease4-add", lease4_add);
273  handle.registerCommandCallout("lease6-add", lease6_add);
274  handle.registerCommandCallout("lease6-bulk-apply", lease6_bulk_apply);
275  handle.registerCommandCallout("lease4-get", lease4_get);
276  handle.registerCommandCallout("lease6-get", lease6_get);
277  handle.registerCommandCallout("lease4-get-all", lease4_get_all);
278  handle.registerCommandCallout("lease6-get-all", lease6_get_all);
279  handle.registerCommandCallout("lease4-get-page", lease4_get_page);
280  handle.registerCommandCallout("lease6-get-page", lease6_get_page);
281  handle.registerCommandCallout("lease4-get-by-hw-address",
283  handle.registerCommandCallout("lease4-get-by-client-id",
285  handle.registerCommandCallout("lease6-get-by-duid", lease6_get_by_duid);
286  handle.registerCommandCallout("lease4-get-by-hostname",
288  handle.registerCommandCallout("lease6-get-by-hostname",
290  handle.registerCommandCallout("lease4-del", lease4_del);
291  handle.registerCommandCallout("lease6-del", lease6_del);
292  handle.registerCommandCallout("lease4-update", lease4_update);
293  handle.registerCommandCallout("lease6-update", lease6_update);
294  handle.registerCommandCallout("lease4-wipe", lease4_wipe);
295  handle.registerCommandCallout("lease6-wipe", lease6_wipe);
296  handle.registerCommandCallout("lease4-resend-ddns", lease4_resend_ddns);
297  handle.registerCommandCallout("lease6-resend-ddns", lease6_resend_ddns);
298 
300  return (0);
301 }
302 
306 int unload() {
308  return (0);
309 }
310 
315  return (1);
316 }
317 
318 } // end extern "C"
int lease4_get_by_client_id(CalloutHandle &handle)
This is a command callout for 'lease4-get-by-client-id' command.
int leaseGetByHwAddressHandler(hooks::CalloutHandle &handle)
lease4-get-by-hw-address command handler
Definition: lease_cmds.cc:2275
int lease6_get_by_duid(CalloutHandle &handle)
This is a command callout for 'lease6-get-by-duid' command.
int lease6_get(CalloutHandle &handle)
This is a command callout for 'lease6-get' command.
int lease4_get_by_hostname(CalloutHandle &handle)
This is a command callout for 'lease4-get-by-hostname' command.
int load(LibraryHandle &handle)
This function is called when the library is loaded.
int lease4_get(CalloutHandle &handle)
This is a command callout for 'lease4-get' command.
int leaseGetByClientIdHandler(hooks::CalloutHandle &handle)
lease4-get-by-client-id command handler
Definition: lease_cmds.cc:2280
#define LOG_INFO(LOGGER, MESSAGE)
Macro to conveniently test info output and log it.
Definition: macros.h:20
int leaseGetHandler(hooks::CalloutHandle &handle)
lease4-get, lease6-get command handler
Definition: lease_cmds.cc:2260
int leaseGetByHostnameHandler(hooks::CalloutHandle &handle)
lease4-get-by-hostname and lease6-get-by-hostname commands handler
Definition: lease_cmds.cc:2290
const isc::log::MessageID LEASE_CMDS_DEINIT_OK
int lease6_bulk_apply(CalloutHandle &handle)
This is a command callout for 'lease6-bulk-apply' command.
void registerCommandCallout(const std::string &command_name, CalloutPtr callout)
Register control command handler.
int lease4UpdateHandler(hooks::CalloutHandle &handle)
lease4-update handler
Definition: lease_cmds.cc:2305
int lease6_update(CalloutHandle &handle)
This is a command callout for 'lease6-update' command.
int lease4_get_by_hw_address(CalloutHandle &handle)
This is a command callout for 'lease4-get-by-hw-address' command.
int lease4_wipe(CalloutHandle &handle)
This is a command callout for 'lease4-wipe' command.
int lease4_resend_ddns(CalloutHandle &handle)
This is a command callout for 'lease4-resend-ddns' command.
int lease4WipeHandler(hooks::CalloutHandle &handle)
lease4-wipe handler
Definition: lease_cmds.cc:2315
isc::log::Logger lease_cmds_logger("lease-cmds-hooks")
int lease6_add(CalloutHandle &handle)
This is a command callout for 'lease6-add' command.
Per-packet callout handle.
int lease4_get_all(CalloutHandle &handle)
This is a command callout for 'lease4-get-all' command.
Implements the logic for processing commands pertaining to lease manipulation.
Definition: lease_cmds.h:26
int leaseAddHandler(hooks::CalloutHandle &handle)
lease4-add, lease6-add command handler
Definition: lease_cmds.cc:2250
int lease4_update(CalloutHandle &handle)
This is a command callout for 'lease4-update' command.
int lease6_wipe(CalloutHandle &handle)
This is a command callout for 'lease6-wipe' command.
int lease6_del(CalloutHandle &handle)
This is a command callout for 'lease6-del' command.
int lease6UpdateHandler(hooks::CalloutHandle &handle)
lease6-update handler
Definition: lease_cmds.cc:2310
int leaseGetPageHandler(hooks::CalloutHandle &handle)
lease4-get-page, lease6-get-page commands handler
Definition: lease_cmds.cc:2270
int leaseGetAllHandler(hooks::CalloutHandle &handle)
lease4-get-all, lease6-get-all commands handler
Definition: lease_cmds.cc:2265
int lease6_get_by_hostname(CalloutHandle &handle)
This is a command callout for 'lease6-get-by-hostname' command.
int lease4ResendDdnsHandler(hooks::CalloutHandle &handle)
lease4-resend-ddns command handler
Definition: lease_cmds.cc:2327
int lease4_add(CalloutHandle &handle)
This is a command callout for 'lease4-add' command.
int lease4DelHandler(hooks::CalloutHandle &handle)
lease4-del command handler
Definition: lease_cmds.cc:2295
int lease6WipeHandler(hooks::CalloutHandle &handle)
lease6-wipe handler
Definition: lease_cmds.cc:2321
This file contains several functions and constants that are used for handling commands and responses ...
int unload()
This function is called when the library is unloaded.
int lease6DelHandler(hooks::CalloutHandle &handle)
lease6-del command handler
Definition: lease_cmds.cc:2300
int lease6BulkApplyHandler(hooks::CalloutHandle &handle)
lease6-bulk-apply command handler
Definition: lease_cmds.cc:2255
const isc::log::MessageID LEASE_CMDS_INIT_OK
int lease6_resend_ddns(CalloutHandle &handle)
This is a command callout for 'lease6-resend-ddns' command.
int lease4_get_page(CalloutHandle &handle)
This is a command callout for 'lease4-get-page' command.
int lease4_del(CalloutHandle &handle)
This is a command callout for 'lease4-del' command.
int multi_threading_compatible()
This function is called to retrieve the multi-threading compatibility.
int leaseGetByDuidHandler(hooks::CalloutHandle &handle)
lease6-get-by-duid command handler
Definition: lease_cmds.cc:2285
int lease6ResendDdnsHandler(hooks::CalloutHandle &handle)
lease6-resend-ddns command handler
Definition: lease_cmds.cc:2332
int lease6_get_page(CalloutHandle &handle)
This is a command callout for 'lease6-get-page' command.
int lease6_get_all(CalloutHandle &handle)
This is a command callout for 'lease6-get-all' command.