Browse Source

[2475] Split dhcp files into dhcp and dhcpsrv directories

Stephen Morris 12 years ago
parent
commit
d2551c3b2b
48 changed files with 326 additions and 203 deletions
  1. 2 0
      configure.ac
  2. 1 1
      src/bin/dhcp6/Makefile.am
  3. 18 15
      src/bin/dhcp6/config_parser.cc
  4. 12 13
      src/bin/dhcp6/dhcp6_srv.cc
  5. 4 3
      src/bin/dhcp6/dhcp6_srv.h
  6. 1 1
      src/bin/dhcp6/tests/Makefile.am
  7. 12 11
      src/bin/dhcp6/tests/config_parser_unittest.cc
  8. 7 5
      src/bin/dhcp6/tests/ctrl_dhcp6_srv_unittest.cc
  9. 9 9
      src/bin/dhcp6/tests/dhcp6_srv_unittest.cc
  10. 2 2
      src/bin/dhcp6/tests/dhcp6_unittests.cc
  11. 1 1
      src/lib/Makefile.am
  12. 4 35
      src/lib/dhcp/Makefile.am
  13. 5 34
      src/lib/dhcp/tests/Makefile.am
  14. 52 0
      src/lib/dhcpsrv/Makefile.am
  15. 3 2
      src/lib/dhcp/addr_utilities.cc
  16. 0 0
      src/lib/dhcpsrv/addr_utilities.h
  17. 3 3
      src/lib/dhcp/alloc_engine.cc
  18. 5 4
      src/lib/dhcp/alloc_engine.h
  19. 1 1
      src/lib/dhcp/cfgmgr.cc
  20. 10 8
      src/lib/dhcp/cfgmgr.h
  21. 0 0
      src/lib/dhcpsrv/database_backends.dox
  22. 0 0
      src/lib/dhcpsrv/dhcpdb_create.mysql
  23. 1 1
      src/lib/dhcp/lease_mgr.cc
  24. 1 1
      src/lib/dhcp/lease_mgr.h
  25. 3 3
      src/lib/dhcp/lease_mgr_factory.cc
  26. 3 2
      src/lib/dhcp/lease_mgr_factory.h
  27. 2 2
      src/lib/dhcp/memfile_lease_mgr.cc
  28. 4 4
      src/lib/dhcp/memfile_lease_mgr.h
  29. 1 1
      src/lib/dhcp/mysql_lease_mgr.cc
  30. 4 2
      src/lib/dhcp/mysql_lease_mgr.h
  31. 2 2
      src/lib/dhcp/pool.cc
  32. 3 1
      src/lib/dhcp/pool.h
  33. 3 2
      src/lib/dhcp/subnet.cc
  34. 5 4
      src/lib/dhcp/subnet.h
  35. 70 0
      src/lib/dhcpsrv/tests/Makefile.am
  36. 1 1
      src/lib/dhcp/tests/addr_utilities_unittest.cc
  37. 9 5
      src/lib/dhcp/tests/alloc_engine_unittest.cc
  38. 4 2
      src/lib/dhcp/tests/cfgmgr_unittest.cc
  39. 4 3
      src/lib/dhcp/tests/lease_mgr_factory_unittest.cc
  40. 4 3
      src/lib/dhcp/tests/lease_mgr_unittest.cc
  41. 6 5
      src/lib/dhcp/tests/memfile_lease_mgr_unittest.cc
  42. 5 4
      src/lib/dhcp/tests/mysql_lease_mgr_unittest.cc
  43. 4 2
      src/lib/dhcp/tests/pool_unittest.cc
  44. 27 0
      src/lib/dhcpsrv/tests/run_unittests.cc
  45. 0 0
      src/lib/dhcpsrv/tests/schema_copy.h
  46. 4 3
      src/lib/dhcp/tests/subnet_unittest.cc
  47. 4 2
      src/lib/dhcp/tests/triplet_unittest.cc
  48. 0 0
      src/lib/dhcpsrv/triplet.h

+ 2 - 0
configure.ac

