Kea  2.1.7-git
cfg_consistency.h
Go to the documentation of this file.
1 // Copyright (C) 2018-2019 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 #ifndef CFG_CONSISTENCY_H
8 #define CFG_CONSISTENCY_H
9 
10 #include <cc/cfg_to_element.h>
11 #include <cc/user_context.h>
12 
13 namespace isc {
14 namespace dhcp {
15 
16 
20 
21  public:
22 
24  enum LeaseSanity {
25  LEASE_CHECK_NONE, // Skip sanity checks
26  LEASE_CHECK_WARN, // Print a warning if subnet-id is incorrect.
27  LEASE_CHECK_FIX, // If subnet-id is incorrect, try to fix it (try to pick
28  // appropriate subnet, but if it fails, keep the lease,
29  // despite its broken subnet-id.
30  LEASE_CHECK_FIX_DEL, // If subnet-id is incorrect, try to fix it (try to pick
31  // appropriate subnet. If it fails, delete broken lease.
32  LEASE_CHECK_DEL // Delete leases with invalid subnet-id.
33  };
34 
37  : lease_sanity_check_(LEASE_CHECK_NONE) {
38 
39  }
40 
44  virtual isc::data::ElementPtr toElement() const;
45 
50  lease_sanity_check_ = l;
51  }
52 
57  return (lease_sanity_check_);
58  }
59 
63  static std::string sanityCheckToText(LeaseSanity check_type);
64 
65  private:
66 
68  LeaseSanity lease_sanity_check_;
69 };
70 
72 typedef boost::shared_ptr<CfgConsistency> CfgConsistencyPtr;
73 
74 }; // namespace isc::dhcp
75 }; // namespace isc
76 
77 #endif /* CFG_CONSISTENCY_H */
Base class for user context.
Definition: user_context.h:22
boost::shared_ptr< Element > ElementPtr
Definition: data.h:24
boost::shared_ptr< CfgConsistency > CfgConsistencyPtr
Type used to for pointing to CfgConsistency structure.
void setLeaseSanityCheck(LeaseSanity l)
Sets specific sanity checks mode for leases.
LeaseSanity
Values for subnet-id sanity checks done for leases.
Parameters for various consistency checks.
virtual isc::data::ElementPtr toElement() const
Returns JSON representation.
Abstract class for configuration Cfg_* classes.
LeaseSanity getLeaseSanityCheck() const
Returns specific sanity checks mode for leases.
Defines the logger used by the top-level component of kea-lfc.
static std::string sanityCheckToText(LeaseSanity check_type)
Converts sanity check value to printable text.
CfgConsistency()
Constructor.