From b7c33a05cd6ec3b6e25eb3a94b41e3f720e3f8e5 Mon Sep 17 00:00:00 2001 From: Tomek Mrugalski Date: Mon, 3 Feb 2014 18:50:24 +0100 Subject: [PATCH] [3274] Added dhcp/classify.h --- src/lib/dhcp/classify.h | 42 +++++++++++++++++++++++++++++++++++++++++ src/lib/dhcp/pkt4.h | 4 +--- src/lib/dhcp/pkt6.h | 4 +--- 3 files changed, 44 insertions(+), 6 deletions(-) create mode 100644 src/lib/dhcp/classify.h diff --git a/src/lib/dhcp/classify.h b/src/lib/dhcp/classify.h new file mode 100644 index 0000000000..73b34ad819 --- /dev/null +++ b/src/lib/dhcp/classify.h @@ -0,0 +1,42 @@ +// Copyright (C) 2014 Internet Systems Consortium, Inc. ("ISC") +// +// Permission to use, copy, modify, and/or distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH +// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +// AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, +// INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +// LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +// PERFORMANCE OF THIS SOFTWARE. + +#include + +#include +#include + +/// @file classify.h +/// +/// @brief Defines basic elements of client classification. +/// +/// This file defines common elements used for client classification. +/// It is simple for now, but the complexity involved in client +/// classification is expected to grow significantly. +/// +/// @todo This file should be moved to dhcpsrv eventually as the classification +/// is server side concept. That is not possible yet, as the Pkt4 and Pkt6 +/// classes have server-side implementation, even though they reside in the +/// dhcp directory. + +namespace isc { + +namespace dhcp { + + /// Container for storing client classes + typedef std::set Classes; + +}; + +}; diff --git a/src/lib/dhcp/pkt4.h b/src/lib/dhcp/pkt4.h index 485d28a9dc..37027df0e5 100644 --- a/src/lib/dhcp/pkt4.h +++ b/src/lib/dhcp/pkt4.h @@ -20,6 +20,7 @@ #include #include #include +#include #include #include @@ -53,9 +54,6 @@ public: /// to check whether client requested broadcast response. const static uint16_t FLAG_BROADCAST_MASK = 0x8000; - /// Container for storing client classes - typedef std::set Classes; - /// Constructor, used in replying to a message. /// /// @param msg_type type of message (e.g. DHCPDISOVER=1) diff --git a/src/lib/dhcp/pkt6.h b/src/lib/dhcp/pkt6.h index db80fb9996..44e9114ba7 100644 --- a/src/lib/dhcp/pkt6.h +++ b/src/lib/dhcp/pkt6.h @@ -17,6 +17,7 @@ #include #include +#include #include #include @@ -48,9 +49,6 @@ public: TCP = 1 // there are TCP DHCPv6 packets (bulk leasequery, failover) }; - /// Container for storing client classes - typedef std::set Classes; - /// @brief defines relay search pattern /// /// Defines order in which options are searched in a message that