diff --git a/components/checker/Makefile.am b/components/checker/Makefile.am index 62b001349..3b8ff6c85 100644 --- a/components/checker/Makefile.am +++ b/components/checker/Makefile.am @@ -12,9 +12,8 @@ checker_la_CPPFLAGS = \ $(BOOST_CPPFLAGS) \ -I${top_srcdir}/lib/base \ -I${top_srcdir}/lib/config \ - -I${top_srcdir}/lib/jsonrpc \ - -I${top_srcdir}/lib/icinga \ - -I${top_srcdir}/lib/cib + -I${top_srcdir}/lib/remoting \ + -I${top_srcdir}/lib/icinga checker_la_LDFLAGS = \ $(BOOST_LDFLAGS) \ @@ -28,6 +27,5 @@ checker_la_LIBADD = \ $(BOOST_THREAD_LIB) \ ${top_builddir}/lib/base/libbase.la \ ${top_builddir}/lib/config/libconfig.la \ - ${top_builddir}/lib/jsonrpc/libjsonrpc.la \ - ${top_builddir}/lib/icinga/libicinga.la \ - ${top_builddir}/lib/cib/libcib.la + ${top_builddir}/lib/remoting/libremoting.la \ + ${top_builddir}/lib/icinga/libicinga.la diff --git a/components/checker/i2-checker.h b/components/checker/i2-checker.h index 4cb465d99..9b7a7f49e 100644 --- a/components/checker/i2-checker.h +++ b/components/checker/i2-checker.h @@ -28,7 +28,6 @@ #include #include -#include #include #include diff --git a/components/cibsync/Makefile.am b/components/cibsync/Makefile.am index f5b5feecb..d9bfb2b4c 100644 --- a/components/cibsync/Makefile.am +++ b/components/cibsync/Makefile.am @@ -12,9 +12,8 @@ cibsync_la_CPPFLAGS = \ $(BOOST_CPPFLAGS) \ -I${top_srcdir}/lib/base \ -I${top_srcdir}/lib/config \ - -I${top_srcdir}/lib/jsonrpc \ - -I${top_srcdir}/lib/icinga \ - -I${top_srcdir}/lib/cib + -I${top_srcdir}/lib/remoting \ + -I${top_srcdir}/lib/icinga cibsync_la_LDFLAGS = \ $(BOOST_LDFLAGS) \ @@ -28,6 +27,5 @@ cibsync_la_LIBADD = \ $(BOOST_THREAD_LIB) \ ${top_builddir}/lib/base/libbase.la \ ${top_builddir}/lib/config/libconfig.la \ - ${top_builddir}/lib/jsonrpc/libjsonrpc.la \ - ${top_builddir}/lib/icinga/libicinga.la \ - ${top_builddir}/lib/cib/libcib.la + ${top_builddir}/lib/remoting/libremoting.la \ + ${top_builddir}/lib/icinga/libicinga.la diff --git a/components/cibsync/i2-cibsync.h b/components/cibsync/i2-cibsync.h index 858444f98..937290f0b 100644 --- a/components/cibsync/i2-cibsync.h +++ b/components/cibsync/i2-cibsync.h @@ -27,9 +27,8 @@ */ #include -#include +#include #include -#include #include "cibsynccomponent.h" diff --git a/components/compat/Makefile.am b/components/compat/Makefile.am index 49de0d0f2..830d100de 100644 --- a/components/compat/Makefile.am +++ b/components/compat/Makefile.am @@ -12,9 +12,8 @@ compat_la_CPPFLAGS = \ $(BOOST_CPPFLAGS) \ -I${top_srcdir}/lib/base \ -I${top_srcdir}/lib/config \ - -I${top_srcdir}/lib/jsonrpc \ - -I${top_srcdir}/lib/icinga \ - -I${top_srcdir}/lib/cib + -I${top_srcdir}/lib/remoting \ + -I${top_srcdir}/lib/icinga compat_la_LDFLAGS = \ $(BOOST_LDFLAGS) \ @@ -28,6 +27,5 @@ compat_la_LIBADD = \ $(BOOST_THREAD_LIB) \ ${top_builddir}/lib/base/libbase.la \ ${top_builddir}/lib/config/libconfig.la \ - ${top_builddir}/lib/jsonrpc/libjsonrpc.la \ - ${top_builddir}/lib/icinga/libicinga.la \ - ${top_builddir}/lib/cib/libcib.la + ${top_builddir}/lib/remoting/libremoting.la \ + ${top_builddir}/lib/icinga/libicinga.la diff --git a/components/compat/i2-compat.h b/components/compat/i2-compat.h index aaae6b323..2b64313a1 100644 --- a/components/compat/i2-compat.h +++ b/components/compat/i2-compat.h @@ -27,9 +27,8 @@ */ #include -#include +#include #include -#include #include diff --git a/components/convenience/Makefile.am b/components/convenience/Makefile.am index e615a641c..6d2f1260b 100644 --- a/components/convenience/Makefile.am +++ b/components/convenience/Makefile.am @@ -12,9 +12,8 @@ convenience_la_CPPFLAGS = \ $(BOOST_CPPFLAGS) \ -I${top_srcdir}/lib/base \ -I${top_srcdir}/lib/config \ - -I${top_srcdir}/lib/jsonrpc \ - -I${top_srcdir}/lib/icinga \ - -I${top_srcdir}/lib/cib + -I${top_srcdir}/lib/remoting \ + -I${top_srcdir}/lib/icinga convenience_la_LDFLAGS = \ $(BOOST_LDFLAGS) \ @@ -28,6 +27,5 @@ convenience_la_LIBADD = \ $(BOOST_THREAD_LIB) \ ${top_builddir}/lib/base/libbase.la \ ${top_builddir}/lib/config/libconfig.la \ - ${top_builddir}/lib/jsonrpc/libjsonrpc.la \ - ${top_builddir}/lib/icinga/libicinga.la \ - ${top_builddir}/lib/cib/libcib.la + ${top_builddir}/lib/remoting/libremoting.la \ + ${top_builddir}/lib/icinga/libicinga.la diff --git a/components/convenience/i2-convenience.h b/components/convenience/i2-convenience.h index 89930cfac..a2a9ef47e 100644 --- a/components/convenience/i2-convenience.h +++ b/components/convenience/i2-convenience.h @@ -30,9 +30,8 @@ #include #include -#include +#include #include -#include #include "conveniencecomponent.h" diff --git a/components/delegation/Makefile.am b/components/delegation/Makefile.am index 88fce279d..9411e0e93 100644 --- a/components/delegation/Makefile.am +++ b/components/delegation/Makefile.am @@ -12,9 +12,8 @@ delegation_la_CPPFLAGS = \ $(BOOST_CPPFLAGS) \ -I${top_srcdir}/lib/base \ -I${top_srcdir}/lib/config \ - -I${top_srcdir}/lib/jsonrpc \ - -I${top_srcdir}/lib/icinga \ - -I${top_srcdir}/lib/cib + -I${top_srcdir}/lib/remoting \ + -I${top_srcdir}/lib/icinga delegation_la_LDFLAGS = \ $(BOOST_LDFLAGS) \ @@ -28,6 +27,5 @@ delegation_la_LIBADD = \ $(BOOST_THREAD_LIB) \ ${top_builddir}/lib/base/libbase.la \ ${top_builddir}/lib/config/libconfig.la \ - ${top_builddir}/lib/jsonrpc/libjsonrpc.la \ - ${top_builddir}/lib/icinga/libicinga.la \ - ${top_builddir}/lib/cib/libcib.la + ${top_builddir}/lib/remoting/libremoting.la \ + ${top_builddir}/lib/icinga/libicinga.la diff --git a/components/delegation/i2-delegation.h b/components/delegation/i2-delegation.h index 69382d4a7..91e633ee5 100644 --- a/components/delegation/i2-delegation.h +++ b/components/delegation/i2-delegation.h @@ -28,7 +28,6 @@ #include #include -#include #include "delegationcomponent.h" diff --git a/components/demo/Makefile.am b/components/demo/Makefile.am index e74d877b5..aaba36d16 100644 --- a/components/demo/Makefile.am +++ b/components/demo/Makefile.am @@ -12,7 +12,7 @@ demo_la_CPPFLAGS = \ $(BOOST_CPPFLAGS) \ -I${top_srcdir}/lib/base \ -I${top_srcdir}/lib/config \ - -I${top_srcdir}/lib/jsonrpc \ + -I${top_srcdir}/lib/remoting \ -I${top_srcdir}/lib/icinga demo_la_LDFLAGS = \ @@ -27,5 +27,5 @@ demo_la_LIBADD = \ $(BOOST_THREAD_LIB) \ ${top_builddir}/lib/base/libbase.la \ ${top_builddir}/lib/config/libconfig.la \ - ${top_builddir}/lib/jsonrpc/libjsonrpc.la \ + ${top_builddir}/lib/remoting/libremoting.la \ ${top_builddir}/lib/icinga/libicinga.la diff --git a/components/demo/i2-demo.h b/components/demo/i2-demo.h index 43a907db3..1daf3f1b5 100644 --- a/components/demo/i2-demo.h +++ b/components/demo/i2-demo.h @@ -27,7 +27,7 @@ */ #include -#include +#include #include #include "democomponent.h" diff --git a/configure.ac b/configure.ac index 796ec265f..266f18172 100644 --- a/configure.ac +++ b/configure.ac @@ -78,10 +78,9 @@ docs/Doxyfile icinga-app/Makefile lib/Makefile lib/base/Makefile -lib/cib/Makefile lib/config/Makefile lib/icinga/Makefile -lib/jsonrpc/Makefile +lib/remoting/Makefile test/Makefile third-party/Makefile third-party/cJSON/Makefile diff --git a/icinga-app/Makefile.am b/icinga-app/Makefile.am index b5b97faaf..2e148587a 100644 --- a/icinga-app/Makefile.am +++ b/icinga-app/Makefile.am @@ -13,7 +13,7 @@ icinga_CPPFLAGS = \ $(BOOST_CPPFLAGS) \ -I${top_srcdir}/lib/base \ -I${top_srcdir}/lib/config \ - -I${top_srcdir}/lib/jsonrpc \ + -I${top_srcdir}/lib/remoting \ -I${top_srcdir}/lib/icinga \ -I${top_srcdir} @@ -27,6 +27,7 @@ icinga_LDADD = \ $(BOOST_SYSTEM_LIB) \ ${top_builddir}/lib/base/libbase.la \ ${top_builddir}/lib/config/libconfig.la \ + ${top_builddir}/lib/remoting/libremoting.la \ ${top_builddir}/lib/icinga/libicinga.la \ -dlopen ${top_builddir}/components/checker/checker.la \ -dlopen ${top_builddir}/components/cibsync/cibsync.la \ diff --git a/lib/Makefile.am b/lib/Makefile.am index 8901ea0a1..3e680a2eb 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -4,6 +4,5 @@ SUBDIRS = \ base \ config \ - jsonrpc \ - icinga \ - cib + remoting \ + icinga diff --git a/lib/cib/Makefile.am b/lib/cib/Makefile.am deleted file mode 100644 index d8c7bd124..000000000 --- a/lib/cib/Makefile.am +++ /dev/null @@ -1,47 +0,0 @@ -## Process this file with automake to produce Makefile.in - -pkglib_LTLIBRARIES = \ - libcib.la - -libcib_la_SOURCES = \ - cib.cpp \ - cib.h \ - host.cpp \ - host.h \ - hostgroup.cpp \ - hostgroup.h \ - i2-cib.h \ - macroprocessor.cpp \ - macroprocessor.h \ - nagioschecktask.cpp \ - nagioschecktask.h \ - nullchecktask.cpp \ - nullchecktask.h \ - service.cpp \ - service.h \ - servicegroup.cpp \ - servicegroup.h \ - servicestatechangemessage.cpp \ - servicestatechangemessage.h - -libcib_la_CPPFLAGS = \ - -DI2_CIB_BUILD \ - $(BOOST_CPPFLAGS) \ - -I${top_srcdir}/lib/base \ - -I${top_srcdir}/lib/config \ - -I${top_srcdir}/lib/jsonrpc \ - -I${top_srcdir}/lib/icinga - -libcib_la_LDFLAGS = \ - $(BOOST_LDFLAGS) \ - -no-undefined \ - @RELEASE_INFO@ \ - @VERSION_INFO@ - -libcib_la_LIBADD = \ - $(BOOST_SIGNALS_LIB) \ - $(BOOST_THREAD_LIB) \ - ${top_builddir}/lib/base/libbase.la \ - ${top_builddir}/lib/config/libconfig.la \ - ${top_builddir}/lib/jsonrpc/libjsonrpc.la \ - ${top_builddir}/lib/icinga/libicinga.la diff --git a/lib/cib/cib.vcxproj b/lib/cib/cib.vcxproj deleted file mode 100644 index fb5c7e199..000000000 --- a/lib/cib/cib.vcxproj +++ /dev/null @@ -1,114 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {538D7F53-A6A0-459A-AE4F-70DB135BC9AF} - Win32Proj - cib - - - - DynamicLibrary - true - MultiByte - - - DynamicLibrary - false - true - MultiByte - - - - - - - - - - - - - true - $(SolutionDir)\lib\base;$(SolutionDir)\lib\icinga;$(SolutionDir)\lib\jsonrpc;$(SolutionDir)\lib\config;$(IncludePath) - $(OutDir);$(LibraryPath) - - - false - $(SolutionDir)\lib\base;$(SolutionDir)\lib\icinga;$(SolutionDir)\lib\jsonrpc;$(SolutionDir)\lib\config;$(IncludePath) - $(OutDir);$(LibraryPath) - - - - Use - Level3 - Disabled - _WINDLL;I2_CIB_BUILD;_DEBUG;%(PreprocessorDefinitions) - i2-cib.h - true - - - Windows - true - base.lib;icinga.lib;jsonrpc.lib;config.lib;%(AdditionalDependencies) - - - - - Level3 - Use - MaxSpeed - true - true - _WINDLL;I2_CIB_BUILD;%(PreprocessorDefinitions) - i2-cib.h - true - - - Windows - true - true - true - base.lib;icinga.lib;jsonrpc.lib;config.lib;%(AdditionalDependencies) - - - - - - - - - - - - - - - - - - - - Create - Create - - - - - - - - - - - - \ No newline at end of file diff --git a/lib/cib/cib.vcxproj.filters b/lib/cib/cib.vcxproj.filters deleted file mode 100644 index 009045a54..000000000 --- a/lib/cib/cib.vcxproj.filters +++ /dev/null @@ -1,77 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - - - Headerdateien - - - Headerdateien - - - Headerdateien - - - Headerdateien - - - Headerdateien - - - Headerdateien - - - Headerdateien - - - Headerdateien - - - Headerdateien - - - Headerdateien - - - - - Quelldateien - - - Quelldateien - - - Quelldateien - - - Quelldateien - - - Quelldateien - - - Quelldateien - - - Quelldateien - - - Quelldateien - - - Quelldateien - - - Quelldateien - - - \ No newline at end of file diff --git a/lib/cib/i2-cib.cpp b/lib/cib/i2-cib.cpp deleted file mode 100644 index b5aad24ba..000000000 --- a/lib/cib/i2-cib.cpp +++ /dev/null @@ -1,22 +0,0 @@ -/****************************************************************************** - * Icinga 2 * - * Copyright (C) 2012 Icinga Development Team (http://www.icinga.org/) * - * * - * This program is free software; you can redistribute it and/or * - * modify it under the terms of the GNU General Public License * - * as published by the Free Software Foundation; either version 2 * - * of the License, or (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the Free Software Foundation * - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * - ******************************************************************************/ - -/* This file is used by MSVC to generate the pre-compiled hedader. */ - -#include "i2-cib.h" diff --git a/lib/cib/i2-cib.h b/lib/cib/i2-cib.h deleted file mode 100644 index 0a6bf939a..000000000 --- a/lib/cib/i2-cib.h +++ /dev/null @@ -1,52 +0,0 @@ -/****************************************************************************** - * Icinga 2 * - * Copyright (C) 2012 Icinga Development Team (http://www.icinga.org/) * - * * - * This program is free software; you can redistribute it and/or * - * modify it under the terms of the GNU General Public License * - * as published by the Free Software Foundation; either version 2 * - * of the License, or (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the Free Software Foundation * - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * - ******************************************************************************/ - -#ifndef I2CIB_H -#define I2CIB_H - -/** - * @defgroup cib Common Information Base - * - * The CIB component implements functionality to gather status - * updates from all the other Icinga components. - */ - -#include -#include - -#ifdef I2_CIB_BUILD -# define I2_CIB_API I2_EXPORT -#else /* I2_CIB_BUILD */ -# define I2_CIB_API I2_IMPORT -#endif /* I2_CIB_BUILD */ - -#include "host.h" -#include "hostgroup.h" -#include "service.h" -#include "servicegroup.h" - -#include "macroprocessor.h" -#include "nagioschecktask.h" -#include "nullchecktask.h" - -#include "servicestatechangemessage.h" - -#include "cib.h" - -#endif /* I2CIB_H */ diff --git a/lib/icinga/Makefile.am b/lib/icinga/Makefile.am index eee31a2ea..dcaf2301e 100644 --- a/lib/icinga/Makefile.am +++ b/lib/icinga/Makefile.am @@ -5,20 +5,34 @@ pkglib_LTLIBRARIES = \ libicinga.la libicinga_la_SOURCES = \ - endpoint.cpp \ - endpoint.h \ - endpointmanager.cpp \ - endpointmanager.h \ + cib.cpp \ + cib.h \ + host.cpp \ + hostgroup.cpp \ + hostgroup.h \ + host.h \ + i2-icinga.h \ icingaapplication.cpp \ icingaapplication.h \ - i2-icinga.h + macroprocessor.cpp \ + macroprocessor.h \ + nagioschecktask.cpp \ + nagioschecktask.h \ + nullchecktask.cpp \ + nullchecktask.h \ + service.cpp \ + servicegroup.cpp \ + servicegroup.h \ + service.h \ + servicestatechangemessage.cpp \ + servicestatechangemessage.h libicinga_la_CPPFLAGS = \ -DI2_ICINGA_BUILD \ $(BOOST_CPPFLAGS) \ -I${top_srcdir}/lib/base \ -I${top_srcdir}/lib/config \ - -I${top_srcdir}/lib/jsonrpc \ + -I${top_srcdir}/lib/remoting \ -I${top_srcdir} libicinga_la_LDFLAGS = \ @@ -31,4 +45,4 @@ libicinga_la_LIBADD = \ $(BOOST_THREAD_LIB) \ ${top_builddir}/lib/base/libbase.la \ ${top_builddir}/lib/config/libconfig.la \ - ${top_builddir}/lib/jsonrpc/libjsonrpc.la + ${top_builddir}/lib/remoting/libremoting.la diff --git a/lib/cib/cib.cpp b/lib/icinga/cib.cpp similarity index 98% rename from lib/cib/cib.cpp rename to lib/icinga/cib.cpp index ef4c3bdca..d9b7e9353 100644 --- a/lib/cib/cib.cpp +++ b/lib/icinga/cib.cpp @@ -17,7 +17,7 @@ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * ******************************************************************************/ -#include "i2-cib.h" +#include "i2-icinga.h" using namespace icinga; diff --git a/lib/cib/cib.h b/lib/icinga/cib.h similarity index 98% rename from lib/cib/cib.h rename to lib/icinga/cib.h index c64fb89a6..f9353cda7 100644 --- a/lib/cib/cib.h +++ b/lib/icinga/cib.h @@ -23,7 +23,7 @@ namespace icinga { -class I2_CIB_API CIB +class I2_ICINGA_API CIB { public: static void UpdateTaskStatistics(long tv, int num); diff --git a/lib/cib/host.cpp b/lib/icinga/host.cpp similarity index 99% rename from lib/cib/host.cpp rename to lib/icinga/host.cpp index 6211520c5..f4aff61f1 100644 --- a/lib/cib/host.cpp +++ b/lib/icinga/host.cpp @@ -17,7 +17,7 @@ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * ******************************************************************************/ -#include "i2-cib.h" +#include "i2-icinga.h" using namespace icinga; diff --git a/lib/cib/host.h b/lib/icinga/host.h similarity index 97% rename from lib/cib/host.h rename to lib/icinga/host.h index e9b1a9d22..1c130befe 100644 --- a/lib/cib/host.h +++ b/lib/icinga/host.h @@ -23,7 +23,7 @@ namespace icinga { -class I2_CIB_API Host : public DynamicObject +class I2_ICINGA_API Host : public DynamicObject { public: typedef shared_ptr Ptr; diff --git a/lib/cib/hostgroup.cpp b/lib/icinga/hostgroup.cpp similarity index 98% rename from lib/cib/hostgroup.cpp rename to lib/icinga/hostgroup.cpp index 10a591241..1d9cc7b04 100644 --- a/lib/cib/hostgroup.cpp +++ b/lib/icinga/hostgroup.cpp @@ -17,7 +17,7 @@ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * ******************************************************************************/ -#include "i2-cib.h" +#include "i2-icinga.h" using namespace icinga; diff --git a/lib/cib/hostgroup.h b/lib/icinga/hostgroup.h similarity index 97% rename from lib/cib/hostgroup.h rename to lib/icinga/hostgroup.h index c40ab0c14..29303da08 100644 --- a/lib/cib/hostgroup.h +++ b/lib/icinga/hostgroup.h @@ -23,7 +23,7 @@ namespace icinga { -class I2_CIB_API HostGroup : public DynamicObject +class I2_ICINGA_API HostGroup : public DynamicObject { public: typedef shared_ptr Ptr; diff --git a/lib/icinga/i2-icinga.h b/lib/icinga/i2-icinga.h index 1b2a0856d..6e4ec6c81 100644 --- a/lib/icinga/i2-icinga.h +++ b/lib/icinga/i2-icinga.h @@ -29,8 +29,7 @@ #include #include -#include -#include +#include using boost::iterator_range; using boost::algorithm::is_any_of; @@ -45,4 +44,17 @@ using boost::algorithm::is_any_of; #include "endpointmanager.h" #include "icingaapplication.h" +#include "host.h" +#include "hostgroup.h" +#include "service.h" +#include "servicegroup.h" + +#include "macroprocessor.h" +#include "nagioschecktask.h" +#include "nullchecktask.h" + +#include "servicestatechangemessage.h" + +#include "cib.h" + #endif /* I2ICINGA_H */ diff --git a/lib/icinga/icingaapplication.cpp b/lib/icinga/icingaapplication.cpp index 9f65bd9c1..9d7f91096 100644 --- a/lib/icinga/icingaapplication.cpp +++ b/lib/icinga/icingaapplication.cpp @@ -134,6 +134,8 @@ int IcingaApplication::Main(const vector& args) EndpointManager::GetInstance()->SetIdentity(identity); m_SSLContext = Utility::MakeSSLContext(GetCertificateFile(), GetCertificateFile(), GetCAFile()); + + EndpointManager::GetInstance()->SetSSLContext(m_SSLContext); } /* create the primary RPC listener */ diff --git a/lib/cib/macroprocessor.cpp b/lib/icinga/macroprocessor.cpp similarity index 99% rename from lib/cib/macroprocessor.cpp rename to lib/icinga/macroprocessor.cpp index 607cbb3e4..93365aaa9 100644 --- a/lib/cib/macroprocessor.cpp +++ b/lib/icinga/macroprocessor.cpp @@ -17,7 +17,7 @@ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * ******************************************************************************/ -#include "i2-cib.h" +#include "i2-icinga.h" using namespace icinga; diff --git a/lib/cib/macroprocessor.h b/lib/icinga/macroprocessor.h similarity index 97% rename from lib/cib/macroprocessor.h rename to lib/icinga/macroprocessor.h index f36c6fd80..3f430f7ab 100644 --- a/lib/cib/macroprocessor.h +++ b/lib/icinga/macroprocessor.h @@ -23,7 +23,7 @@ namespace icinga { -class I2_CIB_API MacroProcessor +class I2_ICINGA_API MacroProcessor { public: static String ResolveMacros(const String& str, const vector& macroDicts); diff --git a/lib/cib/nagioschecktask.cpp b/lib/icinga/nagioschecktask.cpp similarity index 99% rename from lib/cib/nagioschecktask.cpp rename to lib/icinga/nagioschecktask.cpp index e95f3dcc9..64c2cce9b 100644 --- a/lib/cib/nagioschecktask.cpp +++ b/lib/icinga/nagioschecktask.cpp @@ -17,7 +17,7 @@ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * ******************************************************************************/ -#include "i2-cib.h" +#include "i2-icinga.h" using namespace icinga; diff --git a/lib/cib/nagioschecktask.h b/lib/icinga/nagioschecktask.h similarity index 98% rename from lib/cib/nagioschecktask.h rename to lib/icinga/nagioschecktask.h index 94094a5d7..ce6e575cf 100644 --- a/lib/cib/nagioschecktask.h +++ b/lib/icinga/nagioschecktask.h @@ -23,7 +23,7 @@ namespace icinga { -class I2_CIB_API NagiosCheckTask +class I2_ICINGA_API NagiosCheckTask { public: static void Register(void); diff --git a/lib/cib/nullchecktask.cpp b/lib/icinga/nullchecktask.cpp similarity index 98% rename from lib/cib/nullchecktask.cpp rename to lib/icinga/nullchecktask.cpp index a0f4c170d..3df02340e 100644 --- a/lib/cib/nullchecktask.cpp +++ b/lib/icinga/nullchecktask.cpp @@ -17,7 +17,7 @@ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * ******************************************************************************/ -#include "i2-cib.h" +#include "i2-icinga.h" using namespace icinga; diff --git a/lib/cib/nullchecktask.h b/lib/icinga/nullchecktask.h similarity index 98% rename from lib/cib/nullchecktask.h rename to lib/icinga/nullchecktask.h index 255c6e9d7..d9a0a59ad 100644 --- a/lib/cib/nullchecktask.h +++ b/lib/icinga/nullchecktask.h @@ -23,7 +23,7 @@ namespace icinga { -class I2_CIB_API NullCheckTask +class I2_ICINGA_API NullCheckTask { public: static void Register(void); diff --git a/lib/cib/service.cpp b/lib/icinga/service.cpp similarity index 99% rename from lib/cib/service.cpp rename to lib/icinga/service.cpp index 26bdcd115..4b1b24984 100644 --- a/lib/cib/service.cpp +++ b/lib/icinga/service.cpp @@ -17,7 +17,7 @@ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * ******************************************************************************/ -#include "i2-cib.h" +#include "i2-icinga.h" using namespace icinga; diff --git a/lib/cib/service.h b/lib/icinga/service.h similarity index 98% rename from lib/cib/service.h rename to lib/icinga/service.h index 406719b12..92c22ea18 100644 --- a/lib/cib/service.h +++ b/lib/icinga/service.h @@ -41,7 +41,7 @@ enum ServiceStateType class CheckResultMessage; class ServiceStatusMessage; -class I2_CIB_API Service : public DynamicObject +class I2_ICINGA_API Service : public DynamicObject { public: typedef shared_ptr Ptr; diff --git a/lib/cib/servicegroup.cpp b/lib/icinga/servicegroup.cpp similarity index 98% rename from lib/cib/servicegroup.cpp rename to lib/icinga/servicegroup.cpp index c435d6bec..d5f5bc1b6 100644 --- a/lib/cib/servicegroup.cpp +++ b/lib/icinga/servicegroup.cpp @@ -17,7 +17,7 @@ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * ******************************************************************************/ -#include "i2-cib.h" +#include "i2-icinga.h" using namespace icinga; diff --git a/lib/cib/servicegroup.h b/lib/icinga/servicegroup.h similarity index 97% rename from lib/cib/servicegroup.h rename to lib/icinga/servicegroup.h index 7fdd98f57..9552e29a2 100644 --- a/lib/cib/servicegroup.h +++ b/lib/icinga/servicegroup.h @@ -23,7 +23,7 @@ namespace icinga { -class I2_CIB_API ServiceGroup : public DynamicObject +class I2_ICINGA_API ServiceGroup : public DynamicObject { public: typedef shared_ptr Ptr; diff --git a/lib/cib/servicestatechangemessage.cpp b/lib/icinga/servicestatechangemessage.cpp similarity index 98% rename from lib/cib/servicestatechangemessage.cpp rename to lib/icinga/servicestatechangemessage.cpp index 030e893f8..df7a2ee83 100644 --- a/lib/cib/servicestatechangemessage.cpp +++ b/lib/icinga/servicestatechangemessage.cpp @@ -17,7 +17,7 @@ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * ******************************************************************************/ -#include "i2-cib.h" +#include "i2-icinga.h" using namespace icinga; diff --git a/lib/cib/servicestatechangemessage.h b/lib/icinga/servicestatechangemessage.h similarity index 96% rename from lib/cib/servicestatechangemessage.h rename to lib/icinga/servicestatechangemessage.h index bee5082cc..575855c2b 100644 --- a/lib/cib/servicestatechangemessage.h +++ b/lib/icinga/servicestatechangemessage.h @@ -23,7 +23,7 @@ namespace icinga { -class I2_CIB_API ServiceStateChangeMessage : public MessagePart +class I2_ICINGA_API ServiceStateChangeMessage : public MessagePart { public: ServiceStateChangeMessage(void) : MessagePart() { } diff --git a/lib/jsonrpc/Makefile.am b/lib/remoting/Makefile.am similarity index 50% rename from lib/jsonrpc/Makefile.am rename to lib/remoting/Makefile.am index 6450c5d1d..4f5417bb9 100644 --- a/lib/jsonrpc/Makefile.am +++ b/lib/remoting/Makefile.am @@ -2,10 +2,14 @@ pkglib_LTLIBRARIES = \ - libjsonrpc.la + libremoting.la -libjsonrpc_la_SOURCES = \ - i2-jsonrpc.h \ +libremoting_la_SOURCES = \ + endpoint.cpp \ + endpoint.h \ + endpointmanager.cpp \ + endpointmanager.h \ + i2-remoting.h \ jsonrpcclient.cpp \ jsonrpcclient.h \ jsonrpcserver.cpp \ @@ -17,16 +21,18 @@ libjsonrpc_la_SOURCES = \ responsemessage.cpp \ responsemessage.h -libjsonrpc_la_CPPFLAGS = \ - -DI2_JSONRPC_BUILD \ +libremoting_la_CPPFLAGS = \ + -DI2_REMOTING_BUILD \ $(BOOST_CPPFLAGS) \ - -I${top_srcdir}/lib/base + -I${top_srcdir}/lib/base \ + -I${top_srcdir}/lib/config -libjsonrpc_la_LDFLAGS = \ +libremoting_la_LDFLAGS = \ $(BOOST_LDFLAGS) \ -no-undefined \ @RELEASE_INFO@ \ @VERSION_INFO@ -libjsonrpc_la_LIBADD = \ - ${top_builddir}/lib/base/libbase.la +libremoting_la_LIBADD = \ + ${top_builddir}/lib/base/libbase.la \ + ${top_builddir}/lib/config/libconfig.la diff --git a/lib/icinga/endpoint.cpp b/lib/remoting/endpoint.cpp similarity index 97% rename from lib/icinga/endpoint.cpp rename to lib/remoting/endpoint.cpp index 9e0148dbd..0de95603d 100644 --- a/lib/icinga/endpoint.cpp +++ b/lib/remoting/endpoint.cpp @@ -17,7 +17,7 @@ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * ******************************************************************************/ -#include "i2-icinga.h" +#include "i2-remoting.h" using namespace icinga; @@ -234,7 +234,7 @@ void Endpoint::OnAttributeChanged(const String& name, const Value& oldValue) String subscription; BOOST_FOREACH(tie(tuples::ignore, subscription), oldSubscriptions) { if (!newSubscriptions || !newSubscriptions->Contains(subscription)) { - Logger::Write(LogInformation, "icinga", "Removed subscription for '" + GetName() + "': " + subscription); + Logger::Write(LogInformation, "remoting", "Removed subscription for '" + GetName() + "': " + subscription); OnSubscriptionUnregistered(GetSelf(), subscription); } } @@ -244,7 +244,7 @@ void Endpoint::OnAttributeChanged(const String& name, const Value& oldValue) String subscription; BOOST_FOREACH(tie(tuples::ignore, subscription), newSubscriptions) { if (!oldSubscriptions || !oldSubscriptions->Contains(subscription)) { - Logger::Write(LogInformation, "icinga", "New subscription for '" + GetName() + "': " + subscription); + Logger::Write(LogInformation, "remoting", "New subscription for '" + GetName() + "': " + subscription); OnSubscriptionRegistered(GetSelf(), subscription); } } diff --git a/lib/icinga/endpoint.h b/lib/remoting/endpoint.h similarity index 98% rename from lib/icinga/endpoint.h rename to lib/remoting/endpoint.h index d2799e823..b03778253 100644 --- a/lib/icinga/endpoint.h +++ b/lib/remoting/endpoint.h @@ -30,7 +30,7 @@ class EndpointManager; * * @ingroup icinga */ -class I2_ICINGA_API Endpoint : public DynamicObject +class I2_REMOTING_API Endpoint : public DynamicObject { public: typedef shared_ptr Ptr; diff --git a/lib/icinga/endpointmanager.cpp b/lib/remoting/endpointmanager.cpp similarity index 94% rename from lib/icinga/endpointmanager.cpp rename to lib/remoting/endpointmanager.cpp index 0703fc755..674d413cd 100644 --- a/lib/icinga/endpointmanager.cpp +++ b/lib/remoting/endpointmanager.cpp @@ -17,7 +17,7 @@ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * ******************************************************************************/ -#include "i2-icinga.h" +#include "i2-remoting.h" using namespace icinga; @@ -43,6 +43,26 @@ EndpointManager::EndpointManager(void) m_ReconnectTimer->Start(); } +/** + * Sets the SSL context. + * + * @param sslContext The new SSL context. + */ +void EndpointManager::SetSSLContext(const shared_ptr& sslContext) +{ + m_SSLContext = sslContext; +} + +/** + * Retrieves the SSL context. + * + * @returns The SSL context. + */ +shared_ptr EndpointManager::GetSSLContext(void) const +{ + return m_SSLContext; +} + /** * Sets the identity of the endpoint manager. This identity is used when * connecting to remote peers. @@ -81,7 +101,7 @@ String EndpointManager::GetIdentity(void) const */ void EndpointManager::AddListener(const String& service) { - shared_ptr sslContext = IcingaApplication::GetInstance()->GetSSLContext(); + shared_ptr sslContext = GetSSLContext(); if (!sslContext) throw_exception(logic_error("SSL context is required for AddListener()")); @@ -108,8 +128,12 @@ void EndpointManager::AddListener(const String& service) * @param service The remote port. */ void EndpointManager::AddConnection(const String& node, const String& service) { - JsonRpcClient::Ptr client = boost::make_shared(RoleOutbound, - IcingaApplication::GetInstance()->GetSSLContext()); + shared_ptr sslContext = GetSSLContext(); + + if (!sslContext) + throw_exception(logic_error("SSL context is required for AddConnection()")); + + JsonRpcClient::Ptr client = boost::make_shared(RoleOutbound, sslContext); client->Connect(node, service); NewClientHandler(client); } diff --git a/lib/icinga/endpointmanager.h b/lib/remoting/endpointmanager.h similarity index 96% rename from lib/icinga/endpointmanager.h rename to lib/remoting/endpointmanager.h index fe57d74d5..9796dd8e5 100644 --- a/lib/icinga/endpointmanager.h +++ b/lib/remoting/endpointmanager.h @@ -28,14 +28,12 @@ namespace icinga * * @ingroup icinga */ -class I2_ICINGA_API EndpointManager : public Object +class I2_REMOTING_API EndpointManager : public Object { public: typedef shared_ptr Ptr; typedef weak_ptr WeakPtr; -// typedef map::iterator Iterator; - EndpointManager(void); static EndpointManager::Ptr GetInstance(void); @@ -68,6 +66,8 @@ private: String m_Identity; Endpoint::Ptr m_Endpoint; + shared_ptr m_SSLContext; + Timer::Ptr m_SubscriptionTimer; Timer::Ptr m_ReconnectTimer; @@ -80,7 +80,7 @@ private: * * @ingroup icinga */ - struct I2_ICINGA_API PendingRequest + struct I2_REMOTING_API PendingRequest { double Timeout; RequestMessage Request; diff --git a/lib/jsonrpc/i2-jsonrpc.cpp b/lib/remoting/i2-remoting.cpp similarity index 100% rename from lib/jsonrpc/i2-jsonrpc.cpp rename to lib/remoting/i2-remoting.cpp diff --git a/lib/jsonrpc/i2-jsonrpc.h b/lib/remoting/i2-remoting.h similarity index 83% rename from lib/jsonrpc/i2-jsonrpc.h rename to lib/remoting/i2-remoting.h index d4d6df787..a54d94350 100644 --- a/lib/jsonrpc/i2-jsonrpc.h +++ b/lib/remoting/i2-remoting.h @@ -17,29 +17,31 @@ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * ******************************************************************************/ -#ifndef I2JSONRPC_H -#define I2JSONRPC_H +#ifndef I2REMOTING_H +#define I2REMOTING_H /** - * @defgroup jsonrpc JSON-RPC + * @defgroup remoting JSON-RPC library * * The JSON-RPC library implements server and client classes for the JSON-RPC * protocol. */ -#include #include +#include -#ifdef I2_JSONRPC_BUILD -# define I2_JSONRPC_API I2_EXPORT -#else /* I2_JSONRPC_BUILD */ -# define I2_JSONRPC_API I2_IMPORT -#endif /* I2_JSONRPC_BUILD */ +#ifdef I2_REMOTING_BUILD +# define I2_REMOTING_API I2_EXPORT +#else /* I2_REMOTING_BUILD */ +# define I2_REMOTING_API I2_IMPORT +#endif /* I2_REMOTING_BUILD */ #include "messagepart.h" #include "requestmessage.h" #include "responsemessage.h" #include "jsonrpcclient.h" #include "jsonrpcserver.h" +#include "endpoint.h" +#include "endpointmanager.h" -#endif /* I2JSONRPC_H */ +#endif /* I2REMOTING_H */ diff --git a/lib/jsonrpc/jsonrpc.vcxproj b/lib/remoting/jsonrpc.vcxproj similarity index 100% rename from lib/jsonrpc/jsonrpc.vcxproj rename to lib/remoting/jsonrpc.vcxproj diff --git a/lib/jsonrpc/jsonrpc.vcxproj.filters b/lib/remoting/jsonrpc.vcxproj.filters similarity index 100% rename from lib/jsonrpc/jsonrpc.vcxproj.filters rename to lib/remoting/jsonrpc.vcxproj.filters diff --git a/lib/jsonrpc/jsonrpcclient.cpp b/lib/remoting/jsonrpcclient.cpp similarity index 99% rename from lib/jsonrpc/jsonrpcclient.cpp rename to lib/remoting/jsonrpcclient.cpp index 496c0f273..5da414da3 100644 --- a/lib/jsonrpc/jsonrpcclient.cpp +++ b/lib/remoting/jsonrpcclient.cpp @@ -17,7 +17,7 @@ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * ******************************************************************************/ -#include "i2-jsonrpc.h" +#include "i2-remoting.h" using namespace icinga; diff --git a/lib/jsonrpc/jsonrpcclient.h b/lib/remoting/jsonrpcclient.h similarity index 96% rename from lib/jsonrpc/jsonrpcclient.h rename to lib/remoting/jsonrpcclient.h index 6df837d2f..c1e719ab4 100644 --- a/lib/jsonrpc/jsonrpcclient.h +++ b/lib/remoting/jsonrpcclient.h @@ -26,9 +26,9 @@ namespace icinga /** * A JSON-RPC client. * - * @ingroup jsonrpc + * @ingroup remoting */ -class I2_JSONRPC_API JsonRpcClient : public TlsClient +class I2_REMOTING_API JsonRpcClient : public TlsClient { public: typedef shared_ptr Ptr; diff --git a/lib/jsonrpc/jsonrpcserver.cpp b/lib/remoting/jsonrpcserver.cpp similarity index 98% rename from lib/jsonrpc/jsonrpcserver.cpp rename to lib/remoting/jsonrpcserver.cpp index c5f7e504e..c645de639 100644 --- a/lib/jsonrpc/jsonrpcserver.cpp +++ b/lib/remoting/jsonrpcserver.cpp @@ -17,7 +17,7 @@ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * ******************************************************************************/ -#include "i2-jsonrpc.h" +#include "i2-remoting.h" using namespace icinga; diff --git a/lib/jsonrpc/jsonrpcserver.h b/lib/remoting/jsonrpcserver.h similarity index 95% rename from lib/jsonrpc/jsonrpcserver.h rename to lib/remoting/jsonrpcserver.h index 6128226f5..4cf9a5841 100644 --- a/lib/jsonrpc/jsonrpcserver.h +++ b/lib/remoting/jsonrpcserver.h @@ -26,9 +26,9 @@ namespace icinga /** * A JSON-RPC server. * - * @ingroup jsonrpc + * @ingroup remoting */ -class I2_JSONRPC_API JsonRpcServer : public TcpServer +class I2_REMOTING_API JsonRpcServer : public TcpServer { public: typedef shared_ptr Ptr; diff --git a/lib/jsonrpc/messagepart.cpp b/lib/remoting/messagepart.cpp similarity index 99% rename from lib/jsonrpc/messagepart.cpp rename to lib/remoting/messagepart.cpp index fd42b91b6..7c04a951a 100644 --- a/lib/jsonrpc/messagepart.cpp +++ b/lib/remoting/messagepart.cpp @@ -17,7 +17,7 @@ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * ******************************************************************************/ -#include "i2-jsonrpc.h" +#include "i2-remoting.h" using namespace icinga; diff --git a/lib/jsonrpc/messagepart.h b/lib/remoting/messagepart.h similarity index 98% rename from lib/jsonrpc/messagepart.h rename to lib/remoting/messagepart.h index 6caec2a6f..defff4357 100644 --- a/lib/jsonrpc/messagepart.h +++ b/lib/remoting/messagepart.h @@ -30,9 +30,9 @@ typedef ::cJSON json_t; /** * A part of an RPC message. * - * @ingroup jsonrpc + * @ingroup remoting */ -class I2_JSONRPC_API MessagePart +class I2_REMOTING_API MessagePart { public: MessagePart(void); diff --git a/lib/jsonrpc/requestmessage.cpp b/lib/remoting/requestmessage.cpp similarity index 98% rename from lib/jsonrpc/requestmessage.cpp rename to lib/remoting/requestmessage.cpp index c3d908ef6..c18b8596c 100644 --- a/lib/jsonrpc/requestmessage.cpp +++ b/lib/remoting/requestmessage.cpp @@ -17,6 +17,6 @@ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * ******************************************************************************/ -#include "i2-jsonrpc.h" +#include "i2-remoting.h" using namespace icinga; diff --git a/lib/jsonrpc/requestmessage.h b/lib/remoting/requestmessage.h similarity index 97% rename from lib/jsonrpc/requestmessage.h rename to lib/remoting/requestmessage.h index 544524f65..506885628 100644 --- a/lib/jsonrpc/requestmessage.h +++ b/lib/remoting/requestmessage.h @@ -26,9 +26,9 @@ namespace icinga /** * A JSON-RPC request message. * - * @ingroup jsonrpc + * @ingroup remoting */ -class I2_JSONRPC_API RequestMessage : public MessagePart +class I2_REMOTING_API RequestMessage : public MessagePart { public: /** diff --git a/lib/jsonrpc/responsemessage.cpp b/lib/remoting/responsemessage.cpp similarity index 98% rename from lib/jsonrpc/responsemessage.cpp rename to lib/remoting/responsemessage.cpp index c3d908ef6..c18b8596c 100644 --- a/lib/jsonrpc/responsemessage.cpp +++ b/lib/remoting/responsemessage.cpp @@ -17,6 +17,6 @@ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * ******************************************************************************/ -#include "i2-jsonrpc.h" +#include "i2-remoting.h" using namespace icinga; diff --git a/lib/jsonrpc/responsemessage.h b/lib/remoting/responsemessage.h similarity index 97% rename from lib/jsonrpc/responsemessage.h rename to lib/remoting/responsemessage.h index 7c631fb9c..d46ef18a2 100644 --- a/lib/jsonrpc/responsemessage.h +++ b/lib/remoting/responsemessage.h @@ -26,9 +26,9 @@ namespace icinga /** * A JSON-RPC response message. * - * @ingroup jsonrpc + * @ingroup remoting */ -class I2_JSONRPC_API ResponseMessage : public MessagePart +class I2_REMOTING_API ResponseMessage : public MessagePart { public: /**