mirror of https://github.com/Icinga/icinga2.git
Merge branch 'master' into mfriedrich/compatido
This commit is contained in:
commit
ea9309096c
20
autogen.sh
20
autogen.sh
|
@ -30,6 +30,26 @@ fi
|
||||||
DIE=1
|
DIE=1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
(grep "^AC_PROG_LEX" $srcdir/configure.ac >/dev/null) && {
|
||||||
|
(lex --version) < /dev/null > /dev/null 2>&1 || {
|
||||||
|
echo
|
||||||
|
echo "**Error**: You must have \`lex' installed."
|
||||||
|
echo "Download the appropriate package for your distribution,"
|
||||||
|
echo "or get the source tarball for flex at http://flex.sourceforge.net/"
|
||||||
|
DIE=1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
(grep "^AC_PROG_YACC" $srcdir/configure.ac >/dev/null) && {
|
||||||
|
(yacc --version) < /dev/null > /dev/null 2>&1 || {
|
||||||
|
echo
|
||||||
|
echo "**Error**: You must have \`yacc' installed."
|
||||||
|
echo "Download the appropriate package for your distribution,"
|
||||||
|
echo "or get the source tarball for bison at http://ftp.gnu.org/gnu/bison/"
|
||||||
|
DIE=1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
(grep "^IT_PROG_INTLTOOL" $srcdir/configure.ac >/dev/null) && {
|
(grep "^IT_PROG_INTLTOOL" $srcdir/configure.ac >/dev/null) && {
|
||||||
(intltoolize --version) < /dev/null > /dev/null 2>&1 || {
|
(intltoolize --version) < /dev/null > /dev/null 2>&1 || {
|
||||||
echo
|
echo
|
||||||
|
|
|
@ -47,7 +47,7 @@ DX_PS_FEATURE(OFF)
|
||||||
DX_INIT_DOXYGEN([icinga], [docs/Doxyfile], [docs/dev])
|
DX_INIT_DOXYGEN([icinga], [docs/Doxyfile], [docs/dev])
|
||||||
|
|
||||||
AC_PROG_INSTALL
|
AC_PROG_INSTALL
|
||||||
AM_PROG_LEX
|
AC_PROG_LEX
|
||||||
AC_PROG_YACC
|
AC_PROG_YACC
|
||||||
AC_PROG_LIBTOOL
|
AC_PROG_LIBTOOL
|
||||||
AX_CXX_GCC_ABI_DEMANGLE
|
AX_CXX_GCC_ABI_DEMANGLE
|
||||||
|
@ -64,6 +64,7 @@ AC_CHECK_LIB(m, floor)
|
||||||
AC_CHECK_LIB(socket, getsockname)
|
AC_CHECK_LIB(socket, getsockname)
|
||||||
AC_CHECK_LIB(ws2_32, getsockname)
|
AC_CHECK_LIB(ws2_32, getsockname)
|
||||||
AC_CHECK_LIB(shlwapi, PathRemoveFileSpecA)
|
AC_CHECK_LIB(shlwapi, PathRemoveFileSpecA)
|
||||||
|
AC_CHECK_FUNCS([backtrace_symbols])
|
||||||
|
|
||||||
AC_CONFIG_FILES([
|
AC_CONFIG_FILES([
|
||||||
Makefile
|
Makefile
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
SUBDIRS = \
|
SUBDIRS = \
|
||||||
config
|
config
|
||||||
|
|
||||||
bin_PROGRAMS = \
|
sbin_PROGRAMS = \
|
||||||
icinga2
|
icinga2
|
||||||
|
|
||||||
icinga2_SOURCES = \
|
icinga2_SOURCES = \
|
||||||
|
@ -17,10 +17,12 @@ icinga2_CPPFLAGS = \
|
||||||
-I${top_srcdir}/lib/config \
|
-I${top_srcdir}/lib/config \
|
||||||
-I${top_srcdir}/lib/remoting \
|
-I${top_srcdir}/lib/remoting \
|
||||||
-I${top_srcdir}/lib/icinga \
|
-I${top_srcdir}/lib/icinga \
|
||||||
-I${top_srcdir}
|
-I${top_srcdir} \
|
||||||
|
-DICINGA_LIBDIR="\"$(pkglibdir)\""
|
||||||
|
|
||||||
icinga2_LDFLAGS = \
|
icinga2_LDFLAGS = \
|
||||||
$(BOOST_LDFLAGS)
|
$(BOOST_LDFLAGS) \
|
||||||
|
-export-dynamic
|
||||||
|
|
||||||
icinga2_LDADD = \
|
icinga2_LDADD = \
|
||||||
$(LIBLTDL) \
|
$(LIBLTDL) \
|
||||||
|
|
|
@ -1,10 +1,5 @@
|
||||||
icinga2confdir = $(sysconfdir)/icinga2
|
icinga2confdir = $(sysconfdir)/icinga2
|
||||||
icinga2conf_DATA = \
|
icinga2conf_DATA = \
|
||||||
icinga2.conf.dist \
|
icinga2.conf.dist
|
||||||
example-ca.crt \
|
|
||||||
example-ca.key \
|
|
||||||
icinga-c1.pem \
|
|
||||||
icinga-c2.pem \
|
|
||||||
icinga-c3.pem
|
|
||||||
|
|
||||||
EXTRA_DIST = $(icinga2conf_DATA)
|
EXTRA_DIST = $(icinga2conf_DATA)
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICnjCCAgegAwIBAgIJAOP3gULX9+xgMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNV
|
|
||||||
BAYTAkRFMRAwDgYDVQQIDAdCYXZhcmlhMRIwEAYDVQQHDAlOdXJlbWJlcmcxFTAT
|
|
||||||
BgNVBAoMDE5FVFdBWVMgR21iSDEcMBoGA1UEAwwTSWNpbmdhIFNuYWtlIE9pbCBD
|
|
||||||
QTAeFw0xMjA0MjQxMTQyMzFaFw0yMjA0MjIxMTQyMzFaMGgxCzAJBgNVBAYTAkRF
|
|
||||||
MRAwDgYDVQQIDAdCYXZhcmlhMRIwEAYDVQQHDAlOdXJlbWJlcmcxFTATBgNVBAoM
|
|
||||||
DE5FVFdBWVMgR21iSDEcMBoGA1UEAwwTSWNpbmdhIFNuYWtlIE9pbCBDQTCBnzAN
|
|
||||||
BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAyxlEqY9AcY0YwpMIsirzy/6o9M29LRa4
|
|
||||||
ziHURLugpyTKugtAkS5c2Gyt9lf7gdZBcVZ8KD6cszanQqKlZrl0h74E/S13tDqM
|
|
||||||
rhR4DHeZssstn5LNK57WYx/vw84bmd6Yq6SeP4geq0JfO+y3Ruu+eePtQSOSzS9F
|
|
||||||
wGpKyAHo4AcCAwEAAaNQME4wHQYDVR0OBBYEFNVJHVPJNwqEcG51lpqZJWVPaysF
|
|
||||||
MB8GA1UdIwQYMBaAFNVJHVPJNwqEcG51lpqZJWVPaysFMAwGA1UdEwQFMAMBAf8w
|
|
||||||
DQYJKoZIhvcNAQEFBQADgYEAA1CMZgzQuQAslZ/i6OpFmRzuT/0KAfd6s8n6rf+6
|
|
||||||
xRvbgLlop8b8XfhhC/IwwoHU0i86o3vV3ZJjEVcdwTDEwpnyCfhFjhXzNZFqL8Ak
|
|
||||||
Olqy5HFd/+xysTLbdmhHtBIdOeUK1qz/u9I14A71XWiknjcxHya2Ghxg4yIZVdKh
|
|
||||||
oTQ=
|
|
||||||
-----END CERTIFICATE-----
|
|
|
@ -1,16 +0,0 @@
|
||||||
-----BEGIN PRIVATE KEY-----
|
|
||||||
MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAMsZRKmPQHGNGMKT
|
|
||||||
CLIq88v+qPTNvS0WuM4h1ES7oKckyroLQJEuXNhsrfZX+4HWQXFWfCg+nLM2p0Ki
|
|
||||||
pWa5dIe+BP0td7Q6jK4UeAx3mbLLLZ+SzSue1mMf78POG5nemKuknj+IHqtCXzvs
|
|
||||||
t0brvnnj7UEjks0vRcBqSsgB6OAHAgMBAAECgYBg4Ku06cUGpRQjc/lY604hh1bW
|
|
||||||
dvD++fCrOs3C/3DRaaZd+hIRbnkRLz4H3M32j9nlkyhkFgGvJqnACk81Yc8oOu86
|
|
||||||
Pm7bOdEj8v31qq943NCps5tdKHepXM0Z6A8GjaR2ias39NKxVDacBoFzSDAVArTL
|
|
||||||
p6dyqLjsW5Y3INeHmQJBAPB6w9iqa31GLXMEMeP5LA4+2p3aHPQ25ptMCUcp/Vc6
|
|
||||||
40GOSIlLb8rfE+q1ZacChv94jSNLybR+U9++8DLIxnMCQQDYNORSo57mVSebDr7e
|
|
||||||
Gx8BDbyC+yAgiAi+qfJRekQ0I+R1SxfkCIBSWNrQ944isn0eRcr7+BWVl/WOrVSk
|
|
||||||
vccdAkBEwbURU9ib3t7Lzd0941ZXVF1JWL2CjdftexYEBNtsf2fOrJHMv4bdKF8X
|
|
||||||
cnn4AF782EjyWI75Tk1I4dzniERFAkBKZ9lzvy9+ISwiJq71DOxclnebtATYbThl
|
|
||||||
NWNZOvSh5QBIhXFRXsOak02qwKc/taFte6Nhl30GIGe3lFse3tjZAkBguOZFeSOO
|
|
||||||
hIAxMD+QpDUHZRYEjhDtPn3oAkLgBNUdeajffLdt4SmRa26t4QnSAE8kkbadIm6A
|
|
||||||
z52CJc8G2ALA
|
|
||||||
-----END PRIVATE KEY-----
|
|
|
@ -1,33 +0,0 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICtzCCAiCgAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJERTEQ
|
|
||||||
MA4GA1UECAwHQmF2YXJpYTESMBAGA1UEBwwJTnVyZW1iZXJnMRUwEwYDVQQKDAxO
|
|
||||||
RVRXQVlTIEdtYkgxHDAaBgNVBAMME0ljaW5nYSBTbmFrZSBPaWwgQ0EwHhcNMTIw
|
|
||||||
NDI0MTE0NzQ2WhcNMTMwNDI0MTE0NzQ2WjBeMQswCQYDVQQGEwJERTEQMA4GA1UE
|
|
||||||
CAwHQmF2YXJpYTESMBAGA1UEBwwJTnVyZW1iZXJnMRUwEwYDVQQKDAxORVRXQVlT
|
|
||||||
IEdtYkgxEjAQBgNVBAMMCWljaW5nYS1jMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
|
|
||||||
gYkCgYEAysHrzHs9WfQR4cEUx2hFZQmbM+Ssi5L63yqnzxEvVQ3GlM+uIceK1Kvx
|
|
||||||
9EexoUDLhxJOaUmigc6Pcs2mAjcpEwObnzW4pLuMKa7ngGLrnUpmmDXdGoxkCbi7
|
|
||||||
CP3s5yC7ZZ6bDiPMhRi/TRvY6+uQf+yew5daA3p87jocgRjhRicCAwEAAaN7MHkw
|
|
||||||
CQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2Vy
|
|
||||||
dGlmaWNhdGUwHQYDVR0OBBYEFPzsYbQZdbq+pcFJWoenWREW6WhMMB8GA1UdIwQY
|
|
||||||
MBaAFNVJHVPJNwqEcG51lpqZJWVPaysFMA0GCSqGSIb3DQEBBQUAA4GBAMLP1GJf
|
|
||||||
0hFdrEpGq+NvxTVx7wD30enAot5x2HLx4HuFohQJz/VZ45v+srrA+HEXbBFXPOd4
|
|
||||||
nB2XtcDDidFKTt5E03HBwDGGZvnB3f1KXYi7B50imKrwVVzgp5nGBM4hSzWGovEX
|
|
||||||
EYofmhk0fQg9qiKQrjwNib/4/b0srwEswfdj
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
-----BEGIN PRIVATE KEY-----
|
|
||||||
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAMrB68x7PVn0EeHB
|
|
||||||
FMdoRWUJmzPkrIuS+t8qp88RL1UNxpTPriHHitSr8fRHsaFAy4cSTmlJooHOj3LN
|
|
||||||
pgI3KRMDm581uKS7jCmu54Bi651KZpg13RqMZAm4uwj97Ocgu2Wemw4jzIUYv00b
|
|
||||||
2OvrkH/snsOXWgN6fO46HIEY4UYnAgMBAAECgYBj/1QOG1HcxXT0REe9OP3QoPY8
|
|
||||||
l7FJfQnheqYch7syVYL07aBR5Jnh3ZONCLbgcpZuXWbyonBVWMyCsE4Jla7ZYnBB
|
|
||||||
plZPMYmzGxEbTM5Bu+PZ0M1NLvdLCRq24IVwTZwBBZ3sr7rVSnAYi2Li0SWQEaCN
|
|
||||||
P+PbZP1P9i9WiI+VIQJBAPYBfVWNk3gY1V0YuuH9fmYRBg5/B1qy8bYS9FLVIq2z
|
|
||||||
5r7eI1EypcVtyTx6yMmLuWj4mpNOKv5sxQsHalzRo18CQQDS/qPoDqMkDB9r9XeZ
|
|
||||||
qS2XQdX6YxzGisqL8vWcZ/Y6YX81qm3Lpp2wEexUXvWXRI5RdguctZFKTVyG/Mic
|
|
||||||
C9o5AkAEtvKX+SaiXpd4OUkbm6gYfKsJDBYv/s3zF1nnXH5VpeT+M3Op0raqmfgJ
|
|
||||||
WLEQa8UZ5enQeOcKCTudgn7fWIUxAkEAmXWfXP6YZXVzvR+xt08225aEvTItEbKM
|
|
||||||
krFJNlLe4aNb1Hp6lO5ALnk6vDq8wSKZqGIFHBtq6vHNZFiix+xO8QJAIZ3pB/Bz
|
|
||||||
Il8NjZMg8t/1sJdn32Xe9D0lZRtZTKC8zF/78NDFEo9qqE4Sr1CUfqlx18HXOxCO
|
|
||||||
Vg4lv6+jUj+LmA==
|
|
||||||
-----END PRIVATE KEY-----
|
|
|
@ -1,33 +0,0 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICtzCCAiCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJERTEQ
|
|
||||||
MA4GA1UECAwHQmF2YXJpYTESMBAGA1UEBwwJTnVyZW1iZXJnMRUwEwYDVQQKDAxO
|
|
||||||
RVRXQVlTIEdtYkgxHDAaBgNVBAMME0ljaW5nYSBTbmFrZSBPaWwgQ0EwHhcNMTIw
|
|
||||||
NDI0MTE0NzU1WhcNMTMwNDI0MTE0NzU1WjBeMQswCQYDVQQGEwJERTEQMA4GA1UE
|
|
||||||
CAwHQmF2YXJpYTESMBAGA1UEBwwJTnVyZW1iZXJnMRUwEwYDVQQKDAxORVRXQVlT
|
|
||||||
IEdtYkgxEjAQBgNVBAMMCWljaW5nYS1jMjCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
|
|
||||||
gYkCgYEArOcVui1AWojbPuK/7We9uwIBLaOLfBxQRI3+k6PzzjdtaXT4ijT/DSav
|
|
||||||
Q5U4wGOLYh0yuSyqS88QX/DsqDGLXnSVs8mT37bioMOw2XinqaNQ6xK4vyi0FYxS
|
|
||||||
ewI6YOkYi7135NEaSUgd82hk4wFtiIb67T7hkHRc7Aui6FmT/SkCAwEAAaN7MHkw
|
|
||||||
CQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2Vy
|
|
||||||
dGlmaWNhdGUwHQYDVR0OBBYEFGvpolD5na6L70kNFO1tYGYIwDhqMB8GA1UdIwQY
|
|
||||||
MBaAFNVJHVPJNwqEcG51lpqZJWVPaysFMA0GCSqGSIb3DQEBBQUAA4GBAIhhjKWw
|
|
||||||
5JKirNidgG9PuD8x47VsRTkESLlq/pS7KjkE1nWCG9JpR5oVSzx2WXomiaAZ4q2C
|
|
||||||
WS1z4HD9HF4NbhY+xVBi0Fj/kotuXCCweRo5EVp7Q4fabm1maJemFwMTHGhBLu7a
|
|
||||||
v4dquYyOk9Dhkwcjajyn+KWceCoUTdI3LB2t
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
-----BEGIN PRIVATE KEY-----
|
|
||||||
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAKznFbotQFqI2z7i
|
|
||||||
v+1nvbsCAS2ji3wcUESN/pOj8843bWl0+Io0/w0mr0OVOMBji2IdMrksqkvPEF/w
|
|
||||||
7Kgxi150lbPJk9+24qDDsNl4p6mjUOsSuL8otBWMUnsCOmDpGIu9d+TRGklIHfNo
|
|
||||||
ZOMBbYiG+u0+4ZB0XOwLouhZk/0pAgMBAAECgYEAkbEavslYm7EMRX4dyXcMCaNT
|
|
||||||
yNgxNcBJ5qpbpJ6XVuGfoSf+Mb8cV0GMl38K1hpLHb6Kujwntz9ghedmEwfEbcw0
|
|
||||||
TkSaNz1+7omM+485S2YvXJyR1kO8eEKONVlGuxgO/ItiR+e1J6wMnY5JhctgRH6W
|
|
||||||
aOqy+5Ua1ATIdiOYrI0CQQDku3CNDOipwDmguBIrlxa+6NsATJRjqFmHqWdu2pYh
|
|
||||||
KRl3Sypn+LfhdFRbo3licU5a1OqydGmVpRTpQPJO7MoHAkEAwYPQIGZd/60O2LWV
|
|
||||||
M5eLnwKrrQSfrQ/Lngz0Qko4Yo913Ef2PC2QQ6p9cOt3vMPZDK5znlzQbBCa6cAH
|
|
||||||
tBvzTwJAT+uaaP5wsRdkS17lomt5XB1aoCEh3Cxvk/JCHL6tpEqLBl6yI4AJJ/KQ
|
|
||||||
ozBccmQqv5wToWUBm3MB+nph7+fWswJAMKcQQ6UZCvganHeCzJbUXqUQPo7ECoHH
|
|
||||||
IrSFEMmSRY1mB3z8NoMKG0kZArPgxc/DmUGfBfi12gWOvSgvh6PjVwJBALKECoe5
|
|
||||||
nmxhHTFbs4+UCFTzp6BGtSBdr6to0ID7ykZWT6kBX/BHUnoJUEpDtNLXzbek/KeI
|
|
||||||
ymg0LgRkHoWNpLY=
|
|
||||||
-----END PRIVATE KEY-----
|
|
|
@ -1,28 +0,0 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICNTCCAZ4CAQQwDQYJKoZIhvcNAQEFBQAwaDELMAkGA1UEBhMCREUxEDAOBgNV
|
|
||||||
BAgMB0JhdmFyaWExEjAQBgNVBAcMCU51cmVtYmVyZzEVMBMGA1UECgwMTkVUV0FZ
|
|
||||||
UyBHbWJIMRwwGgYDVQQDDBNJY2luZ2EgU25ha2UgT2lsIENBMB4XDTEyMDUwODA3
|
|
||||||
MzkxOVoXDTIyMDUwNjA3MzkxOVowXjELMAkGA1UEBhMCREUxEDAOBgNVBAgMB0Jh
|
|
||||||
dmFyaWExEjAQBgNVBAcMCU51cmVtYmVyZzEVMBMGA1UECgwMTkVUV0FZUyBHbWJI
|
|
||||||
MRIwEAYDVQQDDAlpY2luZ2EtYzMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB
|
|
||||||
AKFf+UkCgbNtEP0OoeF+K02L5SRlqkkkp6eaieh0IN7NNAxeELcGpZmycv4sHp30
|
|
||||||
qv0zDtKU1HYrpm8TEBsz2AoT+J36QT9IysfcWdM9o3WZGMDUVqYBUscurkxBQJCK
|
|
||||||
cFwXijTJ8Djn82xVgNUm/E44AdbrIwUlx23yllErx8hfAgMBAAEwDQYJKoZIhvcN
|
|
||||||
AQEFBQADgYEAsZOKZQ2+ksPiNTCJrY+uiUZs6lFSbcJ9BHHaAt0ytQPiblufz3xl
|
|
||||||
AR5Hza5fHt+lN9aGxM7TWMhjZHhmoctSRz8AW1KZTdbxJhRdbqmBjl95c2wBiDxs
|
|
||||||
ERpyU9m9Rp42IjTyU4Vr/yO7DgMcG2k4KYzNquA5O8rqqtPRAp3H6n0=
|
|
||||||
-----END CERTIFICATE----------BEGIN RSA PRIVATE KEY-----
|
|
||||||
MIICXAIBAAKBgQChX/lJAoGzbRD9DqHhfitNi+UkZapJJKenmonodCDezTQMXhC3
|
|
||||||
BqWZsnL+LB6d9Kr9Mw7SlNR2K6ZvExAbM9gKE/id+kE/SMrH3FnTPaN1mRjA1Fam
|
|
||||||
AVLHLq5MQUCQinBcF4o0yfA45/NsVYDVJvxOOAHW6yMFJcdt8pZRK8fIXwIDAQAB
|
|
||||||
AoGASJwWXnNySHlam4Jp9DwA3/OCNs5HwIFtrkwqoR0fbSCHusjYXIHxISbZ9uOD
|
|
||||||
Iy9jgGno0XeF4WXijTfWl2bMXYWTS7ISMBg96bPZtG/RTdgd1LT69s82a+apbgSd
|
|
||||||
bxB64cyn8KtuABfZ9AMR+TV28TDmnGMdhVoaM66iWKv4a4ECQQDNmk3NTZ+s/y5F
|
|
||||||
5qOgJqH5yX1hZLLmm8e8lpghqDT43HR3cMJLN6b5oS1UdMcEw1Q6q3hjFl+MbnZa
|
|
||||||
AzvzpT9DAkEAyO5YdpbRG1OR7sNmidowvr1NkIjV/C4UuSpGrx9XJFAZkLxEEmMu
|
|
||||||
13QssdHjAkX5yFjkoNPC+wA6DeVjtvHatQJBAMG1qavOgKyLV9t/65XOEDm5Pqnu
|
|
||||||
KCfhiZQDBp5fTllRy2FlGYmoi2cSFhVGWOQB7G/CchBZWfiDcnpoJanufOUCQGr7
|
|
||||||
bKKHnoKcNmEYLOpNABMum7PPB5AjwOjt94CagT1WYKZNdzkLEg+pTXrIM8QsGdhw
|
|
||||||
bBqtZW1bK43mivcHQtkCQF+p7LfzmPo9uzRrOfjgTDYLuh3MD8EKNs0M6l15UqbQ
|
|
||||||
nfBBE0oIPH4j+K++7xWUQ7vbiyBc7C7H3NZeE6xqfS0=
|
|
||||||
-----END RSA PRIVATE KEY-----
|
|
|
@ -18,6 +18,9 @@
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
#include <i2-icinga.h>
|
#include <i2-icinga.h>
|
||||||
|
#ifdef HAVE_BACKTRACE_SYMBOLS
|
||||||
|
# include <execinfo.h>
|
||||||
|
#endif /* HAVE_BACKTRACE_SYMBOLS */
|
||||||
|
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
# include "icinga-version.h"
|
# include "icinga-version.h"
|
||||||
|
@ -28,6 +31,65 @@
|
||||||
|
|
||||||
using namespace icinga;
|
using namespace icinga;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handler for unhandled exceptions.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
static void exception_handler(void)
|
||||||
|
{
|
||||||
|
static bool rethrow = true;
|
||||||
|
|
||||||
|
try {
|
||||||
|
rethrow = false;
|
||||||
|
throw;
|
||||||
|
} catch (const std::exception& ex) {
|
||||||
|
std::cerr << std::endl;
|
||||||
|
std::cerr << "Unhandled exception of type "
|
||||||
|
<< Utility::GetTypeName(typeid(ex))
|
||||||
|
<< std::endl;
|
||||||
|
std::cerr << "Diagnostic Information: "
|
||||||
|
<< ex.what()
|
||||||
|
<< std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_BACKTRACE_SYMBOLS
|
||||||
|
void *frames[50];
|
||||||
|
int framecount = backtrace(frames, sizeof(frames) / sizeof(frames[0]));
|
||||||
|
|
||||||
|
char **messages = backtrace_symbols(frames, framecount);
|
||||||
|
|
||||||
|
std::cerr << std::endl << "Stacktrace:" << std::endl;
|
||||||
|
|
||||||
|
for (int i = 0; i < framecount && messages != NULL; ++i) {
|
||||||
|
String message = messages[i];
|
||||||
|
|
||||||
|
char *sym_begin = strchr(messages[i], '(');
|
||||||
|
|
||||||
|
if (sym_begin != NULL) {
|
||||||
|
char *sym_end = strchr(sym_begin, '+');
|
||||||
|
|
||||||
|
if (sym_end != NULL) {
|
||||||
|
String sym = String(sym_begin + 1, sym_end);
|
||||||
|
String sym_demangled = Utility::DemangleSymbolName(sym);
|
||||||
|
|
||||||
|
if (sym_demangled.IsEmpty())
|
||||||
|
sym_demangled = "<unknown function>";
|
||||||
|
|
||||||
|
message = String(messages[i], sym_begin) + ": " + sym_demangled + " (" + String(sym_end);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
std::cerr << "\t(" << i << ") " << message << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
free(messages);
|
||||||
|
|
||||||
|
std::cerr << std::endl;
|
||||||
|
#endif /* HAVE_BACKTRACE_SYMBOLS */
|
||||||
|
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Entry point for the Icinga application.
|
* Entry point for the Icinga application.
|
||||||
*
|
*
|
||||||
|
@ -37,6 +99,8 @@ using namespace icinga;
|
||||||
*/
|
*/
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
std::set_terminate(exception_handler);
|
||||||
|
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
LTDL_SET_PRELOADED_SYMBOLS();
|
LTDL_SET_PRELOADED_SYMBOLS();
|
||||||
#endif /* _WIN32 */
|
#endif /* _WIN32 */
|
||||||
|
@ -66,6 +130,11 @@ int main(int argc, char **argv)
|
||||||
Component::AddSearchDir(exeDirectory + "/../lib/icinga2");
|
Component::AddSearchDir(exeDirectory + "/../lib/icinga2");
|
||||||
Component::AddSearchDir(exeDirectory + "/../lib64/icinga2");
|
Component::AddSearchDir(exeDirectory + "/../lib64/icinga2");
|
||||||
|
|
||||||
|
#ifdef ICINGA_LIBDIR
|
||||||
|
Component::AddSearchDir(ICINGA_LIBDIR);
|
||||||
|
#endif /* ICINGA_LIBDIR */
|
||||||
|
|
||||||
|
try {
|
||||||
DynamicObject::BeginTx();
|
DynamicObject::BeginTx();
|
||||||
|
|
||||||
/* load config file */
|
/* load config file */
|
||||||
|
@ -79,6 +148,10 @@ int main(int argc, char **argv)
|
||||||
}
|
}
|
||||||
|
|
||||||
DynamicObject::FinishTx();
|
DynamicObject::FinishTx();
|
||||||
|
} catch (const exception& ex) {
|
||||||
|
Logger::Write(LogCritical, "icinga", "Configuration error: " + String(ex.what()));
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
Application::Ptr app = Application::GetInstance();
|
Application::Ptr app = Application::GetInstance();
|
||||||
|
|
||||||
|
|
|
@ -54,13 +54,11 @@ libbase_la_SOURCES = \
|
||||||
timer.h \
|
timer.h \
|
||||||
tlsclient.cpp \
|
tlsclient.cpp \
|
||||||
tlsclient.h \
|
tlsclient.h \
|
||||||
unix.cpp \
|
|
||||||
unix.h \
|
unix.h \
|
||||||
utility.cpp \
|
utility.cpp \
|
||||||
utility.h \
|
utility.h \
|
||||||
value.cpp \
|
value.cpp \
|
||||||
value.h \
|
value.h \
|
||||||
win32.cpp \
|
|
||||||
win32.h
|
win32.h
|
||||||
|
|
||||||
libbase_la_CPPFLAGS = \
|
libbase_la_CPPFLAGS = \
|
||||||
|
|
|
@ -138,7 +138,7 @@ void Application::TimeWatchThreadProc(void)
|
||||||
double lastLoop = Utility::GetTime();
|
double lastLoop = Utility::GetTime();
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
Sleep(5);
|
Utility::Sleep(5);
|
||||||
|
|
||||||
double now = Utility::GetTime();
|
double now = Utility::GetTime();
|
||||||
double timeDiff = lastLoop - now;
|
double timeDiff = lastLoop - now;
|
||||||
|
@ -147,7 +147,7 @@ void Application::TimeWatchThreadProc(void)
|
||||||
/* We made a significant jump in time. */
|
/* We made a significant jump in time. */
|
||||||
stringstream msgbuf;
|
stringstream msgbuf;
|
||||||
msgbuf << "We jumped "
|
msgbuf << "We jumped "
|
||||||
<< (timeDiff < 0 ? "forwards" : "backwards")
|
<< (timeDiff < 0 ? "forward" : "backward")
|
||||||
<< " in time: " << abs(timeDiff) << " seconds";
|
<< " in time: " << abs(timeDiff) << " seconds";
|
||||||
Logger::Write(LogInformation, "base", msgbuf.str());
|
Logger::Write(LogInformation, "base", msgbuf.str());
|
||||||
|
|
||||||
|
@ -167,11 +167,19 @@ void Application::TimeWatchThreadProc(void)
|
||||||
* Signals the application to shut down during the next
|
* Signals the application to shut down during the next
|
||||||
* execution of the event loop.
|
* execution of the event loop.
|
||||||
*/
|
*/
|
||||||
void Application::Shutdown(void)
|
void Application::RequestShutdown(void)
|
||||||
{
|
{
|
||||||
m_ShuttingDown = true;
|
m_ShuttingDown = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Terminates the application.
|
||||||
|
*/
|
||||||
|
void Application::Terminate(int exitCode)
|
||||||
|
{
|
||||||
|
_exit(exitCode);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves the full path of the executable.
|
* Retrieves the full path of the executable.
|
||||||
*
|
*
|
||||||
|
@ -283,7 +291,7 @@ void Application::SigIntHandler(int signum)
|
||||||
if (!instance)
|
if (!instance)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
instance->Shutdown();
|
instance->RequestShutdown();
|
||||||
|
|
||||||
struct sigaction sa;
|
struct sigaction sa;
|
||||||
memset(&sa, 0, sizeof(sa));
|
memset(&sa, 0, sizeof(sa));
|
||||||
|
@ -302,7 +310,7 @@ BOOL WINAPI Application::CtrlHandler(DWORD type)
|
||||||
if (!instance)
|
if (!instance)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
instance->GetInstance()->Shutdown();
|
instance->GetInstance()->RequestShutdown();
|
||||||
|
|
||||||
SetConsoleCtrlHandler(NULL, FALSE);
|
SetConsoleCtrlHandler(NULL, FALSE);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -338,19 +346,7 @@ int Application::Run(int argc, char **argv)
|
||||||
|
|
||||||
DynamicObject::BeginTx();
|
DynamicObject::BeginTx();
|
||||||
|
|
||||||
if (IsDebugging()) {
|
|
||||||
result = Main(m_Arguments);
|
result = Main(m_Arguments);
|
||||||
} else {
|
|
||||||
try {
|
|
||||||
result = Main(m_Arguments);
|
|
||||||
} catch (const exception& ex) {
|
|
||||||
Logger::Write(LogCritical, "base", "---");
|
|
||||||
Logger::Write(LogCritical, "base", "Exception: " + Utility::GetTypeName(typeid(ex)));
|
|
||||||
Logger::Write(LogCritical, "base", "Message: " + String(ex.what()));
|
|
||||||
|
|
||||||
result = EXIT_FAILURE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
DynamicObject::FinishTx();
|
DynamicObject::FinishTx();
|
||||||
DynamicObject::DeactivateObjects();
|
DynamicObject::DeactivateObjects();
|
||||||
|
@ -359,7 +355,8 @@ int Application::Run(int argc, char **argv)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Grabs the PID file lock and updates the PID.
|
* Grabs the PID file lock and updates the PID. Terminates the application
|
||||||
|
* if the PID file is already locked by another instance of the application.
|
||||||
*
|
*
|
||||||
* @param filename The name of the PID file.
|
* @param filename The name of the PID file.
|
||||||
*/
|
*/
|
||||||
|
@ -378,9 +375,11 @@ void Application::UpdatePidFile(const String& filename)
|
||||||
if (flock(fileno(m_PidFile), LOCK_EX | LOCK_NB) < 0) {
|
if (flock(fileno(m_PidFile), LOCK_EX | LOCK_NB) < 0) {
|
||||||
ClosePidFile();
|
ClosePidFile();
|
||||||
|
|
||||||
throw_exception(runtime_error("Another instance of the application is "
|
Logger::Write(LogCritical, "base",
|
||||||
|
"Another instance of the application is "
|
||||||
"already running. Remove the '" + filename + "' file if "
|
"already running. Remove the '" + filename + "' file if "
|
||||||
"you're certain that this is not the case."));
|
"you're certain that this is not the case.");
|
||||||
|
Terminate(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
#endif /* _WIN32 */
|
#endif /* _WIN32 */
|
||||||
|
|
||||||
|
|
|
@ -49,7 +49,8 @@ public:
|
||||||
*/
|
*/
|
||||||
virtual int Main(const vector<String>& args) = 0;
|
virtual int Main(const vector<String>& args) = 0;
|
||||||
|
|
||||||
static void Shutdown(void);
|
static void RequestShutdown(void);
|
||||||
|
static void Terminate(int exitCode);
|
||||||
|
|
||||||
static bool IsDebugging(void);
|
static bool IsDebugging(void);
|
||||||
|
|
||||||
|
|
|
@ -48,10 +48,8 @@
|
||||||
<ClCompile Include="tcpsocket.cpp" />
|
<ClCompile Include="tcpsocket.cpp" />
|
||||||
<ClCompile Include="timer.cpp" />
|
<ClCompile Include="timer.cpp" />
|
||||||
<ClCompile Include="tlsclient.cpp" />
|
<ClCompile Include="tlsclient.cpp" />
|
||||||
<ClCompile Include="unix.cpp" />
|
|
||||||
<ClCompile Include="utility.cpp" />
|
<ClCompile Include="utility.cpp" />
|
||||||
<ClCompile Include="value.cpp" />
|
<ClCompile Include="value.cpp" />
|
||||||
<ClCompile Include="win32.cpp" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="application.h" />
|
<ClInclude Include="application.h" />
|
||||||
|
|
|
@ -81,7 +81,7 @@ void Process::WorkerThreadProc(void)
|
||||||
tv.tv_usec = 0;
|
tv.tv_usec = 0;
|
||||||
select(nfds + 1, &readfds, NULL, NULL, &tv);
|
select(nfds + 1, &readfds, NULL, NULL, &tv);
|
||||||
#else /* _MSC_VER */
|
#else /* _MSC_VER */
|
||||||
Sleep(1000);
|
Utility::Sleep(1);
|
||||||
#endif /* _MSC_VER */
|
#endif /* _MSC_VER */
|
||||||
|
|
||||||
for (it = tasks.begin(); it != tasks.end(); ) {
|
for (it = tasks.begin(); it != tasks.end(); ) {
|
||||||
|
|
|
@ -1,9 +1,30 @@
|
||||||
|
/******************************************************************************
|
||||||
|
* 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. *
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
#include "i2-base.h"
|
#include "i2-base.h"
|
||||||
|
|
||||||
using namespace icinga;
|
using namespace icinga;
|
||||||
|
|
||||||
ScriptTask::ScriptTask(const ScriptFunction::Ptr& function, const vector<Value>& arguments)
|
ScriptTask::ScriptTask(const ScriptFunction::Ptr& function,
|
||||||
: AsyncTask<ScriptTask, Value>(), m_Function(function), m_Arguments(arguments)
|
const vector<Value>& arguments)
|
||||||
|
: AsyncTask<ScriptTask, Value>(), m_Function(function),
|
||||||
|
m_Arguments(arguments)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
void ScriptTask::Run(void)
|
void ScriptTask::Run(void)
|
||||||
|
|
|
@ -1,47 +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. *
|
|
||||||
******************************************************************************/
|
|
||||||
|
|
||||||
#include "i2-base.h"
|
|
||||||
|
|
||||||
#ifndef _WIN32
|
|
||||||
#include <ltdl.h>
|
|
||||||
|
|
||||||
using namespace icinga;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sleeps for the specified amount of time.
|
|
||||||
*
|
|
||||||
* @param milliseconds The amount of time in milliseconds.
|
|
||||||
*/
|
|
||||||
void Sleep(unsigned long milliseconds)
|
|
||||||
{
|
|
||||||
usleep(milliseconds * 1000);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Closes a socket.
|
|
||||||
*
|
|
||||||
* @param fd The socket that is to be closed.
|
|
||||||
*/
|
|
||||||
void closesocket(SOCKET fd)
|
|
||||||
{
|
|
||||||
close(fd);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* _WIN32 */
|
|
|
@ -37,12 +37,10 @@
|
||||||
#include <sys/file.h>
|
#include <sys/file.h>
|
||||||
#include <sys/wait.h>
|
#include <sys/wait.h>
|
||||||
|
|
||||||
void Sleep(unsigned long milliseconds);
|
|
||||||
|
|
||||||
typedef int SOCKET;
|
typedef int SOCKET;
|
||||||
#define INVALID_SOCKET (-1)
|
#define INVALID_SOCKET (-1)
|
||||||
void closesocket(SOCKET fd);
|
|
||||||
|
|
||||||
|
#define closesocket close
|
||||||
#define ioctlsocket ioctl
|
#define ioctlsocket ioctl
|
||||||
|
|
||||||
#ifndef MAXPATHLEN
|
#ifndef MAXPATHLEN
|
||||||
|
|
|
@ -24,6 +24,29 @@ using namespace icinga;
|
||||||
|
|
||||||
bool I2_EXPORT Utility::m_SSLInitialized = false;
|
bool I2_EXPORT Utility::m_SSLInitialized = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Demangles a symbol name.
|
||||||
|
*
|
||||||
|
* @param sym The symbol name.
|
||||||
|
* @returns A human-readable version of the symbol name.
|
||||||
|
*/
|
||||||
|
String Utility::DemangleSymbolName(const String& sym)
|
||||||
|
{
|
||||||
|
String result = sym;
|
||||||
|
|
||||||
|
#ifdef HAVE_GCC_ABI_DEMANGLE
|
||||||
|
int status;
|
||||||
|
char *realname = abi::__cxa_demangle(sym.CStr(), 0, 0, &status);
|
||||||
|
|
||||||
|
if (realname != NULL) {
|
||||||
|
result = String(realname);
|
||||||
|
free(realname);
|
||||||
|
}
|
||||||
|
#endif /* HAVE_GCC_ABI_DEMANGLE */
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a human-readable type name of a type_info object.
|
* Returns a human-readable type name of a type_info object.
|
||||||
*
|
*
|
||||||
|
@ -32,22 +55,9 @@ bool I2_EXPORT Utility::m_SSLInitialized = false;
|
||||||
*/
|
*/
|
||||||
String Utility::GetTypeName(const type_info& ti)
|
String Utility::GetTypeName(const type_info& ti)
|
||||||
{
|
{
|
||||||
String klass = ti.name();
|
return DemangleSymbolName(ti.name());
|
||||||
|
|
||||||
#ifdef HAVE_GCC_ABI_DEMANGLE
|
|
||||||
int status;
|
|
||||||
char *realname = abi::__cxa_demangle(klass.CStr(), 0, 0, &status);
|
|
||||||
|
|
||||||
if (realname != NULL) {
|
|
||||||
klass = String(realname);
|
|
||||||
free(realname);
|
|
||||||
}
|
|
||||||
#endif /* HAVE_GCC_ABI_DEMANGLE */
|
|
||||||
|
|
||||||
return klass;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Detaches from the controlling terminal.
|
* Detaches from the controlling terminal.
|
||||||
*/
|
*/
|
||||||
|
@ -61,7 +71,7 @@ void Utility::Daemonize(void) {
|
||||||
throw_exception(PosixException("fork() failed", errno));
|
throw_exception(PosixException("fork() failed", errno));
|
||||||
|
|
||||||
if (pid)
|
if (pid)
|
||||||
exit(0);
|
_exit(0);
|
||||||
|
|
||||||
fd = open("/dev/null", O_RDWR);
|
fd = open("/dev/null", O_RDWR);
|
||||||
|
|
||||||
|
@ -309,3 +319,18 @@ pid_t Utility::GetPid(void)
|
||||||
return GetCurrentProcessId();
|
return GetCurrentProcessId();
|
||||||
#endif /* _WIN32 */
|
#endif /* _WIN32 */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sleeps for the specified amount of time.
|
||||||
|
*
|
||||||
|
* @param timeout The timeout in seconds.
|
||||||
|
*/
|
||||||
|
void Utility::Sleep(double timeout)
|
||||||
|
{
|
||||||
|
#ifndef _WIN32
|
||||||
|
usleep(timeout * 1000 * 1000);
|
||||||
|
#else /* _WIN32 */
|
||||||
|
::Sleep(timeout * 1000);
|
||||||
|
#endif /* _WIN32 */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,7 @@ namespace icinga
|
||||||
class I2_BASE_API Utility
|
class I2_BASE_API Utility
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
static String DemangleSymbolName(const String& sym);
|
||||||
static String GetTypeName(const type_info& ti);
|
static String GetTypeName(const type_info& ti);
|
||||||
|
|
||||||
static void Daemonize(void);
|
static void Daemonize(void);
|
||||||
|
@ -50,6 +51,8 @@ public:
|
||||||
|
|
||||||
static pid_t GetPid(void);
|
static pid_t GetPid(void);
|
||||||
|
|
||||||
|
static void Sleep(double timeout);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static bool m_SSLInitialized;
|
static bool m_SSLInitialized;
|
||||||
|
|
||||||
|
|
|
@ -1,27 +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. *
|
|
||||||
******************************************************************************/
|
|
||||||
|
|
||||||
#include "i2-base.h"
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
using namespace icinga;
|
|
||||||
|
|
||||||
/* nothing here (yet) */
|
|
||||||
|
|
||||||
#endif /* _WIN32 */
|
|
|
@ -107,6 +107,7 @@ AC_DEFUN([AX_BOOST_SIGNALS],
|
||||||
AC_MSG_ERROR(Could not link against $ax_lib !)
|
AC_MSG_ERROR(Could not link against $ax_lib !)
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
ax_lib=""
|
||||||
|
|
||||||
CPPFLAGS="$CPPFLAGS_SAVED"
|
CPPFLAGS="$CPPFLAGS_SAVED"
|
||||||
LDFLAGS="$LDFLAGS_SAVED"
|
LDFLAGS="$LDFLAGS_SAVED"
|
||||||
|
|
|
@ -112,6 +112,7 @@ AC_DEFUN([AX_BOOST_SYSTEM],
|
||||||
if test "x$link_system" = "xno"; then
|
if test "x$link_system" = "xno"; then
|
||||||
AC_MSG_ERROR(Could not link against $ax_lib !)
|
AC_MSG_ERROR(Could not link against $ax_lib !)
|
||||||
fi
|
fi
|
||||||
|
ax_lib=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
CPPFLAGS="$CPPFLAGS_SAVED"
|
CPPFLAGS="$CPPFLAGS_SAVED"
|
||||||
|
|
|
@ -142,6 +142,7 @@ AC_DEFUN([AX_BOOST_THREAD],
|
||||||
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
ax_lib=""
|
||||||
|
|
||||||
CPPFLAGS="$CPPFLAGS_SAVED"
|
CPPFLAGS="$CPPFLAGS_SAVED"
|
||||||
LDFLAGS="$LDFLAGS_SAVED"
|
LDFLAGS="$LDFLAGS_SAVED"
|
||||||
|
|
|
@ -73,55 +73,29 @@ AC_DEFUN([AX_BOOST_UNIT_TEST_FRAMEWORK],
|
||||||
if test "x$ax_cv_boost_unit_test_framework" = "xyes"; then
|
if test "x$ax_cv_boost_unit_test_framework" = "xyes"; then
|
||||||
AC_DEFINE(HAVE_BOOST_UNIT_TEST_FRAMEWORK,,[define if the Boost::Unit_Test_Framework library is available])
|
AC_DEFINE(HAVE_BOOST_UNIT_TEST_FRAMEWORK,,[define if the Boost::Unit_Test_Framework library is available])
|
||||||
BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'`
|
BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'`
|
||||||
|
|
||||||
if test "x$ax_boost_user_unit_test_framework_lib" = "x"; then
|
if test "x$ax_boost_user_unit_test_framework_lib" = "x"; then
|
||||||
saved_ldflags="${LDFLAGS}"
|
for libextension in `ls $BOOSTLIBDIR/libboost_unit_test_framework*.so* $BOOSTLIBDIR/libboost_unit_test_framework*.dylib* $BOOSTLIBDIR/libboost_unit_test_framework*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_unit_test_framework.*\)\.so.*$;\1;' -e 's;^lib\(boost_unit_test_framework.*\)\.dylib.*$;\1;' -e 's;^lib\(boost_unit_test_framework.*\)\.a.*$;\1;'` ; do
|
||||||
for monitor_library in `ls $BOOSTLIBDIR/libboost_unit_test_framework*.so* $BOOSTLIBDIR/libboost_unit_test_framework*.dylib* $BOOSTLIBDIR/libboost_unit_test_framework*.a* 2>/dev/null` ; do
|
|
||||||
if test -r $monitor_library ; then
|
|
||||||
libextension=`echo $monitor_library | sed 's,.*/,,' | sed -e 's;^lib\(boost_unit_test_framework.*\)\.so.*$;\1;' -e 's;^lib\(boost_unit_test_framework.*\)\.dylib.*$;\1;' -e 's;^lib\(boost_unit_test_framework.*\)\.a.*$;\1;'`
|
|
||||||
ax_lib=${libextension}
|
ax_lib=${libextension}
|
||||||
link_unit_test_framework="yes"
|
AC_CHECK_LIB($ax_lib, exit,
|
||||||
else
|
[BOOST_UNIT_TEST_FRAMEWORK_LIB="-l$ax_lib"; AC_SUBST(BOOST_UNIT_TEST_FRAMEWORK_LIB) link_unit_test_framework="yes"; break],
|
||||||
link_unit_test_framework="no"
|
[link_unit_test_framework="no"])
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x$link_unit_test_framework" = "xyes"; then
|
|
||||||
BOOST_UNIT_TEST_FRAMEWORK_LIB="-l$ax_lib"
|
|
||||||
AC_SUBST(BOOST_UNIT_TEST_FRAMEWORK_LIB)
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
if test "x$link_unit_test_framework" != "xyes"; then
|
if test "x$link_unit_test_framework" != "xyes"; then
|
||||||
for libextension in `ls $BOOSTLIBDIR/boost_unit_test_framework*.dll* $BOOSTLIBDIR/boost_unit_test_framework*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^\(boost_unit_test_framework.*\)\.dll.*$;\1;' -e 's;^\(boost_unit_test_framework.*\)\.a.*$;\1;'` ; do
|
for libextension in `ls $BOOSTLIBDIR/boost_unit_test_framework*.dll* $BOOSTLIBDIR/boost_unit_test_framework*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^\(boost_unit_test_framework.*\)\.dll.*$;\1;' -e 's;^\(boost_unit_test_framework.*\)\.a*$;\1;'` ; do
|
||||||
ax_lib=${libextension}
|
ax_lib=${libextension}
|
||||||
AC_CHECK_LIB($ax_lib, exit,
|
AC_CHECK_LIB($ax_lib, exit,
|
||||||
[BOOST_UNIT_TEST_FRAMEWORK_LIB="-l$ax_lib"; AC_SUBST(BOOST_UNIT_TEST_FRAMEWORK_LIB) link_unit_test_framework="yes"; break],
|
[BOOST_UNIT_TEST_FRAMEWORK_LIB="-l$ax_lib"; AC_SUBST(BOOST_UNIT_TEST_FRAMEWORK_LIB) link_unit_test_framework="yes"; break],
|
||||||
[link_unit_test_framework="no"])
|
[link_unit_test_framework="no"])
|
||||||
done
|
done
|
||||||
fi
|
|
||||||
else
|
|
||||||
link_unit_test_framework="no"
|
|
||||||
saved_ldflags="${LDFLAGS}"
|
|
||||||
for ax_lib in boost_unit_test_framework-$ax_boost_user_unit_test_framework_lib $ax_boost_user_unit_test_framework_lib ; do
|
|
||||||
if test "x$link_unit_test_framework" = "xyes"; then
|
|
||||||
break;
|
|
||||||
fi
|
|
||||||
for unittest_library in `ls $BOOSTLIBDIR/lib${ax_lib}.so* $BOOSTLIBDIR/lib${ax_lib}.a* 2>/dev/null` ; do
|
|
||||||
if test -r $unittest_library ; then
|
|
||||||
libextension=`echo $unittest_library | sed 's,.*/,,' | sed -e 's;^lib\(boost_unit_test_framework.*\)\.so.*$;\1;' -e 's;^lib\(boost_unit_test_framework.*\)\.a*$;\1;'`
|
|
||||||
ax_lib=${libextension}
|
|
||||||
link_unit_test_framework="yes"
|
|
||||||
else
|
|
||||||
link_unit_test_framework="no"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$link_unit_test_framework" = "xyes"; then
|
else
|
||||||
BOOST_UNIT_TEST_FRAMEWORK_LIB="-l$ax_lib"
|
for ax_lib in $ax_boost_user_unit_test_framework_lib boost_unit_test_framework-$ax_boost_user_unit_test_framework_lib; do
|
||||||
AC_SUBST(BOOST_UNIT_TEST_FRAMEWORK_LIB)
|
AC_CHECK_LIB($ax_lib, main,
|
||||||
break
|
[BOOST_UNIT_TEST_FRAMEWORK_LIB="-l$ax_lib"; AC_SUBST(BOOST_UNIT_TEST_FRAMEWORK_LIB) link_unit_test_framework="yes"; break],
|
||||||
fi
|
[link_unit_test_framework="no"])
|
||||||
done
|
|
||||||
done
|
done
|
||||||
|
|
||||||
fi
|
fi
|
||||||
if test "x$ax_lib" = "x"; then
|
if test "x$ax_lib" = "x"; then
|
||||||
AC_MSG_ERROR(Could not find a version of the library!)
|
AC_MSG_ERROR(Could not find a version of the library!)
|
||||||
|
@ -130,6 +104,7 @@ AC_DEFUN([AX_BOOST_UNIT_TEST_FRAMEWORK],
|
||||||
AC_MSG_ERROR(Could not link against $ax_lib !)
|
AC_MSG_ERROR(Could not link against $ax_lib !)
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
ax_lib=""
|
||||||
|
|
||||||
CPPFLAGS="$CPPFLAGS_SAVED"
|
CPPFLAGS="$CPPFLAGS_SAVED"
|
||||||
LDFLAGS="$LDFLAGS_SAVED"
|
LDFLAGS="$LDFLAGS_SAVED"
|
||||||
|
|
Loading…
Reference in New Issue