@@ -1264,6 +1264,8 @@ AC_CONFIG_FILES([Makefile
                  src/lib/dns/benchmarks/Makefile
                  src/lib/dhcp/Makefile
                  src/lib/dhcp/tests/Makefile
+                 src/lib/dhcpsrv/Makefile
+                 src/lib/dhcpsrv/tests/Makefile
                  src/lib/exceptions/Makefile
                  src/lib/exceptions/tests/Makefile
                  src/lib/datasrc/Makefile

+ 1 - 1
src/bin/dhcp6/Makefile.am

@@ -64,7 +64,7 @@ b10_dhcp6_LDADD += $(top_builddir)/src/lib/util/libb10-util.la
 b10_dhcp6_LDADD += $(top_builddir)/src/lib/asiolink/libb10-asiolink.la
 b10_dhcp6_LDADD += $(top_builddir)/src/lib/log/libb10-log.la
 b10_dhcp6_LDADD += $(top_builddir)/src/lib/dhcp/libb10-dhcp++.la
-b10_dhcp6_LDADD += $(top_builddir)/src/lib/dhcp/libb10-dhcpsrv.la
+b10_dhcp6_LDADD += $(top_builddir)/src/lib/dhcpsrv/libb10-dhcpsrv.la
 b10_dhcp6_LDADD += $(top_builddir)/src/lib/config/libb10-cfgclient.la
 b10_dhcp6_LDADD += $(top_builddir)/src/lib/cc/libb10-cc.la
 

+ 18 - 15
src/bin/dhcp6/config_parser.cc

@@ -12,27 +12,30 @@
 // OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 // PERFORMANCE OF THIS SOFTWARE.
 
-#include <stdint.h>
-#include <iostream>
-#include <vector>
-#include <map>
-#include <boost/foreach.hpp>
-#include <boost/shared_ptr.hpp>
-#include <boost/scoped_ptr.hpp>
-#include <boost/lexical_cast.hpp>
-#include <boost/algorithm/string.hpp>
-#include <util/encode/hex.h>
 #include <asiolink/io_address.h>
 #include <cc/data.h>
 #include <config/ccsession.h>
-#include <log/logger_support.h>
 #include <dhcp/libdhcp++.h>
-#include <dhcp/triplet.h>
-#include <dhcp/pool.h>
-#include <dhcp/subnet.h>
-#include <dhcp/cfgmgr.h>
 #include <dhcp6/config_parser.h>
 #include <dhcp6/dhcp6_log.h>
+#include <dhcpsrv/cfgmgr.h>
+#include <dhcpsrv/pool.h>
+#include <dhcpsrv/subnet.h>
+#include <dhcpsrv/triplet.h>
+#include <log/logger_support.h>
+#include <util/encode/hex.h>
+
+#include <boost/algorithm/string.hpp>
+#include <boost/foreach.hpp>
+#include <boost/lexical_cast.hpp>
+#include <boost/scoped_ptr.hpp>
+#include <boost/shared_ptr.hpp>
+
+#include <iostream>
+#include <map>
+#include <vector>
+
+#include <stdint.h>
 
 using namespace std;
 using namespace isc::data;

+ 12 - 13
src/bin/dhcp6/dhcp6_srv.cc

@@ -14,33 +14,32 @@
 
 #include <config.h>
 
-#include <stdlib.h>
-#include <time.h>
-
 #include <asiolink/io_address.h>
-#include <dhcp6/dhcp6_log.h>
-#include <dhcp6/dhcp6_srv.h>
 #include <dhcp/dhcp6.h>
+#include <dhcp/duid.h>
 #include <dhcp/iface_mgr.h>
 #include <dhcp/libdhcp++.h>
 #include <dhcp/option6_addrlst.h>
-#include <dhcp/option6_iaaddr.h>
 #include <dhcp/option6_ia.h>
+#include <dhcp/option6_iaaddr.h>
+#include <dhcp/option6_iaaddr.h>
 #include <dhcp/option6_int_array.h>
 #include <dhcp/pkt6.h>
-#include <dhcp/subnet.h>
-#include <dhcp/cfgmgr.h>
+#include <dhcp6/dhcp6_log.h>
+#include <dhcp6/dhcp6_srv.h>
+#include <dhcpsrv/cfgmgr.h>
+#include <dhcpsrv/lease_mgr.h>
+#include <dhcpsrv/lease_mgr_factory.h>
+#include <dhcpsrv/subnet.h>
 #include <exceptions/exceptions.h>
 #include <util/io_utilities.h>
 #include <util/range_utilities.h>
-#include <dhcp/duid.h>
-#include <dhcp/lease_mgr.h>
-#include <dhcp/lease_mgr_factory.h>
-#include <dhcp/cfgmgr.h>
-#include <dhcp/option6_iaaddr.h>
 
 #include <boost/foreach.hpp>
 
+#include <stdlib.h>
+#include <time.h>
+
 using namespace isc;
 using namespace isc::asiolink;
 using namespace isc::dhcp;

+ 4 - 3
src/bin/dhcp6/dhcp6_srv.h

@@ -17,15 +17,16 @@
 
 #include <iostream>
 
-#include <boost/noncopyable.hpp>
-#include <dhcp/alloc_engine.h>
 #include <dhcp/dhcp6.h>
 #include <dhcp/duid.h>
 #include <dhcp/option.h>
 #include <dhcp/option6_ia.h>
 #include <dhcp/option_definition.h>
 #include <dhcp/pkt6.h>
-#include <dhcp/subnet.h>
+#include <dhcpsrv/alloc_engine.h>
+#include <dhcpsrv/subnet.h>
+
+#include <boost/noncopyable.hpp>
 
 namespace isc {
 

+ 1 - 1
src/bin/dhcp6/tests/Makefile.am

@@ -65,7 +65,7 @@ dhcp6_unittests_LDADD = $(GTEST_LDADD)
 dhcp6_unittests_LDADD += $(top_builddir)/src/lib/asiolink/libb10-asiolink.la
 dhcp6_unittests_LDADD += $(top_builddir)/src/lib/util/libb10-util.la
 dhcp6_unittests_LDADD += $(top_builddir)/src/lib/dhcp/libb10-dhcp++.la
-dhcp6_unittests_LDADD += $(top_builddir)/src/lib/dhcp/libb10-dhcpsrv.la
+dhcp6_unittests_LDADD += $(top_builddir)/src/lib/dhcpsrv/libb10-dhcpsrv.la
 dhcp6_unittests_LDADD += $(top_builddir)/src/lib/log/libb10-log.la
 dhcp6_unittests_LDADD += $(top_builddir)/src/lib/exceptions/libb10-exceptions.la
 dhcp6_unittests_LDADD += $(top_builddir)/src/lib/config/libb10-cfgclient.la

+ 12 - 11
src/bin/dhcp6/tests/config_parser_unittest.cc

@@ -13,23 +13,24 @@
 // PERFORMANCE OF THIS SOFTWARE.
 
 #include <config.h>
-#include <iostream>
-#include <fstream>
-#include <sstream>
+
+#include <config/ccsession.h>
+#include <dhcp/libdhcp++.h>
+#include <dhcp/option6_ia.h>
+#include <dhcp6/config_parser.h>
+#include <dhcp6/dhcp6_srv.h>
+#include <dhcpsrv/cfgmgr.h>
+#include <dhcpsrv/subnet.h>
 
 #include <boost/foreach.hpp>
 
+#include <fstream>
+#include <iostream>
+#include <sstream>
+
 #include <arpa/inet.h>
 #include <gtest/gtest.h>
 
-#include <dhcp6/dhcp6_srv.h>
-#include <dhcp6/config_parser.h>
-#include <config/ccsession.h>
-#include <dhcp/libdhcp++.h>
-#include <dhcp/subnet.h>
-#include <dhcp/cfgmgr.h>
-#include <dhcp/option6_ia.h>
-
 using namespace std;
 using namespace isc;
 using namespace isc::dhcp;

+ 7 - 5
src/bin/dhcp6/tests/ctrl_dhcp6_srv_unittest.cc

@@ -13,16 +13,18 @@
 // PERFORMANCE OF THIS SOFTWARE.
 
 #include <config.h>
+
+#include <dhcp/dhcp6.h>
+#include <dhcp6/ctrl_dhcp6_srv.h>
+#include <config/ccsession.h>
+
+#include <gtest/gtest.h>
+
 #include <iostream>
 #include <fstream>
 #include <sstream>
 
 #include <arpa/inet.h>
-#include <gtest/gtest.h>
-
-#include <dhcp/dhcp6.h>
-#include <dhcp6/ctrl_dhcp6_srv.h>
-#include <config/ccsession.h>
 
 using namespace std;
 using namespace isc;

+ 9 - 9
src/bin/dhcp6/tests/dhcp6_srv_unittest.cc

@@ -14,20 +14,11 @@
 
 #include <config.h>
 
-#include <fstream>
-#include <iostream>
-#include <sstream>
-
-#include <gtest/gtest.h>
-
 #include <asiolink/io_address.h>
 #include <boost/scoped_ptr.hpp>
 #include <config/ccsession.h>
-#include <dhcp/cfgmgr.h>
 #include <dhcp/dhcp6.h>
 #include <dhcp/duid.h>
-#include <dhcp/lease_mgr.h>
-#include <dhcp/lease_mgr_factory.h>
 #include <dhcp/option.h>
 #include <dhcp/option6_addrlst.h>
 #include <dhcp/option6_ia.h>
@@ -35,9 +26,18 @@
 #include <dhcp/option6_int_array.h>
 #include <dhcp6/config_parser.h>
 #include <dhcp6/dhcp6_srv.h>
+#include <dhcpsrv/cfgmgr.h>
+#include <dhcpsrv/lease_mgr.h>
+#include <dhcpsrv/lease_mgr_factory.h>
 #include <util/buffer.h>
 #include <util/range_utilities.h>
 
+#include <gtest/gtest.h>
+
+#include <fstream>
+#include <iostream>
+#include <sstream>
+
 using namespace isc;
 using namespace isc::asiolink;
 using namespace isc::config;

+ 2 - 2
src/bin/dhcp6/tests/dhcp6_unittests.cc

@@ -12,10 +12,10 @@
 // OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 // PERFORMANCE OF THIS SOFTWARE.
 
-#include <stdio.h>
-#include <gtest/gtest.h>
 #include <log/logger_support.h>
 
+#include <gtest/gtest.h>
+
 int
 main(int argc, char* argv[]) {
 

+ 1 - 1
src/lib/Makefile.am

@@ -1,3 +1,3 @@
 SUBDIRS = exceptions util log cryptolink dns cc config acl xfr bench \
           asiolink asiodns nsas cache resolve testutils datasrc \
-          server_common python dhcp statistics
+          server_common python dhcp dhcpsrv statistics

+ 4 - 35
src/lib/dhcp/Makefile.am

@@ -2,10 +2,6 @@ SUBDIRS = . tests
 
 AM_CPPFLAGS = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib
 AM_CPPFLAGS += $(BOOST_INCLUDES)
-if HAVE_MYSQL
-AM_CPPFLAGS += $(MYSQL_CPPFLAGS)
-endif
-
 AM_CXXFLAGS = $(B10_CXXFLAGS)
 
 # Some versions of GCC warn about some versions of Boost regarding
@@ -16,13 +12,14 @@ AM_CXXFLAGS += $(WARNING_NO_MISSING_FIELD_INITIALIZERS_CFLAG)
 
 CLEANFILES = *.gcno *.gcda
 
-lib_LTLIBRARIES = libb10-dhcp++.la libb10-dhcpsrv.la
+lib_LTLIBRARIES = libb10-dhcp++.la
 libb10_dhcp___la_SOURCES  =
-libb10_dhcp___la_SOURCES += libdhcp++.cc libdhcp++.h
+libb10_dhcp___la_SOURCES += duid.cc duid.h
 libb10_dhcp___la_SOURCES += iface_mgr.cc iface_mgr.h
 libb10_dhcp___la_SOURCES += iface_mgr_bsd.cc
 libb10_dhcp___la_SOURCES += iface_mgr_linux.cc
 libb10_dhcp___la_SOURCES += iface_mgr_sun.cc
+libb10_dhcp___la_SOURCES += libdhcp++.cc libdhcp++.h
 libb10_dhcp___la_SOURCES += option.cc option.h
 libb10_dhcp___la_SOURCES += option_data_types.h
 libb10_dhcp___la_SOURCES += option_definition.cc option_definition.h
@@ -42,38 +39,10 @@ libb10_dhcp___la_LIBADD   = $(top_builddir)/src/lib/asiolink/libb10-asiolink.la
 libb10_dhcp___la_LIBADD  += $(top_builddir)/src/lib/util/libb10-util.la
 libb10_dhcp___la_LDFLAGS  = -no-undefined -version-info 2:0:0
 
-libb10_dhcpsrv_la_SOURCES  =
-libb10_dhcpsrv_la_SOURCES += addr_utilities.cc addr_utilities.h
-libb10_dhcpsrv_la_SOURCES += alloc_engine.cc alloc_engine.h
-libb10_dhcpsrv_la_SOURCES += cfgmgr.cc cfgmgr.h
-libb10_dhcpsrv_la_SOURCES += duid.cc duid.h
-libb10_dhcpsrv_la_SOURCES += lease_mgr.cc lease_mgr.h
-libb10_dhcpsrv_la_SOURCES += lease_mgr_factory.cc lease_mgr_factory.h
-libb10_dhcpsrv_la_SOURCES += memfile_lease_mgr.cc memfile_lease_mgr.h
-if HAVE_MYSQL
-libb10_dhcpsrv_la_SOURCES += mysql_lease_mgr.cc mysql_lease_mgr.h
-endif
-libb10_dhcpsrv_la_SOURCES += pool.cc pool.h
-libb10_dhcpsrv_la_SOURCES += subnet.cc subnet.h
-libb10_dhcpsrv_la_SOURCES += triplet.h
-
-libb10_dhcpsrv_la_CXXFLAGS = $(AM_CXXFLAGS)
-libb10_dhcpsrv_la_CPPFLAGS = $(AM_CPPFLAGS) $(LOG4CPLUS_INCLUDES)
-libb10_dhcpsrv_la_LIBADD   = $(top_builddir)/src/lib/asiolink/libb10-asiolink.la
-libb10_dhcpsrv_la_LIBADD  += $(top_builddir)/src/lib/util/libb10-util.la
-libb10_dhcpsrv_la_LDFLAGS  = -no-undefined -version-info 2:0:0
-if HAVE_MYSQL
-libb10_dhcpsrv_la_LDFLAGS += $(MYSQL_LIBS)
-endif
-
-EXTRA_DIST  = README database_backends.dox
+EXTRA_DIST  = README
 
 if USE_CLANGPP
 # Disable unused parameter warning caused by some of the
 # Boost headers when compiling with clang.
 libb10_dhcp___la_CXXFLAGS += -Wno-unused-parameter
 endif
-
-# Distribute MySQL schema creation script
-EXTRA_DIST += dhcpdb_create.mysql
-dist_pkgdata_DATA = dhcpdb_create.mysql

+ 5 - 34
src/lib/dhcp/tests/Makefile.am

@@ -24,7 +24,8 @@ TESTS_ENVIRONMENT = \
 
 TESTS =
 if HAVE_GTEST
-TESTS += libdhcp++_unittests libdhcpsrv_unittests
+TESTS += libdhcp++_unittests
+
 libdhcp___unittests_SOURCES  = run_unittests.cc
 libdhcp___unittests_SOURCES += iface_mgr_unittest.cc
 libdhcp___unittests_SOURCES += libdhcp++_unittest.cc
@@ -38,48 +39,18 @@ libdhcp___unittests_SOURCES += option_definition_unittest.cc
 libdhcp___unittests_SOURCES += option_unittest.cc
 libdhcp___unittests_SOURCES += pkt4_unittest.cc
 libdhcp___unittests_SOURCES += pkt6_unittest.cc
-libdhcp___unittests_SOURCES += schema_copy.h
+libdhcp___unittests_SOURCES += duid_unittest.cc
 
 libdhcp___unittests_CPPFLAGS = $(AM_CPPFLAGS) $(GTEST_INCLUDES) $(LOG4CPLUS_INCLUDES)
-libdhcp___unittests_LDFLAGS  = $(AM_LDFLAGS)  $(GTEST_LDFLAGS)
-libdhcp___unittests_CXXFLAGS = $(AM_CXXFLAGS)
-
-libdhcpsrv_unittests_SOURCES  = run_unittests.cc
-libdhcpsrv_unittests_SOURCES += addr_utilities_unittest.cc
-libdhcpsrv_unittests_SOURCES += alloc_engine_unittest.cc
-libdhcpsrv_unittests_SOURCES += cfgmgr_unittest.cc
-libdhcpsrv_unittests_SOURCES += duid_unittest.cc
-libdhcpsrv_unittests_SOURCES += lease_mgr_factory_unittest.cc
-libdhcpsrv_unittests_SOURCES += lease_mgr_unittest.cc
-libdhcpsrv_unittests_SOURCES += memfile_lease_mgr_unittest.cc
-if HAVE_MYSQL
-libdhcpsrv_unittests_SOURCES += mysql_lease_mgr_unittest.cc
-endif
-libdhcpsrv_unittests_SOURCES += pool_unittest.cc
-libdhcpsrv_unittests_SOURCES += subnet_unittest.cc
-libdhcpsrv_unittests_SOURCES += triplet_unittest.cc
-
-libdhcpsrv_unittests_CPPFLAGS = $(AM_CPPFLAGS) $(GTEST_INCLUDES) $(LOG4CPLUS_INCLUDES)
-libdhcpsrv_unittests_LDFLAGS  = $(AM_LDFLAGS)  $(GTEST_LDFLAGS)
-libdhcpsrv_unittests_CXXFLAGS = $(AM_CXXFLAGS)
-libdhcpsrv_unittests_LDADD  = $(GTEST_LDADD)
-libdhcpsrv_unittests_LDADD += $(top_builddir)/src/lib/exceptions/libb10-exceptions.la
-libdhcpsrv_unittests_LDADD += $(top_builddir)/src/lib/asiolink/libb10-asiolink.la
-libdhcpsrv_unittests_LDADD += $(top_builddir)/src/lib/dhcp/libb10-dhcpsrv.la
-libdhcpsrv_unittests_LDADD += $(top_builddir)/src/lib/dhcp/libb10-dhcp++.la
-libdhcpsrv_unittests_LDADD += $(top_builddir)/src/lib/log/libb10-log.la
-if HAVE_MYSQL
-libdhcpsrv_unittests_CPPFLAGS += $(MYSQL_CPPFLAGS)
-libdhcpsrv_unittests_LDFLAGS  += $(MYSQL_LIBS)
-endif
 
+libdhcp___unittests_LDFLAGS  = $(AM_LDFLAGS)  $(GTEST_LDFLAGS)
 
+libdhcp___unittests_CXXFLAGS = $(AM_CXXFLAGS)
 if USE_CLANGPP
 # This is to workaround unused variables tcout and tcerr in
 # log4cplus's streams.h and unused parameters from some of the
 # Boost headers.
 libdhcp___unittests_CXXFLAGS += -Wno-unused-variable -Wno-unused-parameter
-libdhcpsrv_unittests_CXXFLAGS += -Wno-unused-variable -Wno-unused-parameter
 endif
 
 libdhcp___unittests_LDADD  = $(top_builddir)/src/lib/dhcp/libb10-dhcp++.la

+ 52 - 0
src/lib/dhcpsrv/Makefile.am

@@ -0,0 +1,52 @@
+SUBDIRS = . tests
+
+AM_CPPFLAGS = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib
+AM_CPPFLAGS += $(BOOST_INCLUDES)
+if HAVE_MYSQL
+AM_CPPFLAGS += $(MYSQL_CPPFLAGS)
+endif
+
+AM_CXXFLAGS = $(B10_CXXFLAGS)
+
+# Some versions of GCC warn about some versions of Boost regarding
+# missing initializer for members in its posix_time.
+# https://svn.boost.org/trac/boost/ticket/3477
+# But older GCC compilers don't have the flag.
+AM_CXXFLAGS += $(WARNING_NO_MISSING_FIELD_INITIALIZERS_CFLAG)
+
+CLEANFILES = *.gcno *.gcda
+
+lib_LTLIBRARIES = libb10-dhcpsrv.la
+libb10_dhcpsrv_la_SOURCES  =
+libb10_dhcpsrv_la_SOURCES += addr_utilities.cc addr_utilities.h
+libb10_dhcpsrv_la_SOURCES += alloc_engine.cc alloc_engine.h
+libb10_dhcpsrv_la_SOURCES += cfgmgr.cc cfgmgr.h
+libb10_dhcpsrv_la_SOURCES += lease_mgr.cc lease_mgr.h
+libb10_dhcpsrv_la_SOURCES += lease_mgr_factory.cc lease_mgr_factory.h
+libb10_dhcpsrv_la_SOURCES += memfile_lease_mgr.cc memfile_lease_mgr.h
+if HAVE_MYSQL
+libb10_dhcpsrv_la_SOURCES += mysql_lease_mgr.cc mysql_lease_mgr.h
+endif
+libb10_dhcpsrv_la_SOURCES += pool.cc pool.h
+libb10_dhcpsrv_la_SOURCES += subnet.cc subnet.h
+libb10_dhcpsrv_la_SOURCES += triplet.h
+
+libb10_dhcpsrv_la_CXXFLAGS = $(AM_CXXFLAGS)
+libb10_dhcpsrv_la_CPPFLAGS = $(AM_CPPFLAGS) $(LOG4CPLUS_INCLUDES)
+libb10_dhcpsrv_la_LIBADD   = $(top_builddir)/src/lib/asiolink/libb10-asiolink.la
+libb10_dhcpsrv_la_LIBADD  += $(top_builddir)/src/lib/dhcp/libb10-dhcp++.la
+libb10_dhcpsrv_la_LIBADD  += $(top_builddir)/src/lib/util/libb10-util.la
+libb10_dhcpsrv_la_LDFLAGS  = -no-undefined -version-info 2:0:0
+if HAVE_MYSQL
+libb10_dhcpsrv_la_LDFLAGS += $(MYSQL_LIBS)
+endif
+
+if USE_CLANGPP
+# Disable unused parameter warning caused by some of the
+# Boost headers when compiling with clang.
+libb10_dhcpsrv_la_CXXFLAGS += -Wno-unused-parameter
+endif
+
+# Distribute MySQL schema creation script and backend documentation
+EXTRA_DIST = dhcpdb_create.mysql database_backends.dox
+dist_pkgdata_DATA = dhcpdb_create.mysql

+ 3 - 2
src/lib/dhcp/addr_utilities.cc

@@ -12,9 +12,10 @@
 // OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 // PERFORMANCE OF THIS SOFTWARE.
 
-#include <string.h>
+#include <dhcpsrv/addr_utilities.h>
 #include <exceptions/exceptions.h>
-#include <dhcp/addr_utilities.h>
+
+#include <string.h>
 
 using namespace isc;
 using namespace isc::asiolink;

src/lib/dhcp/addr_utilities.h → src/lib/dhcpsrv/addr_utilities.h


+ 3 - 3
src/lib/dhcp/alloc_engine.cc

@@ -12,11 +12,11 @@
 // OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 // PERFORMANCE OF THIS SOFTWARE.
 
-#include <alloc_engine.h>
-#include <lease_mgr_factory.h>
-#include <string.h>
+#include <dhcpsrv/alloc_engine.h>
+#include <dhcpsrv/lease_mgr_factory.h>
 
 #include <cstring>
+#include <string.h>
 
 using namespace isc::asiolink;
 

+ 5 - 4
src/lib/dhcp/alloc_engine.h

@@ -15,12 +15,13 @@
 #ifndef ALLOC_ENGINE_H
 #define ALLOC_ENGINE_H
 
+#include <asiolink/io_address.h>
+#include <dhcp/duid.h>
+#include <dhcpsrv/subnet.h>
+#include <dhcpsrv/lease_mgr.h>
+
 #include <boost/shared_ptr.hpp>
 #include <boost/noncopyable.hpp>
-#include <dhcp/duid.h>
-#include <dhcp/subnet.h>
-#include <asiolink/io_address.h>
-#include <dhcp/lease_mgr.h>
 
 namespace isc {
 namespace dhcp {

+ 1 - 1
src/lib/dhcp/cfgmgr.cc

@@ -13,7 +13,7 @@
 // PERFORMANCE OF THIS SOFTWARE.
 
 #include <asiolink/io_address.h>
-#include <dhcp/cfgmgr.h>
+#include <dhcpsrv/cfgmgr.h>
 
 using namespace isc::asiolink;
 using namespace isc::util;

+ 10 - 8
src/lib/dhcp/cfgmgr.h

@@ -15,16 +15,18 @@
 #ifndef CFGMGR_H
 #define CFGMGR_H
 
-#include <string>
-#include <map>
-#include <vector>
-#include <boost/shared_ptr.hpp>
-#include <boost/noncopyable.hpp>
 #include <asiolink/io_address.h>
-#include <util/buffer.h>
 #include <dhcp/option.h>
-#include <dhcp/pool.h>
-#include <dhcp/subnet.h>
+#include <dhcpsrv/pool.h>
+#include <dhcpsrv/subnet.h>
+#include <util/buffer.h>
+
+#include <boost/shared_ptr.hpp>
+#include <boost/noncopyable.hpp>
+
+#include <map>
+#include <string>
+#include <vector>
 
 namespace isc {
 namespace dhcp {

src/lib/dhcp/database_backends.dox → src/lib/dhcpsrv/database_backends.dox


src/lib/dhcp/dhcpdb_create.mysql → src/lib/dhcpsrv/dhcpdb_create.mysql


+ 1 - 1
src/lib/dhcp/lease_mgr.cc

@@ -12,7 +12,7 @@
 // OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 // PERFORMANCE OF THIS SOFTWARE.
 
-#include <dhcp/lease_mgr.h>
+#include <dhcpsrv/lease_mgr.h>
 #include <exceptions/exceptions.h>
 
 #include <boost/foreach.hpp>

+ 1 - 1
src/lib/dhcp/lease_mgr.h

@@ -18,7 +18,7 @@
 #include <asiolink/io_address.h>
 #include <dhcp/duid.h>
 #include <dhcp/option.h>
-#include <dhcp/subnet.h>
+#include <dhcpsrv/subnet.h>
 #include <exceptions/exceptions.h>
 
 #include <boost/noncopyable.hpp>

+ 3 - 3
src/lib/dhcp/lease_mgr_factory.cc

@@ -14,10 +14,10 @@
 
 #include "config.h"
 
-#include <dhcp/lease_mgr_factory.h>
-#include <dhcp/memfile_lease_mgr.h>
+#include <dhcpsrv/lease_mgr_factory.h>
+#include <dhcpsrv/memfile_lease_mgr.h>
 #ifdef HAVE_MYSQL
-#include <dhcp/mysql_lease_mgr.h>
+#include <dhcpsrv/mysql_lease_mgr.h>
 #endif
 
 #include <boost/algorithm/string.hpp>

+ 3 - 2
src/lib/dhcp/lease_mgr_factory.h

@@ -15,10 +15,11 @@
 #ifndef LEASE_MGR_FACTORY_H
 #define LEASE_MGR_FACTORY_H
 
-#include <string>
-#include <dhcp/lease_mgr.h>
+#include <dhcpsrv/lease_mgr.h>
 #include <exceptions/exceptions.h>
 
+#include <string>
+
 namespace isc {
 namespace dhcp {
 

+ 2 - 2
src/lib/dhcp/memfile_lease_mgr.cc

@@ -12,9 +12,9 @@
 // OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 // PERFORMANCE OF THIS SOFTWARE.
 
-#include <iostream>
+#include <dhcpsrv/memfile_lease_mgr.h>
 
-#include <dhcp/memfile_lease_mgr.h>
+#include <iostream>
 
 using namespace isc::dhcp;
 

+ 4 - 4
src/lib/dhcp/memfile_lease_mgr.h

@@ -15,12 +15,12 @@
 #ifndef MEMFILE_LEASE_MGR_H
 #define MEMFILE_LEASE_MGR_H
 
-#include <boost/multi_index_container.hpp>
+#include <dhcpsrv/lease_mgr.h>
+
 #include <boost/multi_index/indexed_by.hpp>
-#include <boost/multi_index/ordered_index.hpp>
 #include <boost/multi_index/member.hpp>
-
-#include <dhcp/lease_mgr.h>
+#include <boost/multi_index/ordered_index.hpp>
+#include <boost/multi_index_container.hpp>
 
 namespace isc {
 namespace dhcp {

+ 1 - 1
src/lib/dhcp/mysql_lease_mgr.cc

@@ -14,8 +14,8 @@
 
 #include <config.h>
 
-#include <dhcp/mysql_lease_mgr.h>
 #include <asiolink/io_address.h>
+#include <dhcpsrv/mysql_lease_mgr.h>
 
 #include <mysql/mysqld_error.h>
 

+ 4 - 2
src/lib/dhcp/mysql_lease_mgr.h

@@ -15,10 +15,12 @@
 #ifndef MYSQL_LEASE_MGR_H
 #define MYSQL_LEASE_MGR_H
 
-#include <time.h>
+#include <dhcpsrv/lease_mgr.h>
+
 #include <boost/scoped_ptr.hpp>
 #include <mysql.h>
-#include <dhcp/lease_mgr.h>
+
+#include <time.h>
 
 namespace isc {
 namespace dhcp {

+ 2 - 2
src/lib/dhcp/pool.cc

@@ -13,8 +13,8 @@
 // PERFORMANCE OF THIS SOFTWARE.
 
 #include <asiolink/io_address.h>
-#include <dhcp/addr_utilities.h>
-#include <dhcp/pool.h>
+#include <dhcpsrv/addr_utilities.h>
+#include <dhcpsrv/pool.h>
 
 using namespace isc::asiolink;
 

+ 3 - 1
src/lib/dhcp/pool.h

@@ -15,10 +15,12 @@
 #ifndef POOL_H
 #define POOL_H
 
-#include <vector>
 #include <asiolink/io_address.h>
+
 #include <boost/shared_ptr.hpp>
 
+#include <vector>
+
 namespace isc {
 namespace dhcp {
 

+ 3 - 2
src/lib/dhcp/subnet.cc

@@ -12,9 +12,10 @@
 // OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 // PERFORMANCE OF THIS SOFTWARE.
 
-#include <dhcp/addr_utilities.h>
 #include <asiolink/io_address.h>
-#include <dhcp/subnet.h>
+#include <dhcpsrv/addr_utilities.h>
+#include <dhcpsrv/subnet.h>
+
 #include <sstream>
 
 using namespace isc::asiolink;

+ 5 - 4
src/lib/dhcp/subnet.h

@@ -15,10 +15,6 @@
 #ifndef SUBNET_H
 #define SUBNET_H
 
-#include <asiolink/io_address.h>
-#include <dhcp/pool.h>
-#include <dhcp/triplet.h>
-#include <dhcp/option.h>
 #include <boost/shared_ptr.hpp>
 #include <boost/multi_index_container.hpp>
 #include <boost/multi_index/hashed_index.hpp>
@@ -26,6 +22,11 @@
 #include <boost/multi_index/mem_fun.hpp>
 #include <boost/multi_index/member.hpp>
 
+#include <asiolink/io_address.h>
+#include <dhcp/option.h>
+#include <dhcpsrv/pool.h>
+#include <dhcpsrv/triplet.h>
+
 namespace isc {
 namespace dhcp {
 

+ 70 - 0
src/lib/dhcpsrv/tests/Makefile.am

@@ -0,0 +1,70 @@
+SUBDIRS = .
+
+AM_CPPFLAGS = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib
+AM_CPPFLAGS += $(BOOST_INCLUDES)
+AM_CPPFLAGS += -DTEST_DATA_BUILDDIR=\"$(abs_top_builddir)/src/lib/dhcp/tests\"
+AM_CPPFLAGS += -DINSTALL_PROG=\"$(abs_top_srcdir)/install-sh\"
+
+AM_CXXFLAGS = $(B10_CXXFLAGS)
+
+# Some versions of GCC warn about some versions of Boost regarding
+# missing initializer for members in its posix_time.
+# https://svn.boost.org/trac/boost/ticket/3477
+# But older GCC compilers don't have the flag.
+AM_CXXFLAGS += $(WARNING_NO_MISSING_FIELD_INITIALIZERS_CFLAG)
+
+if USE_STATIC_LINK
+AM_LDFLAGS = -static
+endif
+
+CLEANFILES = *.gcno *.gcda
+
+TESTS_ENVIRONMENT = \
+	$(LIBTOOL) --mode=execute $(VALGRIND_COMMAND)
+
+TESTS =
+if HAVE_GTEST
+TESTS += libdhcpsrv_unittests
+
+libdhcpsrv_unittests_SOURCES  = run_unittests.cc
+libdhcpsrv_unittests_SOURCES += addr_utilities_unittest.cc
+libdhcpsrv_unittests_SOURCES += alloc_engine_unittest.cc
+libdhcpsrv_unittests_SOURCES += cfgmgr_unittest.cc
+libdhcpsrv_unittests_SOURCES += lease_mgr_factory_unittest.cc
+libdhcpsrv_unittests_SOURCES += lease_mgr_unittest.cc
+libdhcpsrv_unittests_SOURCES += memfile_lease_mgr_unittest.cc
+if HAVE_MYSQL
+libdhcpsrv_unittests_SOURCES += mysql_lease_mgr_unittest.cc
+endif
+libdhcpsrv_unittests_SOURCES += pool_unittest.cc
+libdhcpsrv_unittests_SOURCES += schema_copy.h
+libdhcpsrv_unittests_SOURCES += subnet_unittest.cc
+libdhcpsrv_unittests_SOURCES += triplet_unittest.cc
+
+libdhcpsrv_unittests_CPPFLAGS = $(AM_CPPFLAGS) $(GTEST_INCLUDES) $(LOG4CPLUS_INCLUDES)
+if HAVE_MYSQL
+libdhcpsrv_unittests_CPPFLAGS += $(MYSQL_CPPFLAGS)
+endif
+
+libdhcpsrv_unittests_LDFLAGS  = $(AM_LDFLAGS)  $(GTEST_LDFLAGS)
+if HAVE_MYSQL
+libdhcpsrv_unittests_LDFLAGS  += $(MYSQL_LIBS)
+endif
+
+libdhcpsrv_unittests_CXXFLAGS = $(AM_CXXFLAGS)
+if USE_CLANGPP
+# This is to workaround unused variables tcout and tcerr in
+# log4cplus's streams.h and unused parameters from some of the
+# Boost headers.
+libdhcpsrv_unittests_CXXFLAGS += -Wno-unused-variable -Wno-unused-parameter
+endif
+
+libdhcpsrv_unittests_LDADD  = $(top_builddir)/src/lib/dhcpsrv/libb10-dhcpsrv.la
+libdhcpsrv_unittests_LDADD += $(top_builddir)/src/lib/dhcp/libb10-dhcp++.la
+libdhcpsrv_unittests_LDADD += $(top_builddir)/src/lib/asiolink/libb10-asiolink.la
+libdhcpsrv_unittests_LDADD += $(top_builddir)/src/lib/exceptions/libb10-exceptions.la
+libdhcpsrv_unittests_LDADD += $(top_builddir)/src/lib/log/libb10-log.la
+libdhcpsrv_unittests_LDADD += $(GTEST_LDADD)
+endif
+
+noinst_PROGRAMS = $(TESTS)

+ 1 - 1
src/lib/dhcp/tests/addr_utilities_unittest.cc

@@ -20,7 +20,7 @@
 #include <gtest/gtest.h>
 #include <vector>
 
-#include <dhcp/addr_utilities.h>
+#include <dhcpsrv/addr_utilities.h>
 
 using namespace std;
 using namespace isc::dhcp;

+ 9 - 5
src/lib/dhcp/tests/alloc_engine_unittest.cc

@@ -13,18 +13,22 @@
 // PERFORMANCE OF THIS SOFTWARE.
 
 #include <config.h>
+
 #include <asiolink/io_address.h>
-#include <dhcp/lease_mgr.h>
-#include <dhcp/lease_mgr_factory.h>
 #include <dhcp/duid.h>
-#include <dhcp/alloc_engine.h>
-#include <dhcp/cfgmgr.h>
-#include <dhcp/memfile_lease_mgr.h>
+#include <dhcpsrv/alloc_engine.h>
+#include <dhcpsrv/cfgmgr.h>
+#include <dhcpsrv/lease_mgr.h>
+#include <dhcpsrv/lease_mgr_factory.h>
+#include <dhcpsrv/memfile_lease_mgr.h>
+
 #include <boost/shared_ptr.hpp>
 #include <boost/scoped_ptr.hpp>
+
 #include <iostream>
 #include <sstream>
 #include <map>
+
 #include <gtest/gtest.h>
 
 using namespace std;

+ 4 - 2
src/lib/dhcp/tests/cfgmgr_unittest.cc

@@ -13,12 +13,14 @@
 // PERFORMANCE OF THIS SOFTWARE.
 
 #include <config.h>
+
+#include <dhcpsrv/cfgmgr.h>
+#include <exceptions/exceptions.h>
+
 #include <iostream>
 #include <sstream>
 #include <arpa/inet.h>
 #include <gtest/gtest.h>
-#include <dhcp/cfgmgr.h>
-#include <exceptions/exceptions.h>
 
 using namespace std;
 using namespace isc::asiolink;

+ 4 - 3
src/lib/dhcp/tests/lease_mgr_factory_unittest.cc

@@ -13,13 +13,14 @@
 // PERFORMANCE OF THIS SOFTWARE.
 
 #include <config.h>
+
+#include <asiolink/io_address.h>
+#include <dhcpsrv/lease_mgr_factory.h>
+
 #include <iostream>
 #include <sstream>
 #include <gtest/gtest.h>
 
-#include <asiolink/io_address.h>
-#include <dhcp/lease_mgr_factory.h>
-
 using namespace std;
 using namespace isc::dhcp;
 

+ 4 - 3
src/lib/dhcp/tests/lease_mgr_unittest.cc

@@ -13,13 +13,14 @@
 // PERFORMANCE OF THIS SOFTWARE.
 
 #include <config.h>
+
+#include <asiolink/io_address.h>
+#include <dhcpsrv/lease_mgr.h>
+
 #include <iostream>
 #include <sstream>
 #include <gtest/gtest.h>
 
-#include <asiolink/io_address.h>
-#include <dhcp/lease_mgr.h>
-
 using namespace std;
 using namespace isc;
 using namespace isc::asiolink;

+ 6 - 5
src/lib/dhcp/tests/memfile_lease_mgr_unittest.cc

@@ -13,14 +13,15 @@
 // PERFORMANCE OF THIS SOFTWARE.
 
 #include <config.h>
+
+#include <asiolink/io_address.h>
+#include <dhcp/duid.h>
+#include <dhcpsrv/lease_mgr.h>
+#include <dhcpsrv/memfile_lease_mgr.h>
+
 #include <iostream>
 #include <sstream>
 #include <gtest/gtest.h>
-#include <asiolink/io_address.h>
-
-#include <dhcp/lease_mgr.h>
-#include <dhcp/duid.h>
-#include <dhcp/memfile_lease_mgr.h>
 
 using namespace std;
 using namespace isc;

+ 5 - 4
src/lib/dhcp/tests/mysql_lease_mgr_unittest.cc

@@ -13,16 +13,17 @@
 // PERFORMANCE OF THIS SOFTWARE.
 
 #include <config.h>
+
+#include <asiolink/io_address.h>
+#include <dhcpsrv/lease_mgr_factory.h>
+#include <dhcpsrv/mysql_lease_mgr.h>
+
 #include <iostream>
 #include <sstream>
 #include <utility>
 #include <string>
 #include <gtest/gtest.h>
 
-#include <asiolink/io_address.h>
-#include <dhcp/lease_mgr_factory.h>
-#include <dhcp/mysql_lease_mgr.h>
-
 using namespace isc;
 using namespace isc::asiolink;
 using namespace isc::dhcp;

+ 4 - 2
src/lib/dhcp/tests/pool_unittest.cc

@@ -13,12 +13,14 @@
 // PERFORMANCE OF THIS SOFTWARE.
 
 #include <config.h>
+
+#include <asiolink/io_address.h>
+#include <dhcpsrv/pool.h>
+
 #include <iostream>
 #include <vector>
 #include <sstream>
 #include <gtest/gtest.h>
-#include <dhcp/pool.h>
-#include <asiolink/io_address.h>
 
 using boost::scoped_ptr;
 using namespace isc;

+ 27 - 0
src/lib/dhcpsrv/tests/run_unittests.cc

@@ -0,0 +1,27 @@
+// Copyright (C) 2011  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 <log/logger_support.h>
+
+#include <gtest/gtest.h>
+
+int
+main(int argc, char* argv[]) {
+    ::testing::InitGoogleTest(&argc, argv);
+    isc::log::initLogger();
+
+    int result = RUN_ALL_TESTS();
+
+    return (result);
+}

src/lib/dhcp/tests/schema_copy.h → src/lib/dhcpsrv/tests/schema_copy.h


+ 4 - 3
src/lib/dhcp/tests/subnet_unittest.cc

@@ -12,14 +12,15 @@
 // OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 // PERFORMANCE OF THIS SOFTWARE.
 
-
 #include <config.h>
-#include <dhcp/subnet.h>
+
+#include <asiolink/io_address.h>
 #include <dhcp/option.h>
+#include <dhcpsrv/subnet.h>
 #include <exceptions/exceptions.h>
+
 #include <boost/scoped_ptr.hpp>
 #include <gtest/gtest.h>
-#include <asiolink/io_address.h>
 
 // don't import the entire boost namespace.  It will unexpectedly hide uint8_t
 // for some systems.

+ 4 - 2
src/lib/dhcp/tests/triplet_unittest.cc

@@ -13,10 +13,12 @@
 // PERFORMANCE OF THIS SOFTWARE.
 
 #include <config.h>
+
+#include <dhcpsrv/triplet.h>
+#include <exceptions/exceptions.h>
+
 #include <stdint.h>
 #include <gtest/gtest.h>
-#include <dhcp/triplet.h>
-#include <exceptions/exceptions.h>
 
 using namespace isc::dhcp;
 using namespace isc;

src/lib/dhcp/triplet.h → src/lib/dhcpsrv/triplet.h